[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Manual Garbage Collection

Conan

6/13/2007 5:41:00 PM

Hi. I'm having a problem with a Ruby-Gnome2 application I've been
building. For some reason(which I haven't identified but I suspect is
ruby-gnome problem) my program randomly segfaults. I fixed this by
disabling garbage collection(Maybe GC was cleaning up objects that were
still in use?) but of course now my application runs out of memory
relatively quickly. I know which parts of my non-gnome related code are
memory hogs, and I was wondering if there is a way to manually garbage
collect specific objects(and their dependencies hopefully)? Or,
alternatively, is their a way to only run garbage collection within a
certain scope?

I'd love a solution to this, as my current alternatives are either
running out of memory or random segfaults.

--
Posted via http://www.ruby-....

3 Answers

Rick DeNatale

6/13/2007 6:13:00 PM

0

On 6/13/07, Conan <spam@woodsc.ca> wrote:
> Hi. I'm having a problem with a Ruby-Gnome2 application I've been
> building. For some reason(which I haven't identified but I suspect is
> ruby-gnome problem) my program randomly segfaults. I fixed this by
> disabling garbage collection(Maybe GC was cleaning up objects that were
> still in use?)

Not very likely, the GC if anything tends not to free objects which
are still referenced rather than the other way around. Segfaults are
almost always caused by flawed extension code in C/C++ I think that
ruby-gnome2 might have a bit of that. <G>.

I've not used or looked at Ruby-Gnome2 but I'd look to see if it was
using finalizers. It could be that the bug is being exposed by their
code which runs in a finalizer. Turning off GC would prevent this
code from running.

> but of course now my application runs out of memory
> relatively quickly. I know which parts of my non-gnome related code are
> memory hogs, and I was wondering if there is a way to manually garbage
> collect specific objects(and their dependencies hopefully)? Or,
> alternatively, is their a way to only run garbage collection within a
> certain scope?

I'm afraid not.

> I'd love a solution to this, as my current alternatives are either
> running out of memory or random segfaults.

Or tracking down what's actually segfaulting. Perhaps there are some
ideas in this thread:
http://www.ruby-forum.com/to...

--
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denh...

Conan Rubymanjaro

6/13/2007 9:22:00 PM

0

Ok, I'll see if I can find(and hey, maybe disable) ruby-gnome's
finalizers that may be causing problems. Thanks for your help, at least
now I've got an idea of where to look.

--
Posted via http://www.ruby-....

Conan Rubymanjaro

6/13/2007 10:07:00 PM

0

Conan Rubymanjaro wrote:
> Ok, I'll see if I can find(and hey, maybe disable) ruby-gnome's
> finalizers that may be causing problems. Thanks for your help, at least
> now I've got an idea of where to look.

If anyone is interested in knowing more, I've continued this thread in
http://www.ruby-...to... with code examples.

--
Posted via http://www.ruby-....