【发布时间】:2021-05-30 15:42:28
【问题描述】:
我正在使用 chrono 库。我的代码如下:
auto begin = chrono::high_resolution_clock::now();
// operations
auto end = chrono::high_resolution_clock::now();
auto elapsed = chrono::duration_cast<chrono::nanoseconds>(end - begin);
cout<<”time: „<<elapsed.count()<<endl;
它总是显示 0。我做错了什么?
【问题讨论】:
-
也许 //operations 中的代码被优化了,因为它没有做任何有用的事情
-
使用
steady_clock进行测量。high_resolution_clock不一定是单调的。 -
您的示例代码中有错误的引号。
-
它在红黑树中搜索值,我不敢相信它这么快
-
也许优化器认为根本不需要搜索,因为您没有使用结果。相关:https://en.cppreference.com/w/cpp/language/as_if