2010-06-13 2 views
2

J'ai besoin d'une fonction ou d'un moyen pour obtenir l'époque UNIX en quelques secondes, un peu comme je peux en PHP en utilisant la fonction temps.C++: Comment devrais-je obtenir le temps d'unix?

Je ne peux trouver aucune méthode, sauf le temps() dans ctime qui semble sortie uniquement une fonction date formatée, ou l'horloge() qui a secondes, mais semble toujours être un multiple de 1 million, rien de tout résolution.

Je souhaite mesurer le temps d'exécution dans un programme, je voulais juste calculer la différence entre le début et la fin; Comment un programmeur C++ ferait-il cela?

EDIT: time() et difftime permettent uniquement la résolution par secondes, pas ms ou quoi que ce soit d'autre.

+1

Voulez-vous quelque chose de mieux que la seconde précision, mais mesurée en secondes? –

Répondre

2

Si vous voulez obtenir le profil, je vous recommande d'utiliser getrusage. Cela vous permettra de suivre le temps CPU au lieu de l'heure de l'horloge murale:

struct rusage ru; 
getrusage(RUSAGE_SELF, &ru); 

ru.ru_utime.tv_sec; // seconds of user CPU time 
ru.ru_utime.tv_usec; // microseconds of user CPU time 
ru.ru_stime.tv_sec; // seconds of system CPU time 
ru.ru_stime.tv_usec; // microseconds of system CPU time 
Questions connexes