From: jean.boussier@... Date: 2020-08-24T07:35:49+00:00 Subject: [ruby-core:99679] [Ruby master Feature#17103] Add a :since option to ObjectSpace.dump_all Issue #17103 has been updated by byroot (Jean Boussier). > this feature strongly connected with trace_object_allocations, right? Indeed. > so please write it on document. what happens on without trace_object_allocations? it is unclear. I changed: ``` Objects that were allocated with object allocation tracing disabled are not dumped. ``` to: ``` Objects that were allocated without object allocation tracing enabled are ignored. See ::trace_object_allocations for more information and examples. ``` Is that acceptable? ---------------------------------------- Feature #17103: Add a :since option to ObjectSpace.dump_all https://bugs.ruby-lang.org/issues/17103#change-87166 * Author: byroot (Jean Boussier) * Status: Open * Priority: Normal ---------------------------------------- Patch: https://github.com/ruby/ruby/pull/3368 This is useful for seeing what a block of code allocated, e.g. ```ruby GC.start GC.disable gc_gen = GC.count ObjectSpace.trace_object_allocations do # run some code end allocations = ObjectSpace.dump_all(output: :file, since: gc_gen) GC.enable GC.start retentions = ObjectSpace.dump_all(output: :file, since: gc_gen) ``` For context, this is what I do in https://github.com/Shopify/heap-profiler, except that I have to dump the entire heap three times and then do a diff. This new API would allow me to dump the entire heap only once and then do two much-faster single-generation dumps without doing the diff. -- https://bugs.ruby-lang.org/ Unsubscribe: