7532
123737
Здесь aa
насоздавала объектов.
7533
После запуска GC всё освободилось.
145586
Здесь bb
насоздавала объектов.
107535
100 тысяч объектов осталось (освободились только промежуточные результаты).
def fill(a) | |
100_000.times { | |
a << rand(10000).to_s * 100 | |
} | |
end | |
def aa | |
ary = [] | |
fill(ary) | |
end | |
def bb | |
Object.const_set("ARY", []) | |
fill(ARY) | |
end | |
GC.start | |
puts GC.stat[:heap_live_slots] | |
aa | |
puts GC.stat[:heap_live_slots] | |
GC.start | |
puts GC.stat[:heap_live_slots] | |
bb | |
puts GC.stat[:heap_live_slots] | |
GC.start | |
puts GC.stat[:heap_live_slots] |
7532
123737
Здесь aa
насоздавала объектов.
7533
После запуска GC всё освободилось.
145586
Здесь bb
насоздавала объектов.
107535
100 тысяч объектов осталось (освободились только промежуточные результаты).