PHPパフォーマンスのミクロ分析
1. 性能解析に関する機能とコマンド
1.1.時間計測機能
通常は time() 関数を使用しますが、特定のコード部分の内部パフォーマンス分析の場合、秒単位の精度では十分ではありません。そこでmicrotime関数を使います。 microtime 関数は 2 つの形式を返すことができます。1 つは文字列の形式で、もう 1 つは浮動小数点数の形式です。ただし、デフォルトでは返される精度は小数点以下 4 桁のみであることに注意してください。より高い精度を得るには、精度を設定する必要があります。
以下はマイクロタイムを使用した結果です。
出力は次のとおりです:
bash-3.2# phptime.php
1441360050.3286
1441360050.3292
0.00053000450134277
そして、コードの前に行を追加します:
ini_set("精度", 16);
出力は次のとおりです:
bash-3.2# phptime.php
1441360210.932628
1441360210.932831
0.0002031326293945312
microtime の内部統計に加えて、getrusage を使用してユーザー状態イベントを取得することもできます。実際の運用では、プログラム全体の実行時間を計算するためにtimeコマンドを使用することもよくあります。プログラムを複数回実行したり、コードを変更したりすることで、異なる時間長を取得し、効率の差を得ることができます。 具体的な使用法は次のとおりです: time phptime.php プログラムが完了すると、正常に終了するかどうかに関係なく、関連する統計が表示されます。
bash-3.2# 時間 phptime.php
1441360373.150756
1441360373.150959
0.0002031326293945312
実質0分0.186秒
ユーザー 0分0.072秒
システム 0分0.077秒
この記事で説明するパフォーマンスの問題のため、コード内に時間統計コードが存在するのを避けるために、後から主に time コマンドを使用して、数百万回の呼び出し後にギャップと傾向を分析します。
1.2. メモリ使用量関連の機能
メモリ使用量を解析する関数には、memory_get_usageとmemory_get_peak_usageの2つがあり、前者はプログラム呼び出し時に使用されているメモリ、つまり現在使用されているメモリを取得でき、後者は使用メモリを取得できます。これまでのピーク時。使用されるメモリはバイト単位です。
出力は次のとおりです:
bash-3.2# phphelloworld.php
こんにちは、世界!
224400 224568 168 227424
プログラムの途中で一文だけ出力するだけでも、変数ストレージを加えて168バイトのメモリが消費されることがわかります。
同じプログラムでも、異なる PHP バージョンのメモリ使用量は同じではないか、あるいは大きく異なります。
PHP 5.2 では、メモリ使用量は次のとおりです:
PHP 5.3ではメモリ使用量は以下の通りです
PHP 5.3 はメモリ使用量がより広範囲であることがわかります。
PHP 5.4 - 5.6 はほとんど同じですが、いくつかの最適化が施されています:
PHP 7 を少量使用すると、ピーク時のメモリ使用量が大幅に増加します。
上記からわかるように、上記で使用した PHP は比較的優れたガベージ コレクション メカニズムを備えており、100,000 回の初期化によってオブジェクトの初期化が増加してもメモリ使用量は増加しません。 PHP7 のピーク時のメモリ使用量は最も高く、2M 近くに達します。
別の例を見てみましょう。上記のコードに基づいて、次のような太字の行を追加します。
$obj->self = $obj;
コードは次のとおりです:
リーリー
echo "peak: ",memory_get_peak_usage(true), " bytesn";
http://www.bkjia.com/PHPjc/1053349.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1053349.html技術記事 PHPのパフォーマンスの微視的な分析 1. パフォーマンス分析に関連する関数とコマンド 1.1. 時間測定関数 通常は time() 関数を使用しますが、これはあるコードの内部の秒数を返します...
。