码迷,mamicode.com
首页 > 编程语言 > 详细

Java程序性能优化技巧

时间:2015-07-23 13:58:58      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:java   优化   

1、优化循环体
如果循环次数很多,循环体内代码处理不好问题就会被放大。

for(int i=0;i<list.size();i++){}优化为
int size=list.size();
for(int i=0;i<size;i++){}

for(int i=0;i<100000;i++){
    if(i%10==9){
    //每循环10次执行一次
}
}
优化为
for(int i=0;j=10;i<100000;i++;j--){
    if(j==0){
        //每循环10次执行一次
        j=10;
}
}

2、少用new初始化一个实例
new一个对象耗时往往是局部变量赋值耗时的上千倍,同时,当对象生成后系统还要花时间进行垃圾回收和处理。
例如:
NewObject object = new NewObject();
int value;
if(value>10){
value = object.getValue();
}
优化为
int value;
if(value>10){
NewObject object = new NewObject();
value = object.getValue();
}
3、异常处理
异常处理对性能不利,抛出异常首先要创建一个新的对象,并进行相关处理,造成系统开销。所以异常应该用在错误的处理情况,不应该用来控制程序流程。
4、尽量使用局部变量
局部变量,调用方法时传递的参数以及在创建临时变量都保存在栈(stack)中,速度较快,其他变量入静态变量、全局变量都在堆(Heap)中创建,速度较慢。
扩展:栈是由系统分配,速度较快,栈使用的是一级缓存,他们通常都是被调用时处于存储空间中,调用完毕立即释放,堆是new分配的内存,容易产生内存碎片,不过使用起来方便,堆存放在二级缓存中,生命周期由虚拟机的垃圾回收算法决定。
5、尽量减少I/O操作
6、尽量使用缓存
BufferedReader代替Reader,BufferedWriter代替Writer,BufferedInputStream代替inputStream来进行I/O处理都能获得性能的提高。
7、尽量不适用同步,Servlet是多线程如果使用太多的同步就失去了多线程的优势
8、不能保存太多的信息在HttpSession中,但是当session的存储量很大时对内存的需求很高。
9、消除session,当用户退出系统时手动释放资源

Java程序性能优化技巧

标签:java   优化   

原文地址:http://blog.csdn.net/fuyuwei2015/article/details/47020469

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!