Domanda

Quindi so che l'orologio () misura cicli di clock, e quindi non è molto buono per misurare il tempo, e so che ci sono funzioni come omp_get_wtime () per ottenere il tempo di muro, ma è frustrante per me che il muro tempo varia molto, e si chiedeva se ci fosse un modo per misurare distinti cicli di clock (solo ciclo anche se più di un thread eseguito in esso). Deve essere qualcosa di relativamente semplice / native. Grazie

È stato utile?

Soluzione

Si veda la risposta di FreeMemory questa domanda per RDTSC se la vostra utilizzando x86 che ho provato e sembra funzionare bene sul mio sistema (Mac), ma vedere la mia risposta a questa domanda . Si veda anche la critica di RDTSC qui .

Di solito non vale la pena di scendere a un livello troppo basso di dettagli, però, altri pezzi e pezzi di lavoro del computer ha bisogno di fare utilizzerà i cicli di clock, in modo che varierà a seconda del carico. Trovo omp_get_wtime() sufficienti, anche se ho bisogno di mettere il mio codice in un ciclo extra per assicurarsi che ci vuole circa un secondo per garantire risultati coerenti da corsa per l'esecuzione.

Altri suggerimenti

Sei sicuro che l'assunzione di misure di tempo non funziona per voi? Tenete a mente che si può misurare solo tante millisecondi, a seconda del sistema operativo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top