算法时间

算法时间

我想测量算法中使用的周期数,忽略缓存未命中、I/O、中断、页面错误的延迟。理想情况下,它是运行应用程序的完美系统的周期计数,该应用程序具有无限预加载缓存、零延迟、无限带宽 I/O,并且系统上没有运行任何其他内容。

我不想通过限制正在运行的内容来做到这一点;我想减少页面丢失和中断等的计算。

我无法检测代码;我想运行一个流程并为此获得一个理想的时间。目标是在负载服务器上获得高度可重复的算法计时结果,接近 O(.) 理论复杂度。

如果这涉及对内核进行检测或专门化,我没问题;或核心库。只是不是应用程序。有任何想法吗?

答案1

现代 CPU 具有测量各种事物的性能计数器寄存器(尽管它比“周期”更复杂)。

perf是一个使用这些计数器进行测量的工具,请参见例如这里了解详情。

相关内容