Czy można zmierzyć rozdzielczość połączenia std::clock()
? Czy jest to problem, w którym obserwacja bez wpływu nie jest możliwa?Pomiar rozdzielczości `std :: clock()`
napisałem następujący naiwny wartość odniesienia:
#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;
}
mam go uruchomić kilkaset razy i to zawsze wyprowadza 0.01s
.
Moje pytania są następujące:
- jest powyżej kodu dobrym sposobem pomiaru rozdzielczość
clock()
? - Jeśli nie, to co jest z nim nie tak? I jak można to poprawić?
Co masz na myśli przez "dokładność"? Jak zmierzysz to bez odwoływania się do innego "właściwego" zegara? –
Czy za każdym razem pęka w pierwszej pętli? – James
@Kerrek SB Parafrazujesz moje pytanie. – StackedCrooked