2015-08-28 88 views
3

我正在编写一个在Ubuntu上运行的C++代码。我也使用pthreads。我正在做一个算法性能领域的研究。什么是估算C++代码时间性能的最准确方法

我有这个算法,我已经改进了,它可以运行6〜10个小时。但是我正在采取的时间测量也包括非常微小的事情,比如在ms中。

此外,我运行它的计算机也运行其他进程,所以如何确保测量的时间不包括其他进程的时间处理。

回答

4

没有一个“最准确的方法”。与任何测量一样,您将必须先定义要测量的内容。如果您只是想测量执行时间,重复执行相同的任务并停止时间是适当的。

如果您想测量CPU(s)实际上忙于执行任务的时间,那么top可能是您感兴趣的程序。

如果您需要知道在子程序中需要花多少时间,linux-utils软件包将包含perf,它可以测量单个呼叫时间。

通常,非CPU等待时间主导运行时。例如,当你在等待网络输入或硬盘数据时,仅测量CPU花费的时间是没有意义的。

所以:你的问题实际上是一个问题:你想测量什么? “算法性能”表明你在做计算机科学,在这种情况下,你应该可以访问大量的文献来解释可能感兴趣的内容。对于“什么是最准确的测量”这个问题没有单一的“解决方案”,除非您更加密切地定义“测量”;那是你的工作,通常这是衡量事情的难度。

相关问题