Maison >développement back-end >C++ >Quand devriez-vous (et ne devriez-vous pas) utiliser `std::chrono::high_resolution_clock` ?

Quand devriez-vous (et ne devriez-vous pas) utiliser `std::chrono::high_resolution_clock` ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-31 10:04:17845parcourir

When Should You (and Shouldn't You) Use `std::chrono::high_resolution_clock`?

Exploration de l'utilité de std::chrono::high_resolution_clock

Bien qu'initialement considérée comme adaptée aux mesures de performances, l'utilisation de std:: chrono::high_resolution_clock soulève des inquiétudes en raison d'ajustements potentiels de l'horloge et de l'incapacité de convertir en heure du calendrier. Cela laisse la question de ses applications pratiques.

Examen des utilisations possibles

  • Mesures de performance : La nature instable de high_resolution_clock rend l'intervalle de temps mesures peu fiables.
  • Récupération du réel Heure :L'absence de méthode to_time_t exclut l'acquisition de l'heure du calendrier.

Conclusion : un objectif insaisissable

Après avoir examiné les limites de high_resolution_clock , il devient évident qu’il manque d’utilité substantielle. Son utilisation doit être évitée au profit du steady_clock, plus fiable.

Exceptions à l'évitement

Bien que généralement déconseillée, il existe des situations spécifiques dans lesquelles high_resolution_clock peut être appropriée :

  • Sur les plateformes où high_resolution_clock est implémenté en tant qu'alias steady_clock, comme libc ou VS.
  • Situations dans lesquelles une troncature vers zéro est souhaitée, obtenue en utilisant explicitement duration_cast.
  • Instances dans lesquelles les conversions implicites ne peuvent pas être appliquées.

Cependant, ces exceptions devraient être considéré avec prudence et des approches alternatives explorées chaque fois que possible.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn