Мой сайт о WordPress и PHP С Днем победы!
1 февраля 2008

Анализ потребления памяти 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Мб.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

10 комментариев к “Анализ потребления памяти WordPress”

  1. Mols:

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

  2. Максим:

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

  3. Friend:

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

  4. Feelov:

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

  5. Алексей:

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

  6. Владимир:

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

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

  7. dr.AMik:

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

  8. юлия сонник:

    У меня на localhost потребление памяти оелоло 6 МБ
    А на majordomo целых 11 МБ!!! Как можно изменить ситуацию
    p.s. плагинов включено минимальное количество, только самые основные...

  9. Klark:

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

  10. юлия сонник:

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


Оставьте комментарий! (Вы согласны с правилами)

 

:mrgreen: :neutral: :twisted: :arrow: :shock: :smile: :???: :cool: :evil: :grin: :idea: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: :!: :?:

При добавлении кода (html, php) заменяйте < на &lt; и > на &gt;.
Внимание: антиспам - зверь! Копируйте своё сообщение перед отправкой. На всякий случай.