Mesurer avec précision la durée du temps dans Go
Contexte :
Méthodes traditionnelles de mesure de la durée du temps l'utilisation du package horaire peut être inexacte en raison d'ajustements de l'heure du système, tels que des changements de fuseau horaire ou des secondes intercalaires. Ces ajustements peuvent affecter la précision des mesures du temps en fonction de time.Now().
Horloges monotones :
Go résout ce problème en utilisant des horloges monotones, qui ne sont pas sous réserve de tels ajustements. À partir de Go 1.9, Go fournit une horloge monotone pour mesurer les durées. Cela garantit que les mesures du temps écoulé sont cohérentes et précises, même si l'heure du système change.
Exemple :
start := time.Now() ... operation that takes 20 milliseconds ... t := time.Now() elapsed := t.Sub(start)
Dans cet exemple, le temps écoulé sera toujours être d'environ 20 millisecondes, quels que soient les changements apportés à l'horloge murale pendant l'opération.
Autre Expressions idiomatiques :
Les autres opérations temporelles qui utilisent l'horloge monotone incluent :
Ces les expressions idiomatiques sont également résistantes aux réinitialisations de l'horloge murale.
Remarque :
Avant Go 1.9, l'utilisation de time.Now() pour les mesures de temps pouvait entraîner des inexactitudes. Cependant, avec l'introduction d'horloges monotones, Go fournit désormais des mesures de durée précises et fiables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!