我正在运行Rails(5.0.7),Ruby(2.3.7)
当我更改线程中的架构时,内存似乎并没有停止增加。但是没有线程内存将保持不变。
带有线程
loop {
Thread.new{
ActiveRecord::Base.connection.execute("SET search_path TO new_schema;")
}.join
GC.start
p GC.stat(:heap_live_slots)
}
输出:
554116
554941
555766
556591
557416
558241
559066
559891
560716
561541
562366
563191
564016
564841
565666
566491
567316
568141
568966
569791
570616
571441
572266
573091
573916
574741
575566
576391
577216
578041
无线程
loop {
ActiveRecord::Base.connection.execute("SET search_path TO new_schema;")
GC.start
p GC.stat(:heap_live_slots)
}
输出:
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
我发现有很多架构https://github.com/rails/rails/issues/19578的内存膨胀 但是我想它已经修复了,不确定为什么会这样。