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

CP — величина, характеризующая время, затраченное центральным процессором на выполнение процессов пользователя (например, обработку http-запросов web-сервером, выполнение php-скриптов, выполнение задач через crontab).

beget.com

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

  • в самом начале выполнения нашей функции мы запоминаем текущее время в переменную, после выполнения снова получаем текущее время и вычитаем из него начальное;
  • так же касается количества памяти: в начале функции мы получаем в переменную количество памяти в байтах, которое было выделено 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 печатаем переменные на экране
		if ( $dev_mode == true ) vardump('Функция theme_name_function; $dev_mode = true; хук before_site_content');

		// ваш код тут




		// получаем конечное время
		$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() преобразует количество байтов понятный для человека формат — Кб, Мб, Гб. Об их работе вы можете узнать в соответствующих статьях.

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

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

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

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *