PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

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使用時間をミリ秒単位で把握でき、パフォーマンスチューニングやボトルネックの特定に役立ちます。

  1. Pythonで日時の差を求める方法|timedeltaオブジェクトの使い方を徹底解説

    Pythonでは、timedeltaオブジェクトを使うことで、日付や時刻に関する計算を非常に簡単に行えます。ある日時に加算や減算を行いたい場合は、まずdatetime.datetime()で日時オブジェクトを生成し、そこにdatetime.timedelta()インスタンスを足したり引いたりします。timedeltaオブジェクトは「期間」、つまり2つの日付や時刻の差分を表すものです。timedeltaコンストラクタは、次のような関数シグネチャを持っています。datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, mi

  2. Pythonでプログラムの実行時間を測定する方法【time・timeitモジュール活用】

    Pythonでプログラムの実行時間を計測したい場合、標準ライブラリの time モジュールや timeit モジュールを利用するのが一般的です。ここでは、それぞれの基本的な使い方と特徴をわかりやすく解説します。 timeモジュールで実行時間を計測する 最もシンプルな方法は、処理の開始前と終了後に時刻を取得し、その差分から経過時間を求めることです。Python公式ドキュメントでは、ベンチマーク目的には time.clock() の使用が推奨されていました。※注意:time.clock() はPython 3.8で非推奨となり、3.10以降では削除されています。現在の環境では、より高精度な tim