gpt4 book ai didi

c - 如何计算小表达式的性能?

转载 作者:太空宇宙 更新时间:2023-11-04 07:28:09 25 4
gpt4 key购买 nike

我想计算小表达式的性能,我决定使用什么。考虑下面的代码。可能会对其进行多次递归调用。

  void foo(void) {
i++;
if(etc(ch)) {
//..
}
else if(ch == TOKX) {
p=1;
baa();
c=0;
p=0;
}
//more ifs
}

问题:

foo() 可能会发生递归调用,只有当p 为非零值时,i 才应该递增(这意味着它将用于代码的其他部分)我应该放一个 if(p) i++; 还是只留下 i++;

是为了回答(我自己)这样的问题,我正在寻找一些工具。有人可以相信这是“浪费时间”或说“优化是万恶之源”。但对于这种情况,我认为它不适用于我的情况。恕我直言。如果您不这么认为,请告诉我们您的意见。

一个“理想”的工具,可以显示每个表达式运行多长时间。

这让我想到在 IBM、Microsoft、Sun 等最大的软件公司中如何进行软件调试。也许这是另一个线程的主题。我认为这比这里更有用。

平台:应为 Linux 和 MS-Windows。

最佳答案

古老的格言类似于“在您确定,绝对肯定,您需要”之前不要进行优化......这是有原因的。

也就是说,这里有一些想法:

  • 尽可能避免递归

  • 在宏观层面上,类似于 linux 中的“时间”命令的东西可以告诉您您的应用运行了多长时间。将该方法放入一个运行 10k 次的循环中并对其进行测量,以求出数字的平均值

  • 如果您想衡量在各个功能上花费的时间,分析就是您想要的。 Visual Studio 在 Windows 中为此内置了一些很好的东西,但还有很多很多选项。

http://en.wikipedia.org/wiki/List_of_performance_analysis_tools

关于c - 如何计算小表达式的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16377250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com