[ruby-core:117432] [Ruby master Feature#20408] Add heap_live_slots to GC.stat_heap
From:
mk via ruby-core <ruby-core@...>
Date:
2024-04-03 14:24:53 UTC
List:
ruby-core #117432
Issue #20408 has been reported by mk (Matthias K=E4ppler). ---------------------------------------- Feature #20408: Add heap_live_slots to GC.stat_heap https://bugs.ruby-lang.org/issues/20408 * Author: mk (Matthias K=E4ppler) * Status: Open ---------------------------------------- `GC.stat` exposes a `heap_live_slots` metric that returns the number of liv= e objects occupying eden slots. Because the slot size was fixed to `RVALUE_SIZE`, this allowed for some bas= ic approximations of how many bytes were live/in-use (`heap_live_slots * RV= ALUE_SIZE`). This could furthermore be "embellished" by adding malloc'ed memory for thos= e objects that were larger than a 40B slot (we track this via a custom CRub= y patch). However, with the addition of Variable Width Allocations (https://bugs.ruby= -lang.org/issues/18239), this does not work anymore because we don't know h= ow `heap_live_slots` distributes over all pools that use different slot siz= es. This could be addressed by also adding `heap_live_slots` (and for symmetry:= `heap_free_slots`) to `GC.stat_heap`. The sum of all live slots per pool times its respective slot size should eq= ual `GC.stat[:heap_live_slots]`. --=20 https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-c= ore.ml.ruby-lang.org/