L
Lionel Bouton
Hi,
I just read the abstract on http://lambda-the-ultimate.org/node/2391 and
found it might be of interest for core language developers and people
interested in garbage collecting.
I immediately thought of Ruby because of my experience with long running
Rails processes. It might be the occasion to have my gut feelings
checked by people that really know the inner workings of Ruby 1.8 too.
1/ From my experience the memory usage of a Ruby process never goes down
(garbage collected objects only free memory for future reallocation, but
the process memory is never recompacted after garbage collecting).
2/ The VM load can remain high after big allocations and subsequent
garbage collections (ie: there's some pagging going on even if the
application isn't doing memory intensive operations anymore).
The article above might just have explained to me why Ruby behaves this
way: the GC might just force paging once the memory footprint of a
process is large enough, even if most of this process-allocated memory
is actually free room.
Now going to review the content more in depth.
Lionel.
I just read the abstract on http://lambda-the-ultimate.org/node/2391 and
found it might be of interest for core language developers and people
interested in garbage collecting.
I immediately thought of Ruby because of my experience with long running
Rails processes. It might be the occasion to have my gut feelings
checked by people that really know the inner workings of Ruby 1.8 too.
1/ From my experience the memory usage of a Ruby process never goes down
(garbage collected objects only free memory for future reallocation, but
the process memory is never recompacted after garbage collecting).
2/ The VM load can remain high after big allocations and subsequent
garbage collections (ie: there's some pagging going on even if the
application isn't doing memory intensive operations anymore).
The article above might just have explained to me why Ruby behaves this
way: the GC might just force paging once the memory footprint of a
process is large enough, even if most of this process-allocated memory
is actually free room.
Now going to review the content more in depth.
Lionel.