<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Making Ruby’s garbage collector copy-on-write friendly, part 6 (final?)</title>
	<atom:link href="http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/feed/" rel="self" type="application/rss+xml" />
	<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/</link>
	<description>Ecchi nanowa ikenai to omoimasu</description>
	<lastBuildDate>Fri, 09 Apr 2010 11:42:43 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: trickyco.de &#187; Blog Archive &#187; hacking on ruby&#8217;s garbage collector</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-9921</link>
		<dc:creator>trickyco.de &#187; Blog Archive &#187; hacking on ruby&#8217;s garbage collector</dc:creator>
		<pubDate>Wed, 06 May 2009 08:10:03 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-9921</guid>
		<description>[...] (this guy gets the credit on this idea) Because we do scanning copy on write semantics are blown. you do a fork, and as soon as GC runs, your whole heap is resident and private memory. [...]</description>
		<content:encoded><![CDATA[<p>[...] (this guy gets the credit on this idea) Because we do scanning copy on write semantics are blown. you do a fork, and as soon as GC runs, your whole heap is resident and private memory. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crystal</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-8628</link>
		<dc:creator>Crystal</dc:creator>
		<pubDate>Thu, 17 Apr 2008 00:35:47 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-8628</guid>
		<description>Wow these are very big savings, thanks again.</description>
		<content:encoded><![CDATA[<p>Wow these are very big savings, thanks again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hongli</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-7947</link>
		<dc:creator>Hongli</dc:creator>
		<pubDate>Thu, 20 Mar 2008 10:07:04 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-7947</guid>
		<description>No, the memory savings are caused by copy-on-write semantics.</description>
		<content:encoded><![CDATA[<p>No, the memory savings are caused by copy-on-write semantics.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: roger</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-7944</link>
		<dc:creator>roger</dc:creator>
		<pubDate>Thu, 20 Mar 2008 05:01:47 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-7944</guid>
		<description>I assume most of the memory-savings is because of using fixed-length &quot;heap blocks&quot;?</description>
		<content:encoded><![CDATA[<p>I assume most of the memory-savings is because of using fixed-length &#8220;heap blocks&#8221;?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 赖洪礼的 blog &#187; Making Ruby’s garbage collector copy-on-write friendly, part 7</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-7574</link>
		<dc:creator>赖洪礼的 blog &#187; Making Ruby’s garbage collector copy-on-write friendly, part 7</dc:creator>
		<pubDate>Mon, 14 Jan 2008 12:50:14 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-7574</guid>
		<description>[...] turns out that part 6 was not final. I&#8217;ve been working on the garbage collector again. These are the [...]</description>
		<content:encoded><![CDATA[<p>[...] turns out that part 6 was not final. I&#8217;ve been working on the garbage collector again. These are the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lloyd hilaiel</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-7010</link>
		<dc:creator>lloyd hilaiel</dc:creator>
		<pubDate>Fri, 26 Oct 2007 20:30:23 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-7010</guid>
		<description>hi.

I&#039;m embarked on a similar mission.  make ruby use less memory without going too much slower.  I&#039;ve got a set of very simple test cases, and ran then on 1.8.6 after applying your patch.  it&#039;s interesting to note that you&#039;ve got about a 8% performance hit in combination with the 33% memory usage gain according to my toy tests:

vanilla 1.8.6:
running cases/growarray.rb
 time 1.355438
running cases/plist.rb
 time 3.693722
running cases/shrinkarray.rb
 time 1.351735

cowfriendly 1.8.6:
running cases/growarray.rb
 time 1.485687
running cases/plist.rb
 time 4.006008
running cases/shrinkarray.rb
 time 1.48557

(/ 3.693722 4.006008)
(/ 1.351735 1.48557)

~8% performance penalty.

I&#039;d imagine for a lot of folks this is a tradeoff they&#039;re willing to make (8% is a lot better than swapping and paging :), but thought it might be interesting to you anyways.</description>
		<content:encoded><![CDATA[<p>hi.</p>
<p>I&#8217;m embarked on a similar mission.  make ruby use less memory without going too much slower.  I&#8217;ve got a set of very simple test cases, and ran then on 1.8.6 after applying your patch.  it&#8217;s interesting to note that you&#8217;ve got about a 8% performance hit in combination with the 33% memory usage gain according to my toy tests:</p>
<p>vanilla 1.8.6:<br />
running cases/growarray.rb<br />
 time 1.355438<br />
running cases/plist.rb<br />
 time 3.693722<br />
running cases/shrinkarray.rb<br />
 time 1.351735</p>
<p>cowfriendly 1.8.6:<br />
running cases/growarray.rb<br />
 time 1.485687<br />
running cases/plist.rb<br />
 time 4.006008<br />
running cases/shrinkarray.rb<br />
 time 1.48557</p>
<p>(/ 3.693722 4.006008)<br />
(/ 1.351735 1.48557)</p>
<p>~8% performance penalty.</p>
<p>I&#8217;d imagine for a lot of folks this is a tradeoff they&#8217;re willing to make (8% is a lot better than swapping and paging <img src='http://izumi.plan99.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , but thought it might be interesting to you anyways.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roger Pack</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-6921</link>
		<dc:creator>Roger Pack</dc:creator>
		<pubDate>Mon, 22 Oct 2007 21:11:59 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-6921</guid>
		<description>You should submit this to the mongrel guys :)</description>
		<content:encoded><![CDATA[<p>You should submit this to the mongrel guys <img src='http://izumi.plan99.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-6808</link>
		<dc:creator>Jeremy</dc:creator>
		<pubDate>Mon, 15 Oct 2007 17:03:35 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-6808</guid>
		<description>Actually, upon further review, it doesn&#039;t. They don&#039;t call start. I had a check inside the module, which was outputting, but start never gets called. I&#039;ll just run with the standard mongrel for now, and change up &quot;swiftiply_mongrel_rails&quot; to use your stuff instead later.</description>
		<content:encoded><![CDATA[<p>Actually, upon further review, it doesn&#8217;t. They don&#8217;t call start. I had a check inside the module, which was outputting, but start never gets called. I&#8217;ll just run with the standard mongrel for now, and change up &#8220;swiftiply_mongrel_rails&#8221; to use your stuff instead later.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-6807</link>
		<dc:creator>Jeremy</dc:creator>
		<pubDate>Mon, 15 Oct 2007 16:51:34 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-6807</guid>
		<description>Already did that. :) - It is.</description>
		<content:encoded><![CDATA[<p>Already did that. <img src='http://izumi.plan99.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8211; It is.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hongli</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/comment-page-1/#comment-6806</link>
		<dc:creator>Hongli</dc:creator>
		<pubDate>Mon, 15 Oct 2007 16:27:57 +0000</pubDate>
		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/10/15/making-ruby%e2%80%99s-garbage-collector-copy-on-write-friendly-part-6-final/#comment-6806</guid>
		<description>I&#039;m not sure whether mongrel_light_cluster is compatible with swiftiply_mongrel_rails. You can check whether mongrel_light_cluster is actually active by checking this:
&lt;pre lang=&quot;ruby&quot;&gt;
module Cluster
  module ExecBase
    if @@light_cluster_initialized
        puts &quot;mongrel_light_cluster is active&quot;
    end
  end
end
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>I&#8217;m not sure whether mongrel_light_cluster is compatible with swiftiply_mongrel_rails. You can check whether mongrel_light_cluster is actually active by checking this:</p>
<pre lang="ruby">
module Cluster
  module ExecBase
    if @@light_cluster_initialized
        puts "mongrel_light_cluster is active"
    end
  end
end
</pre>
]]></content:encoded>
	</item>
</channel>
</rss>
