C++测试代码运行时间

方法1

头文件是time.h
C++中的计时函数是clock(),与其相关的数据类型是clock_t。
clock_t:保存时间的数据类型,为长整型数。
函数定义原型为: clock_t clock(void);

该函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN上称之为挂钟时间(wal-clock)。

#include <ctime>
using namespace std;
 
clock_t start = clock();
// do something...
clock_t end   = clock();
cout << "花费了" << (double)(end - start) / CLOCKS_PER_SEC << "秒" << endl;

方法2

采用c++11标准,编译器需要支持c++11

#include <chrono>   
using namespace std;
using namespace chrono;
 
auto start = system_clock::now();
// do something...
auto end   = system_clock::now();
auto duration = duration_cast<microseconds>(end - start);
cout <<  "花费了" 
     << double(duration.count()) * microseconds::period::num / microseconds::period::den 
     << "秒" << endl;

此方法可以精确到微秒,输出样例:花费了0.123456秒

关键词 auto 是一个“自动类型”,可以理解成“万能类型”.
system_clock 是 C++11 提供的一个 clock。除此之外,还有两个clock:steady_clock 和 high_resolution_clock
now( ) 表示计时的那“一瞬间”
duration_cast< > 表示类型转换
microseconds 表示微秒。除此之外,还有五种时间单位:hours, minutes, seconds, milliseconds, nanoseconds
num 和 den分别表示分子(numerator)和分母(denominator)。在代码中,num等于1, den等于1,000,000
count( ) 用来返回时间

参考

1.CSDN: C++ 学习系列(一)测试程序运行时间—clock()
2.CSDN: C++11 新的计时方法——std::chrono 大法好

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容