c++实现时钟来测量执行时间

标签 c++ timer

我用 C++ 编写了一个程序,我正在尝试测量完全执行所需的时间

int main (int argc, char**argv){
    clock_t tStart = clock();
    //doing my program's work here
    printf("Time taken: %.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);
    return 0;
}

我的问题是它总是打印出 0.00 秒的执行时间。这可能是因为在我的程序中使用了多个 pthread(我的程序使用 pthread_join 来确保所有线程都已完成执行,所以我认为这应该不是问题)?

编辑://做程序的工作=...

for(i = 0;i<4;i++){
    err = pthread_create(&threads[i], NULL, print, NULL); 
    pthread_join(threads[i], NULL);
}

void *print(void *data){
    printf("hello world");
}

最佳答案

printf("Time taken: %.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);

所有三个算术操作数都是整数,因此您执行整数除法并得到 0

/ 符号的 LHS 或 RHS 转换为浮点类型。并多次运行您的代码!如果您的基准测试仅测量一次运行(这很明显,因为您得到的是 0,而不是 1 或类似 300 之类的东西,那么您的基准测试是无用的) .

关于c++实现时钟来测量执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29080731/

相关文章:

c++ - 为什么这个程序(有时)会失败?

c++ - 为什么按值返回的未命名对象在调用其转换运算符之前会被破坏?

javascript - 当时钟到达 '0' 时停止 JavaScript 定时器

java - 让scheduleAtFixedRate接受小时而不是毫秒?

java - 尝试创建进度条

c++ - 在函数中访问像数组 [] 这样的 vector

c++ - 目录结构 - 文件和文件夹类应该相互了解吗?

c++ - 在 Release模式下,代码行为不如预期

sockets - 电子邮件中的倒计时器图像 GIF

javascript - 当计时器结束时replaceWith