È possibile misurare la risoluzione della chiamata std::clock()
? O si tratta di un problema in cui l'osservazione senza influenzare non è possibile?Misurazione della risoluzione di `std :: clock()`
ho scritto il seguente parametro di riferimento ingenuo:
#include <ctime>
#include <iostream>
int main() {
std::clock_t initial = std::clock();
std::clock_t current;
while (initial == (current = std::clock()));
std::cout << "Initial: " << initial << std::endl;
std::cout << "Current: " << current << std::endl;
std::cout << "Precision: " << (static_cast<double>(current - initial)/CLOCKS_PER_SEC) << "s" << std::endl;
}
Ho eseguito un paio di centinaia di volte ed emette sempre 0.01s
.
Le mie domande sono:
- è al di sopra di codice un buon modo per misurare la risoluzione di
clock()
? - Se no allora cosa c'è di sbagliato in esso? E come potrebbe essere migliorato?
Cosa intendi per "precisione"? Come lo misurerai senza fare riferimento a un altro orologio "corretto"? –
Si interrompe ogni volta al primo ciclo? – James
@Kerrek SB stai parafrasando la mia domanda. – StackedCrooked