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 тысяч объектов осталось (освободились только промежуточные результаты).