PHPで実行時間(処理時間)を計測する方法【getrusage関数の使い方】
PHPの実行時間を計測する方法
PHP 7以降のバージョンでは、getrusage() 関数を使うことで、スクリプトの実行時間を正確に計測できます。この関数は、ユーザー時間(utime)とシステム時間(stime)など、プロセスのリソース使用状況に関する詳細な情報を取得できるのが特徴です。
以下に、実際のサンプルコードを示します。
サンプルコード
// スクリプトの開始時点で記録
$exec_start = getrusage();
// ここに計測したい処理を記述
// スクリプトの終了時点で経過時間を算出する関数
function rutime($ru, $rus, $index) {
return ($ru["ru_$index.tv_sec"]*1000 + intval($ru["ru_$index.tv_usec"]/1000))
- ($rus["ru_$index.tv_sec"]*1000 + intval($rus["ru_$index.tv_usec"]/1000));
}
$ru = getrusage();
echo "このプロセスは計算処理に " . rutime($ru, $exec_start, "utime") .
" ミリ秒かかりました\n";
echo "システムコールには " . rutime($ru, $exec_start, "stime") .
" ミリ秒費やしました\n";ポイント
注意:テストのたびに新しいPHPインスタンスを起動している場合は、時間差をわざわざ計算する必要はありません。その場合、単一の getrusage() の結果だけでも十分に情報を得られます。
実行結果
上記のコードを実行すると、以下のような出力が得られます。
このプロセスは計算処理に 1.563896 ミリ秒かかりました システムコールには 0.345628 ミリ秒費やしました
このように、getrusage() 関数を活用すれば、PHPスクリプト内でのCPU使用時間をミリ秒単位で把握でき、パフォーマンスチューニングやボトルネックの特定に役立ちます。
-
Pythonで日時の差を求める方法|timedeltaオブジェクトの使い方を徹底解説
Pythonでは、timedeltaオブジェクトを使うことで、日付や時刻に関する計算を非常に簡単に行えます。ある日時に加算や減算を行いたい場合は、まずdatetime.datetime()で日時オブジェクトを生成し、そこにdatetime.timedelta()インスタンスを足したり引いたりします。timedeltaオブジェクトは「期間」、つまり2つの日付や時刻の差分を表すものです。timedeltaコンストラクタは、次のような関数シグネチャを持っています。datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, mi
-
Pythonでプログラムの実行時間を測定する方法【time・timeitモジュール活用】
Pythonでプログラムの実行時間を計測したい場合、標準ライブラリの time モジュールや timeit モジュールを利用するのが一般的です。ここでは、それぞれの基本的な使い方と特徴をわかりやすく解説します。 timeモジュールで実行時間を計測する 最もシンプルな方法は、処理の開始前と終了後に時刻を取得し、その差分から経過時間を求めることです。Python公式ドキュメントでは、ベンチマーク目的には time.clock() の使用が推奨されていました。※注意:time.clock() はPython 3.8で非推奨となり、3.10以降では削除されています。現在の環境では、より高精度な tim