如何将时间(计时)除以给定值

时间:2018-11-30 02:25:17

标签: c++ time chrono

我正在努力熟悉chrono以评估性能。我有一个全局变量,它在其中收集将时间从文件插入单词到字符串向量的时间。如果我插入了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();

1 个答案:

答案 0 :(得分:2)

将您的total存储为chrono::duration,而不是chrono::time_pointsystem_clock::now()的返回为time_point(时间点)。 stopstart之间的差是duration(例如3微秒)。

例如:

auto total = std::chrono::system_clock::duration{0};  // zero system_clock ticks

duration可以除以标量,得到duration

total /= DataArray.size();