Maison >développement back-end >C++ >Comment QueryPerformanceCounter peut-il obtenir un timing précis en C ?

Comment QueryPerformanceCounter peut-il obtenir un timing précis en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-15 12:50:12753parcourir

How Can QueryPerformanceCounter Achieve Precise Timing in C  ?

QueryPerformanceCounter : un guide sur la précision du timing

Pour améliorer la précision de votre classe Timer, vous avez opté pour QueryPerformanceCounter. Cependant, sa mise en œuvre peut être insaisissable.

Le nœud de QueryPerformanceCounter réside dans la structure LARGE_INTEGER, qui stocke un entier de 64 bits représentant l'horodatage en nombre. Pour déterminer la fréquence du compteur, vous utilisez QueryPerformanceFrequency et attribuez sa sortie à PCFreq, qui représente le nombre de ticks par seconde.

Ensuite, StartCounter initialise le compteur en capturant l'horodatage actuel et en l'attribuant à CounterStart. GetCounter récupère l'horodatage actuel et calcule le temps écoulé à partir de CounterStart, en divisant le résultat par PCFreq pour le convertir en secondes.

Pour une précision en microsecondes, réduisez PCFreq à sa millième partie. Vous pouvez également supprimer la division par 1 000 pour mesurer en secondes.

Le code fourni illustre l'utilisation de QueryPerformanceCounter. L'appel de StartCounter démarre le chronomètre et GetCounter renvoie le temps écoulé depuis son dernier appel.

Cette approche vous garantit un timing précis, offrant une amélioration significative par intervalles de millisecondes.

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