c++ - 使用 boost::chrono 计算执行时间

标签 c++ boost type-conversion global-variables

我试图计算循环中函数执行时间的总和,但出了点问题:

#include <boost/chrono.hpp>
#include <iostream>

boost::chrono::milliseconds sumGlobal;

int main() {
    boost::chrono::high_resolution_clock::time_point t1 ;
    boost::chrono::high_resolution_clock::time_point t2 ;

    for (i=0;i<10;i++)
    { 
        t1 = boost::chrono::high_resolution_clock::now();
        f(); //to waste time   
        t2 = boost::chrono::high_resolution_clock::now();
        sumGlobal += (boost::chrono::duration_cast<boost::chrono::milliseconds>(t2-t1)).sumGlobal; 
    }          

    std::cout << sumGlobal << "\n";        
}

错误是:

error: 'struct boost::chrono::duration<long int, boost::ratio<1l, 1000l> >' has no member named 'sumGlobal'

有什么解决办法吗?我认为分配给 sumGlobal 的类型应该更改。

最佳答案

boost::chrono::milliseconds 不会返回带有 sumGlobal 数据成员的内容。摆脱它。

sumGlobal += (boost::chrono::duration_cast<boost::chrono::milliseconds>(t2-t1)); 

关于c++ - 使用 boost::chrono 计算执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30909811/

相关文章:

python - 如何快速将 '001100' 之类的字符串转换为 numpy.array([0,0,1,1,0,0])?

c++ - Linux API 列出正在运行的进程?

python 的 C++ 库 - 链接问题

c++ - 如何用OpenCV绘制圆角矩形(带圆角的矩形)?

c++ - C++中程序执行时带cout和不带cout的时间差

c++ - boost async_* 函数和 shared_ptr 的

c++ - 转换构造函数

c++ - 播放 .wav 文件

c++ - 防止构造函数参数隐式转换为外部库类型

java - 将十六进制字符串转换为字节数组以进行 RSA 解密