Comment faire pour obtenir l'heure actuelle en millisecondes?
Je suis novice en C++ et je ne sais pas beaucoup au sujet de sa bibliothèque. J'ai besoin de faire de temps à l'analyse de différents algorithmes de tri, pour laquelle j'ai besoin pour obtenir l'heure actuelle dans millisecondes. Est-il possible de faire cela?
regarder dans std::chrono
Pour l'analyse des algorithmes de tri, millisecondes peuvent ne pas être assez faible résolution, et "temps actuel" n'est pas vraiment ce que vous avez besoin de toute façon. Vous souhaitez relative de temps qu'il faut pour effectuer une tâche.
Grâce gsamaras pour la solution, juste un petit doute, comme quelqu'un au-dessus dans les commentaires mentionné que l'heure actuelle est un temps relatif, en java heure actuelle est calculée à partir de minuit 1sr Jan 1970, high_resolution_clock::fonction now() retourne le temps par rapport à ce qui temps?
vous êtes les bienvenus! Votre question bonne. Comme pour la question posée maintenant, voir mon edit, de l'époque (εποχή) est le même dans les c++ ainsi:
Double Possible de Comment imprimer heure actuelle (avec millisecondes) à l'aide de C++ / C++11
Pour l'analyse des algorithmes de tri, millisecondes peuvent ne pas être assez faible résolution, et "temps actuel" n'est pas vraiment ce que vous avez besoin de toute façon. Vous souhaitez relative de temps qu'il faut pour effectuer une tâche.
std::chrono::high_resolution_clock
est probablement ce que vous voulez.Grâce gsamaras pour la solution, juste un petit doute, comme quelqu'un au-dessus dans les commentaires mentionné que l'heure actuelle est un temps relatif, en java heure actuelle est calculée à partir de minuit 1sr Jan 1970, high_resolution_clock::fonction now() retourne le temps par rapport à ce qui temps?
vous êtes les bienvenus! Votre question bonne. Comme pour la question posée maintenant, voir mon edit, de l'époque (εποχή) est le même dans les c++ ainsi:
Thu Jan 01 01:00:01 1970
.Double Possible de Comment imprimer heure actuelle (avec millisecondes) à l'aide de C++ / C++11
OriginalL'auteur Yasir Mustafa | 2016-12-10
Vous devez vous connecter pour publier un commentaire.
Simplement utiliser std::chrono. Le grand exemple ci-dessous fois la tâche d'impression de 1000 étoiles":
Au lieu d'imprimer les étoiles, vous allez placer votre algorithme de tri là et le temps de mesure.
N'oubliez pas d'activer les options d'optimisation pour votre compilateur, si vous avez l'intention de faire quelques benchmarking, par exemple pour g++, vous avez besoin
-O3
. C'est sérieux, vérifier ce qui s'est passé pour moi quand je n'avais pas le faire: Pourquoi emplace_back est plus rapide que push_back?Ps: Si votre compilateur ne supporte pas c++11, alors vous pourriez envisager d'autres méthodes, dans mon Des Mesures De Temps (C++).
Spécifique (jouet), par exemple, à l'aide de mon Quicksort (C++), serait:
et la sortie est maintenant:
C'est aussi simple que cela. Heureux de benchmarking! =)
EDIT:
De std::chrono:
où on a pu vérifier cette époque et time_point exemple, sorties:
Vous pouvez simplifier votre premier bloc de code par l'attribution d'une double-fonction-de la milliseconde sans cast explicite:
duration<double, std::milli> time_span = t2 - t1;
. Et puis vous pouvez imprimer ce avec pas de manuel de conversion en millisecondes:<< time_span.count() << " milliseconds."
. Vous pouvez également déposer l'expliciteduration_cast
dans votre deuxième exemple. D'autres conseils pour écrire plus fiablechrono
code ici: youtube.com/watch?v=P32hvk8b13Mconseils cool dans votre commentaire et la vidéo! Je vous remercie. J'ai mis à jour ma réponse, j'espère que vous aimez maintenant. =)
Très sympa! Je l'ai aimé avant, mais maintenant c'est encore mieux. 🙂
OriginalL'auteur gsamaras