Анализ потребления памяти WordPress
Решил проверить и посмотреть где в WordPress'е идет повышенное потребление памяти. Для этого я сделал небольшую функцию, которая выводит текущее потребление памяти (из "memory_get_usage") и прописал её после различных действий в wp-settings.php. Получилась довольно интересная картина.
Сразу хочу сказать, что испытания проводил на локальном компьютере (Windows). Здесь нюанс в том, что на серверах видимо используются какие-то кеширующие методы: во всяком случае тот же самый шаблон на моей же сборке на сервере показывает почти в 10 раз меньшее потребление. Для меня это загадка...
Но главная цель - посмотреть динамику потребления. В этом случае важна прежде всего разность с предыдущим значением.
Итак, первый тест. Кэш отключен, шаблон default. Включены основные плагины.
- Начало settings.php = 0.21MB
- wp-content/advanced-cache.php = 0.21MB
- /languages = 0.21MB
- compat.php = 0.24MB
- functions.php = 0.65MB
- wp-db.php = 0.76MB
- cache.php = 0.87MB
- classes.php = 1.09MB
- plugin.php = 1.15MB
- default-filters.php = 1.25MB
- streams.php = 1.28MB
- gettext.php = 1.35MB
- l10n.php = 1.37MB
- formatting.php = 1.77MB
- capabilities.php = 1.89MB
- query.php = 2.3MB
- theme.php = 2.45MB
- user.php = 2.52MB
- general-template.php = 2.82MB
- link-template.php = 2.99MB
- author-template.php = 3.05MB
- post.php = 3.55MB
- post-template.php = 3.67MB
- category.php = 3.72MB
- category-template.php = 3.85MB
- comment.php = 4.08MB
- comment-template.php = 4.18MB
- rewrite.php = 4.38MB
- feed.php = 4.44MB
- bookmark.php = 4.5MB
- bookmark-template.php = 4.54MB
- kses.php = 4.67MB
- cron.php = 4.72MB
- version.php = 4.72MB
- deprecated.php = 4.86MB
- script-loader.php = 4.99MB
- taxonomy.php = 5.3MB
- update.php = 5.31MB
- canonical.php = 5.39MB
- vars.php = 5.6MB
- my-hacks.php = 5.6MB
- PLUGINDIR = 9.4MB
- pluggable.php = 9.59MB
- new WP() = 9.96MB
- $locale_file = 9.99MB
- locale.php = 10.04MB
- do_action(init) (завершение settings.php) = 10.38MB
- Окончательный вывод шаблона = 10.88MB
Обратите внимание на 4-х мегабайтный прирост после «PLUGINDIR». В этом месте происходит подключение всех активированных плагинов.
Следующий тест выполнен при тех же условиях, только деактивированы все плагины.
- settings.php = 0.21MB
- wp-content/advanced-cache.php = 0.22MB
- /languages = 0.22MB
- compat.php = 0.24MB
- functions.php = 0.65MB
- wp-db.php = 0.76MB
- cache.php = 0.88MB
- classes.php = 1.09MB
- plugin.php = 1.15MB
- default-filters.php = 1.26MB
- streams.php = 1.28MB
- gettext.php = 1.35MB
- l10n.php = 1.37MB
- formatting.php = 1.77MB
- capabilities.php = 1.89MB
- query.php = 2.3MB
- theme.php = 2.45MB
- user.php = 2.52MB
- general-template.php = 2.82MB
- link-template.php = 2.99MB
- author-template.php = 3.05MB
- post.php = 3.55MB
- post-template.php = 3.67MB
- category.php = 3.72MB
- category-template.php = 3.85MB
- comment.php = 4.08MB
- comment-template.php = 4.18MB
- rewrite.php = 4.38MB
- feed.php = 4.44MB
- bookmark.php = 4.5MB
- bookmark-template.php = 4.54MB
- kses.php = 4.67MB
- cron.php = 4.72MB
- version.php = 4.72MB
- deprecated.php = 4.86MB
- script-loader.php = 4.99MB
- taxonomy.php = 5.3MB
- update.php = 5.32MB
- canonical.php = 5.39MB
- vars.php = 5.6MB
- my-hacks.php = 5.6MB
- PLUGINDIR = 5.6MB
- pluggable.php = 5.79MB
- new WP() = 6.14MB
- $locale_file = 6.17MB
- locale.php = 6.22MB
- TEMPLATEPATH . /functions.php = 6.46MB
- do_action(init) (завершение settings.php) = 6.42MB
- Окончательный вывод шаблона = 6.91MB
Из всего этого можно сделать один вывод - сам WordPress даже без плагинов потребляет довольно прилично. Но, кажется, что сделать с этим ничего уже нельзя. Как я уже неоднократно говорил - WordPress подключает почти все файлы, которые на самом деле могут даже не потребоваться.
В ваших силах только отключить неиспользуемые плагины, а также проверить те, которые включены, но потребляют больше всех. Может быть есть какой-то менее затратный аналог.
Теперь о совсем неприятном. Для чистоты эсперимента я проделал примерно теже операции с WordPress 2.0.10 и 1.5.2(!!!). В итоге при почти тех же (полных аналогов, к сожалению уже нет) включенных плагинах общее потребление не превысило 5Мб. При отключении всех плагинов - чуть меньше 3Мб.


Ну понятно, с каждой версией функционал и затраты походу накручивают... Это призыв перейти на старые версии?
Скоро лучше на твою перейдем! :cool:
Ну не знаю. Я же сромно умолчал сколько на данный момент потребляет моя CMS.
Наверняка ведь и разработчики заинтересованы в минимизации нагрузки, просто так они не оставят это..
Интересный опыт...:wink:
Позновательно. Спасибо
Я пробовал запустить WP при memory_limit = 8 MB. Ничего не получилось, хотя плагины были отключены и тема была стандартная.
Наверное, что-то еще потребляло 1МБ.
При 16МБ все, конечно, заработало.
P.S. Похоже еще пара новых версий и действительно придется подумать о другом движке (или хостинге :idea: )
гипер полезная информация, спасибо
У меня на localhost потребление памяти оелоло 6 МБ
А на majordomo целых 11 МБ!!! Как можно изменить ситуацию
p.s. плагинов включено минимальное количество, только самые основные...
Мне - вообще хостер персонально объем доступной памяти увеличивал до 16 Мб.
А кто знает какой предел потребления памяти на majordomo.ru? А то я только знаю, что у них предел на нагрузку процессора 15% вроде бы, и максимальное количество обращений к БД не более 20000 в час, а вот что у них там с памятью, подскажите плиз...
У меня настроены несколько блогов на движке Ворпресс, почти каждый день происходит их отключение в связи с перегрузкой ресурсов хостера.
А сколько хвалебных статей в инете ходит в пользу движка Вордпресса!
Обман, однако.
ну так правильно вп папки открывает, подключат файло, данный глюк выкавыривал еще в php-nuke в админке, надоедал тормозной тупняк, кешировал вайлы в mysql потом одним запросом выкавыривал, добовлялось все кнопкой обновить директории, и лешний гемор и память уходят, нагрузка на бд уменьшается =) да и инклюдиться только то что используется
Вы бы не могли выложить эту "небольшую функцию" я хотел бы провести подобное тестирование.