Таки снова здравствуйте, дорогие мои читатели!
Не так давно писал, на тему оптимизации WordPress с помощью плагина W3C Total Cache. И вот, пишу тут продолжение :) С ентим плагином мы прожили более месяца, однако — никакого прироста производительности это блогу не дало (если верить графику на Google Webmaster) — среднее время загрузки оставалось в районе 4 секунд, и падать не желало… И вот, наконец, порядком подзаебавшись оптимизировать сайт и ожидать загрузки страниц долгими осенними вечерами — я решил прогнать движок через клоподав и профилёр. Сказано — сделано, сайт полностью выкачан по ФТП на локальный комп, сделан дамп базы, всё установлено, и включено. В NuSphere PHP Editor был создан проект, и запущен на профилирование index.php — итак, первая загрузка — 3.6 секунд на построение страницы сервером.
Знаете в чем фишка профилёра этой IDE? Он, сцуко, умеет разбивать по модулям всё, и показывать — сколько и где затратилось времени. На каком участке кода, так сказать… И знаете что? Наиболее длительным по времени выполнения оказался… Кэшировщик. А именно W3C Total Cache. Львиную долю времени выполнения съедали всевозможные файловые проверки — это вам и время модификации файла, и актуальность, и прочее, прочее, прочее… Для чистоты эксперимента прогнал его несколько раз. Результат — тот же, от 3,5 сек до 4.2. Жопа? Ага, я раньше усну, чем страница отрисуется.
Ну, хер бы с ним, думаю, попробую отключить. Отключаю в админке, и снова запускаю профилирование… Не верю глазам: 1.2 — 1.3 секунды, не более. Самым тяжёлым участком оказалась mysql_query() в wp-db.php. Первая мысль: «ааааа, блядские уроды!», после чего побежал к ближайшему толчку — срать кирпичами и проклинать разработчиков плагина. Выработав стройматериалы — пришёл обратно. Ну, SQL запросы это традиционно медленное дело… А вот здесь, такая, комичная ситуация — плагин, который должен бы по идее ускорять генерацию страницы — тормозил её, порой свыше троекратного замедления. Именно в этом заключалась тонкая издёвка движка: переезд на новый хостинг, более мощный и дорогой — не давал никакого ощутимого прироста производительности…
Сейчас немного подкрутил ещё таблицы в БД — поставил пару нештатных индексов, вроде чуть шустрее пошла выборка… Вообще, вы знаете, нет ничего лучше ручной оптимизации. Нет, её делать конечно тяжелее, чем просто поставить плагин, и думать, что всё хорошо… Однако, однако… Не всегда следует верить тому, что говорят, или что написано. Иной раз можно прикольно попасться на этом.