Sous Windows, il existe des fonctions pratiques comme QueryPerformanceCounter
de mmsystem.h
pour créer une minuterie haute résolution. Existe-t-il quelque chose de similaire pour Linux?
Cela a été demandé avant ici - mais fondamentalement, il existe une fonction boost ptime que vous pouvez utiliser, ou une fonction POSIX clock_gettime () qui peut essentiellement servir le même objectif.
Pour Linux (et BSD), vous souhaitez 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: Cette réponse pour plus d'informations
Voici un lien décrivant comment effectuer un chronométrage haute résolution sous Linux et Windows ... et non, n'utilisez pas RTSC.
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
Je n'ai que ce lien: http://www.mjmwired.net/kernel/Documentation/rtc.txt
Je suis sûr que RTC est ce que vous recherchez cependant.
[~ # ~] modifier [~ # ~]
D'autres réponses semblent plus portables que les miennes.
Pour mon argent, il n'y a pas de temporisateur multiplateforme plus facile à utiliser que la classe QTime de Qt.