Có thể đo độ phân giải của cuộc gọi std::clock()
không? Hay đây có phải là một vấn đề mà việc quan sát mà không ảnh hưởng là không thể?Đo độ phân giải của `std :: clock()`
tôi đã viết các chuẩn mực ngây thơ sau:
#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;
}
tôi đã chạy nó một vài trăm lần và nó luôn luôn kết quả đầu ra 0.01s
.
Câu hỏi của tôi là:
- là trên mã một cách tốt để đo độ phân giải của
clock()
? - Nếu không thì có gì sai với nó? Và làm thế nào nó có thể được cải thiện?
Bạn có ý nghĩa gì bởi "độ chính xác"? Làm thế nào bạn sẽ đo lường mà không đề cập đến khác, "thích hợp" đồng hồ? –
Nó có bị hỏng trên vòng lặp đầu tiên không? – James
@Kerrek SB bạn đang diễn giải câu hỏi của tôi. – StackedCrooked