Manual Garbage Collection

C

Conan

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.
 
R

Rick DeNatale

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/topic/110106
 
C

Conan Rubymanjaro

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.
 

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,755
Messages
2,569,534
Members
45,007
Latest member
obedient dusk

Latest Threads

Top