Ceci montrera combien de secondes: Ceci montrera combien de tiques: p> Comment puis-je obtenir des millisecondes? < / p> p>
6 Réponses :
Si vous utilisez un système d'exploitation UNIX, comme Linux ou Mac OS X , vous pouvez aller à la ligne de commande et utilisez la ligne la commande temporelle de temps combien de temps l'exécution de toute ligne de commande prend et indique à vous. p> Je ne fais pas savoir s'il y a quelque chose comme ça pour Windows, ni comment vous pouvez mesurer les milisecondes à l'intérieur d'un programme C / C ++, cependant. P> P>
Voir la question " convertir la différence entre 2 fois en millisecondes " sur le débordement de la pile.
ou utilisez ceci: p>
Pourquoi utilisez-vous (horlogs_per_sec / 1000)? N'est-ce pas horlogs_per_sec est 1000, alors horlocs_per_sec / 1000 = 1, et il n'a pas de sens pour diviser par 1.
Ce lien va à une réponse pour le langage de programmation code> C # CODE> C #.
Il y a un Il existe des API spécifiques à O / S pour obtenir des minuteries haute résolution. P>
Vous pouvez exécuter votre programme plus d'une fois (par exemple, 1000 fois) et mesurer cela à l'aide d'une minuterie à basse résolution (par exemple, un nombre de secondes), puis diviser ce total par le nombre de fois que vous avez rencontrés pour obtenir un (résolution plus haute) temps moyen. P> clocks_per_sec code> macro pour vous aider à convertir des ticks en millisecondes. P>
sous Windows, vous pouvez utiliser gettickcount a>, qui est en millisecondes. p>
"La résolution de la fonction gettickcount est limitée à la résolution de la minuterie système, qui se situe généralement dans la gamme de 10 millisecondes à 16 millisecondes."
@Chrisw: Il n'y avait aucune spécification que la résolution devrait être plus élevée.
Vous avez raison; Je viens d'avertir que l'OP que, bien que gettickcount code> renvoie une valeur mesurée en millisecondes, ce n'est pas précis au milliseconde près: il est plutôt précis au "tick" le plus proche qui a déjà eu ce qu'il avait déjà (et essayait de s'éloigner de) dans son op.
Sous Win32, vous pouvez accéder à la minuterie haute résolution en utilisant QueryPerformanceFréquence et QueryPerformCouvernter A> (IMHO qui devrait être préféré, éventuellement avec la relèvement sur gettickcount code>). Vous pouvez trouver l'exemple de la section Contenu de la communauté sur MSDN. P>
Cela montrera combien de tiques: p>
#include <stdio.h> #include <time.h> #include <windows.h> int main() { unsigned long x = clock(); Sleep(1000); printf("Difference: %d", clock() - x); }