我如何在C++中计算操作次数?我想以比仅计时更好的方式分析代码,因为时间经常被舍入为0毫秒。
我如何在C++中计算操作次数?我想以比仅计时更好的方式分析代码,因为时间经常被舍入为0毫秒。
如果你在计时代码,最好在循环中多次运行它,以避免计时器分辨率的影响。因此,你可以运行你要计时的东西10,000次,并测量运行所有迭代所需的时间。这可能只需要几秒钟就能完成,并且你将获得更好的计时数据。
在这里,一个示例分析器是一个不错的选择。在Windows上,您可以使用Visual Studio内置的分析器,或者来自Windows组织的xperf工具。xperf工具是免费的。这里有一系列来自我自己的关于xperf工具的帖子。这篇文章是关于分析的。
这里 你可以找到一个我为Linux编写的准便携式C++类,它源自Linux内核,旨在读取i386、x86_64和ia64架构的tsc。
这并不是最简单的软件包,但是它的报告水平确实可以帮助您分析应用程序在硬件上的行为。
使用更高分辨率的计时器。
为什么不在分析器下运行代码呢?这通常会提供有关函数中花费的时间以及调用次数的数据。
知道函数被调用的次数很有用,因为如果一个函数被调用的次数比您认为应该多得多,它可能会导致潜在的性能问题。
当然,在使用分析器时会使您的代码变慢,但是在添加任何类型的工具时都无法避免这种情况。