In C++ per Linux, sto provando a fare qualcosa ogni microsecondo/nanosecondo e sto attualmente utilizzando la funzione nanosleep qui sotto. Funziona, tuttavia se il codice viene ripetuto milioni di volte, questo diventa costoso. Sto cercando un timer ad alta risoluzione che consenta un timing molto preciso (l'applicazione è audio/video). Qualche idea?Cercare un timer ad alta risoluzione
struct timespec req = {0};
req.tv_sec = 0;
req.tv_nsec = 1000000000L/value;
for(long i = 0; i < done; i++)
{
printf("Hello world");
nanosleep(&req, (struct timespec *)NULL);
}
Qualcosa non va con ''? –
chris
Se la tua CPU ha un clock a 4 GHz, hai 4 cicli di clock in un nanosecondo. Non puoi fare molto ogni nanosecondo, anche a quella velocità. –
Di che tipo di linux e processore stiamo parlando? Per i sistemi non in tempo reale, qualsiasi valore superiore alla precisione ms è già abbastanza ambizioso. La precisione dei microsecondi (per non parlare dei nanosecondi) è qualcosa su cui non ci si aspetterebbe nemmeno la maggior parte dei sistemi in tempo reale. – MikeMB