TC++PL中的一个练习要求:
很可惜,他从不解释如何衡量这些事情。我不确定我是否想要编写简单的“时间开始,时间结束”计数器,还是有更有效和实用的方法?编写一个函数,该函数返回一个值或根据参数抛出该值。测量两种方式之间的运行时差异。
答案 0 :(得分:5)
对于每个功能,
并比较结果。这与性能测量一样实用。
答案 1 :(得分:3)
考虑使用boost.timer,它就像它一样简单。
#include <iostream>
#include <boost/timer.hpp>
boost::timer timer;
for (int i = 0; i < 100000; ++i) {
// ... whatever you want to measure
}
std::cout << timer.elapsed() << " seconds.\n";
答案 2 :(得分:1)
他没有解释,因为这是锻炼的一部分。
如果认真的话,我相信你应该写一些简单的“时间开始,时间结束”和内部的大循环。
答案 3 :(得分:1)
唯一重要的衡量标准是挂钟时间。不要让别人欺骗你相信其他任何东西。如果您不相信,请阅读 Lean Thinking 。
答案 4 :(得分:0)
最简单的方法是在运行之前和之后获得系统时间。如果没有提供足够的分辨率,你可以查看一些更高分辨率的系统定时器。
如果您需要更多详细信息,可以使用点跟踪等商业产品:http://www.jetbrains.com/profiler/