kwork banner 468x60kwork banner 728x90kwork banner 930x180beget banner 468x60beget banner 728x90beget banner 930x180jivo banner 468x60jivo banner 728x90jivo banner 930x180

Как узнать, сколько памяти и времени тратится на php-функцию в WordPress

При написании ресурсозатратных функций и скриптов в php может быть очень полезна информация о том, сколько времени и памяти использует ваша программа. Это знание может быть особенно полезно на шаред-хостингах, где CP, выделенное на обработку задач ограничено.

Общая логика для решения нашей задачи будет выглядеть так:

  • в самом начале выполнения нашей функции мы запоминаем текущее время в переменную, после выполнения снова получаем текущее время и вычитаем из него начальное;
  • так же касается количества памяти: в начале функции мы получаем в переменную количество памяти в байтах, которое было выделено PHP скрипту на на данный момент memory_get_usage(), после выполнения всех операций вычитаем его.

Рассмотрим на примере:

if ( ! function_exists( 'theme_name_function' ) ) {
	function theme_name_function( $atts, $content ) {

		$mem_start = memory_get_usage(); // получаем текущую память

		// получаем начальное время
		$start_time = explode( ' ', microtime() );
		$start_times = $start_time[1] + $start_time[0];

		$dev_mode = true; // при установленном true печатаем переменные на экране
	

		// ваш код тут




		// получаем конечное время
		$end_time = explode( ' ', microtime() );
		$end_times = $end_time[1] + $end_time[0];

		if ( $dev_mode == true ) vardump( 'Скрипт выполнен за ' . ($end_times - $start_times) . ' секунд' );
		if ( $dev_mode == true ) vardump( 'Затрачено памяти: ' . format_bytes( memory_get_usage() - $mem_start ) );

		// функция что-то возвращает
		return $string;

	}
}

Вы можете использовать этот код как болванку при написании своих функций, но внимательный читатель заметит, что для ее работы необходимо определить еще две функции: vardump() и format_bytes().

Функция vardump() выводит переменные на экран, а format_bytes() преобразует количество байтов понятный для человека формат — Кб, Мб, Гб. Об их работе вы можете узнать в соответствующих статьях.

skillbox banner 480x320skillbox banner 728x90skillbox banner 120x600smsc banner 480x320smsc banner 728x90smsc banner 120x600etxt banner 480x320etxt banner 728x90etxt banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как сделать webp без плагинов в WordPress

WebP — это современный формат сжатия изображений без потери качества, который напрямую влияет на скорость загрузки сайта. Конвертирование изображений из jpg и png в формат webp может дать существенный прирост в баллах по google page speed. Формат webp поддерживается большинством современных браузеров. Вы без труда можете найти плагины, которые помогут вам автоматически конвертировать изображения, добавленные…
Подробнее

Как вывести все изображения из произвольной папки без плагинов в WordPress

При разработке своих сайтов вам может понадобиться вывести галереи изображений из произвольных папок без их загрузки в библиотеку. Давайте рассмотрим пример, как это сделать с помощью шорткода: Использование: [folder-gallery path=’/data/images/’] Как видите, функция принимает путь до искомой папки (обязательно с открывающим и закрывающим слешем), в функции устанавливаются разрешенные типы изображений и формируется вывод с классами…
Подробнее

Как изменить выравнивание и размер изображения при вставке в редактор WordPress

При добавлении изображения в пост, по умолчанию WordPress вставляет его в размере medium и без выравнивания. Чтобы при загрузке картинки ей прописывалось выравнивание по центру и полный размер, вы можете использовать такой код:
Подробнее