相关疑难解决方法(0)

最后的性能优化策略

这个网站上已经存在很多性能问题,但是我发现几乎所有这些都是特定于问题且相当狭窄的问题.几乎所有人都重复这些建议,以避免过早优化.

我们假设:

  • 代码已经正常工作
  • 所选择的算法对于问题的情况已经是最佳的
  • 已经测量了代码,并且已经隔离了违规的例程
  • 所有优化尝试也将被测量,以确保它们不会使事情变得更糟

我在这里寻找的是在一个关键算法中挤出最后几个百分点的策略和技巧,除此之外别无他法.

理想情况下,尝试使答案语言不可知,并在适用的情况下指出建议策略的任何缺点.

我将使用我自己的初步建议添加回复,并期待Stack Overflow社区可以想到的任何其他内容.

language-agnostic optimization performance

600
推荐指数
28
解决办法
8万
查看次数

性能或代码大小的C编码实践 - 超出了编译器的作用

我正在寻找程序员在C中可以做什么,它可以确定生成的目标文件的性能和/或大小.

例如,
1.将简单的get/set函数声明为inline可能会提高性能(以更大的占用空间为代价)
2.对于不使用循环变量本身值的循环,倒计时到零而不是计数到一定的价值等

看起来编译器现在已经发展到了一个"简单"技巧(如上面的两点)根本不需要的水平.编译期间适当的选项无论如何都可以完成工作.哎呀,我还看到了关于编译器如何处理递归的帖子 - 这非常有趣!那么我们还要做什么呢?:)

我的具体环境是:GCC 4.3.3重新针对ARM架构(v4).但是对其他编译器/处理器的响应也是受欢迎的,并且将被扼杀.

PS:我的这种做法违背了通常的"代码优先!然后基准,最后优化"的方法.

编辑:就像它发生的那样,在发布问题之后我发现了一个类似的帖子:我们还应该优化"在小"吗?

c optimization gcc micro-optimization

5
推荐指数
2
解决办法
1953
查看次数

c中全局变量的性能影响

我有5个函数被调用10000次(平均).所有这些都修改/使用某些变量.

我知道拥有全局变量是不好的做法.但是出于性能的考虑,将它们保持全局而不是传递它们是否有意义 - 特别是当我多次进行函数调用时?

或者我在性能方面不会获得太多收益?

c optimization performance global-variables function-calls

5
推荐指数
2
解决办法
2566
查看次数