<?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"
	>
<channel>
	<title>Комментарии на: WP File Cache: замена WP_Object_Cache с поддержкой долговременного кэширования</title>
	<atom:link href="http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/</link>
	<description>Verba volant, scripta manent</description>
	<pubDate>Thu, 20 Nov 2008 13:34:54 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>От: Vladimir</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-906</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Fri, 14 Nov 2008 16:30:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-906</guid>
		<description>Появилась версия 0.2.1 плагина &lt;strong&gt;WP File Cache&lt;/strong&gt;, исправляющая ошибки в реализации non-persistent caching.

&lt;strong&gt;&lt;a href="http://download.sjinks.org.ua:8080/wordpress/file-cache-0.2.1.zip" rel="nofollow"&gt;Скачать WP File Cache&lt;/a&gt;.&lt;/strong&gt;</description>
		<content:encoded><![CDATA[<p>Появилась версия 0.2.1 плагина <strong>WP File Cache</strong>, исправляющая ошибки в реализации non-persistent caching.</p>
<p><strong><a href="http://download.sjinks.org.ua:8080/wordpress/file-cache-0.2.1.zip" rel="nofollow">Скачать WP File Cache</a>.</strong></p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Vladimir</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-498</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Fri, 15 Aug 2008 16:30:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-498</guid>
		<description>Появилась версия 0.2 плагина &lt;strong&gt;WP File Cache&lt;/strong&gt;.

Добавлены функции для более комфортной работы в WordPress 2.6; как следствие, устранены недостатки, связанные с отдачей устаревших данных (особенно это касается панели администратора).

&lt;strong&gt;&lt;a href="http://download.sjinks.org.ua:8080/wordpress/file-cache.zip" rel="nofollow"&gt;Скачать WP File Cache&lt;/a&gt;.&lt;/strong&gt;</description>
		<content:encoded><![CDATA[<p>Появилась версия 0.2 плагина <strong>WP File Cache</strong>.</p>
<p>Добавлены функции для более комфортной работы в WordPress 2.6; как следствие, устранены недостатки, связанные с отдачей устаревших данных (особенно это касается панели администратора).</p>
<p><strong><a href="http://download.sjinks.org.ua:8080/wordpress/file-cache.zip" rel="nofollow">Скачать WP File Cache</a>.</strong></p>
]]></content:encoded>
	</item>
	<item>
		<title>От: roose</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-356</link>
		<dc:creator>roose</dc:creator>
		<pubDate>Thu, 03 Jul 2008 02:12:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-356</guid>
		<description>Спасибо за объяснения, приятно было с Вами побеседовать :-)</description>
		<content:encoded><![CDATA[<p>Спасибо за объяснения, приятно было с Вами побеседовать <img src='http://blog.sjinks.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Vladimir</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-353</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Wed, 02 Jul 2008 11:56:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-353</guid>
		<description>&lt;blockquote&gt;ни папки с кешируемыми данными&lt;/blockquote&gt;
Потому что TTL кэша&#160;&#8212;&#160;один запрос (в смысле, HTTP request): то есть скрипт закончил работу, кэш сбросился. Как следствие, все кэшированые данные живут в памяти.

В ветке 2.3 использовалась блокировка файла для ограничения доступа к кэшу, что вызывало опеределённые трудности при большом количестве одновременных соединений.

Потом 2.5 написан довольно-таки своеобразно: если не кэшировать данные из файла в память (двойное кэширование), то производительность падает.

&lt;blockquote&gt;то почему не видно его работы, ни уменьшения кол-ва запросов&lt;/blockquote&gt;
Я использовал плагин &lt;a href="http://blog.sjinks.org.ua/wordpress/plugins/192-sqlmon-plugin-for-sql-query-analysis/" rel="nofollow"&gt;SqlMon&lt;/a&gt; для тестирования. Результаты сейчас выложу в статью, так будет нагляднее.</description>
		<content:encoded><![CDATA[<blockquote><p>ни папки с кешируемыми данными</p></blockquote>
<p>Потому что TTL кэша&nbsp;&mdash;&nbsp;один запрос (в смысле, HTTP request): то есть скрипт закончил работу, кэш сбросился. Как следствие, все кэшированые данные живут в памяти.</p>
<p>В ветке 2.3 использовалась блокировка файла для ограничения доступа к кэшу, что вызывало опеределённые трудности при большом количестве одновременных соединений.</p>
<p>Потом 2.5 написан довольно-таки своеобразно: если не кэшировать данные из файла в память (двойное кэширование), то производительность падает.</p>
<blockquote><p>то почему не видно его работы, ни уменьшения кол-ва запросов</p></blockquote>
<p>Я использовал плагин <a href="http://blog.sjinks.org.ua/wordpress/plugins/192-sqlmon-plugin-for-sql-query-analysis/" rel="nofollow">SqlMon</a> для тестирования. Результаты сейчас выложу в статью, так будет нагляднее.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: roose</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-352</link>
		<dc:creator>roose</dc:creator>
		<pubDate>Wed, 02 Jul 2008 02:14:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-352</guid>
		<description>Если кеш по умолчанию в 2.5.x включен, то почему не видно его работы, ни уменьшения кол-ва запросов, ни папки с кешируемыми данными?</description>
		<content:encoded><![CDATA[<p>Если кеш по умолчанию в 2.5.x включен, то почему не видно его работы, ни уменьшения кол-ва запросов, ни папки с кешируемыми данными?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Vladimir</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-350</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Tue, 01 Jul 2008 17:47:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-350</guid>
		<description>&lt;blockquote&gt;Вы сравните cache.php от 2.5.х и 2.3.3&lt;/blockquote&gt;
Сравнил, diff приаттачен.

&lt;blockquote&gt;файл cache.php в 2.5.х не более чем заглушка&lt;/blockquote&gt;
На самом деле нет - в ветке 2.5.x кэширование полностью переписано. И реализовано иначе. Если вкратце, то в 2.5 кэш разрешен по умолчанию, и запретить его не так-то просто (фактически, нужно писать свой плагин, который будет игнорировать запросы на кэширование).

Если есть желание попробовать 2.5 с отключенным кэшем, то нужно внести небольшую поправку в файл &lt;code&gt;wp-includes/cache.php&lt;/code&gt;:
&lt;pre lang="php" line="288"&gt;
	function get($id, $group = 'default') { /*
		if (empty ($group))
			$group = 'default';

		if (isset ($this-&gt;cache[$group][$id])) {
			$this-&gt;cache_hits += 1;
			return $this-&gt;cache[$group][$id];
		}

		if ( isset ($this-&gt;non_existant_objects[$group][$id]) )
			return false;

		$this-&gt;non_existant_objects[$group][$id] = true;
		$this-&gt;cache_misses += 1; */
		return false;
	}
&lt;/pre&gt;

Но это будет очень жестоко :-)

&lt;a href='http://static2.sjinks.org.ua:8080/wp-content/uploads/2008/07/cache.diff' rel="nofollow"&gt;cache.diff&lt;/a&gt;</description>
		<content:encoded><![CDATA[<blockquote><p>Вы сравните cache.php от 2.5.х и 2.3.3</p></blockquote>
<p>Сравнил, diff приаттачен.</p>
<blockquote><p>файл cache.php в 2.5.х не более чем заглушка</p></blockquote>
<p>На самом деле нет - в ветке 2.5.x кэширование полностью переписано. И реализовано иначе. Если вкратце, то в 2.5 кэш разрешен по умолчанию, и запретить его не так-то просто (фактически, нужно писать свой плагин, который будет игнорировать запросы на кэширование).</p>
<p>Если есть желание попробовать 2.5 с отключенным кэшем, то нужно внести небольшую поправку в файл <code>wp-includes/cache.php</code>:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p1901">
        <div class="code php" id="p190code1">
<ol class="php php" style="font-family:monospace;" start="288"><li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">function</span> get<span class="br0">&#40;</span><span class="re0">$id</span><span class="sy0">,</span> <span class="re0">$group</span> <span class="sy0">=</span> <span class="st_h">'default'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="coMULTI">/*</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; if (empty ($group))</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $group = 'default';</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; if (isset ($this-&gt;cache[$group][$id])) {</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;cache_hits += 1;</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $this-&gt;cache[$group][$id];</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; }</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; if ( isset ($this-&gt;non_existant_objects[$group][$id]) )</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;non_existant_objects[$group][$id] = true;</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;cache_misses += 1; */</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
</ol>
        </div>
    </div>
</div>

<p>Но это будет очень жестоко <img src='http://blog.sjinks.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href='http://static2.sjinks.org.ua:8080/wp-content/uploads/2008/07/cache.diff' rel="nofollow">cache.diff</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>От: roose</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-346</link>
		<dc:creator>roose</dc:creator>
		<pubDate>Tue, 01 Jul 2008 02:19:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-346</guid>
		<description>&lt;blockquote&gt;Мне grep -R "ENABLE_CACHE" * ничего не вернул, возможно, что всё дело в разных версиях.&lt;/blockquote&gt;
вот, вот потому что, файл cache.php в 2.5.х не более чем заглушка, он не проверяет существование константы &lt;code&gt;ENABLE_CACHE&lt;/code&gt;. Вы сравните cache.php от 2.5.х и 2.3.3
Но 2.5.х можно обмануть: Удаляем cache.php из 2.5.х, берем cache.php от 2.3.3 и вставляем его вместо удаленного и устанавливаем &lt;code&gt;ENABLE_CACHE&lt;/code&gt; true.

Пример применения(на localhost): Главная страница блога - 3 поста, до замены файлов - 15 запросов после замены - 4 запроса</description>
		<content:encoded><![CDATA[<blockquote><p>Мне grep -R &#8220;ENABLE_CACHE&#8221; * ничего не вернул, возможно, что всё дело в разных версиях.</p></blockquote>
<p>вот, вот потому что, файл cache.php в 2.5.х не более чем заглушка, он не проверяет существование константы <code>ENABLE_CACHE</code>. Вы сравните cache.php от 2.5.х и 2.3.3<br />
Но 2.5.х можно обмануть: Удаляем cache.php из 2.5.х, берем cache.php от 2.3.3 и вставляем его вместо удаленного и устанавливаем <code>ENABLE_CACHE</code> true.</p>
<p>Пример применения(на localhost): Главная страница блога - 3 поста, до замены файлов - 15 запросов после замены - 4 запроса</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Vladimir</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-314</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Sat, 28 Jun 2008 19:15:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-314</guid>
		<description>Мне &lt;code lang="bash"&gt;grep -R "ENABLE_CACHE" *&lt;/code&gt; ничего не вернул, возможно, что всё дело в разных версиях.

В 2.5.x так (вся управляющая логика находится в &lt;code&gt;wp-settings.php&lt;/code&gt;):
&lt;ol&gt;
    &lt;li&gt;Если определена константа &lt;code&gt;WP_CACHE&lt;/code&gt;, то подключается файл &lt;code&gt;wp-content/advanced-cache.php&lt;/code&gt;. Плагины тпа HyperCache используют этот файл для того, чтобы отдавать статический кэшированый контент&#160;&#8212;&#160;к БД никаких лишних запросов благодаря тому, что все необходимые данные живут в кэше;&lt;/li&gt;
    &lt;li&gt;Если существует файл &lt;code&gt;wp-content/object-cache.php&lt;/code&gt;, то WordPress использует его вместо своего &lt;code&gt;wp-includes/cache.php&lt;/code&gt;. &lt;code&gt;wp-content/object-cache.php&lt;/code&gt; должен поддерживать стандартный ВордПрессовский интерфейс для работы с кэшем. В частности, &lt;strong class="keyword"&gt;WP File Cache&lt;/strong&gt; работает именно по этому принципу.&lt;/li&gt;
&lt;/ol&gt;</description>
		<content:encoded><![CDATA[<p>Мне <code class="codebox bash"><span class="kw2">grep</span> <span class="re5">-R</span> <span class="st0">&quot;ENABLE_CACHE&quot;</span> <span class="sy0">*</span></code> ничего не вернул, возможно, что всё дело в разных версиях.</p>
<p>В 2.5.x так (вся управляющая логика находится в <code>wp-settings.php</code>):</p>
<ol>
<li>Если определена константа <code>WP_CACHE</code>, то подключается файл <code>wp-content/advanced-cache.php</code>. Плагины тпа HyperCache используют этот файл для того, чтобы отдавать статический кэшированый контент&nbsp;&mdash;&nbsp;к БД никаких лишних запросов благодаря тому, что все необходимые данные живут в кэше;</li>
<li>Если существует файл <code>wp-content/object-cache.php</code>, то WordPress использует его вместо своего <code>wp-includes/cache.php</code>. <code>wp-content/object-cache.php</code> должен поддерживать стандартный ВордПрессовский интерфейс для работы с кэшем. В частности, <strong class="keyword">WP File Cache</strong> работает именно по этому принципу.</li>
</ol>
]]></content:encoded>
	</item>
	<item>
		<title>От: roose</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-309</link>
		<dc:creator>roose</dc:creator>
		<pubDate>Sat, 28 Jun 2008 06:18:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-309</guid>
		<description>Если я скажу глупость, то коммент не одобряйте :-), а если нет то отредактируете. Недавно тоже задумался над этим вопросом и прописав в wp-config строчку &lt;code lang="php"&gt;define('ENABLE_CACHE', true);&lt;/code&gt; добился уменьшения запросов на 50%.</description>
		<content:encoded><![CDATA[<p>Если я скажу глупость, то коммент не одобряйте :-), а если нет то отредактируете. Недавно тоже задумался над этим вопросом и прописав в wp-config строчку <code class="codebox php"><span class="kw3">define</span><span class="br0">&#40;</span><span class="st_h">'ENABLE_CACHE'</span><span class="sy0">,</span> <span class="kw2">true</span><span class="br0">&#41;</span>;</code> добился уменьшения запросов на 50%.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Vladimir</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-259</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Thu, 12 Jun 2008 02:27:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-259</guid>
		<description>С другой стороны, с пользовательским интерфейсом вроде все в порядке и данные отображаются нормально :-)</description>
		<content:encoded><![CDATA[<p>С другой стороны, с пользовательским интерфейсом вроде все в порядке и данные отображаются нормально <img src='http://blog.sjinks.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Vladimir</title>
		<link>http://blog.sjinks.org.ua/wordpress/plugins/190-wp-file-cache-replacement-for-wp_object_cache-with-persistent-caching/#comment-258</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Thu, 12 Jun 2008 02:26:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sjinks.org.ua/?p=190#comment-258</guid>
		<description>Из недостатков: если WordPress/плагины &lt;em&gt;забывают&lt;/em&gt; обновлять кэш (полагаясь на то, что кэш будет сброшен, когда скрипт завершится), могут отдаваться устаревшие данные (я это заметил в админке: черновиков статей не было, но WP писал, что есть один черновик). Буду пытаться найти решение.</description>
		<content:encoded><![CDATA[<p>Из недостатков: если WordPress/плагины <em>забывают</em> обновлять кэш (полагаясь на то, что кэш будет сброшен, когда скрипт завершится), могут отдаваться устаревшие данные (я это заметил в админке: черновиков статей не было, но WP писал, что есть один черновик). Буду пытаться найти решение.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
