注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

点点滴滴

感悟人生,享受精彩。

 
 
 

日志

 
 

Java程序性能优化  

2008-11-10 17:35:06|  分类: 编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、避免在循环条件中使用复杂表达式

在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。

例子:

import java.util.Vector;

class CEL {

void method (Vector vector) {

for (int i = 0; i < vector.size (); i++)// Violation

; // ...

}

}

更正:

class CEL_fixed {

void method (Vector vector) {

int size = vector.size ()

for (int i = 0; i < size; i++)

; // ...

}

}

二、为'Vectors' 和 'Hashtables'定义初始大小

JVM为Vector扩充大小的时候需要重新创建一个更大的数组,将原原先数组中的内容复制过来,最后,原先的数组再被回收。可见Vector容量的扩大是一个颇费时间的事。

通常,默认的10个元素大小是不够的。你最好能准确的估计你所需要的最佳大小。

例子:

import java.util.Vector;

public class DIC {

public void addObjects (Object[] o) {

// if length > 10, Vector needs to expand

for (int i = 0; i< o.length;i++) {

v.add(o); // capacity before it can add more elements.

}

}

public Vector v = new Vector();// no initialCapacity.

}

更正:

自己设定初始大小。

public Vector v = new Vector(20);

public Hashtable hash = new Hashtable(10);

参考资料:

Dov Bulka, "Java Performance and Scalability Volume 1: Server-Side Programming

Techniques" Addison Wesley, ISBN: 0-201-70429-3 pp.55 – 57

  评论这张
 
阅读(155)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017