ProfiPHPProfiPHP
Категория: Полезное в PHP

Определение объема используемой памяти

Очень часто для тестирования и оптимизации скриптов необходимо узнать объем используемой памяти PHP.

Для тестирования используем функцию преобразования байтов в килобайты, мегабайты, гигабайты, терабайты:
function get_size( $bytes )
{
if ( $bytes < 1000 * 1024 ) {
return number_format( $bytes / 1024, 2 ) . " KB";
}
elseif ( $bytes < 1000 * 1048576 ) {
return number_format( $bytes / 1048576, 2 ) . " MB";
}
elseif ( $bytes < 1000 * 1073741824 ) {
return number_format( $bytes / 1073741824, 2 ) . " GB";
}
else {
return number_format( $bytes / 1099511627776, 2 ) . " TB";
}
}
Далее выполняем следующие действия:
// выделяемая память в начале:
echo get_size( memory_get_usage( ) ).'<br />';
// Загружаем память:
$string = str_repeat( 'Hello', 999999 );
// Состояние в режиме загрузки:
echo get_size( memory_get_usage( ) ).'<br />';
// Делаем задержку в 5 секунд:
sleep( 5 );
// Освобождаем память:
unset( $string );
// Выводим состояние памяти после освобождения:
echo get_size( memory_get_usage( ) );
Результатом данного кода будет приблизительно следующее:
246.39 KB
5.01 MB
246.44 KB
Во время остановки скрипта (функция Sleep) в диспетчере задач можно увидеть, как объем использованной памяти на 5 секунд увеличивается на 5 мегабайт.

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

Имя:
Текст комментария: