kame's engineer note

技術関連のメモをブログに記録していく

php メモリ使用量測定メモ

Rails系の記事ばかりだったが、久々にphpでメモリの使用量を計測する機会があったので、やり方をメモっておく。

phpに割り当てられた現在のメモリ使用量を測定

memory_get_usage() を使用する。
http://php.net/manual/ja/function.memory-get-usage.php

<?php

echo "first:".memory_get_usage() / (1024 * 1024)."MB\n";

$arr = [];
for($i=0;$i<10000;$i++) {
    $arr[] = $i;
}

echo "now:".memory_get_usage() / (1024 * 1024)."MB\n";

output

first:0.21486663818359MB
now:1.6373443603516MB

phpに割り当てられたメモリ使用量の最大値を取得

memory_get_peak_usage() を使用する。
http://php.net/manual/ja/function.memory-get-peak-usage.php

<?php

echo "first:".memory_get_usage() / (1024 * 1024)."MB\n";

$arr = [];
for($i=0;$i<10000;$i++) {
    $arr[] = $i;
}

//半分開放する
for($i=0;$i<5000;$i++) {
    unset($arr[$i]);
}

echo "now:".memory_get_usage() / (1024 * 1024)."MB\n";
echo "peak:".memory_get_peak_usage() / (1024 * 1024)."MB\n";

output

first:0.21579742431641MB
now:0.98969268798828MB
peak:1.6398239135742MB