浏览 1583 次
锁定老帖子 主题:局部变量效率更高
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-09
最后修改:2009-01-09
public class StackTest { private int intValue; private static int staticValue; public static final int times = 1000000000; public static void main(String[] args) { StackTest s = new StackTest(); long start = System.currentTimeMillis(); //code here.... long end = System.currentTimeMillis(); long time = end -start; System.out.println("用局部变量的时间"+time); //后面省略 } public void stack() { int j = 0; for (int i = 0; i < times; i++) { j+=i; } } public void field(){ for (int i = 0; i < times; i++) { intValue+=i; } } public void staticField(){ for (int i = 0; i < times; i++) { staticValue+=i; } } } 打印结果: 用局部变量的时间1485 用实例变量的时间2390 用静态变量的时间2125 如果全部改为局部变量,会是这样: public void stack() { int j = 0; for (int i = 0; i < times; i++) { j+=i; } } public void field(){ int j = intValue; for (int i = 0; i < times; i++) { j+=i; } } public void staticField(){ int j = staticValue; for (int i = 0; i < times; i++) { j+=i; } } 运行结果: 用局部变量的时间1328 用实例变量的时间1344 用静态变量的时间1359 代码的运行速度有很大提升,不要瞧不起这些小的优化,积少成多,会对系统有很大的性能提升 当然实例和类变量,该用还给用,如果在循环里面出现了,可以考虑改进的方法,把他们先编程局部变量,提高速度。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |