<?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: Garbage Collection with Flex and Adobe Air</title>
	<atom:link href="http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/feed/" rel="self" type="application/rss+xml" />
	<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/</link>
	<description>RIAbilitating the Internet with web apps, ria, iphone and ipad apps.</description>
	<lastBuildDate>Fri, 02 Mar 2012 20:49:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
	<item>
		<title>By: Garbage Collection and Flex Event Listeners &#171; Thanks, Mister!</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-74877</link>
		<dc:creator>Garbage Collection and Flex Event Listeners &#171; Thanks, Mister!</dc:creator>
		<pubDate>Thu, 29 Sep 2011 18:35:44 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-74877</guid>
		<description>[...] http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/ http://blogs.adobe.com/aharui/2007/03/garbage_collection_and_memory.html http://gskinner.com/blog/archives/2006/08/as3_resource_ma_2.html http://www.adobe.com/devnet/flashplayer/articles/resource_management.html Share this:TwitterFacebookLike this:LikeBe the first to like this post. [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/" rel="nofollow">http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/</a> <a href="http://blogs.adobe.com/aharui/2007/03/garbage_collection_and_memory.html" rel="nofollow">http://blogs.adobe.com/aharui/2007/03/garbage_collection_and_memory.html</a> <a href="http://gskinner.com/blog/archives/2006/08/as3_resource_ma_2.html" rel="nofollow">http://gskinner.com/blog/archives/2006/08/as3_resource_ma_2.html</a> <a href="http://www.adobe.com/devnet/flashplayer/articles/resource_management.html" rel="nofollow">http://www.adobe.com/devnet/flashplayer/articles/resource_management.html</a> Share this:TwitterFacebookLike this:LikeBe the first to like this post. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 如何彻底销毁一个类 &#124; 傲天翔 の blog</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-14715</link>
		<dc:creator>如何彻底销毁一个类 &#124; 傲天翔 の blog</dc:creator>
		<pubDate>Sun, 22 Aug 2010 10:07:21 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-14715</guid>
		<description>[...] Garbage Collection with Flex and Adobe AIR [...]</description>
		<content:encoded><![CDATA[<p>[...] Garbage Collection with Flex and Adobe AIR [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Subhash</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-13235</link>
		<dc:creator>Subhash</dc:creator>
		<pubDate>Tue, 29 Jun 2010 14:29:04 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-13235</guid>
		<description>Thank you, thank you, thank you... :)
You are a savior; My memory leak problem of 6 months has been solved...</description>
		<content:encoded><![CDATA[<p>Thank you, thank you, thank you&#8230; :)<br />
You are a savior; My memory leak problem of 6 months has been solved&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lwz7512</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-10125</link>
		<dc:creator>lwz7512</dc:creator>
		<pubDate>Sun, 24 Jan 2010 15:33:12 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-10125</guid>
		<description>great post,I&#039;ve translate to chinese:
http://www.riameeting.com/node/587</description>
		<content:encoded><![CDATA[<p>great post,I&#8217;ve translate to chinese:<br />
<a href="http://www.riameeting.com/node/587" rel="nofollow">http://www.riameeting.com/node/587</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cesare</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-10066</link>
		<dc:creator>Cesare</dc:creator>
		<pubDate>Thu, 21 Jan 2010 18:57:42 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-10066</guid>
		<description>The cache I use is a way to ensure that each renderer has only, at most, 2 references: one in the display tree and one in the cache itself. I got to this solution by experimentation and I solved many of the issues I had when dealing with renderers.</description>
		<content:encoded><![CDATA[<p>The cache I use is a way to ensure that each renderer has only, at most, 2 references: one in the display tree and one in the cache itself. I got to this solution by experimentation and I solved many of the issues I had when dealing with renderers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob McKeown</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-10065</link>
		<dc:creator>Rob McKeown</dc:creator>
		<pubDate>Thu, 21 Jan 2010 18:48:25 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-10065</guid>
		<description>So when removing from the cache, how do you ensure that its memory gets freed? It doesn&#039;t look like it is doing  anything special with the renderers other than store them in a collection. Would cache.removeItemAt(n) free the memory allocated to the renderer and position n? I guess I don&#039;t understand why removing an item from the cache would behave any differently than removing from the display list  (assuming there are no other references to the renderer).</description>
		<content:encoded><![CDATA[<p>So when removing from the cache, how do you ensure that its memory gets freed? It doesn&#8217;t look like it is doing  anything special with the renderers other than store them in a collection. Would cache.removeItemAt(n) free the memory allocated to the renderer and position n? I guess I don&#8217;t understand why removing an item from the cache would behave any differently than removing from the display list  (assuming there are no other references to the renderer).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cesare</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-10064</link>
		<dc:creator>Cesare</dc:creator>
		<pubDate>Thu, 21 Jan 2010 18:05:17 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-10064</guid>
		<description>Beware, removeChild just removes a renderer from the display tree, as explained in the post. This does not ensure it is removed from memory. Before calling removeChild you can call MyRendererCache.setRenderer(...) to give it back and there you can check whether your cache is too big or not: if yes, you can remove some renderer also from the cache.</description>
		<content:encoded><![CDATA[<p>Beware, removeChild just removes a renderer from the display tree, as explained in the post. This does not ensure it is removed from memory. Before calling removeChild you can call MyRendererCache.setRenderer(&#8230;) to give it back and there you can check whether your cache is too big or not: if yes, you can remove some renderer also from the cache.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob McKeown</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-10061</link>
		<dc:creator>Rob McKeown</dc:creator>
		<pubDate>Thu, 21 Jan 2010 17:01:17 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-10061</guid>
		<description>Understood... the way I have implemented this in Klok is that the container manages the renderers by doing basically what your cache does so that when the data provider changes, no new renderers are created unless there weren&#039;t enough. However, if the new data provider has less items, then I remove the child renderers using removeChild. I would like to ensure some way of efficiently freeing their memory so that I don&#039;t have the problem you describe.</description>
		<content:encoded><![CDATA[<p>Understood&#8230; the way I have implemented this in Klok is that the container manages the renderers by doing basically what your cache does so that when the data provider changes, no new renderers are created unless there weren&#8217;t enough. However, if the new data provider has less items, then I remove the child renderers using removeChild. I would like to ensure some way of efficiently freeing their memory so that I don&#8217;t have the problem you describe.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cesare</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-10060</link>
		<dc:creator>Cesare</dc:creator>
		<pubDate>Thu, 21 Jan 2010 16:49:00 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-10060</guid>
		<description>@Rob The cache prevents them from being collected, but is also establishes a limit: if you loaded 20-30-10 items your cache length will be 30. With no cache you might have, in the worst case, 60 renderers.
If you have an application with high variability (alternate loading of many and few data) it is better to have a policy in the setter, as explained above. 
In the &quot;normal case&quot; it depends on the implementation: e.g. if you use a Repeater component you can have a look at the generated code, if you code it your own you are responsible for that. My solution is just a way to have a controllable &quot;centralized&quot; mechanism to generate/delete renderers, so if there are issues about memory I know where to look in the code.</description>
		<content:encoded><![CDATA[<p>@Rob The cache prevents them from being collected, but is also establishes a limit: if you loaded 20-30-10 items your cache length will be 30. With no cache you might have, in the worst case, 60 renderers.<br />
If you have an application with high variability (alternate loading of many and few data) it is better to have a policy in the setter, as explained above.<br />
In the &#8220;normal case&#8221; it depends on the implementation: e.g. if you use a Repeater component you can have a look at the generated code, if you code it your own you are responsible for that. My solution is just a way to have a controllable &#8220;centralized&#8221; mechanism to generate/delete renderers, so if there are issues about memory I know where to look in the code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cesare</title>
		<link>http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/comment-page-1/#comment-10059</link>
		<dc:creator>Cesare</dc:creator>
		<pubDate>Thu, 21 Jan 2010 16:32:52 +0000</pubDate>
		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=57#comment-10059</guid>
		<description>@Rob Thanks for your question. This depends on the policy of the cache setter. Instead of just adding the &quot;used&quot; renderer to the cache you can do a check on the length of the cache itself and, if greater than a given threshold, you can avoid to add it. To me, the only way to find the &quot;best&quot; value of the threshold is by experimentation, for it depends on many factors: the application, the number/frequency of queries, the number of returned results, the complexity of the renderer...</description>
		<content:encoded><![CDATA[<p>@Rob Thanks for your question. This depends on the policy of the cache setter. Instead of just adding the &#8220;used&#8221; renderer to the cache you can do a check on the length of the cache itself and, if greater than a given threshold, you can avoid to add it. To me, the only way to find the &#8220;best&#8221; value of the threshold is by experimentation, for it depends on many factors: the application, the number/frequency of queries, the number of returned results, the complexity of the renderer&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

