积极答复者
请问,定义变量,是在for或者其他的循环内部定义好呢,还是在循环外?

问题
答案
-
要看变量的复杂程度和实际用途。如果变量只是简单数据类型,就不用为了性能定义到循环外面。另外如果变量只是在每个循环内使用,我觉得可以定义到循环外,可能会带来另外的维护成本。例如每次都需要初始化。不一定有很高的效率。实际上编译器会做一些优化操作,这些优化考虑的方面比你考虑的要多很多。其实怎么将代码写的性能更好是一部分,另一部分是如何能够帮助编译器进行优化。比如他会考虑流水线并行,考虑尽量使用缓存而不是内存和页交换等等。如果你接触C++不久可以看看Effective C++,C++ Footprint and Performance Optimization。如果觉得不能解决问题。可以看C++反汇编与逆向分析技术揭秘。
麻烦把正确答案设为解答。
- 已编辑 SplendourGModerator 2012年3月30日 6:25
- 已标记为答案 神秘人 2012年3月31日 5:26
全部回复
-
要看变量的复杂程度和实际用途。如果变量只是简单数据类型,就不用为了性能定义到循环外面。另外如果变量只是在每个循环内使用,我觉得可以定义到循环外,可能会带来另外的维护成本。例如每次都需要初始化。不一定有很高的效率。实际上编译器会做一些优化操作,这些优化考虑的方面比你考虑的要多很多。其实怎么将代码写的性能更好是一部分,另一部分是如何能够帮助编译器进行优化。比如他会考虑流水线并行,考虑尽量使用缓存而不是内存和页交换等等。如果你接触C++不久可以看看Effective C++,C++ Footprint and Performance Optimization。如果觉得不能解决问题。可以看C++反汇编与逆向分析技术揭秘。
麻烦把正确答案设为解答。
- 已编辑 SplendourGModerator 2012年3月30日 6:25
- 已标记为答案 神秘人 2012年3月31日 5:26