Сегодня мы будем пытаться снизить потребление памяти во время этого процесса и, следовательно, нам нужно будет каким-то образом все это дело мониторить.
Итак, нам нужно знать, сколько памяти расходуется при загрузке той или иной страницы. Эту проблему можно решить как с помощью установки соответствующего плагина, так и с помощью дописывания нескольких строк кода в файл /wp-content/themes/Папка-с-вашей-темой-оформления/functions.php из используемого вами шаблона WordPress (тут про устройство тем читайте). Давайте начнем с плагина.
Этот плагин очень простой, что несомненно является достоинством. Для установки вам нужно выполнить стандартные манипуляции:
- распакуйте архив panel_load.zip, используя ftp-менеджер подключитесь к вашему сайту и загрузите файл panel_load.php в папку с плагинами wp-content/plugins/
- войдите в админку WordPress и выберете вкладку «Плагины»- «Inactive (Неактивно)»
- найдите строку «Панель нагрузки» и активируйте его
В админке WP выбираем из левого меню Настройки -> Панель нагрузки.
Давайте рассмотрим, что же можно здесь настроить.
-
- Позиция — вы можете выбрать способ отображения панели нагрузки на страницах вашего WP блога:
- Фиксированная — «Панель нагрузки» все время будет находиться в заданной области экрана вне зависимости от прокрутки
- Абсолютная — позиционирование панели будет привязано уже не к экрану, а к самой странице. При прокрутке она будет уходить за видимую часть экрана
- Горизонтальное положение панельки — вы можете выбрать, к какой стороне она будет прижата
- Вертикальное положение — тоже самое, но для вертикального положения
- Отображать панель для — здесь можете выбрать, кому она будет видна — всем посетителям вашего блога или же только вам (Администратору)
- Отступ по горизонтали (в px) — вы можете задать отступ панели нагрузки от левого или правого края окна, в зависимости от того, что вы выбрали в поле «Горизонтальное положение»
- Отступ по вертикали (в px) — тоже самое, но отступ уже задается от низа или верха экрана
- Отображать панель в админке — включить отображение этой панели в админке WordPress, выбрав из выпадающего списка вариант «Да»
- Позиция — вы можете выбрать способ отображения панели нагрузки на страницах вашего WP блога:

На страницах блога «Панель нагрузки» выглядеть будет примерно так:
Как вы можете видеть, на ней отображается следующая информация:
- количестве запросов к базе данных, сделанных при загрузке данной вебстраницы
- времени создания страницы
- потребление памяти
Вывод статистики в админке
Чтобы контролировать, сколько памяти потребляет только что активированный плагин, можно использовать WP-Memory-Usage.
Плагин показывает в административном разделе состояние оперативной памяти и версию PHP. Кроме того он показывает внизу админки расход памяти — удобно наблюдать, как утекает память при активации плагинов.
WP-Memory-Usage своим непрерывным мониторингом помогает избежать многих ошибок, и оптимизировать работу блога, активируя только нужные плагины, не требующие большого количества оперативной памяти.
Информация о нагрузке Вордпресса без использования плагина
Ту же саму информацию о нагрузке можно вывести и без использования плагинов. Для этого вам нужно открыть на редактирование файл /wp-content/themes/Папка-с-вашей-темой-оформления/functions.php из используемой вами темы. Добавьте в него следующий код:
function usage() { printf(('%d / %s'), get_num_queries(), timer_stop(0, 3)); if ( function_exists('memory_get_usage') ) echo ' / ' . round(memory_get_usage()/1024/1024, 2) . 'mb '; } add_action('admin_footer_text', 'usage'); add_action('wp_footer', 'usage');
Сохраните произведенные изменения. Теперь в самом низу админки WordPress и в футере блога будет выводиться информация о нагрузке.
Строка
add_action('admin_footer_text', 'usage'
в приведенном выше коде отвечает за вывод инфы в админке. Следовательно, если вы удалите ее из кода, то в админке это дело отображаться не будет. Строка
add_action('wp_footer', 'usage');
отвечает за вывод в футере лицевой части блога. Лучше эту строку убрать из кода, добавляемого в файл functions.php, а вместо этого открыть на редактирование файл /wp-content/themes/Папка-с-вашей-темой-оформления/footer.php и вставить в нужное место этого файла код:
<?php if (current_user_can('level_10')){ ?> <small><?php usage();?></small><?php } ?>
В этом случае информация в футере будет видна только администратору блога, т.е. вам, а посетители ее не увидят. Ну, вот мониторить потребление памяти при создании вебстраниц мы научились. Теперь пора переходить к снижению этого самого потребления.
Как вывести потребление памяти в футер?
Чтобы узнать, сколько же оперативной памяти потребляет движок со всеми плагинами нужно в файле footer.php, перед закрывающим тегом </body> вставить следующую строчку:
<?php if (function_exists('memory_get_usage')) echo round(memory_get_usage()/1024/1024, 2) . 'MB '; ?>
Как узнать количество запросов к БД?
Делаем те же действия, открываем footer.php и перед </body> добавляем строку:
<?php echo get_num_queries(); ?>
На голом WordPress со стандартной темой и виджетами у меня создается 23 запроса к БД при открытии любой записи. Однако на премиум темах с большим количеством настроек, блоков, плагинов, эта цифра может доходить до 50-60 запросов.
Как узнать время генерации страницы?
Опять аналогичным образом добавляем в footer.php строчку:
<?php timer_stop(1); ?>
Время генерации страницы в большей степени зависит от мощностей сервера. У меня на виртуальном хостинге страница чистого WP генерируется за 120мс.
Теперь можно объединить все показатели и выводить их в фиксированном блоке наверху сайта. И показывать только администраторам.
<?php if ( current_user_can( 'manage_options' ) ) { ?> <div style="position:fixed;top:50px;left:5px;padding:5px;font-size:11px;color:#fff;background:#000;"> <?php timer_stop(1); ?> / <?php echo get_num_queries(); ?> / <?php if (function_exists('memory_get_usage')) echo round(memory_get_usage()/1024/1024, 2) . 'MB'; ?> </div> <?php } ?>
Вот так это выглядит на сайте: