<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Tamarin part III &#8211; Garbage Collector in Flash (10.0)</title>
	<atom:link href="http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/feed/" rel="self" type="application/rss+xml" />
	<link>http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/</link>
	<description>Ninjaneering!</description>
	<lastBuildDate>Sat, 28 Jan 2012 04:42:02 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: mm.cfg Secrets &#171; Michael.Huang&#039;s Blog</title>
		<link>http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/#comment-1159</link>
		<dc:creator><![CDATA[mm.cfg Secrets &#171; Michael.Huang&#039;s Blog]]></dc:creator>
		<pubDate>Sun, 15 May 2011 04:36:45 +0000</pubDate>
		<guid isPermaLink="false">http://jpauclair.wordpress.com/?p=92#comment-1159</guid>
		<description><![CDATA[[...] DisableIncrementalGC = 1&#124;0 Lets you enable/disable Garbage Collector Incremental policies (more info on the GC) [...]]]></description>
		<content:encoded><![CDATA[<p>[...] DisableIncrementalGC = 1|0 Lets you enable/disable Garbage Collector Incremental policies (more info on the GC) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: New Flash Visual Profiler &#171; jpauclair</title>
		<link>http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/#comment-331</link>
		<dc:creator><![CDATA[New Flash Visual Profiler &#171; jpauclair]]></dc:creator>
		<pubDate>Wed, 21 Apr 2010 02:50:42 +0000</pubDate>
		<guid isPermaLink="false">http://jpauclair.wordpress.com/?p=92#comment-331</guid>
		<description><![CDATA[[...] The flash GC doesn’t guarantee that all &#8220;dead&#8221; objects will be collected in a single p... But having those blue rectangle collected almost randomly is really fun to see. [...]]]></description>
		<content:encoded><![CDATA[<p>[...] The flash GC doesn’t guarantee that all &#8220;dead&#8221; objects will be collected in a single p&#8230; But having those blue rectangle collected almost randomly is really fun to see. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AS3 hidden treasure in the mm.cfg file. Revealing and documenting many Flash secrets! &#171; jpauclair</title>
		<link>http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/#comment-69</link>
		<dc:creator><![CDATA[AS3 hidden treasure in the mm.cfg file. Revealing and documenting many Flash secrets! &#171; jpauclair]]></dc:creator>
		<pubDate>Thu, 11 Feb 2010 05:01:15 +0000</pubDate>
		<guid isPermaLink="false">http://jpauclair.wordpress.com/?p=92#comment-69</guid>
		<description><![CDATA[[...] DisableIncrementalGC = 1&#124;0  Lets you enable/disable Garbage Collector Incremental policies (more info on the GC) [...]]]></description>
		<content:encoded><![CDATA[<p>[...] DisableIncrementalGC = 1|0  Lets you enable/disable Garbage Collector Incremental policies (more info on the GC) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nicolas</title>
		<link>http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/#comment-39</link>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
		<pubDate>Tue, 05 Jan 2010 09:27:55 +0000</pubDate>
		<guid isPermaLink="false">http://jpauclair.wordpress.com/?p=92#comment-39</guid>
		<description><![CDATA[It&#039;s indeed useful when you want to do &quot;serious work&quot; to understand the GC. But as you stated, there&#039;s a whole unknown part of the Flash Player which is how the whole timeline and sprites are handled.

For one of our game projects, we had to rewrite the whole timeline player in haXe and with some reuse optimizations we were able to get more performances than native implementation...]]></description>
		<content:encoded><![CDATA[<p>It&#8217;s indeed useful when you want to do &#8220;serious work&#8221; to understand the GC. But as you stated, there&#8217;s a whole unknown part of the Flash Player which is how the whole timeline and sprites are handled.</p>
<p>For one of our game projects, we had to rewrite the whole timeline player in haXe and with some reuse optimizations we were able to get more performances than native implementation&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jackson Dunstan</title>
		<link>http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/#comment-34</link>
		<dc:creator><![CDATA[Jackson Dunstan]]></dc:creator>
		<pubDate>Thu, 24 Dec 2009 08:12:10 +0000</pubDate>
		<guid isPermaLink="false">http://jpauclair.wordpress.com/?p=92#comment-34</guid>
		<description><![CDATA[I understand wanting to keep specific implementation out of the blog. That&#039;s been my policy too. I was asking for some general ideas... and you&#039;ve provided them! Thanks again for the article and for the followup ideas and conclusion. It certainly gives me a lot to think about both architecturally and as far as day-to-day practices go.]]></description>
		<content:encoded><![CDATA[<p>I understand wanting to keep specific implementation out of the blog. That&#8217;s been my policy too. I was asking for some general ideas&#8230; and you&#8217;ve provided them! Thanks again for the article and for the followup ideas and conclusion. It certainly gives me a lot to think about both architecturally and as far as day-to-day practices go.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jpauclair</title>
		<link>http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/#comment-33</link>
		<dc:creator><![CDATA[jpauclair]]></dc:creator>
		<pubDate>Thu, 24 Dec 2009 05:16:09 +0000</pubDate>
		<guid isPermaLink="false">http://jpauclair.wordpress.com/?p=92#comment-33</guid>
		<description><![CDATA[I prefer to keep specific implementation from my job out of this blog. I&#039;m sure you can understand why. 
But in general, since the GC is scanning the whole object range before sweeping plus doing finalization on certain objects (like String and XML Node etc.) it&#039;s best to keep a minimum heap size and object number. 
If you have dozens of thousands objects instantiated in your project, there is a good chance of having visible pause.
Preventing that can’t really be done with a “magic trick” and require a good engine architecture supporting optimized live object serialization to make the number of instance lower.
For most project, the real problem is coming from assets created on the timeline because we have no control over theses. We can’t tell FlashIDE to “re-use” a sprite that is created a lot of time. We can’t make “real” object pooling with the timeline. 
I also forgot to conclude my post!
The GC of flash caused me a lot of problem in the past but it’s not because it’s bad. It’s just because we are doing very big application. Since we use a lot of visual object (sprites) in flash, there is often a LOT of memory added to the heap and the triggers are harder to manage because of the objects size.
For a game engine, having access to explicit collection can be great. But Adobe made a good call by making it conservative and hence accessible to a lot more people.]]></description>
		<content:encoded><![CDATA[<p>I prefer to keep specific implementation from my job out of this blog. I&#8217;m sure you can understand why.<br />
But in general, since the GC is scanning the whole object range before sweeping plus doing finalization on certain objects (like String and XML Node etc.) it&#8217;s best to keep a minimum heap size and object number.<br />
If you have dozens of thousands objects instantiated in your project, there is a good chance of having visible pause.<br />
Preventing that can’t really be done with a “magic trick” and require a good engine architecture supporting optimized live object serialization to make the number of instance lower.<br />
For most project, the real problem is coming from assets created on the timeline because we have no control over theses. We can’t tell FlashIDE to “re-use” a sprite that is created a lot of time. We can’t make “real” object pooling with the timeline.<br />
I also forgot to conclude my post!<br />
The GC of flash caused me a lot of problem in the past but it’s not because it’s bad. It’s just because we are doing very big application. Since we use a lot of visual object (sprites) in flash, there is often a LOT of memory added to the heap and the triggers are harder to manage because of the objects size.<br />
For a game engine, having access to explicit collection can be great. But Adobe made a good call by making it conservative and hence accessible to a lot more people.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jackson Dunstan</title>
		<link>http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/#comment-31</link>
		<dc:creator><![CDATA[Jackson Dunstan]]></dc:creator>
		<pubDate>Wed, 23 Dec 2009 21:48:38 +0000</pubDate>
		<guid isPermaLink="false">http://jpauclair.wordpress.com/?p=92#comment-31</guid>
		<description><![CDATA[That was downright fascinating! I wonder: in your experience studying the GC and implementing real-time projects for it, what techniques would you recommend so as to avoid noticeable pauses due to GC? I&#039;d especially be interested if the article was tailored to games, since you and I both develop Flash-based MMOs. In the meantime, I&#039;ll keep reading these articles. Every one has been great! Keep up the good work!]]></description>
		<content:encoded><![CDATA[<p>That was downright fascinating! I wonder: in your experience studying the GC and implementing real-time projects for it, what techniques would you recommend so as to avoid noticeable pauses due to GC? I&#8217;d especially be interested if the article was tailored to games, since you and I both develop Flash-based MMOs. In the meantime, I&#8217;ll keep reading these articles. Every one has been great! Keep up the good work!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

