<?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: Flash Player 10.1 performance explosion	</title>
	<atom:link href="https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/</link>
	<description>Developer • YouTuber • Blogger</description>
	<lastBuildDate>Sun, 07 Apr 2013 21:41:34 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>
		By: Adobe Flash &#124; Acordo Coletivo (Petroleiros, Bancários, Prof de Saúde)		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-60059</link>

		<dc:creator><![CDATA[Adobe Flash &#124; Acordo Coletivo (Petroleiros, Bancários, Prof de Saúde)]]></dc:creator>
		<pubDate>Sun, 07 Apr 2013 21:41:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-60059</guid>

					<description><![CDATA[[...] ^ &#8220;Flash Player 10.1: Performance improvements for Mac OS X&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p>[&#8230;] ^ &#8220;Flash Player 10.1: Performance improvements for Mac OS X&#8221;. [&#8230;]</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Adobe Flash &#124; Infos Press		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-22258</link>

		<dc:creator><![CDATA[Adobe Flash &#124; Infos Press]]></dc:creator>
		<pubDate>Tue, 07 Feb 2012 09:34:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-22258</guid>

					<description><![CDATA[[...] ^ &#171;&#160;Flash 10.1: Performance improvements for Mac OS X&#160;&#187;. [...]]]></description>
			<content:encoded><![CDATA[<p>[&#8230;] ^ &laquo;&nbsp;Flash 10.1: Performance improvements for Mac OS X&nbsp;&raquo;. [&#8230;]</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Timo		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-11051</link>

		<dc:creator><![CDATA[Timo]]></dc:creator>
		<pubDate>Thu, 15 Jul 2010 14:11:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-11051</guid>

					<description><![CDATA[I can&#039;t agree with that. It&#039;s absolutely ok to compare your Ferrari and Beetle running only in the first gear. So that means that you want to objectively examine which of both performs better in this case. If the Beetle is better, then that&#039;s the results of the test. Period.

I have the feeling that we share different ideas of types of performance tests. It depends on what you plan to measure. Is it the &quot;overall&quot; performance or specific parts of the whole picture?

Regarding this string-concatenation issue: I think I already mentioned multiple times that there is no StringBuffer class in Flash. Thus, I basically did two tests:

1) Comparison between Flash and Silverlight using the (+)-operator

2) Comparison between Flash and Silverlight using the StringBuffer class and a self-written implementation in AS3 for Flash.]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t agree with that. It&#8217;s absolutely ok to compare your Ferrari and Beetle running only in the first gear. So that means that you want to objectively examine which of both performs better in this case. If the Beetle is better, then that&#8217;s the results of the test. Period.</p>
<p>I have the feeling that we share different ideas of types of performance tests. It depends on what you plan to measure. Is it the &#8220;overall&#8221; performance or specific parts of the whole picture?</p>
<p>Regarding this string-concatenation issue: I think I already mentioned multiple times that there is no StringBuffer class in Flash. Thus, I basically did two tests:</p>
<p>1) Comparison between Flash and Silverlight using the (+)-operator</p>
<p>2) Comparison between Flash and Silverlight using the StringBuffer class and a self-written implementation in AS3 for Flash.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Torsten		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-11050</link>

		<dc:creator><![CDATA[Torsten]]></dc:creator>
		<pubDate>Thu, 15 Jul 2010 13:55:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-11050</guid>

					<description><![CDATA[Hello Alex.

Because the result of the string concatenation with the plus operator is identical for Flash and Silverlight does not mean that they are technically the most performant ways of concatenating strings. So you will make performance tests cause of syntactical equality. That&#039;s completly weird.

It&#039;s like making a race between an old beetle and an Ferrari and say to the Ferrari driver he is only allowed to drive in the first gear. And at the end you are wondering that the beetle has won.

Restricting the Ferarri driver like this is what you do if you use the plus operator for string concatenation in Silverlight. You will get the worst results for performance. If someone want to make serious performance comparisons he has to use the most performant techniques for each category and not that one that are syntactical the most equal.]]></description>
			<content:encoded><![CDATA[<p>Hello Alex.</p>
<p>Because the result of the string concatenation with the plus operator is identical for Flash and Silverlight does not mean that they are technically the most performant ways of concatenating strings. So you will make performance tests cause of syntactical equality. That&#8217;s completly weird.</p>
<p>It&#8217;s like making a race between an old beetle and an Ferrari and say to the Ferrari driver he is only allowed to drive in the first gear. And at the end you are wondering that the beetle has won.</p>
<p>Restricting the Ferarri driver like this is what you do if you use the plus operator for string concatenation in Silverlight. You will get the worst results for performance. If someone want to make serious performance comparisons he has to use the most performant techniques for each category and not that one that are syntactical the most equal.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Alex		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-10907</link>

		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Fri, 09 Jul 2010 08:07:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-10907</guid>

					<description><![CDATA[I have a hard time seeing how it&#039;s invalid to use the String class directly for the Silverlight examples. Actionscript generates new String objects when you use the + operator, and so that seems like the closest way to match Silverlight up with Flash for that sort of test.

If Martin wants to use the &quot;best&quot; technique for each platform as a means of benchmarking, rather than using apples to apples, then I would suggest he should write a copyPixels() example for his Bubblemark test that creates balls which extend BitmapData.]]></description>
			<content:encoded><![CDATA[<p>I have a hard time seeing how it&#8217;s invalid to use the String class directly for the Silverlight examples. Actionscript generates new String objects when you use the + operator, and so that seems like the closest way to match Silverlight up with Flash for that sort of test.</p>
<p>If Martin wants to use the &#8220;best&#8221; technique for each platform as a means of benchmarking, rather than using apples to apples, then I would suggest he should write a copyPixels() example for his Bubblemark test that creates balls which extend BitmapData.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Timo		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-10832</link>

		<dc:creator><![CDATA[Timo]]></dc:creator>
		<pubDate>Thu, 01 Jul 2010 18:01:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-10832</guid>

					<description><![CDATA[Hey Torsten,
thanks again for your comments and tips!

Unfortunately, I am almost done with my thesis and thus cannot do much changes any more.

Regarding the additional options, the StringBuffer classes offer, you&#039;re right. AS3 does not offer this (as far as I remember). There is no StringBuffer class anyway - You have to build it on your own using Arrays or Vectors.

I cannot back up your claim that languages like AS3 or JS are easier to handle. I personally, think that especially JavaScript is a true nightmare regarding syntax and debugging issues compared to compiler-aided languages like C# or Java.

Thanks for your tips regarding the rendering engine but I fear that most of these (blur effects, resize transformations etc.) do not apply for my benchmark. My test simply creates a shitload of small rectangles on a canvas and moves them around. Not more and not less.
Further: I want to avoid any caching-techniques because otherwise the results between the different RIA runtimes are not 100% comparable (imho).]]></description>
			<content:encoded><![CDATA[<p>Hey Torsten,<br />
thanks again for your comments and tips!</p>
<p>Unfortunately, I am almost done with my thesis and thus cannot do much changes any more.</p>
<p>Regarding the additional options, the StringBuffer classes offer, you&#8217;re right. AS3 does not offer this (as far as I remember). There is no StringBuffer class anyway &#8211; You have to build it on your own using Arrays or Vectors.</p>
<p>I cannot back up your claim that languages like AS3 or JS are easier to handle. I personally, think that especially JavaScript is a true nightmare regarding syntax and debugging issues compared to compiler-aided languages like C# or Java.</p>
<p>Thanks for your tips regarding the rendering engine but I fear that most of these (blur effects, resize transformations etc.) do not apply for my benchmark. My test simply creates a shitload of small rectangles on a canvas and moves them around. Not more and not less.<br />
Further: I want to avoid any caching-techniques because otherwise the results between the different RIA runtimes are not 100% comparable (imho).</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Torsten		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-10830</link>

		<dc:creator><![CDATA[Torsten]]></dc:creator>
		<pubDate>Thu, 01 Jul 2010 15:25:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-10830</guid>

					<description><![CDATA[Hello Timo,

maybe it&#039;s actual a minus for Silverlight and JavaFX, because someone who is new to these frameworks hardly knows such issues.

Programming languages like AS3 and JavaScript may be easier to handle, but on the other hand you lost a bit of control over the things, that are happening in the background. For example the StringBuilder in Silverlight gives you the possibility to define the char capcity and therefore influence the memory usage of your string. Does AS3 gives you such a influence to their strings? I don&#039;t know really, but I doubt AS3 will do.

So there are advantages and disadvantages in my opionion.

Regarding the Silverlight rendering engine I am also not much experienced. I made a few fun projects with graphics and animations in Silverlight. I was taken to a couple of performance problems while I was developing. First I would suggest to you to take a look to the Silverlight performance tips from Microsoft:

http://msdn.microsoft.com/en-us/library/cc189071%28VS.95%29.aspx

Furthermore I can gave you some tips based on my experience with Silverlight:

* Use always canvas controls as LayoutRoot and for your parent controls that contains your elements you want to animate/render.
* Avoid animating properties like width or height of controls. Instead use ScaleTransform.
* Avoid animation elements/controls via Canvas.SetLeft or Canvas.SetTop. Use TranslateTransform.
* Avoid to render elements yourself via CompositionTarget.Rendering. Instead let Silverlight do the rendering.
* Avoid performance consuming calculations in the UI thread. This may reduce your framerate.
* PixelShader effects like the blur effect will need much performance, because they are rendered via software.
* Use Hardware-Acceleration to boost the performance via caching. But keep in mind that in some special cases the caching might decrease the framerate, so do not cache elements blindly. An example for this might be particle effects. Use EnableCacheVisualization to dertimine whether elements are cached or not.
* Use EnableRedrawRegions to see which elements are rendered all the time, although it&#039;s not needed. For example try to avoid changing transformations parameters of elements, although no or minor changes of the values are made.

These are a few things I ecountered. There are propably more things to know, but for this someone has to go deeper into the matter :-) But I hope the things above will help you a bit.]]></description>
			<content:encoded><![CDATA[<p>Hello Timo,</p>
<p>maybe it&#8217;s actual a minus for Silverlight and JavaFX, because someone who is new to these frameworks hardly knows such issues.</p>
<p>Programming languages like AS3 and JavaScript may be easier to handle, but on the other hand you lost a bit of control over the things, that are happening in the background. For example the StringBuilder in Silverlight gives you the possibility to define the char capcity and therefore influence the memory usage of your string. Does AS3 gives you such a influence to their strings? I don&#8217;t know really, but I doubt AS3 will do.</p>
<p>So there are advantages and disadvantages in my opionion.</p>
<p>Regarding the Silverlight rendering engine I am also not much experienced. I made a few fun projects with graphics and animations in Silverlight. I was taken to a couple of performance problems while I was developing. First I would suggest to you to take a look to the Silverlight performance tips from Microsoft:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/cc189071%28VS.95%29.aspx" rel="nofollow ugc">http://msdn.microsoft.com/en-us/library/cc189071%28VS.95%29.aspx</a></p>
<p>Furthermore I can gave you some tips based on my experience with Silverlight:</p>
<p>* Use always canvas controls as LayoutRoot and for your parent controls that contains your elements you want to animate/render.<br />
* Avoid animating properties like width or height of controls. Instead use ScaleTransform.<br />
* Avoid animation elements/controls via Canvas.SetLeft or Canvas.SetTop. Use TranslateTransform.<br />
* Avoid to render elements yourself via CompositionTarget.Rendering. Instead let Silverlight do the rendering.<br />
* Avoid performance consuming calculations in the UI thread. This may reduce your framerate.<br />
* PixelShader effects like the blur effect will need much performance, because they are rendered via software.<br />
* Use Hardware-Acceleration to boost the performance via caching. But keep in mind that in some special cases the caching might decrease the framerate, so do not cache elements blindly. An example for this might be particle effects. Use EnableCacheVisualization to dertimine whether elements are cached or not.<br />
* Use EnableRedrawRegions to see which elements are rendered all the time, although it&#8217;s not needed. For example try to avoid changing transformations parameters of elements, although no or minor changes of the values are made.</p>
<p>These are a few things I ecountered. There are propably more things to know, but for this someone has to go deeper into the matter :-) But I hope the things above will help you a bit.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Flash Player 10.1 RC4 Performance Increase		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-10828</link>

		<dc:creator><![CDATA[Flash Player 10.1 RC4 Performance Increase]]></dc:creator>
		<pubDate>Thu, 01 Jul 2010 14:53:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-10828</guid>

					<description><![CDATA[[...] Yesterday, I read on Timo Ernst‘s blog that there seems to be a significant performance improvement in the recent RC4 of Adobe‘s Flash Player 10.1. Timo testet the new player with a custom benchmark an stated, that the Flash Player 10.0 needs 3201ms to complete his benchmark, whereas version 10.1 RC4 only needs 528ms. Check out the benchmark here. [...]]]></description>
			<content:encoded><![CDATA[<p>[&#8230;] Yesterday, I read on Timo Ernst‘s blog that there seems to be a significant performance improvement in the recent RC4 of Adobe‘s Flash Player 10.1. Timo testet the new player with a custom benchmark an stated, that the Flash Player 10.0 needs 3201ms to complete his benchmark, whereas version 10.1 RC4 only needs 528ms. Check out the benchmark here. [&#8230;]</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Timo		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-10818</link>

		<dc:creator><![CDATA[Timo]]></dc:creator>
		<pubDate>Wed, 30 Jun 2010 07:16:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-10818</guid>

					<description><![CDATA[Hi Torsten,

thanks for your post!

After reading Martin&#039;s comments about the StringBuffer-classes, I included those into my benchmarks. The string-concatenation related tests now exist in 3 variants:
- Using the (+) operator
- Using the str.concat(str1) methods
- Using a StringBuffer

So far, it seems like the StringBuffer gives a huge boost to Silverlight, as well as JavaFX applications. On Flash and JavaScript, almost no changes could be observed. Using the (+)-operator here lets them perform almost as good as the Silverlight- and JavaFX-versions utilizing StringBuffer. It&#039;s interesting to see how these runtimes perform very well (regarding the string-concatenation operation) even without a StringBuffer. Isn&#039;t that actually a minus for Silverlight and JavaFX if they rely on such classes if Flash and JavaScript work well without them? :-)

Regarding your comments about my knowledge on the .NET framework and its rendering engine, you&#039;re partially right. I&#039;m not THE Silverlight-guru claiming to know everything about this technology. What I basically did was, building a reference design in Flash and then port it to other runtimes. If you have any suggestions about things I should know, which are absolutely vital for this issue, you&#039;re welcome to post here :-)]]></description>
			<content:encoded><![CDATA[<p>Hi Torsten,</p>
<p>thanks for your post!</p>
<p>After reading Martin&#8217;s comments about the StringBuffer-classes, I included those into my benchmarks. The string-concatenation related tests now exist in 3 variants:<br />
&#8211; Using the (+) operator<br />
&#8211; Using the str.concat(str1) methods<br />
&#8211; Using a StringBuffer</p>
<p>So far, it seems like the StringBuffer gives a huge boost to Silverlight, as well as JavaFX applications. On Flash and JavaScript, almost no changes could be observed. Using the (+)-operator here lets them perform almost as good as the Silverlight- and JavaFX-versions utilizing StringBuffer. It&#8217;s interesting to see how these runtimes perform very well (regarding the string-concatenation operation) even without a StringBuffer. Isn&#8217;t that actually a minus for Silverlight and JavaFX if they rely on such classes if Flash and JavaScript work well without them? :-)</p>
<p>Regarding your comments about my knowledge on the .NET framework and its rendering engine, you&#8217;re partially right. I&#8217;m not THE Silverlight-guru claiming to know everything about this technology. What I basically did was, building a reference design in Flash and then port it to other runtimes. If you have any suggestions about things I should know, which are absolutely vital for this issue, you&#8217;re welcome to post here :-)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Torsten		</title>
		<link>https://www.timo-ernst.net/blog/2010/05/06/flash-player-10-1-performance-explosion/#comment-10816</link>

		<dc:creator><![CDATA[Torsten]]></dc:creator>
		<pubDate>Tue, 29 Jun 2010 19:34:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.timo-ernst.net/?p=2227#comment-10816</guid>

					<description><![CDATA[Hello Timo,

I read your article and your comments with interest. With all due respect for me it looks like you lack experience of the .NET technology. The technical background for the .NET string concatenation like Martin explained is some fundamental you have to know, if you want to make performance tests with strings.

And for the rendering in Silverlight there are also issues you should know. Well, you can easily write .NET code in Silverlight that works just fine, but it can be code that performs badly. It&#039;s not unusual for someone which is not that experienced with a technology to write such code, but it&#039;s important if you want to make a performance comparision like you want to do.

I am looking forward to the publication of your final results and your source code.]]></description>
			<content:encoded><![CDATA[<p>Hello Timo,</p>
<p>I read your article and your comments with interest. With all due respect for me it looks like you lack experience of the .NET technology. The technical background for the .NET string concatenation like Martin explained is some fundamental you have to know, if you want to make performance tests with strings.</p>
<p>And for the rendering in Silverlight there are also issues you should know. Well, you can easily write .NET code in Silverlight that works just fine, but it can be code that performs badly. It&#8217;s not unusual for someone which is not that experienced with a technology to write such code, but it&#8217;s important if you want to make a performance comparision like you want to do.</p>
<p>I am looking forward to the publication of your final results and your source code.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
