作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在努力熟悉 chrono 以评估性能。我有一个全局变量,它收集从文件中插入单词到字符串 vector 的时间。如果我插入了 n 个字符串,我如何将该时间除以 n 以获得平均时间并将其转换为秒、微秒、毫秒?我找到了如何将计时时间除以另一个计时时间,但找不到如何除以给定数字 n 的方法。这是我尝试过的:
//global var
auto InsertionTimerChainingHT = std::chrono::system_clock::now();
//... function declerations
// inside function where I insert strings to vector
auto total = std::chrono::system_clock::now();
for (auto it = DataArray.begin(); it != DataArray.end(); it++)
{
auto start = std::chrono::system_clock::now();
ChainingHT.insert(it->data());
auto stop = std::chrono::system_clock::now();
total += (stop - start);
}
InsertionTimerChainingHT = total;
// I attempted to do the following
InsertionTimerChainingHT /= 1853;
InsertionTimerChainingHT = (InsertionTimerChainingHT / 1853).count();
最佳答案
将您的总计
存储为chrono::duration
,而不是chrono::time_point
。 system_clock::now()
的返回是一个time_point
(一个瞬间)。 stop
和 start
之间的区别是 duration
(例如 3 微秒)。
例如:
auto total = std::chrono::system_clock::duration{0}; // zero system_clock ticks
duration
可以除以标量,得到 duration
:
total /= DataArray.size();
关于c++ - 如何将时间 (chrono) 除以给定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550347/
我是一名优秀的程序员,十分优秀!