<?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 for Matt Knight</title>
	<atom:link href="http://www.matt-knight.co.uk/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matt-knight.co.uk</link>
	<description>Enterprising technology</description>
	<lastBuildDate>Fri, 27 Jan 2012 19:29:31 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>Comment on Node.js vs PHP Performance &#8211; Maths by Nick</title>
		<link>http://www.matt-knight.co.uk/2011/node-js-vs-php-performance-maths/#comment-2725</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Fri, 27 Jan 2012 19:29:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=78#comment-2725</guid>
		<description>Iam very interested in node for embedded systems and industrial automation use.
I changed the code and on my machine for 1,000,000 iterations it went from 2 ms to 3 ms or 4ms , which seems to suggest that it is doing the maths! its very fast anyway.
when I made the variables global the time increased to 13 ms, which I think is reasonable.

Actually I connected this maths function to a 1 sec timer and in the same test software I am running a simple browser app and one hardly notices the additional over head.

This rather confirms my wildest dreams that we can use a server side script to compute process control set points and then pick them up by a simple httpget from a client sensor or actuator. 

Definitely food for thought and worthy of a lot more testing.</description>
		<content:encoded><![CDATA[<p>Iam very interested in node for embedded systems and industrial automation use.<br />
I changed the code and on my machine for 1,000,000 iterations it went from 2 ms to 3 ms or 4ms , which seems to suggest that it is doing the maths! its very fast anyway.<br />
when I made the variables global the time increased to 13 ms, which I think is reasonable.</p>
<p>Actually I connected this maths function to a 1 sec timer and in the same test software I am running a simple browser app and one hardly notices the additional over head.</p>
<p>This rather confirms my wildest dreams that we can use a server side script to compute process control set points and then pick them up by a simple httpget from a client sensor or actuator. </p>
<p>Definitely food for thought and worthy of a lot more testing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Node.js vs PHP Performance &#8211; Maths by Fabian</title>
		<link>http://www.matt-knight.co.uk/2011/node-js-vs-php-performance-maths/#comment-2423</link>
		<dc:creator>Fabian</dc:creator>
		<pubDate>Wed, 11 Jan 2012 15:59:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=78#comment-2423</guid>
		<description>Iuc, that is probably right, but I suspect that the PHP interpreter will do the same. Also your changes wont change anything, any compiler doing pre-calculation will still do those calculations first.

To the author: &quot;You’ll notice that in each case I have instantiated the variables outside of the for loop&quot;. Actually you haven&#039;t instantiated anything there. You only _declared_ them.</description>
		<content:encoded><![CDATA[<p>Iuc, that is probably right, but I suspect that the PHP interpreter will do the same. Also your changes wont change anything, any compiler doing pre-calculation will still do those calculations first.</p>
<p>To the author: &#8220;You’ll notice that in each case I have instantiated the variables outside of the for loop&#8221;. Actually you haven&#8217;t instantiated anything there. You only _declared_ them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Node.js vs PHP Performance &#8211; Maths by luc R</title>
		<link>http://www.matt-knight.co.uk/2011/node-js-vs-php-performance-maths/#comment-492</link>
		<dc:creator>luc R</dc:creator>
		<pubDate>Sun, 14 Aug 2011 02:26:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=78#comment-492</guid>
		<description>I think you should retest differently. 

Instead of
    a = 1234 + 5678 + i;
    b = 1234 * 5678 + i;
    c = 1234 / 2 + i;

can you try :
    a = 1234 + i + 5678;
    b = 1234 + i * 5678 ;
    c = 1234 + i / 2 ;

I suspect that the JS optimizer is not doing the full math and it&#039;s doing pre-calculation like any C compiler. 
When it converts the program into byte code it probably do the calculation there. Leaving only a=6912+i</description>
		<content:encoded><![CDATA[<p>I think you should retest differently. </p>
<p>Instead of<br />
    a = 1234 + 5678 + i;<br />
    b = 1234 * 5678 + i;<br />
    c = 1234 / 2 + i;</p>
<p>can you try :<br />
    a = 1234 + i + 5678;<br />
    b = 1234 + i * 5678 ;<br />
    c = 1234 + i / 2 ;</p>
<p>I suspect that the JS optimizer is not doing the full math and it&#8217;s doing pre-calculation like any C compiler.<br />
When it converts the program into byte code it probably do the calculation there. Leaving only a=6912+i</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimising Zend_Config by Matt</title>
		<link>http://www.matt-knight.co.uk/2011/optimising-zend-config/#comment-257</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Mon, 18 Jul 2011 18:28:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=131#comment-257</guid>
		<description>Just to address some of the comments above about caching....

I completely agree that caching is essential. No site with any significant traffic should run without config caching - as I mentioned at the end of the first section in the article. However, this doesn&#039;t address the issue of the uncached (assuming no pre-warming) experience.

The situation I was talking about was two-fold - firstly how to parse the INI files more efficiently, and secondly why using an array (or ArrayObject) is better than a Zend_Config object.

It&#039;s a very valid point that Zend is aimed at PHP 5.2 or greater, hence why I wrote this as an article discussing an alternative to Zend_Config_Ini, and not submitting it as a patch. There are many users of Zend_Framework 1.x out there, using PHP 5.3, for whom this could significantly improve the performance of their application.</description>
		<content:encoded><![CDATA[<p>Just to address some of the comments above about caching&#8230;.</p>
<p>I completely agree that caching is essential. No site with any significant traffic should run without config caching &#8211; as I mentioned at the end of the first section in the article. However, this doesn&#8217;t address the issue of the uncached (assuming no pre-warming) experience.</p>
<p>The situation I was talking about was two-fold &#8211; firstly how to parse the INI files more efficiently, and secondly why using an array (or ArrayObject) is better than a Zend_Config object.</p>
<p>It&#8217;s a very valid point that Zend is aimed at PHP 5.2 or greater, hence why I wrote this as an article discussing an alternative to Zend_Config_Ini, and not submitting it as a patch. There are many users of Zend_Framework 1.x out there, using PHP 5.3, for whom this could significantly improve the performance of their application.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimising Zend_Config by Johannes</title>
		<link>http://www.matt-knight.co.uk/2011/optimising-zend-config/#comment-252</link>
		<dc:creator>Johannes</dc:creator>
		<pubDate>Mon, 18 Jul 2011 10:25:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=131#comment-252</guid>
		<description>You are so completely right :-)

When we discovered the performance implications of Zend_Config (thanks to XHProf), we decided to use Zend_Config only to generate a config cache. The cache generator uses Zend_config to read the INIs and generate native PHP arrays</description>
		<content:encoded><![CDATA[<p>You are so completely right <img src='http://www.matt-knight.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>When we discovered the performance implications of Zend_Config (thanks to XHProf), we decided to use Zend_Config only to generate a config cache. The cache generator uses Zend_config to read the INIs and generate native PHP arrays</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimising Zend_Config by Artem</title>
		<link>http://www.matt-knight.co.uk/2011/optimising-zend-config/#comment-191</link>
		<dc:creator>Artem</dc:creator>
		<pubDate>Sun, 10 Jul 2011 00:14:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=131#comment-191</guid>
		<description>Matt, you should be caching the results of Zend_Config on production. This is what every sane person should be doing for high traffic volume web apps. Large software project shouldn&#039;t be building configuration data at runtime on every request. It should be stored away in memory. 

The subtle attack on Zend Framework in terms of performance is unnecessary and, frankly, cheapens the tone of this discussion. Remember that Zend Framework requires PHP 5.2 or greater and the majority of the team is spending most of their time working on Zend Framework 2 at the moment.</description>
		<content:encoded><![CDATA[<p>Matt, you should be caching the results of Zend_Config on production. This is what every sane person should be doing for high traffic volume web apps. Large software project shouldn&#8217;t be building configuration data at runtime on every request. It should be stored away in memory. </p>
<p>The subtle attack on Zend Framework in terms of performance is unnecessary and, frankly, cheapens the tone of this discussion. Remember that Zend Framework requires PHP 5.2 or greater and the majority of the team is spending most of their time working on Zend Framework 2 at the moment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimising Zend_Config by Anton</title>
		<link>http://www.matt-knight.co.uk/2011/optimising-zend-config/#comment-184</link>
		<dc:creator>Anton</dc:creator>
		<pubDate>Thu, 07 Jul 2011 18:43:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=131#comment-184</guid>
		<description>Caching the config instead of reimplementing the config class is quicker, easier and results in a nice speed increase. See how I have done it, http://www.hellotecho.com/cache-your-zend-framework-config-to-improve-performance.</description>
		<content:encoded><![CDATA[<p>Caching the config instead of reimplementing the config class is quicker, easier and results in a nice speed increase. See how I have done it, <a href="http://www.hellotecho.com/cache-your-zend-framework-config-to-improve-performance" rel="nofollow">http://www.hellotecho.com/cache-your-zend-framework-config-to-improve-performance</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimising Zend_Config by Mike Willbanks</title>
		<link>http://www.matt-knight.co.uk/2011/optimising-zend-config/#comment-183</link>
		<dc:creator>Mike Willbanks</dc:creator>
		<pubDate>Thu, 07 Jul 2011 18:23:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=131#comment-183</guid>
		<description>I can definitely see why you are looking at it this way - we do cache our configuration which actually helps out greatly and essentially removes many of the complexities that you see here.  A cached copy is always a faster copy.  We keep anything from a configuration file inside of the shared memory to ensure the speed.</description>
		<content:encoded><![CDATA[<p>I can definitely see why you are looking at it this way &#8211; we do cache our configuration which actually helps out greatly and essentially removes many of the complexities that you see here.  A cached copy is always a faster copy.  We keep anything from a configuration file inside of the shared memory to ensure the speed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimising Zend_Config by Dennis Becker</title>
		<link>http://www.matt-knight.co.uk/2011/optimising-zend-config/#comment-180</link>
		<dc:creator>Dennis Becker</dc:creator>
		<pubDate>Thu, 07 Jul 2011 15:50:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=131#comment-180</guid>
		<description>Can you add a download link for your patched Zend_Config version? It would be easier to try your changes within an application</description>
		<content:encoded><![CDATA[<p>Can you add a download link for your patched Zend_Config version? It would be easier to try your changes within an application</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimising Zend_Config by Hans-Peter Buniat</title>
		<link>http://www.matt-knight.co.uk/2011/optimising-zend-config/#comment-175</link>
		<dc:creator>Hans-Peter Buniat</dc:creator>
		<pubDate>Thu, 07 Jul 2011 10:14:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=131#comment-175</guid>
		<description>This breaks some compatibility/features of Zend_Config, as its just not parse_ini_file()/parse_ini_string().

You could gain the same performance boost by using an opcode-cache (e.g. XCache) for the parsed Zend_Config object. This keeps support for sections, etc and with minor additions you may even get a extendable Config-Object which supports multiple config-files, optionally with sections and super fast Config-Creation, as there is in fact no Zend_Config execution needed, when you&#039;re creating you&#039;re cache-object as a deployment-target.</description>
		<content:encoded><![CDATA[<p>This breaks some compatibility/features of Zend_Config, as its just not parse_ini_file()/parse_ini_string().</p>
<p>You could gain the same performance boost by using an opcode-cache (e.g. XCache) for the parsed Zend_Config object. This keeps support for sections, etc and with minor additions you may even get a extendable Config-Object which supports multiple config-files, optionally with sections and super fast Config-Creation, as there is in fact no Zend_Config execution needed, when you&#8217;re creating you&#8217;re cache-object as a deployment-target.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

