Are not used Objects cleaned from memory?

  • Thread starter Iñaki Baz Castillo
  • Start date
I

Iñaki Baz Castillo

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

Thanks.

=2D-=20
I=C3=B1aki Baz Castillo
 
S

Sebastian Hungerecker

I=C3=B1aki Baz Castillo said:
If I have an Array containing custom complex objects and I use Array.dele= te
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=20
collected.

HTH,
Sebastian
 
D

Dave Bass

Sebastian said:
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... :)

Dave
 
M

Michal Suchanek

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... :)

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 ;-)

Thanks

Michal
 
M

Marc Heiler

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 ... :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,054
Latest member
LucyCarper

Latest Threads

Top