Präzise Messung der Zeitdauer in Go
Während die meisten Anwendungen das Standardzeitpaket zur Messung der Zeitdauer verwenden, ist es wichtig, dessen Einschränkungen zu berücksichtigen genaue Ergebnisse erhalten. time.Now() verlässt sich auf die Systemzeit, die durch Zeitzonenänderungen und Uhrensynchronisation mit NTP-Servern beeinflusst werden kann.
Um diese Herausforderungen zu meistern, stellt Go eine „monotone Uhr“ bereit, die von externer Zeit nicht beeinflusst wird Anpassungen. Ab Go 1.9 nutzen die Dauern in Go automatisch diese monotone Uhr.
Das bedeutet, dass der folgende Code immer eine positive verstrichene Zeit von etwa 20 Millisekunden berechnet, auch wenn sich die Wanduhr während des zeitgesteuerten Vorgangs ändert:
start := time.Now() ... operation that takes 20 milliseconds ... t := time.Now() elapsed := t.Sub(start)
Andere Redewendungen wie time.Since(start), time.Until(deadline) und time.Now().Before(deadline) sind auch resistent gegen Zurücksetzen der Wanduhr.
Um die Ausführungszeit in Go genau zu messen, verwenden Sie daher einfach time.Now() und time.Sub() des Zeitpakets Funktionen. Diese Funktionen stellen nun sicher, dass die Messungen der verstrichenen Zeit konsistent sind und nicht von Anpassungen der Systemuhr beeinflusst werden.
Das obige ist der detaillierte Inhalt vonWie kann ich die Ausführungszeit in Go genau messen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!