End of Life Ruby 3.2 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
class method
GC.compact
GC.compact
gc.c
View on GitHub ↗
static VALUE
gc_compact(VALUE self)
{
/* Run GC with compaction enabled */
gc_start_internal(NULL, self, Qtrue, Qtrue, Qtrue, Qtrue);
return gc_compact_stats(self);
}
This function compacts objects together in Ruby’s heap. It eliminates unused space (or fragmentation) in the heap by moving objects in to that unused space. This function returns a hash which contains statistics about which objects were moved. See GC.latest_gc_info for details about compaction statistics.
This method is implementation specific and not expected to be implemented in any implementation besides MRI.
To test whether GC compaction is supported, use the idiom:
Example
GC.respond_to?(:compact)