Are not used Objects cleaned from memory?

Hi, a simple question:
If I have an Array containing custom complex objects and I use
Array.delete or
any other function that deletes a element of the Array, will be the
deleted
Object remain in RAM memory? or will it automatically deleted?
Note that the object also contains complex objects as attributes.

Thanks.

Iñaki Baz C. wrote:

If I have an Array containing custom complex objects and I use Array.delete
or any other function that deletes a element of the Array, will be the
deleted Object remain in RAM memory? or will it automatically deleted?

Assuming the object is not referenced in any other way it will be
garbage
collected.

HTH,
Sebastian

Sebastian H. wrote:

Assuming the object is not referenced in any other way it will be
garbage
collected.

Eventually.

AFAIK there is no way to force the garbage collector to operate; this is
in common with most other languages that use garbage collection.
GC.start or GC.enable do not force garbage collection to occur.

But I’m by no means an expert, so someone will probably be along in a
minute to tell you about a gem that does just that… or it’s already in
v1.9… :slight_smile:

Dave

On 14/07/2008, Dave B. [email protected] wrote:

GC.start or GC.enable do not force garbage collection to occur.

But I’m by no means an expert, so someone will probably be along in a
minute to tell you about a gem that does just that… or it’s already in
v1.9… :slight_smile:

There might be some non-obvious references to objects stored in blocks
or elsewhere. When you write a piece of code (such as a block) and
save it somewhere the variables that were visible while writing the
block have to be kept around.

Also from what I have heard the GC works by scanning the memory
(stack, whatever) for things that look like object pointers. So if
you have a number (or substring, or …) that points to an object when
interpreted as a pointer that object would not be deleted even though
it is really not referenced …

When I created lots of small strings and stuffed them into numerous
hashes and arrays the objects did not go away as I would expect. I
saved a gigabyte or two of ram by using JRuby then - it required about
half the memory in this case :wink:

Thanks

Michal

AFAIK there is no way to force the garbage collector to operate;

Hmm GC.start ?

Or maybe wait until you have 8M used, then it should kick in … :slight_smile:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs