<?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>Комментарии: PHP: красота кода сказывается на производительности</title>
	<atom:link href="http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/</link>
	<description>Quod scripsi, scripsi</description>
	<lastBuildDate>Wed, 08 Feb 2012 14:51:49 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Автор: Tima</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-513002</link>
		<dc:creator>Tima</dc:creator>
		<pubDate>Fri, 30 Dec 2011 18:42:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-513002</guid>
		<description>&lt;strong&gt;Владимир&lt;/strong&gt;!))) молодец, четко все расписал, как в статье так и в каментах))</description>
		<content:encoded><![CDATA[<p><strong>Владимир</strong>!))) молодец, четко все расписал, как в статье так и в каментах))</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: WP SuperCache vs HyperCache vs W3 Total Cache vs MaxSite Cache &#124; Ars Longa, Vita Brevis</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-2305</link>
		<dc:creator>WP SuperCache vs HyperCache vs W3 Total Cache vs MaxSite Cache &#124; Ars Longa, Vita Brevis</dc:creator>
		<pubDate>Fri, 06 Nov 2009 11:04:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-2305</guid>
		<description>[...] оптимизатор, встроенный в eAccelerator, то можно повысить производительность PHP-кода. Анализ производительности MySQL-запросов и знание [...]</description>
		<content:encoded><![CDATA[<p>[...] оптимизатор, встроенный в eAccelerator, то можно повысить производительность PHP-кода. Анализ производительности MySQL-запросов и знание [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Vladimir</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-2233</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Sat, 10 Oct 2009 07:42:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-2233</guid>
		<description>&lt;blockquote&gt;но вовсе не факт, что print + free выполняется медленнее, чем echo&lt;/blockquote&gt;

Ну почему же? Внутренняя реализация &lt;code&gt;print&lt;/code&gt; вызывает внутреннюю реализацию &lt;code&gt;echo&lt;/code&gt;. Уже только поэтому &lt;code&gt;print&lt;/code&gt; не может быть быстрее. Ну и еще необходимость выполнения &lt;code&gt;FREE&lt;/code&gt;.

&lt;blockquote&gt;без приведения листингов этих функций бессмысленно&lt;/blockquote&gt;

Эм… Листинг обработчиков опкодов занимают порядка мегабайта. На мой взгляд, приводить их несколько нецелесообразно. Тем более, что в них интенсивно используются внутренние макросы Zend Engine, которые не всегда очевидны.

&lt;blockquote&gt;Можно предположить, что второй блок выполняется медленне, но утверждать этого нельзя&lt;/blockquote&gt;

Если Вы познакомитесь с Zend Engine поближе, то можно :-)

&lt;code&gt;INIT_STRING&lt;/code&gt; выделяет один байт памяти и создаёт строковую переменную.
&lt;code&gt;ADD_STRING&lt;/code&gt; вызывает функцию &lt;code lang=&quot;c&quot;&gt;add_string_to_string()&lt;/code&gt;.
&lt;code&gt;ADD_VAR&lt;/code&gt; преобразует переменную в строку и вызывает ту же &lt;code lang=&quot;c&quot;&gt;add_string_to_string()&lt;/code&gt;.

&lt;code&gt;CONCAT&lt;/code&gt; вызывает функцию &lt;code lang=&quot;c&quot;&gt;concat_function()&lt;/code&gt;, которая по функциональности эквивалентна &lt;code&gt;ADD_VAR&lt;/code&gt; (с той разницей, что &lt;code lang=&quot;c&quot;&gt;concat_function()&lt;/code&gt; не производит действий, характерных для обработчика опкода).

Что &lt;code lang=&quot;c&quot;&gt;concat_function()&lt;/code&gt;, что &lt;code lang=&quot;c&quot;&gt;add_string_to_string()&lt;/code&gt; — это, по сути, &lt;code lang=&quot;c&quot;&gt;erealloc()&lt;/code&gt; + &lt;code lang=&quot;c&quot;&gt;memcpy()&lt;/code&gt;.

В первом случае получаем два распределения памяти и копирования, во втором — три (это не считая выделения однобайтового буфера). Плюс во втором случае получаем два лишних опкода, которые, к тому же, занимают место в памяти (причём нельзя сказать, что очень мало).

&lt;blockquote&gt;Приведённая цитата на Си вообще непонятно, как относится к вопросу.&lt;/blockquote&gt;

Видите? Если бы я приводил код всех обработчиков, было бы мало смысла :-) Та цитата показывает, что обработчик &lt;code&gt;PRINT&lt;/code&gt; создаёт целочисленную переменную (возвращаемое значение) и вызывает обработчик &lt;code&gt;ECHO&lt;/code&gt;. Но с используемыми именами макросов это не очевидно :-)

&lt;blockquote&gt;но я впервые слышу это утверждение, а никаких ссылок в вашем сообщении нет&lt;/blockquote&gt;

Всё-таки Вы невнимательно читали:

&lt;blockquote&gt;
После этого я собрал (&lt;strong&gt;с поддержкой оптимизатора&lt;/strong&gt;) и поставил eAccelerator и повторил тесты. Тест №1 и тест №2 дали одинаковый результат. Что характерно, eAccelerator самостоятельно преобразовал print в echo. Лапочка. Для теста №3 результат остался неизменным: там, собственно, нечего оптимизировать. А результаты теста №4 впечатлили.
&lt;/blockquote&gt;

Ну и плюс листинги.</description>
		<content:encoded><![CDATA[<blockquote><p>но вовсе не факт, что print + free выполняется медленнее, чем echo</p></blockquote>
<p>Ну почему же? Внутренняя реализация <code>print</code> вызывает внутреннюю реализацию <code>echo</code>. Уже только поэтому <code>print</code> не может быть быстрее. Ну и еще необходимость выполнения <code>FREE</code>.</p>
<blockquote><p>без приведения листингов этих функций бессмысленно</p></blockquote>
<p>Эм… Листинг обработчиков опкодов занимают порядка мегабайта. На мой взгляд, приводить их несколько нецелесообразно. Тем более, что в них интенсивно используются внутренние макросы Zend Engine, которые не всегда очевидны.</p>
<blockquote><p>Можно предположить, что второй блок выполняется медленне, но утверждать этого нельзя</p></blockquote>
<p>Если Вы познакомитесь с Zend Engine поближе, то можно <img src='http://blog.sjinks.pro/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><code>INIT_STRING</code> выделяет один байт памяти и создаёт строковую переменную.<br />
<code>ADD_STRING</code> вызывает функцию <span class="codebox"><code class="c">add_string_to_string<span class="br0">&#40;</span><span class="br0">&#41;</span></code></span>.<br />
<code>ADD_VAR</code> преобразует переменную в строку и вызывает ту же <span class="codebox"><code class="c">add_string_to_string<span class="br0">&#40;</span><span class="br0">&#41;</span></code></span>.</p>
<p><code>CONCAT</code> вызывает функцию <span class="codebox"><code class="c">concat_function<span class="br0">&#40;</span><span class="br0">&#41;</span></code></span>, которая по функциональности эквивалентна <code>ADD_VAR</code> (с той разницей, что <span class="codebox"><code class="c">concat_function<span class="br0">&#40;</span><span class="br0">&#41;</span></code></span> не производит действий, характерных для обработчика опкода).</p>
<p>Что <span class="codebox"><code class="c">concat_function<span class="br0">&#40;</span><span class="br0">&#41;</span></code></span>, что <span class="codebox"><code class="c">add_string_to_string<span class="br0">&#40;</span><span class="br0">&#41;</span></code></span> — это, по сути, <span class="codebox"><code class="c">erealloc<span class="br0">&#40;</span><span class="br0">&#41;</span></code></span> + <span class="codebox"><code class="c">memcpy<span class="br0">&#40;</span><span class="br0">&#41;</span></code></span>.</p>
<p>В первом случае получаем два распределения памяти и копирования, во втором — три (это не считая выделения однобайтового буфера). Плюс во втором случае получаем два лишних опкода, которые, к тому же, занимают место в памяти (причём нельзя сказать, что очень мало).</p>
<blockquote><p>Приведённая цитата на Си вообще непонятно, как относится к вопросу.</p></blockquote>
<p>Видите? Если бы я приводил код всех обработчиков, было бы мало смысла <img src='http://blog.sjinks.pro/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Та цитата показывает, что обработчик <code>PRINT</code> создаёт целочисленную переменную (возвращаемое значение) и вызывает обработчик <code>ECHO</code>. Но с используемыми именами макросов это не очевидно <img src='http://blog.sjinks.pro/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<blockquote><p>но я впервые слышу это утверждение, а никаких ссылок в вашем сообщении нет</p></blockquote>
<p>Всё-таки Вы невнимательно читали:</p>
<blockquote><p>
После этого я собрал (<strong>с поддержкой оптимизатора</strong>) и поставил eAccelerator и повторил тесты. Тест №1 и тест №2 дали одинаковый результат. Что характерно, eAccelerator самостоятельно преобразовал print в echo. Лапочка. Для теста №3 результат остался неизменным: там, собственно, нечего оптимизировать. А результаты теста №4 впечатлили.
</p></blockquote>
<p>Ну и плюс листинги.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: leo</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-2232</link>
		<dc:creator>leo</dc:creator>
		<pubDate>Sat, 10 Oct 2009 07:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-2232</guid>
		<description>Вы меня не поняли и забавно реагируете. 
Никто не утверждал, что лишний опкод добавляет производительность, но вовсе не факт, что print + free выполняется медленнее, чем echo. Я пишу о том, что рассуждение о скорости глядя на внутренние опкоды php, которые вызывают функции, без приведения листингов этих функций бессмысленно. Вот еще пример:
&quot;Конкатенация или переменные внутри строки&quot;
&lt;code&gt;
CONCAT
CONCAT
&lt;/code&gt;
и
&lt;code&gt;
INIT_STRING
ADD_STRING
ADD_VAR
ADD_STRING
&lt;/code&gt;
Можно предположить, что второй блок выполняется медленне, но утверждать этого нельзя.

Приведённая цитата на Си вообще непонятно, как относится к вопросу. 
Про оптимизаторов довод единственно-хороший, но я впервые слышу это утверждение, а никаких ссылок в вашем сообщении нет.</description>
		<content:encoded><![CDATA[<p>Вы меня не поняли и забавно реагируете.<br />
Никто не утверждал, что лишний опкод добавляет производительность, но вовсе не факт, что print + free выполняется медленнее, чем echo. Я пишу о том, что рассуждение о скорости глядя на внутренние опкоды php, которые вызывают функции, без приведения листингов этих функций бессмысленно. Вот еще пример:<br />
&laquo;Конкатенация или переменные внутри строки&raquo;<br />
<code><br />
CONCAT<br />
CONCAT<br />
</code><br />
и<br />
<code><br />
INIT_STRING<br />
ADD_STRING<br />
ADD_VAR<br />
ADD_STRING<br />
</code><br />
Можно предположить, что второй блок выполняется медленне, но утверждать этого нельзя.</p>
<p>Приведённая цитата на Си вообще непонятно, как относится к вопросу.<br />
Про оптимизаторов довод единственно-хороший, но я впервые слышу это утверждение, а никаких ссылок в вашем сообщении нет.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Vladimir</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-2228</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Fri, 09 Oct 2009 14:47:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-2228</guid>
		<description>Очевидно потому, что копался во внутренностях Zend Engine.

Во-первых, лишний опкод производительности не добавляет (из-за издержек на его анализ/выполнение).
Во-вторых, внутренняя реализация &lt;code&gt;print&lt;/code&gt; вызывает &lt;code&gt;echo&lt;/code&gt;, из-за чего &lt;code&gt;print&lt;/code&gt; не может быть быстрее:

&lt;pre lang=&quot;c&quot;&gt;
static int ZEND_PRINT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
    zend_op *opline = EX(opline);

    Z_LVAL(EX_T(opline-&gt;result.u.var).tmp_var) = 1;
    Z_TYPE(EX_T(opline-&gt;result.u.var).tmp_var) = IS_LONG;

    return ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
&lt;/pre&gt;

В-третьих, оптимизаторы неспроста &lt;code&gt;PRINT&lt;/code&gt;/&lt;code&gt;FREE&lt;/code&gt; преобразовывают в &lt;code&gt;ECHO&lt;/code&gt;.</description>
		<content:encoded><![CDATA[<p>Очевидно потому, что копался во внутренностях Zend Engine.</p>
<p>Во-первых, лишний опкод производительности не добавляет (из-за издержек на его анализ/выполнение).<br />
Во-вторых, внутренняя реализация <code>print</code> вызывает <code>echo</code>, из-за чего <code>print</code> не может быть быстрее:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p6501">
        <div class="code c" id="p650code1">
<span class="kw4">static</span> <span class="kw4">int</span> ZEND_PRINT_SPEC_VAR_HANDLER<span class="br0">&#40;</span>ZEND_OPCODE_HANDLER_ARGS<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; zend_op <span class="sy0">*</span>opline <span class="sy0">=</span> EX<span class="br0">&#40;</span>opline<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; Z_LVAL<span class="br0">&#40;</span>EX_T<span class="br0">&#40;</span>opline<span class="sy0">-&gt;</span>result.<span class="me1">u</span>.<span class="me1">var</span><span class="br0">&#41;</span>.<span class="me1">tmp_var</span><span class="br0">&#41;</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span><br />
&nbsp; &nbsp; Z_TYPE<span class="br0">&#40;</span>EX_T<span class="br0">&#40;</span>opline<span class="sy0">-&gt;</span>result.<span class="me1">u</span>.<span class="me1">var</span><span class="br0">&#41;</span>.<span class="me1">tmp_var</span><span class="br0">&#41;</span> <span class="sy0">=</span> IS_LONG<span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">return</span> ZEND_ECHO_SPEC_VAR_HANDLER<span class="br0">&#40;</span>ZEND_OPCODE_HANDLER_ARGS_PASSTHRU<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span>
        </div>
    </div>
</div>

<p>В-третьих, оптимизаторы неспроста <code>PRINT</code>/<code>FREE</code> преобразовывают в <code>ECHO</code>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: leo</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-2227</link>
		<dc:creator>leo</dc:creator>
		<pubDate>Fri, 09 Oct 2009 14:25:19 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-2227</guid>
		<description>Почему вы считаете, что
&lt;code&gt;
5  PRINT
6  FREE
&lt;/code&gt;
работает медленнее
&lt;code&gt;
5  ECHO
&lt;/code&gt;
?

в остальных рассуждениях подобный косяк повторяется.</description>
		<content:encoded><![CDATA[<p>Почему вы считаете, что<br />
<code><br />
5  PRINT<br />
6  FREE<br />
</code><br />
работает медленнее<br />
<code><br />
5  ECHO<br />
</code><br />
?</p>
<p>в остальных рассуждениях подобный косяк повторяется.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: PHP: красота кода сказывается на производительности: часть 2 &#124; Ars Longa, Vita Brevis</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-2222</link>
		<dc:creator>PHP: красота кода сказывается на производительности: часть 2 &#124; Ars Longa, Vita Brevis</dc:creator>
		<pubDate>Wed, 07 Oct 2009 01:24:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-2222</guid>
		<description>[...] &#171; PHP: красота кода сказывается на производительности [...]</description>
		<content:encoded><![CDATA[<p>[...] &laquo; PHP: красота кода сказывается на производительности [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Vladimir</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-2182</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Fri, 25 Sep 2009 17:40:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-2182</guid>
		<description>Спички спичками, но есть несколько нюансов:
&lt;ol&gt;
	&lt;li&gt;Я работаю над проектом в котором одна из задач — массовая рассылка писем подписчикам. Каждое письмо «персонализируется» и т.п., затем отсылается. Подписчиков много тысяч. Слабое место отнюдь не почтовик, а PHP. Он реально тормозит. Множество спичек в цикле, выполняющемся десятки тысяч раз — это &lt;strong&gt;очень&lt;/strong&gt; ощутимо. Говорю потому, что снёс xCache и поставил eAccelerator и включил оптимизатор. Рейт отправки вырос на 30%.&lt;/li&gt;
	&lt;li&gt;На хорошо нагруженных сайты типа &lt;a href=&quot;http://littlefox.ru/&quot; rel=&quot;nofollow&quot;&gt;littlefox.ru&lt;/a&gt; работа оптимизатора очень заметна — по падению Load Average и сниженной нагрузки на процессор. Железо на сервере не самое мощное, но оптимизация реально творит чудеса (я говорю не только про спички — пришлось написать пару плагинов и даже расширений PHP, чтобы компенсировать тормоза WordPress).&lt;/li&gt;
&lt;/ol&gt;

Вообще мне на ум приходит сравнение программ, скомпилированных Turbo Pascal 7.0 и Borland C++ 3: в Turbo Pascal оптимизатор отсутствует в принципе, а в BC++ его можно включить. Разница ощутима.

Я натравил оптимизатор на устаревшую локальную копию своего блога (интерпретатор обломался где-то после загрузки плагинов) и сравнил размер выдачи VLD:
&lt;ul&gt;
	&lt;li&gt;Без оптимизатора: 184,128 строк&lt;/li&gt;
	&lt;li&gt;С оптимизатором: 180,707 строк&lt;/li&gt;
&lt;/ul&gt;

Разница (для не полностью загруженного WP) составляет 3,421 опкод. Полагая, что опкод выполняется 0.5 &lt;strong&gt;микро&lt;/strong&gt;секунды (думаю, что для дешевых VPS это где-то рядом), имеем разницу в 1.7 &lt;strong&gt;милли&lt;/strong&gt;секунды. На полностью загруженном WordPress разница будет видна сильнее. Использование оптимизатора — бесплатный способ снизить нагрузку на сервер.

&lt;blockquote&gt;Да и как это будет сказываться на “производительности” самого интерпретатора?&lt;/blockquote&gt;
Положительно. Компиляция и оптимизация будут выполнены один раз, после чего результат будет закэширован в shared memory.</description>
		<content:encoded><![CDATA[<p>Спички спичками, но есть несколько нюансов:</p>
<ol>
<li>Я работаю над проектом в котором одна из задач — массовая рассылка писем подписчикам. Каждое письмо «персонализируется» и т.п., затем отсылается. Подписчиков много тысяч. Слабое место отнюдь не почтовик, а PHP. Он реально тормозит. Множество спичек в цикле, выполняющемся десятки тысяч раз — это <strong>очень</strong> ощутимо. Говорю потому, что снёс xCache и поставил eAccelerator и включил оптимизатор. Рейт отправки вырос на 30%.</li>
<li>На хорошо нагруженных сайты типа <a href="http://littlefox.ru/" rel="nofollow">littlefox.ru</a> работа оптимизатора очень заметна — по падению Load Average и сниженной нагрузки на процессор. Железо на сервере не самое мощное, но оптимизация реально творит чудеса (я говорю не только про спички — пришлось написать пару плагинов и даже расширений PHP, чтобы компенсировать тормоза WordPress).</li>
</ol>
<p>Вообще мне на ум приходит сравнение программ, скомпилированных Turbo Pascal 7.0 и Borland C++ 3: в Turbo Pascal оптимизатор отсутствует в принципе, а в BC++ его можно включить. Разница ощутима.</p>
<p>Я натравил оптимизатор на устаревшую локальную копию своего блога (интерпретатор обломался где-то после загрузки плагинов) и сравнил размер выдачи VLD:</p>
<ul>
<li>Без оптимизатора: 184,128 строк</li>
<li>С оптимизатором: 180,707 строк</li>
</ul>
<p>Разница (для не полностью загруженного WP) составляет 3,421 опкод. Полагая, что опкод выполняется 0.5 <strong>микро</strong>секунды (думаю, что для дешевых VPS это где-то рядом), имеем разницу в 1.7 <strong>милли</strong>секунды. На полностью загруженном WordPress разница будет видна сильнее. Использование оптимизатора — бесплатный способ снизить нагрузку на сервер.</p>
<blockquote><p>Да и как это будет сказываться на “производительности” самого интерпретатора?</p></blockquote>
<p>Положительно. Компиляция и оптимизация будут выполнены один раз, после чего результат будет закэширован в shared memory.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Сергей М.</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-2181</link>
		<dc:creator>Сергей М.</dc:creator>
		<pubDate>Fri, 25 Sep 2009 17:00:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-2181</guid>
		<description>Ну спички же форменные. Да и как это будет сказываться на &quot;производительности&quot; самого интерпретатора?</description>
		<content:encoded><![CDATA[<p>Ну спички же форменные. Да и как это будет сказываться на &laquo;производительности&raquo; самого интерпретатора?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Vladimir</title>
		<link>http://blog.sjinks.pro/php/650-php-code-beauty-impacts-performance/comment-page-1/#comment-2180</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Fri, 25 Sep 2009 02:56:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.pro/?p=650#comment-2180</guid>
		<description>Интересно протестировать связку APC + optimizer.</description>
		<content:encoded><![CDATA[<p>Интересно протестировать связку APC + optimizer.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

