ホームページ  >  記事  >  php教程  >  PHP プログラムが占有するメモリの量を知る方法 (memory_get_usage)

PHP プログラムが占有するメモリの量を知る方法 (memory_get_usage)

WBOY
WBOYオリジナル
2016-06-13 11:58:10837ブラウズ

以下は使用例です:

コードをコピー コードは次のとおりです:


echomemory_get_usage(), '
' // 313864
$tmp = str_repeat('http://www.nowmagic.net/', 4000);


の後のコメント上記のプログラムは出力 (単位: バイト) を表します。これは、その時点で PHP スクリプトによって使用されるメモリです (memory_get_usage() 関数自体によって占有されるメモリは除きます)。

上記の例からわかるように、メモリ使用量を減らすために、PHP unset() 関数を使用して不要になった変数を削除できます。同様のものには、PHP の mysql_free_result() 関数が含まれます。この関数は、データベースのクエリによって取得された不要になった結果セットをクリアして、より多くの利用可能なメモリを取得できるようにします。


PHP のmemory_get_usage() 関数には、値がブール値であるパラメーター $real_usage を持つこともできます。デフォルトは FALSE で、取得されたメモリ使用量にはこの関数 (PHP メモリ マネージャー) が占有するメモリは含まれません。TRUE に設定すると、取得されたメモリにはこの関数 (PHP メモリ マネージャー) が占有するメモリは含まれません。

実際のプログラミングでは、memory_get_usage() 関数を使用して各メソッドが占有するメモリを比較し、どのメソッドがより少ないメモリを使用するかを選択できます。

使用関数を投稿します:



コードをコピーします

コードは次のとおりです: if (! function_exists('memory_get_usage ')) {

/**

----------------------------------------------- ----------
* メモリ使用量の取得
---------------------------- -- ------------------------
* @return integer
---------- - ---------------------------------------
*/
functionmemory_get_usage()
{
$pid = getmypid()
if (IS_WIN);
{
exec('tasklist /FI "PID eq ' . $pid . '" /FO LIST', $output);
return preg_replace('/[^0-9]/', ' ', $output [5]) * 1024;
}
else
{
exec("ps -eo%mem,rss,pid | grep $pid", $output); >$output =explode(" ", $output[0]);
return $output[1] * 1024;
}
}
}


関数の使用例:


コードをコピー

コードは次のとおりです:

//memory_get_usage( ); $ m1 =memory_get_usage();

echo '
,$m1;//58096

$a = 'hello'; ($a,1000) ;
$m2 = メモリ_get_usage();
echo '
',$m2;//63424
unset($b); $m3 = メモリ_get_usage() ;
エコー '
m3:',$m3;//58456


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。