Анализ потребления памяти WordPress

Рубрика: WordPress -> Лаборатория
Пятница, 1 февраля 2008 г.
Просмотров: 3431
Подписаться на комментарии по RSS
]]>
]]>

Решил проверить и посмотреть где в 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Мб.

]]>twitter.com Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>

Комментариев: 12

Вы можете получать новые комментарии к этой записи по RSS или оформить подписку на все комментарии сайта. Или даже на все новые записи сайта. Не знаете, как это сделать?
  1. 2008-02-01 в 23:45:46 | Mols

    Ну понятно, с каждой версией функционал и затраты походу накручивают... Это призыв перейти на старые версии? smile Скоро лучше на твою перейдем! :cool:

  2. 2008-02-02 в 00:21:21 | Максим

    Ну не знаю. Я же сромно умолчал сколько на данный момент потребляет моя CMS. ;)

  3. 2008-02-02 в 02:01:04 | Friend

    Наверняка ведь и разработчики заинтересованы в минимизации нагрузки, просто так они не оставят это..

  4. 2008-02-02 в 11:51:36 | Feelov

    Интересный опыт...:wink:

  5. 2008-02-02 в 16:15:03 | Алексей

    Позновательно. Спасибо

  6. 2008-02-02 в 16:41:43 | Владимир

    Я пробовал запустить WP при memory_limit = 8 MB. Ничего не получилось, хотя плагины были отключены и тема была стандартная.

    Наверное, что-то еще потребляло 1МБ.

    При 16МБ все, конечно, заработало.

    P.S. Похоже еще пара новых версий и действительно придется подумать о другом движке (или хостинге :idea: )

  7. 2008-02-02 в 18:17:57 | dr.AMik

    гипер полезная информация, спасибо

  8. 2008-02-16 в 16:23:41 | юлия сонник

    У меня на localhost потребление памяти оелоло 6 МБ

    А на majordomo целых 11 МБ!!! Как можно изменить ситуацию

    p.s. плагинов включено минимальное количество, только самые основные...

  9. 2008-03-10 в 22:05:45 | Klark

    Мне - вообще хостер персонально объем доступной памяти увеличивал до 16 Мб.

  10. 2008-03-12 в 20:57:30 | юлия сонник

    А кто знает какой предел потребления памяти на majordomo.ru? А то я только знаю, что у них предел на нагрузку процессора 15% вроде бы, и максимальное количество обращений к БД не более 20000 в час, а вот что у них там с памятью, подскажите плиз...

  11. 2008-05-28 в 09:49:54 | Андрей

    У меня настроены несколько блогов на движке Ворпресс, почти каждый день происходит их отключение в связи с перегрузкой ресурсов хостера.

    А сколько хвалебных статей в инете ходит в пользу движка Вордпресса!

    Обман, однако.

  12. 2008-09-17 в 06:11:19 | adre

    ну так правильно вп папки открывает, подключат файло, данный глюк выкавыривал еще в php-nuke в админке, надоедал тормозной тупняк, кешировал вайлы в mysql потом одним запросом выкавыривал, добовлялось все кнопкой обновить директории, и лешний гемор и память уходят, нагрузка на бд уменьшается =) да и инклюдиться только то что используется

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)