ホームページ  >  記事  >  バックエンド開発  >  PHP は、組み込み関数memory_get_usage()、memorygetusage_PHP チュートリアルを通じてメモリ使用量を取得します。

PHP は、組み込み関数memory_get_usage()、memorygetusage_PHP チュートリアルを通じてメモリ使用量を取得します。

WBOY
WBOYオリジナル
2016-07-13 10:13:26911ブラウズ

PHPは、組み込み関数memory_get_usage()、memorygetusage

を通じてメモリ使用量を取得します。

PHP 組み込み関数memory_get_usage() は、PHP スクリプトに現在割り当てられているメモリ量をバイト単位で返すことができます。実際のWEB開発において、これらの機能は非常に便利で、PHPコードのパフォーマンスをデバッグするために使用できます。
Memory_get_usage() 関数はメモリ使用量を返し、memory_get_peak_usage() 関数はピーク メモリ使用量を返し、getrusage() 関数は CUP 使用量を返します。ただし、これらの機能は Linux 上で実行する必要があることに注意してください。
以下の例を見てみましょう:

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

echo 'メモリの開始:'.memory_get_usage(), ''; $tmp = str_repeat('こんにちは', 1000); echo '実行後のメモリ:'.memory_get_usage(), ''; 設定を解除($tmp); echo '通常のメモリに戻ります:'.memory_get_usage();


出力結果:

コードをコピーします

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

開始メモリ: 147296 走った後の記憶: 152456 通常のメモリに戻る: 147296


この例では、str_repeat() を使用して文字列「hello」を 1000 回繰り返し、最後に前後で消費されたメモリを比較します。上記の例からわかるように、メモリ使用量を減らすために、unset() 関数を使用して不要になった変数を削除できます。 mysql_free_result() 関数と同様に、データのクエリによって取得された結果セットが必要なくなった場合、それを使用してクエリによって占有されていたメモリを解放できます。
関数memory_get_usage()は、値がブール値であるパラメータ$real_usageを持つこともできます。 TRUE に設定すると、システムによって割り当てられた実際のメモリ サイズを取得します。設定されていない場合、または FALSE に設定されている場合、emalloc() は使用されているメモリ量を報告します。
実際のWEB開発では、PHPのmemory_get_usage()を使用して各メソッドが占有するメモリを比較し、メモリ使用量が少ないメソッドを選択することができます。
関数memory_get_usage()によって返されるバイト数(単位:バイト)。読みやすくするためにバイトを MB に変換するカスタム関数を次に示します:




コードをコピーします

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

関数メモリ使用量() { $memory = ( ! function_exists('memory_get_usage')) '0' :round(memory_get_usage()/1024/1024, 2).'MB'; $memory を返します。 }

PHP コードのパフォーマンスのデバッグとテストに一般的に使用される方法は次のとおりです:
Memory_get_usage はメモリ フットプリントを分析できます。
microtime 関数を使用すると、プログラムの実行時間を分析できます。

上記はすべて、memory_get_usage を使用して PHP コードによって占有されているメモリを取得する方法についてです。この関数は、必要な場合に参照できます。


http://www.bkjia.com/PHPjc/915436.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/915436.html

PHP は、組み込み関数memory_get_usage() を通じてメモリ使用量を取得します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。