J'ai un programme en C qui a pour but d'être exécuté en parallèle sur plusieurs processeurs. Je dois être en mesure d'enregistrer le temps d'exécution (qui peut aller de 1 seconde à plusieurs minutes). J'ai cherché des réponses, mais elles semblent toutes suggérer d'utiliser la fonction clock()
qui consiste alors à calculer le nombre d'horloges qu'a pris le programme divisé par le nombre d'heures d'utilisation de la fonction Clocks_per_second
valeur.
Je ne suis pas sûr de savoir comment le Clocks_per_second
est calculée ?
En Java, je prends simplement le temps actuel en millisecondes avant et après l'exécution.
Existe-t-il une chose similaire en C ? J'ai regardé, mais je n'arrive pas à trouver un moyen d'obtenir quelque chose de mieux qu'une seconde résolution.
Je suis également conscient qu'un profileur serait une option, mais je cherche à mettre en œuvre une minuterie moi-même.
Gracias
4 votes
Quels sont les cadres OS/API que vous utilisez/disponibles ? Simplement du C ?
6 votes
Il s'agit d'un programme assez petit, juste un simple C
2 votes
J'ai écrit en détail sur la mise en œuvre d'une solution portable dans cette réponse : stackoverflow.com/questions/361363/
1 votes
Temps nécessaire à l'exécution d'une fonction complète stackoverflow.com/a/40380118/6180077