Сегодня 15 февраля, суббота ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7278
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Человек-Хэмингуэй
Человек-Хэмингуэй
Голосов: 2
Адрес блога: http://kvisaz.ru
Добавлен: 2007-12-13 21:24:07 блограйдером Luber
 

Самый быстрый в мире WordPress на shared хостинге

2012-06-29 18:25:05 (читать в оригинале)

Время работы скрипта 0.018 секунд
Памяти использовано 69.5 килобайт

Это - не самописный скрипт “Hello, World!”. Это современный Wordpress. На шаред хостинге за 10 баксов в месяц. Именно за столько секунд он выводит страницу, именно столько килобайт использует.

Ни одному плагину такое не снилось. Total Cache, Max Site Cache - сосать им, не пересосать. А всё почему? Об этом я уже писал в “13 мегабайт памяти WordPress жрет только при запуске wp-config.php”.

Любой плагин, как бы он там не выеживался и не старался, запускается ПОСЛЕ подключения базовых файлов WordPress, то есть после wp-config.php. Так что максимальный потолок экономии и скорости для всяких Total Cache и Max Site Cache - это те самые 13 мегабайт памяти и десятые доли секунды.

А тут - 18 тысячных секунды и 70 килобайт на вывод страницы. Правда, клево? А секрет очень прост - самое быстрое кэширование, которое превращает даже дряхлый зомби-сайт, ползущий по газону, в бодренького Супермена, рассекающего галактику на световой скорости.

Метод этот очень прост. Банален, я бы сказал. Кэширование надо ставить ДО каких-либо инклюдов. И для этого придется самому переписать index.php у WordPressa.

Как это делается - хорошо рассказано здесь.

Алгоритм нового index.php такой:
1. генерируем имя файла в кэше на основе урла
2. смотрим, есть ли этот файл в кэше
3. если есть - тупо его открываем и показываем (1 функция readfile)
4. если файла в кэше нет или если время кэширования истекло - запускаем буферизацию вывода через ob_start, затем подключаем исходные функции обычного index.php, а затем вывод сгенерированной в буфере страницы и её запись в кэш.

Конкретно по ссылке, которую я дал, есть несколько косяков. К примеру, я столкнулся с тем, что fwrite не генерит файл, если в его имени слэши. Пришлось дописать функцию, генерирующую папки в кэше по урлу.

Вот что я наваял - кэширующий index.php. Предупреждаю, скрипт не универсальный и с другой структурой пермалинков может не заработать. Но можно посмотреть чисто для иллюстрации.

Чтобы сделать сверхскоростной WordPress, я выполнил 2 шага:
1. создал в корневой директории сайта папку cache с нужными правами (777)
2. заменил обычный index.php Wordpress на то, что в архиве.

И все полетело!

WordPress, если есть файл в кэше, вообще не запускается. Соответственно, не жрет память, не обращается к диску десятками инклюдов. А если файла нет - запускает и генерирует полноценную страницу.

Минусы самого быстрого WordPress в мире пока таковы:
1. динамические виджеты, комменты и т.д. на кэшированной странице не обновляются. Это можно в будущем вылечить переписыванием всех необходимых динамических элементов на JS и AJAX.

2. кэш у такого простого скрипта чистить надо вручную. Вылечить в будущем намереваюсь через написание специального плагина, который будет апдейтить страницу в кэше после редактирования (ну или написания комментов, хотя для меня это не актуально, я использую динамические комментарии на AJAX от одной известной социальной сети).

По сути, это даже не кэширование, а просто генерация статических HTML-страничек из WordPress. Быстро, дешево, сердито. На максимальной скорости, которая не снилась никаким плагинам.

Кто читает Смирнова также долго, как я, наверняка уже вспомнил статью Простое кэширование страниц. Патриарх давно уже обо всем написал, да :)

Самые простые вещи - самые быстрые.


Тэги: wordpress

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»
Изменения рейтинга
Категория «Стихи»
Взлеты Топ 5
+223
233
CAPTAIN
+196
256
Yurenzo
+185
193
Simple_Blogger
+171
263
Annelle
+166
246
Similis_Deo
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.