PHP メモリ使用量を計測する

スクリプト

プログラム実行のメモリ使用量を計測する

同じ結果が得られても、スクリプトの違いで実行速度やメモリの使用量に大きく違いが出てきます。規模が大きくなればなるほど、その違いは明確なものになるので、普段から極力意識したスクリプトを書きたいものです。

メモリを計測出来る関数はこちら。

  • memory_get_usage()
  • memory_get_peak_usage()

memory_get_usage() は、PHP に割り当てられたメモリの量を返し、memory_get_peak_usage() は、PHP によって割り当てられたメモリの最大値を返します。

では、試しにと以下のようなソースを実行してみます。for文で100万回繰り返しながら、配列に値を入れるスクリプトです。

<?php

echo "実行開始(メモリ使用量):".memory_get_usage()/(1024 * 1024)."MB<br>";
echo "実行開始(最大使用量):".memory_get_peak_usage()/(1024 * 1024)."MB<br>";
echo "<br>-----------------------<br><br>";

for($i=0; $i<1000000; $i++){
    $data[] = $i;
}

echo "実行直後(メモリ使用量):".memory_get_usage()/(1024 * 1024)."MB<br>";
echo "実行直後(最大使用量):".memory_get_peak_usage()/(1024 * 1024)."MB<br>";
echo "<br>-----------------------<br><br>";

//メモリ解放
unset($data);

echo "終了(メモリ使用量):".memory_get_usage()/(1024 * 1024)."MB<br>";
echo "終了(最大使用量):".memory_get_peak_usage()/(1024 * 1024)."MB<br>";

上記ソースを実行すると、ブラウザでは以下のとおりとなります。

簡単な実装でメモリに使用量を確認することが出来ます。メモリ使用量を意識することはお勧めです。

 

コメント

タイトルとURLをコピーしました