C++ 多线程计时的bug,千万别用clock()
来源:互联网 发布:网络摄像头ip破解软件 编辑:程序博客网 时间:2024/04/28 04:15
最近在做多线程编程,没有那么牛的使用pthread直接多线程,是对当前的算法进行优化,所以尝试了一下openmp和intel的tbb,结果发现都比原来还慢,由此引发了持续三天的debug.....
最后在使用tbb的时候发现tbb有一个自带的计时函数,调用了一下,发现比clock()函数出来的时间要快好多,上stackoverflow,,,果然有bug。
clock()
measure the CPU time used by your process, not the wall-clock time. When you have multiple threads running simultaneously, you can obviously burn through CPU time much faster.
clock()函数测量的是处理器的CPU时间,而不是实际的时间或者时钟,当开启多线程的时候,就会发现实际的时间比CPU的时间快多了。
使用了其他的计时函数之后,发现果然程序快了好多倍,再用openMP也快好多倍,,,,我还以为我用错了呢。。。
参考其他博客
clock()函数的功能: 这个函数返回从“开启这个程序进程”到“程序中调用C++ clock()函数”时之间的CPU时钟计时单元(clock tick)数当程序单线程或者单核心机器运行时,这种时间的统计方法是正确的。但是如果要执行的代码多个线程并发执行时就会出问题,因为最终end-begin将会是多个核心总共执行的时钟嘀嗒数,因此造成时间偏大。
0 1
- C++ 多线程计时的bug,千万别用clock()
- clock、GetTickCount的计时
- C语言计时函数clock()
- C语言函数clock ,比秒更精确的计时
- 千万别用MongoDB?真的吗?!
- 千万别用MongoDB?真的吗?!
- 千万别用MongoDB?真的吗?!
- 这几种人千万别用
- 千万别用MongoDB?
- C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。
- 骗人的千万别下
- 谈恋爱时这样的杀手锏可千万别用
- 千万别用模板给的list.size()巨坑
- c: stringtoken_s分词函数 ,strftime时间函数,clock计时函数
- 关于clock()函数计时
- 关于clock()函数计时
- C++ 关于计时clock()
- 计时函数clock()
- wordpress建站日记(一)
- C语言的一个语法糖
- 表格table
- 价值评价系统的由来
- 习题 10-23 UVA - 10479 The Hendrie Sequence
- C++ 多线程计时的bug,千万别用clock()
- (Linux上)nginx搭建rtmp协议流媒体服务器
- MMDrawerController 与 StoryBoard 构建和谐抽屉效果
- P1063 数字串
- Activity生命周期
- Silicon Lab Ember zigbee学习杂谈----simulated eeprom
- 窗口右下角消息弹出框
- linux epoll事件模型详解
- 查看jar文件 的源码