現在の位置: ホーム> 最新記事一覧> GetTimeOfdayを使用したトランザクション処理の時間監視

GetTimeOfdayを使用したトランザクション処理の時間監視

gitbox 2025-05-29

パフォーマンスの最適化とトランザクション管理では、コードの実行時間を正確に測定することは非常に重要なリンクです。 MicroTime()などの関数はPHPで提供され、タイムスタンプを取得しますが、UNIXシステムコールスタイルの時間監視方法とより高い精度とより一致する場合、 GetTimeOfday()関数は非常に実用的な選択です。

GetTimeOfDayとは何ですか?

getTimeOfday()は、現在の時間を含む配列を返すPHPによって提供される関数であり、2つの主要な要素を含む:

  • SEC :現在の秒数(1970年1月1日、UNIX時代から始まる)

  • USEC :現在のマイクロ秒数(100万秒)

真のパラメーターを秒単位で渡すことで浮動小数点数を返すことができます。これは、時間差の計算に特に便利です。

シナリオを使用:トランザクション処理時間を監視します

データベーストランザクション、APIリクエスト、または正確な時間制御を必要とするその他の操作を処理する場合、 getTimeOfday()を使用して開始時間と終了時間を記録し、実行時間を計算できます。

たとえば、eコマースシステムでトランザクションを処理する順序があり、トランザクション全体の時間のかかるプロセスを知りたい場合、コードは次のように記述できます。

<code> function get_microtime(){$ t = getTimeOfday(); $ $ t ['sec'] + $ t ['usec'] / 1e6を返します。 }

//開始トランザクションをシミュレートします
$ start = get_microtime();

//トランザクション処理をシミュレートします
$ conn = new PDO( 'mysql:host = localhost; dbname = test'、 'user'、 'password');
$ conn-> beginTransaction();

試す {
$ conn-> exec( "注文の挿入(user_id、額)値(1、199.99)");
$ conn-> exec( "inventory set stock = stock -1 where product_id = 10");
$ conn-> commive();
} catch(例外$ e){
$ conn-> rollback();
エコー「トランザクションが失敗しました:」。 $ e-> getMessage();
}

//トランザクションの終わり
$ end = get_microtime();
$ duration = $ end -$ start;

Echo "トランザクション時間:{$ duration}秒";
</code>

上記のコードでは、 get_microtime()メソッドを使用して、トランザクションの前後にマイクロ秒のタイムスタンプを取得します。 2つの違いを計算することにより、完全なトランザクションの処理時間を取得できます。

マイクロタイムとの違い

MicroTime(True)は、フローティングポイント番号のタイムスタンプを返すこともできますが、 GetTimeOfday()は、より基礎となるシステムコールインターフェイスを提供します。これにより、デバッグ中の時間情報のより詳細な表示が容易になります。たとえば、詳細な時間ロギングを必要とする一部のアプリケーションでは、 gettimeofday()の元の配列形式は、JSONログまたはタイムスタンプ形式の出力の構築に使いやすいです。

ロギングの提案

実際のビジネスシステムでは、時間を表示するだけでなく、データベースやログシステムなどのログを記録する必要があります。

<code> $ log = ['event' => 'transaction_complete'、 'duration' => $ duration、 'timestamp' => date( 'ymd h:i:s')、 'source' => 'gitbox.net/order/transaction'];

file_put_contents( '/var/log/transaction.log'、json_encode($ log)。php_eol、file_append);
</code>

上記の例に示すように、後続のパフォーマンス追跡と監視のために標準化されたトランザクションログを記録します。

要約します

getTimeOfDay()は、トランザクション処理、パフォーマンス分析、ロギングの監視に適した高精度時間獲得方法を提供します。合理的なカプセル化と使用を通じて、重要なトランザクションを処理する際に、PHPプログラムをより制御可能かつ信頼性を高めることができます。データベース操作やAPI呼び出しなどのシナリオを組み合わせて、 GetTimeOfday()は不可欠なツールです。