memory_get_usage

関数の概要

PHPの memory_get_usage 関数は、スクリプトが現在消費しているメモリ量(バイト単位)を取得するための関数です。主にパフォーマンスの監視やメモリ使用量の最適化を行う際に使われます。開発中に無駄なメモリ消費を検出したい場合や、メモリリークの調査にも役立ちます。

パラメータの説明

  • $real_usage(省略可能):
    論理的なメモリ使用量ではなく、実際に割り当てられているメモリ使用量をバイト単位で取得するかどうかを指定します。
    デフォルトは false で、論理メモリ使用量を返します。
    true を指定するとOSが割り当てたメモリ使用量を返します。

戻り値

メモリ使用量をバイト単位の整数で返します。これは現在のPHPスクリプトが使用しているメモリ量を表しています。
返される値は大きいほど多くのメモリを消費していることになります。

使用例

基本的な使い方

<?php
echo "現在のメモリ使用量: " . memory_get_usage() . " バイト";
?>

この例は、スクリプトの現在のメモリ使用量をバイト単位で出力します。デフォルトの論理メモリ使用量を表示します。

リアルメモリ使用量を取得する例

<?php
echo "実際に割り当てられているメモリ量: " . memory_get_usage(true) . " バイト";
?>

trueを指定すると、PHPが実際に確保しているメモリ(リアルメモリ使用量)を取得できます。

メモリ使用量の変化を測定する例

<?php
$start = memory_get_usage();

// 配列を大量に生成してメモリ使用量を増やす
$array = range(1, 100000);

$end = memory_get_usage();

echo "処理前のメモリ使用量: " . $start . " バイト<br>";
echo "処理後のメモリ使用量: " . $end . " バイト<br>";
echo "使用メモリの増加量: " . ($end - $start) . " バイト";
?>

処理前後でメモリ使用量を比較することで、どのくらいメモリを消費したかが分かります。メモリ使用の増減を調査したい時に便利です。

関連する関数

  • memory_get_peak_usage – スクリプト実行中に使用されたピークメモリ量を取得します。
  • ini_get – PHPの設定値から memory_limit などメモリ関連の設定を取得するときに使えます。
  • gc_collect_cycles – ガベージコレクションを強制し、不要なメモリ解放を促す関数です。

まとめ

memory_get_usage はPHPスクリプトの現在のメモリ消費量を簡単に取得できる便利な関数です。メモリ使用量の監視やパフォーマンスチューニング、メモリリークの検出など幅広い場面で役立ちます。
引数に true を与えると実際に割り当てられているリアルメモリ量を取得でき、より正確なメモリ状況を把握できます。
開発や本番環境で効率的にメモリ管理をするために、ぜひ使いこなしてみてください。