6
有可能測量std::clock()
呼叫的分辨率嗎?或者這是一個問題,觀察沒有影響是不可能的?測量`std :: clock()的分辨率`
我寫了下面天真基準:
#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;
}
我已經運行了幾百倍,它總是輸出0.01s
。
我的問題是:
- 是上面的代碼來衡量的
clock()
分辨率的好辦法? - 如果沒有那麼它有什麼問題呢?怎麼能改進?
「準確性」是什麼意思?如果沒有提到另一個「適當」時鐘,你將如何衡量? –
每次在第一個循環中都會中斷嗎? – James
@Kerrek SB你正在解釋我的問題。 – StackedCrooked