memory_get_peak_usage

関数の概要

memory_get_peak_usage は、PHPスクリプトの実行中に使用された最大メモリ量(ピークメモリ使用量)を取得するための関数です。スクリプトがどれだけのメモリを消費したかを調べたいときに役立ちます。これにより、メモリ使用量の最適化やパフォーマンス改善に役立てることができます。

パラメータの説明

  • bool $real_usage = false : オプションのパラメータで、デフォルトは false です。
    • false の場合、PHPが報告するメモリ使用量、すなわちユーザー空間のメモリ使用量を返します。
    • true に設定すると、システム全体の割り当てメモリ量(実際にOSから割り当てられたメモリ量)を返します。通常はこちらの方が大きな値になります。

戻り値

整数型(int)で、バイト単位の最大メモリ使用量が返されます。この値はスクリプトの開始から現在までの間に使用された最大メモリ量を示します。

使用例

基本的な使い方

<?php
echo 'ピークメモリ使用量: ' . memory_get_peak_usage() . ' バイト';
?>

この例では、スクリプトが起動してから現在までに使用した最大メモリ量を単純に表示しています。

実際に変数を大量に生成してメモリ使用量を調べる例

<?php
$array = [];
for ($i = 0; $i < 100000; $i++) {
    $array[] = md5($i);
}
echo 'ピークメモリ使用量: ' . memory_get_peak_usage() . ' バイト';
?>

大量のデータを生成してメモリ使用量を増やし、そのピークを取得しています。

real_usage パラメータを使って実際の割り当てメモリを表示

<?php
$array = range(1, 100000);
echo '実際に割り当てられたピークメモリ使用量: ' . memory_get_peak_usage(true) . ' バイト';
?>

memory_get_peak_usage(true) を使うと、PHPが実際にOSから割り当てられたメモリ量を確認できます。メモリ最適化の参考にすると良いでしょう。

関連する関数

  • memory_get_usage — 現在のメモリ使用量を取得します。
  • ini_set — メモリ制限(memory_limit)を動的に変更する際に使います。
  • gc_collect_cycles — ガベージコレクションを手動で実行し、メモリ解放を促します。

まとめ

memory_get_peak_usage はPHPスクリプトの最大メモリ使用量を調べるのに便利な関数です。メモリリークの発見やパフォーマンスチューニングに役立ちます。real_usageパラメータにより、より実際の割り当て量に近い値を取得することも可能です。PHPでのメモリ管理を理解し、効率的な開発を行いたい場合にはぜひ活用してください。