PHP(ピー・エイチ・ピー)

【PHP】メモリ使用量を測定

memory_get_usage:PHPのスクリプトに割り当てられたメモリ量を取得

PHPでプログラムを組む際に、メモリをどのくらい使っているのか知りたい場合があります。

その場合には、memory_get_usage()を使って調べることが出来ます。

memory_get_usage()は、現在のPHPスクリプトに対して割り当てられたメモリの量を返してきます。
そこで、以下のようなコードで、どのくらいのメモリを使っているかを調べることができます。
※メモリ容量をバイト単位で返してきます。

【使用例】
<?php

$s = memory_get_usage();

$a = "";
for($i=0; $i<10000; $i++){
$a .= $i;
}

$c = memory_get_usage();

//メモリ使用量
echo ($c - $s) . "バイト";

?>

単位はバイトなので、
KBで出力したい場合には「1024」で、
MBで出力したい場合には「(1024 * 1024)」で、
割ってください。

【使用例】
<?php

$s = memory_get_usage();

$a = "";
for($i=0; $i<10000; $i++){
$a .= $i;
}

$c = memory_get_usage();

//メモリ使用量
echo ( ($c - $s) / 1024 ) . "KB";
echo ( ($c - $s) / (1024 * 1024) ) . "MB";

?>

かなりざっくりとしたサンプルコードですが、
このようにしてメモリの使用量を調べることができます。

パラメータ:real_usage

こちらの関数には、パラメータとして「real_usage」が用意されています。

デフォルトでは、FALSEに設定されているみたいですが、
TRUEを設定すると、システムから割り当てられている実際のメモリサイズが返されるようです。
[ PHP マニュアル ]

memory_get_usage(TRUE) => システム上から割り当てられている容量、つまり、あらかじめ確保されているメモリ容量
memory_get_usage(FALSE) => スクリプトが実際に使用しているメモリ容量
ということになります。

つまり、
php.iniやini_setで設定した「memory_limit」のメモリ上限が、
memory_get_usage(TRUE)で返されるメモリ量ということになります。

つまり、
割り当てられたメモリ容量を超えると、
「Fatal error: Allowed memory size of ~」というエラーが出ますが、
memory_get_usage(TRUE)で返されるメモリ量を超えた場合に出るエラーということになりますね。

この記事を書いている人
株式会社ディープ
名前足立拓也

メールアドレスadachi@deep-deep.jp

関連記事

最近の記事

  1. レンタルサーバ:おすすめの共用サーバ
  2. ホームページ(homepage)
  3. システムアップデート
  4. エックスサーバー(XSERVER)
  5. エックスサーバー(XSERVER)
  6. エックスサーバー(XSERVER)
  7. WEBサイト構築
  8. スパム(SPAM)対策
  9. サイト公開
  10. ネームサーバーの登録

Twitter

ダッチ(足立拓也)
@gatsu0000

  • RT @goens69732829: 明日は譲渡会です‼️‼️‼️ 今年最後の譲渡会はたくさんの猫ちゃんが参加🥰 皆さん拡散の応援宜しくお願い致します‼️ 12月8日(日) 時間:11:00〜15:00 場所:いなげビレッジ虹と風 虹の棟 2F 会議室・宙 (千葉市稲毛…
    about 1日 ago via Twitter Web App

アーカイブ

PAGE TOP