Бенчмарк памяти сервера

Иногда бывает полезно замерять память, которая выделяется на выполнение какого-то процесса. Делается это чаще всего для оптимизации тех самых процессов и таким образом экономить память сервера.

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

$startMemory = memory_get_usage();

// Измеряемое. Может быть перебор массива или любая другая операция

echo (memory_get_usage() - $startMemory) . " bytes\n";

Таким образом мы всегда будем держать наш код и ресурсы под контролем, а это уже скажется на стабильности работы сервера в целом. Если в качестве измеряемого будет перебор массива, то память будет выделяться на одну конкретную иттерацию.

Кстати, таким же образом легко замерить время выполнения скрипта (оба теста лучше запускать в одно время):

$startTime = microtime(true);

// Измеряемое. Может быть перебор массива или любая другая операция

$endTime = microtime(true);
echo ($endTime  - $startTime) . " ms\n";