我对C ++很陌生,我需要以毫秒为单位打印程序的执行时间(4位数)(X.XXX) - 我试着用
double start_s=clock();
// my program here
double stop_s=clock();
cout << "time: " << (stop_s) << endl;
我得到了0。
我究竟做错了什么?
顺便说一句,我正在使用(并且必须使用,大学项目)VS2010,所以chrono不是一个选项。
答案 0 :(得分:12)
使用std::chrono::high_resolution_clock
标题中的chrono
。
auto started = std::chrono::high_resolution_clock::now();
DoWork();
auto done = std::chrono::high_resolution_clock::now();
std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(done-started).count();
如果您愿意,也可以投放到std::chrono::seconds
或std::chrono::nanoseconds
。
这是使用chrono
衡量执行时间的tutorial。
编辑:如果您的编译器不支持chrono
,那么获取更新的,请在源代码中查看src/ptimer.c
wget
。它适用于Windows和Linux,并使用本机API。