Доработка модуля sape: поддержка кеширования в памяти.
Вложений: 1
Думаю, что сайтам с хорошим посещением и/или с большими базами links.db или words.db будет полезна возможность кеширования этих баз в памяти. Естественно, на сервере сайта должна стоять какая-нибудь система кеширования.
Я взял последнюю версию модуля сапы для PHP (1.0.4) и сделал в ней ряд изменений. Пока есть поддержка только eAccelerator, но можно добавить и другие. Сейчас расскажу в деталях. Если кому не интересно описание - тяните файл из атача или просто закройте тему. Внесенные изменения: 1. Новые члены класса SAPE_base. Код:
var $_db_name = 'dummy'; // Имя, назначаемое конструктором класса-потомка Код:
function SAPE_client($options = null) { Код:
function _get_db_name() { Код:
function _get_cache() { 5.1. Код:
function load_data() { Код:
if (filemtime($this->_db_file) < (time()-$this->_cache_lifetime) || filesize($this->_db_file) == 0) { Было: Код:
if ($data = $this->_read($this->_db_file)) { Код:
if ($data = $this->_get_cache()) Код:
// Проверка поддержки кеш-систем Систему по тестил только с обычными ссылками - контекст не проверял, но, по логике, с ним тоже должно работать, т.к. методы загрузки у них одни. Работает третьи сутки и проблем не замечено. Размер файла links.db - 190кБ. На счет скорости: субъективно - быстрее, замеры пока не делал. |
Вложений: 1
Дико извиняюсь: не тот файл в атаче!
5.3. Было: Код:
if ($data = $this->_read($this->_db_file)) { Код:
if ($data = $this->_get_cache()) |
Еще можно добавить:
7. Перезаливка кеша в случае обновления файла (метод load_data). Было: Код:
// [псевдо]проверка целостности: Код:
// [псевдо]проверка целостности: |
спасибо, но будет ли это универсально?
а то опять не оберемся жалоб в техподдержку |
Вложений: 1
В алгоритме предусмотрено автоопределение наличия акселератора: если его нет или отключен, то автоматом будет, как прежде, читаться из файла.
Скажем так: я еще неделю потестирую - посмотрю не будет ли ерроров и прочих трабл, пошлифую код, а потом отпишу. В атаче версия последняя версия. Померил производительность. Сделал по 20 выборок с кешированием и без. Все в секундах. Среднее время (участок кода п.5.3.) составило 0.001778 и 0.000222 соответственно. Абсолютная разница не велика - всего 0.001556, а относительная - ~87.5%. Если ссылок мало или время работы скрипта сайта велико, то разница будет неощутима. Для примера, для первой страницы моего сайта разница составила 30%. |
Это дело можно будет ставить на WordPress?
|
Цитата:
|
Цитата:
Я бы не рекомендовал спешить и ставить. А вот если кто возьмется потестить - было бы хорошо. |
Цитата:
Добавлено через 20 минут ну вот промежуточные результаты. Тест на ДЛЕ: обычная версия скрипта Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 19:41. |
Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.