------art_11333_12488995.1226417057119
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Some options to get around this problem could be:
* Not compacting any memory from the parent (i.e. keep the GC of shared
objects non-compacting, with an external mark bit)
* With a generational GC, promote shared objects to the mature space, and
have a non-compacting mature space.

I recognize that it would be more complex than either of the two options
alone. Perhaps compaction could be an option that you could turn on (which,
initially, would make it non COW-friendly)?

-- Yehuda

On Tue, Nov 11, 2008 at 9:45 AM, Yukihiro Matsumoto <matz / ruby-lang.org>wrote:

> Hi,
>
> In message "Re: [ruby-core:19812] Re: Status of copy-on-write friendly
> garbage collector"
>     on Tue, 11 Nov 2008 16:00:13 +0900, "Yehuda Katz" <wycats / gmail.com>
> writes:
>
> |Out of curiosity, on another related topic, is any work being done on a
> |compacting GC? I have found that memory fragmentation can make Ruby
> |processes significantly larger than you would expect.
>
> Last month, I saw a research presentation on mostly copying garbage
> collection for Ruby.  But you have to note that copying GC and
> copy-on-write-friendly-ness is contradicting aspect.  You move objects
> to compact the heap, it touches more pages.
>
>                                                        matz.
>
>


-- 
Yehuda Katz
Developer | Engine Yard
(ph) 718.877.1325

------art_11333_12488995.1226417057119
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Some options to get around this problem could be:<div><br></div><div>* Not compacting any memory from the parent (i.e. keep the GC of shared objects non-compacting, with an external mark bit)</div><div>* With a generational GC, promote shared objects to the mature space, and have a non-compacting mature space.</div>
<div><br></div><div>I recognize that it would be more complex than either of the two options alone. Perhaps compaction could be an option that you could turn on (which, initially, would make it non COW-friendly)?</div><div>
<br></div><div>-- Yehuda</div><div><br><div classmail_quote">On Tue, Nov 11, 2008 at 9:45 AM, Yukihiro Matsumoto <span dirtr">&lt;<a hrefailto:matz / ruby-lang.org">matz / ruby-lang.org</a>&gt;</span> wrote:<br><blockquote classmail_quote" styleargin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br>
<br>
In message &quot;Re: [ruby-core:19812] Re: Status of copy-on-write friendly garbage collector&quot;<br>
<div classh2E3d"> &nbsp; &nbsp;on Tue, 11 Nov 2008 16:00:13 +0900, &quot;Yehuda Katz&quot; &lt;<a hrefailto:wycats / gmail.com">wycats / gmail.com</a>&gt; writes:<br>
<br>
|Out of curiosity, on another related topic, is any work being done on a<br>
|compacting GC? I have found that memory fragmentation can make Ruby<br>
|processes significantly larger than you would expect.<br>
<br>
</div>Last month, I saw a research presentation on mostly copying garbage<br>
collection for Ruby. &nbsp;But you have to note that copying GC and<br>
copy-on-write-friendly-ness is contradicting aspect. &nbsp;You move objects<br>
to compact the heap, it touches more pages.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;matz.<br>
<br>
</blockquote></div><br><br clear
ll"><br>-- <br>Yehuda Katz<br>Developer | Engine Yard<br>(ph) 718.877.1325<br>
</div>

------art_11333_12488995.1226417057119--