Sous Windows, il existe des fonctions pratiques telles que QueryPerformanceCounter
de mmsystem.h
pour créer un temporisateur haute résolution. Y at-il quelque chose de similaire pour Linux?Minuteur haute résolution avec C++ et Linux?
Répondre
Cela a été asked before here - mais, fondamentalement, il existe une fonction boost ptime que vous pouvez utiliser, ou une fonction POSIX clock_gettime() qui peut servir essentiellement le même but.
n » Je sais que Boost fournit une fonctionnalité de minuterie. Merci :) – okoman
Ou utilisez le [HighResTimer] (http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__High__Res__Timer.html) de [ACE] (http: //www.cs.wustl. edu/~ schmidt/ACE.html) bibliothèque. – lothar
@lothar: +1 pour le pointeur vers la librairie ACE, merci. Le lien que vous avez donné était périmé, voici un nouveau: http://www.dre.vanderbilt.edu/Doxygen/Stable/libace-doc/a00227.html –
Je n'ai que ce lien: http://www.mjmwired.net/kernel/Documentation/rtc.txt
Je suis assez sûr RTC est ce que vous cherchez bien.
EDIT
D'autres réponses semblent plus portable que le mien.
Pour Linux (et BSD), vous voulez utiliser clock_gettime().
#include <sys/time.h>
int main()
{
timespec ts;
// clock_gettime(CLOCK_MONOTONIC, &ts); // Works on FreeBSD
clock_gettime(CLOCK_REALTIME, &ts); // Works on Linux
}
Voir: This answer pour plus d'informations
clock_gettime (CLOCK_MONOTONIC, &ts); fonctionne également sous Linux.) – Maister
, vous devez être conscient de la différence entre 'CLOCK_MONOTONIC' et' CLOCK_REALTIME' - le premier a son point zéro fixé à quelque chose d'arbitraire au démarrage du système, et en tant que tel n'est utile que pour les comparaisons relatives entre deux mesures 'CLOCK_MONOTONIC' (mais n'est pas affecté par les ajustements d'horloge) – bdonlan
Voici un lien qui décrit comment faire le calendrier haute résolution sur Linux et Windows ... et non, NE PAS utiliser RTSC.
http://tdistler.com/2010/06/27/high-performance-timing-on-linux-windows
Pour mon argent, il n'y a pas plus facile à utiliser minuterie multi-plateforme que la classe de Qt QTime.
Avec C++ 11, utilisez std::chrono::high_resolution_clock
.
Exemple:
#include <iostream>
#include <chrono>
typedef std::chrono::high_resolution_clock Clock;
int main()
{
auto t1 = Clock::now();
auto t2 = Clock::now();
std::cout << "Delta t2-t1: "
<< std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count()
<< " nanoseconds" << std::endl;
}
sortie:
Delta t2-t1: 131 nanoseconds
- 1. Minuteur haute résolution dans .NET
- 2. Affichage d'une image haute résolution
- 3. API stock temps réel/haute résolution?
- 4. Comment capturer une image haute résolution sous Windows Mobile
- 5. Comment charger les images haute résolution dans Windows Mobile
- 6. Haute latence pour l'application réseau Linux
- 7. C++ Minuteur ne fonctionne pas?
- 8. Comment puis-je utiliser CreateTimerQueueTimer pour créer un temporisateur haute résolution en C#?
- 9. Obtention d'une exception de mémoire lors du chargement d'une image haute résolution avec IImagingFactory
- 10. Résolution de problèmes en C++ avec STL
- 11. classe de minuterie dans linux
- 12. Python: haute précision time.sleep
- 13. Les appels haute résolution sont-ils erronés au moment du retour de la fonction?
- 14. Comment obtenir par programme la résolution d'une fenêtre et celle du système sous Linux?
- 15. Génériques, héritage et résolution de méthode échouée du compilateur C#
- 16. Comment créer dynamiquement un document PDF haute résolution basé sur le modèle
- 17. C++ Dynamic Platform Bibliothèques; Linux et Windows
- 18. Où puis-je obtenir une version transparente haute résolution du nouveau logo .NET?
- 19. ANSI C Bluetooth API et didacticiel Linux
- 20. Liaison de minuteur d'appoint
- 21. Comment diffuser UDP avec C sous Linux?
- 22. lignes Récupération avec la plus haute valeur
- 23. Mono linux et windows
- 24. nanosleep haute utilisation du processeur?
- 25. Mojo SDK - régler un minuteur
- 26. Référence Linux pour C++?
- 27. problème obscur avec sigsetjmp sur linux avec C
- 28. Évolutivité et haute disponibilité d'une application Java autonome
- 29. Bibliothèques partagées Linux C++
- 30. Arrêt et démarrage d'un minuteur dans ASP.NET Ajax
http://stackoverflow.com/a/5524138/183120 (multi-plateforme C++ 11 minuterie haute résolution standard) – legends2k