我应该使用const作为局部变量来进行更好的代码优化吗?

Fra*_*ank 33 c++ optimization performance const compiler-optimization

我经常使用const未修改的局部变量,如下所示:

const float height = person.getHeight();
Run Code Online (Sandbox Code Playgroud)

我认为它可以使编译后的代码更快,允许编译器进行更多优化.或者我错了,编译器可以自己弄清楚局部变量永远不会被修改?

Alo*_*ave 45

或者我错了,编译器可以自己弄清楚局部变量永远不会被修改?

大多数编译器都足够聪明,可以自己解决这个问题.
您应该使用它const来确保const正确性,而不是用于微优化.
const correctness让编译器可以帮助你防止犯下诚实的错误,因此你应该const尽可能地使用它,但出于可维护性的原因防止自己犯下愚蠢的错误.

理解我们编写的代码的性能影响是很好的,但应避免过度的微优化.关于表现,应该遵循,

80-20规则:

通过代表性数据集进行分析,然后尝试优化这些瓶颈,确定20%使用80%资源的代码.


Ole*_*ksi 14

这种性能差异几乎肯定可以忽略不计,但是出于代码文档的原因,您应尽可能使用const.很多时候,编译器无论如何都可以解决这个问题并自动进行优化.const更多的是代码可读性和清晰度而不是性能.