如何比较两个函数的速度和性能[关闭] 。

问题描述 投票:2回答:1

我有两个函数执行相同的过程,但使用不同的技术,我需要知道在大规模的技术比另一个快,也许在未来会有更多的技术可用。所以我的问题是,我怎样才能在c++中做到这一点?是否有一个特定的方法和头来执行这个任务?

更多细节:比如isLargest()使用了三个参数,它有两个版本,一个使用了嵌套的if技术,另一个使用了初始化器和较少的if语句。那么如果我需要知道哪个更快,怎么做呢?

c++ performance functional-programming comparison
1个回答
1
投票

在现实世界中尝试你的代码,并测量

有一个工具叫 剖析师 就是为了解决这个问题。大体上有两种(注:有些是两者的混合)。

  • 采样剖析器。
  • 仪表剖析器。

值得了解每一种的作用和它们的优点,但如果你不知道用什么就用采样剖析器吧。

有很多采样剖析器,但支持的程度取决于你的平台。如果你是在Windows上。Visual Studio自带了一个非常好的采样剖析器。 我建议你从这里开始

如果你走这条路,重要的是要确保你在使用你的函数时就像 "真实 "一样,因为有很多微妙的因素会影响结果。

一个替代方案

如果你不想尝试在真实程序中运行你的代码,也许你只是想了解函数的一般特性,有一些库可以帮助你做到这一点,如 谷歌基准.

基准测试代码可能会出乎意料地难以正确,所以我强烈建议使用现有的基准测试工具,如 谷歌基准 在可能的情况下,

© www.soinside.com 2019 - 2024. All rights reserved.