コンテンツ
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)で返されるメモリ量を超えた場合に出るエラーということになりますね。
この記事へのコメントはありません。