Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ObjectSpace - what is it and how do people use it?

Ruby-doc has this description:

The ObjectSpace module contains a number of routines that interact with the garbage collection facility and allow you to traverse all living objects with an iterator.

ObjectSpace also provides support for object finalizers, procs that will be called when a specific object is about to be destroyed by garbage collection.

Can anyone explain this in a simpler language, if not, atleast provide info on where this is used?

like image 631
RubyKumar Avatar asked Feb 25 '11 09:02

RubyKumar


People also ask

What is ObjectSpace?

Definition of object space : the space in relation to an optical system in which are located the objects to be imaged by the system — compare image space.

What is ObjectSpace ruby?

The ObjectSpace module contains a number of routines that interact with the garbage collection facility and allow you to traverse all living objects with an iterator. ObjectSpace also provides support for object finalizers, procs that will be called when a specific object is about to be destroyed by garbage collection.


1 Answers

A garbage collector is a construct in languages with managed memory. It is the thing that manages the memory. Essentially, it's the job of the garbage collector to figure out when a piece of memory that has been allocated is no longer needed, and deallocate it.

When you're using a language with a garbage collector, there are certain things you might want to do:

  1. Run a method whenever a piece of memory is freed
  2. Count all instances of a class that are currently taking up memory
  3. Count all instances of all classes

ObjectSpace gives you access to do things of this nature. Essentially, it's a way to get access to anything and everything that's currently using allocated memory.

like image 147
Benson Avatar answered Nov 04 '22 07:11

Benson