作者: theset
一样平凡巨大写测试措施的时分常常要计算措施执行的时辰,尤其是近来训练Intel多核编程时,需求判断翻开openmp参数与否的执行时辰的对比。
平凡代码是如许写的:
#include
clock_t start, stop;
....
start = clock();
do_something();
stop = clock();
printf("%f", (double)(stop-start)/1000.0) ;
.....
大概是求以后时辰的秒值:
double t = (double) clock()/1000.0;
但是如许的代码在Windows平台下是正确的(固然会如许写也是因为上Intel培训课时,例程都是这么写的),而到了Linux平台下,这个措施就错了,会发明时辰一下多了1000倍。
究竟上,clock_t的值转换为秒应该是除以CLOCKS_PER_SEC这个宏,而这个宏在Windows平台下是1000,而到了Linux平台下便是1000000了。
因此措施正确的写法是:
#include
clock_t start, stop;
....
start = clock();
do_something();
stop = clock();
printf("%f", (double)(stop-start)/(double)CLOCKS_PER_SEC) ;
.....
如许才干担保措施在跨平台移植时的正确性。
版权声明:
原创作品,批准转载,转载时请务必以超链接情势标明文章 原始因由 、作者信息和本声明。不然将追查执法责任。