我有两个函数执行相同的过程,但使用不同的技术,我需要知道在大规模的技术比另一个快,也许在未来会有更多的技术可用。所以我的问题是,我怎样才能在c++中做到这一点?是否有一个特定的方法和头来执行这个任务?
更多细节:比如isLargest()使用了三个参数,它有两个版本,一个使用了嵌套的if技术,另一个使用了初始化器和较少的if语句。那么如果我需要知道哪个更快,怎么做呢?
在现实世界中尝试你的代码,并测量
有一个工具叫 剖析师 就是为了解决这个问题。大体上有两种(注:有些是两者的混合)。
值得了解每一种的作用和它们的优点,但如果你不知道用什么就用采样剖析器吧。
有很多采样剖析器,但支持的程度取决于你的平台。如果你是在Windows上。Visual Studio自带了一个非常好的采样剖析器。 我建议你从这里开始
如果你走这条路,重要的是要确保你在使用你的函数时就像 "真实 "一样,因为有很多微妙的因素会影响结果。
一个替代方案
如果你不想尝试在真实程序中运行你的代码,也许你只是想了解函数的一般特性,有一些库可以帮助你做到这一点,如 谷歌基准.
基准测试代码可能会出乎意料地难以正确,所以我强烈建议使用现有的基准测试工具,如 谷歌基准 在可能的情况下,