The GC module provides an interface to Ruby’s mark and sweep garbage collection mechanism. Some of the underlying methods are also available via the ObjectSpace module.

Methods
D
E
G
S
Class Public methods
GC.disable => true or false

Disables garbage collection, returning true if garbage collection was already disabled.

   GC.disable   #=> false
   GC.disable   #=> true
VALUE
rb_gc_disable()
{
    int old = dont_gc;

    dont_gc = Qtrue;
    return old;
}
GC.enable => true or false

Enables garbage collection, returning true if garbage collection was previously disabled.

   GC.disable   #=> false
   GC.enable    #=> true
   GC.enable    #=> false
VALUE
rb_gc_enable()
{
    int old = dont_gc;

    dont_gc = Qfalse;
    return old;
}
GC.start => nil gc.garbage_collect => nil ObjectSpace.garbage_collect => nil

Initiates garbage collection, unless manually disabled.

VALUE
rb_gc_start()
{
    rb_gc();
    return Qnil;
}
GC.stress => true or false

returns current status of GC stress mode.

static VALUE
gc_stress_get(self)
    VALUE self;
{
    return ruby_gc_stress ? Qtrue : Qfalse;
}
GC.stress = bool => bool

updates GC stress mode.

When GC.stress = true, GC is invoked for all GC opportunity: all memory and object allocation.

Since it makes Ruby very slow, it is only for debugging.

static VALUE
gc_stress_set(self, bool)
    VALUE self, bool;
{
    rb_secure(2);
    ruby_gc_stress = RTEST(bool);
    return bool;
}
Instance Public methods
GC.start => nil gc.garbage_collect => nil ObjectSpace.garbage_collect => nil

Initiates garbage collection, unless manually disabled.

VALUE
rb_gc_start()
{
    rb_gc();
    return Qnil;
}