Aktueller Standort: Startseite> Neueste Artikel> Zeitüberwachung der Transaktionsverarbeitung mit GetTimeofday

Zeitüberwachung der Transaktionsverarbeitung mit GetTimeofday

gitbox 2025-05-29

In der Leistungsoptimierung und des Transaktionsmanagements ist die genaue Messung der Ausführungszeit eines Code -Stücks eine sehr kritische Verbindung. Obwohl Funktionen wie microtime () in PHP bereitgestellt werden, um Zeitstempel zu erhalten, ist die Funktion GetTimeofday () eine sehr praktische Wahl.

Was ist GetTimeofday?

GetTimeOfday () ist eine Funktion, die von PHP bereitgestellt wird, die ein Array mit der aktuellen Zeit zurückgibt, die zwei Hauptelemente enthält:

  • Sec : Die aktuelle Anzahl der Sekunden (ab der Unix -Ära, 1. Januar 1970)

  • USEC : Die aktuelle Anzahl der Mikrosekunden (eine Millionstel einer Sekunde)

Es kann eine schwimmende Punktzahl zurückgeben, indem der wahre Parameter in Sekunden weitergegeben wird, was besonders für die Berechnung der Zeitdifferenz geeignet ist.

Szenario verwenden: Überwachen Sie die Transaktionsverarbeitungszeit

Bei der Bearbeitung von Datenbanktransaktionen, API -Anforderungen oder anderen Vorgängen, die eine präzise Zeitregelung erfordern, können GetTimeOfday () verwendet werden, um die Start- und Endzeiten aufzuzeichnen, wodurch die Ausführungszeit berechnet wird.

Angenommen, wir haben eine Bestellung, Transaktionen in einem E-Commerce-System zu verarbeiten, und wir möchten den zeitaufwändigen Prozess der gesamten Transaktion kennen, kann der Code wie folgt geschrieben werden:

<Code> Funktion get_microtime () {$ t = getTimeofday (); return $ t ['sec'] + $ t ['usec'] / 1e6; }

// Starttransaktion simulieren
$ start = get_microtime ();

// Transaktionsverarbeitung simulieren
$ conn = new PDO ('MySQL: host = localhost; dbname = test', 'user', 'password');
$ conn-> begintransaction ();

versuchen {
$ conn-> exec ("In Bestellungen einfügen (user_id, Menge) Werte (1, 199.99)");
$ conn-> exec ("Inventar Set set Stock = Stock - 1 wobei product_id = 10");
$ conn-> commit ();
} catch (Ausnahme $ e) {
$ conn-> rollback ();
Echo "Transaktion fehlgeschlagen:". $ e-> getMessage ();
}

// Ende der Transaktion
$ end = get_microtime ();
$ duration = $ end - $ start;

echo "Transaktionszeit genommen: {$ Dauer} Sekunden";
</code>

Im obigen Code verwenden wir die Methode get_microtime () , um den mikrosekundenigen Zeitstempel vor und nach der Transaktion zu erhalten. Durch die Berechnung der Differenz zwischen den beiden können wir die Verarbeitungszeit der vollständigen Transaktion erhalten.

Der Unterschied von Mikrotime

Obwohl Microtime (TRUE) auch einen Zeitstempel einer schwimmenden Punktnummer zurückgeben kann, bietet GetTimeOfday () eine zugrunde liegende System -Call -Schnittstelle, die eine detailliertere Anzeige der Zeitinformationen beim Debuggen erleichtert. In einigen Anwendungen, die eine detaillierte Zeitprotokollierung erfordern, ist beispielsweise die ursprüngliche Array -Form von GetTimeOfday () einfacher für das Erstellen von JSON -Protokollen oder die Ausgabe von Zeitstempelformatoren zu verwenden.

Protokollierung Vorschläge

In einem realen Geschäftssystem müssen wir nicht nur Zeit anzeigen, sondern auch protokollieren, z. B. in einer Datenbank oder einem Protokollsystem:

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

Datei_put_Contents ('/var/log/transaction.log', json_encode ($ log). PHP_EOL, Datei_Append);
</code>

Wie im obigen Beispiel gezeigt, zeichnen wir ein standardisiertes Transaktionsprotokoll für die nachfolgende Leistungsverfolgung und -überwachung auf.

Zusammenfassen

GetTimeOfday () bietet eine hochpräzisen Zeitaufnahmemethode, die für die Überwachung der Transaktionsverarbeitung, der Leistungsanalyse und der Protokollierung geeignet ist. Durch eine angemessene Einkapselung und Verwendung können Ihre PHP -Programme beim Umgang mit kritischen Transaktionen kontrollierbarer und zuverlässiger gemacht werden. GetTimeofday () kombiniert Szenarien wie Datenbankvorgänge und API -Aufrufe und ist ein unverzichtbares Tool.