<?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: Early Performance Benchmarking is a Disease</title>
	<atom:link href="http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/</link>
	<description>Web Entrepreneur and PHP5 Guru</description>
	<lastBuildDate>Wed, 06 Jan 2010 18:01:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Writing better (performing) code..! What is that? : Blog Archive : blogs@DiGiTSS</title>
		<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/comment-page-1/#comment-20</link>
		<dc:creator>Writing better (performing) code..! What is that? : Blog Archive : blogs@DiGiTSS</dc:creator>
		<pubDate>Sat, 25 Oct 2008 09:15:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.vancelucas.com/?p=114#comment-20</guid>
		<description>[...] Vance Lucas wrote on his artical that early performance benchmarking is a disease but actually it is not really. I believe it depends on the kind of project you are dealing with. [...]</description>
		<content:encoded><![CDATA[<p>[...] Vance Lucas wrote on his artical that early performance benchmarking is a disease but actually it is not really. I believe it depends on the kind of project you are dealing with. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vance Lucas</title>
		<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/comment-page-1/#comment-17</link>
		<dc:creator>Vance Lucas</dc:creator>
		<pubDate>Tue, 21 Oct 2008 16:28:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.vancelucas.com/?p=114#comment-17</guid>
		<description>@William Louth

I think you missed the point of the post (did you even read it?).  I&#039;m not trying to explain what software performance engineering is, and no I&#039;m not &quot;surprised to learn&quot; what it involves.  All this article is trying to point out is that focusing on performance early and placing a high priority on it right away can cause you to lose focus on building your actual application, which is where most of your focus should be in the early start-up stage.

Please don&#039;t try to use this blog as an advertisement for your products.</description>
		<content:encoded><![CDATA[<p>@William Louth</p>
<p>I think you missed the point of the post (did you even read it?).  I&#8217;m not trying to explain what software performance engineering is, and no I&#8217;m not &#8220;surprised to learn&#8221; what it involves.  All this article is trying to point out is that focusing on performance early and placing a high priority on it right away can cause you to lose focus on building your actual application, which is where most of your focus should be in the early start-up stage.</p>
<p>Please don&#8217;t try to use this blog as an advertisement for your products.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Louth</title>
		<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/comment-page-1/#comment-16</link>
		<dc:creator>William Louth</dc:creator>
		<pubDate>Tue, 21 Oct 2008 10:07:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.vancelucas.com/?p=114#comment-16</guid>
		<description>&quot;Profilers are a great help but they won’t give you information regarding the actual usage of “external” resources(memory, file, database, uri-based resources)on the production system.&quot;

Standard profilers yes but most next generation (especially ones designed for cloud computing) are contextual and multi-language and multi-resource solutions.

Metering the Cloud
http://www.jinspired.com/products/jxinsight/meteringthecloud.html

William</description>
		<content:encoded><![CDATA[<p>&#8220;Profilers are a great help but they won’t give you information regarding the actual usage of “external” resources(memory, file, database, uri-based resources)on the production system.&#8221;</p>
<p>Standard profilers yes but most next generation (especially ones designed for cloud computing) are contextual and multi-language and multi-resource solutions.</p>
<p>Metering the Cloud<br />
<a href="http://www.jinspired.com/products/jxinsight/meteringthecloud.html" rel="nofollow">http://www.jinspired.com/products/jxinsight/meteringthecloud.html</a></p>
<p>William</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JP</title>
		<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/comment-page-1/#comment-15</link>
		<dc:creator>JP</dc:creator>
		<pubDate>Tue, 21 Oct 2008 03:03:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.vancelucas.com/?p=114#comment-15</guid>
		<description>While obsession with performance is generally bad, I do believe that benchmarking should be a constant part of the development process, specially on applications with limited execution scope such as php-based web applications.
Early benchmarking will allow you to take decisions on the algorithms used and how well they will perform on production scenarios. Profilers are a great help but they won&#039;t give you information regarding the actual usage of &quot;external&quot; resources(memory, file, database, uri-based resources)on the production system.</description>
		<content:encoded><![CDATA[<p>While obsession with performance is generally bad, I do believe that benchmarking should be a constant part of the development process, specially on applications with limited execution scope such as php-based web applications.<br />
Early benchmarking will allow you to take decisions on the algorithms used and how well they will perform on production scenarios. Profilers are a great help but they won&#8217;t give you information regarding the actual usage of &#8220;external&#8221; resources(memory, file, database, uri-based resources)on the production system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Louth</title>
		<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/comment-page-1/#comment-14</link>
		<dc:creator>William Louth</dc:creator>
		<pubDate>Mon, 20 Oct 2008 20:41:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.vancelucas.com/?p=114#comment-14</guid>
		<description>You might be surprised to learn that software performance engineering does not constitute just benchmarking (and tuning). 

Performance engineering that involves the creation of models via simulated or actual benchmarks (system execution) or trace executions (software execution) can be of enormous benefit as one learns about the dynamic software execution and not just the code in front of the screen and how one thinks it is called and executed.

There are a number of performance engineering related activities that should be conducted on any real-world application though with varying degrees depending on the levels of risk and cost implications.

eXtensible Software Performance Engineering
http://www.jinspired.com/solutions/xpe/index.html

Any activity that increases ones knowledge of how a software executes (frequency, resource usage and not just timing) is of benefit to the organization beyond the narrow and time limited world of a developer.

William</description>
		<content:encoded><![CDATA[<p>You might be surprised to learn that software performance engineering does not constitute just benchmarking (and tuning). </p>
<p>Performance engineering that involves the creation of models via simulated or actual benchmarks (system execution) or trace executions (software execution) can be of enormous benefit as one learns about the dynamic software execution and not just the code in front of the screen and how one thinks it is called and executed.</p>
<p>There are a number of performance engineering related activities that should be conducted on any real-world application though with varying degrees depending on the levels of risk and cost implications.</p>
<p>eXtensible Software Performance Engineering<br />
<a href="http://www.jinspired.com/solutions/xpe/index.html" rel="nofollow">http://www.jinspired.com/solutions/xpe/index.html</a></p>
<p>Any activity that increases ones knowledge of how a software executes (frequency, resource usage and not just timing) is of benefit to the organization beyond the narrow and time limited world of a developer.</p>
<p>William</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Loïc Hoguin</title>
		<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/comment-page-1/#comment-13</link>
		<dc:creator>Loïc Hoguin</dc:creator>
		<pubDate>Mon, 20 Oct 2008 19:32:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.vancelucas.com/?p=114#comment-13</guid>
		<description>Yes, I see what you mean. Focusing on performance is bad, unless you work on slashdot, youtube, twitter.. where (real, not micro) optimization can save you the cost of a few servers. Virtually all the time, focusing on performance is bad.

But it should not be forgotten either, and that&#039;s what an automatic profiling would do. It would only pinpoint the bottlenecks of your application. With that report you could choose what to do before it&#039;s too late. Someone experienced (like the project leader) could use it to detect a bad database design that would be hard to change when your project is feature-complete, for example. It&#039;s worth it for that kind of scenarios. Everything that you can optimize later should wait. But sometimes you can&#039;t optimize later.

That said, since there&#039;s no tool to automate profiling yet, my opinion is completely arguable. And since there&#039;s nothing yet, all developers should follow your advice. :-)</description>
		<content:encoded><![CDATA[<p>Yes, I see what you mean. Focusing on performance is bad, unless you work on slashdot, youtube, twitter.. where (real, not micro) optimization can save you the cost of a few servers. Virtually all the time, focusing on performance is bad.</p>
<p>But it should not be forgotten either, and that&#8217;s what an automatic profiling would do. It would only pinpoint the bottlenecks of your application. With that report you could choose what to do before it&#8217;s too late. Someone experienced (like the project leader) could use it to detect a bad database design that would be hard to change when your project is feature-complete, for example. It&#8217;s worth it for that kind of scenarios. Everything that you can optimize later should wait. But sometimes you can&#8217;t optimize later.</p>
<p>That said, since there&#8217;s no tool to automate profiling yet, my opinion is completely arguable. And since there&#8217;s nothing yet, all developers should follow your advice. <img src='http://www.vancelucas.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vance Lucas</title>
		<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/comment-page-1/#comment-12</link>
		<dc:creator>Vance Lucas</dc:creator>
		<pubDate>Mon, 20 Oct 2008 19:05:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.vancelucas.com/?p=114#comment-12</guid>
		<description>@Loïc Hoguin

I do agree with you that micro-optimization isn&#039;t ONLY bad early, but I&#039;m not sure about automatic profiling.  It seems like even that little bit of performance profiling waving in your face every time you run tests would get you off track in your development.

I guess the main point of the post is to indicate that focusing on performance - micro-benchmarking or anything else - too early on will de-rail your development.  You start thinking about shaving milliseconds here and there instead of focusing on getting your project done and moving forward.</description>
		<content:encoded><![CDATA[<p>@Loïc Hoguin</p>
<p>I do agree with you that micro-optimization isn&#8217;t ONLY bad early, but I&#8217;m not sure about automatic profiling.  It seems like even that little bit of performance profiling waving in your face every time you run tests would get you off track in your development.</p>
<p>I guess the main point of the post is to indicate that focusing on performance &#8211; micro-benchmarking or anything else &#8211; too early on will de-rail your development.  You start thinking about shaving milliseconds here and there instead of focusing on getting your project done and moving forward.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Loïc Hoguin</title>
		<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/comment-page-1/#comment-11</link>
		<dc:creator>Loïc Hoguin</dc:creator>
		<pubDate>Mon, 20 Oct 2008 16:19:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.vancelucas.com/?p=114#comment-11</guid>
		<description>I don&#039;t totally agree. Of course, things like PHPBench.com are barely useful since they&#039;re about micro-optimization. And as you pointed out, micro-optimization is bad. And it&#039;s not only bad early.

For some projects, performance is never a concern. But for the others, actual profiling doesn&#039;t have to wait until your project is almost completed.

Profiling reports can be generated automatically, just like for unit testing. These reports can reveal architectural problems that can become very hard to improve later in the project (for bigger projects anyway). They can give you a summary of the biggest problems. With that kind of tool you could just build your application and know *directly* what is going to be a problem performance-wise.

The problem is that this kind of tool doesn&#039;t exist yet. It could be easily integrated in unit testing tools; after all, you could very well process an xdebug profiling output automatically (xdebug_get_profiler_filename) and display the biggest issues in your application, if you couple it with unit tests and/or (better) selenium tests to ensure every parts of the application are tested. You could also retrieve information about the efficiency of the queries performed (both time and EXPLAIN output), and add a data generator to the mix to make sure those queries still perform well with millions of rows.

If the report is automated and integrated with unit testing then you don&#039;t have to profile yourself, you win a lot of time and can optimize early, and avoid architectural problems later on in your project.

Now if only someone could add this functionality to PHPUnit, early optimization would become a cure.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t totally agree. Of course, things like PHPBench.com are barely useful since they&#8217;re about micro-optimization. And as you pointed out, micro-optimization is bad. And it&#8217;s not only bad early.</p>
<p>For some projects, performance is never a concern. But for the others, actual profiling doesn&#8217;t have to wait until your project is almost completed.</p>
<p>Profiling reports can be generated automatically, just like for unit testing. These reports can reveal architectural problems that can become very hard to improve later in the project (for bigger projects anyway). They can give you a summary of the biggest problems. With that kind of tool you could just build your application and know *directly* what is going to be a problem performance-wise.</p>
<p>The problem is that this kind of tool doesn&#8217;t exist yet. It could be easily integrated in unit testing tools; after all, you could very well process an xdebug profiling output automatically (xdebug_get_profiler_filename) and display the biggest issues in your application, if you couple it with unit tests and/or (better) selenium tests to ensure every parts of the application are tested. You could also retrieve information about the efficiency of the queries performed (both time and EXPLAIN output), and add a data generator to the mix to make sure those queries still perform well with millions of rows.</p>
<p>If the report is automated and integrated with unit testing then you don&#8217;t have to profile yourself, you win a lot of time and can optimize early, and avoid architectural problems later on in your project.</p>
<p>Now if only someone could add this functionality to PHPUnit, early optimization would become a cure.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard Knop</title>
		<link>http://www.vancelucas.com/blog/early-performance-benchmarking-is-a-disease/comment-page-1/#comment-9</link>
		<dc:creator>Richard Knop</dc:creator>
		<pubDate>Sun, 19 Oct 2008 13:00:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.vancelucas.com/?p=114#comment-9</guid>
		<description>Yes indeed. Functionality and usability should come first. Once everything is working properly and you have fixed all bugs, you can start thinking about how to make your code faster. But first build the application ;)</description>
		<content:encoded><![CDATA[<p>Yes indeed. Functionality and usability should come first. Once everything is working properly and you have fixed all bugs, you can start thinking about how to make your code faster. But first build the application <img src='http://www.vancelucas.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
