"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Allez le temps et ses deux horloges

Allez le temps et ses deux horloges

Publié le 2024-11-18
Parcourir:416

Go time and its two clocks

Pour calculer le time lapse dans Go, vous pouvez utiliser

start := time.Now()
// long time consuming task
duration := time.Since(start)

Mais savez-vous que le package time de Go contient en fait deux heures, et time.Since() ne mesure en fait que le temps de traitement (horloge monotone), pas le temps réel (horloge murale) ?

Par exemple, si la tâche est assez longue, dure toute la nuit et que votre ordinateur s'est mis en veille. Puis le matin, vous pourrez venir constater que la durée ne dure que 4 heures alors qu'au total 10 heures se sont écoulées.

Le package de temps dans Go indique que

Les systèmes d'exploitation fournissent à la fois une « horloge murale », qui est sujette à des changements pour la synchronisation de l'horloge, et une « horloge monotone », qui ne l'est pas. La règle générale est que l’horloge murale sert à indiquer l’heure et l’horloge monotone à mesurer le temps.

Ce que cela vous dit vraiment dans notre exemple ci-dessus, c'est que votre programme a fonctionné activement pendant 4 heures, mais que l'ordinateur dort 6 heures, donc au total vous avez attendu 10 heures. Si l'ordinateur n'avait pas dormi, cela aurait été fait en 4 heures.

Alors que faire si vous souhaitez mesurer le temps passé au mur ? Vous pouvez utiliser la fonction Round(0). t = t.Round(0) supprimera l'horloge monotone en t.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/jingshao_chen_02a2352f476/go-time-and-its-two-clocks-3p0p?1 En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3