我应该将局部变量设置为成员变量以获得性能吗?

时间:2014-07-15 16:40:01

标签: oop scope software-design

每次调用函数时,非基本类型的局部变量都需要实例化。在最简单的情况下,出于性能原因,可以将这些局部变量更改为成员变量,以便只创建一次。但是,可维护性的损失是否值得?将局部变量移动到成员变量的时候是否有规则?

1 个答案:

答案 0 :(得分:2)

我遵循的规则是另一种方式,他们都建议你不应该将一个自然是局部变量的变量改为成员变量,除非你真的,真的需要:

  • 首先让您的程序正确,然后将其清除,然后快速完成。您建议的优化会使您的计划不那么清晰,因为您的读者和#39;默认期望是成员变量说明对象实例,而不仅仅是一些偶然计算的插槽。如果我已经确定使用本地方法对性能至关重要,并且如果进行更改会显着提高性能,我只会这样做。

  • 为每个变量赋予它在完成工作时可以拥有的最小范围和生命周期。这可以减少因错误重用旧值而导致的错误,并使您的程序更易于阅读(因为对于任何给定的线路,都没有更少的考虑因素。在这方面,成员比全局成员更好;当地人比成员好。因此,如果变量可以是本地变量,那么它应该是。