Fonction Timer en C pour une précision en nanoseconde
Lors de la synchronisation de l'exécution d'une fonction API en C, la fonction clock() intégrée calcule initialement le temps écoulé en secondes. Pour obtenir des mesures plus précises en nanosecondes, nous devons approfondir les mécanismes de chronométrage spécifiques à la plate-forme.
Linux et BSD
Pour les systèmes d'exploitation Linux et BSD, clock_gettime() est le recommandé méthode :
#include <sys/time.h> int main() { timespec ts; // For Linux, use: clock_gettime(CLOCK_REALTIME, &ts); // For FreeBSD, use: clock_gettime(CLOCK_MONOTONIC, &ts); }
Windows
Windows propose la fonction QueryPerformanceCounter :
#include <windows.h> int main() { LARGE_INTEGER ts; QueryPerformanceCounter(&ts); }
Considérations sur la précision et l'exactitude
Bien que QueryPerformanceCounter offre une résolution plus élevée, il présente certains limitations :
Windows 7 et versions ultérieures Les versions tentent de résoudre ces problèmes en détectant les processeurs avec un TSC (Time Stamp Counter) invariant et en utilisant des minuteries externes lorsque nécessaire.
Ressources supplémentaires
Pour plus d'informations et de dépannage, reportez-vous à ces ressources supplémentaires articles :
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!