028-86261949

当前位置:首页 > 技术交流 > Java代码调优基本思想

Java代码调优基本思想

2018/09/07 18:12 分类: 技术交流 浏览:0

Java程序可利用的计算机资源有限,CPU任务计算的时间,内存,已经网络代码,也就是数据传输的数量等都是有限的,优化代码的目的,是为了更少的系统资源,更少的时间,完成代码的计算任务。优化最基础两方面,代码体积,代码运算量,整体来说,要么空间换时间,要么时间换空间。
 
Java代码,性能问题,不是语言本身,而是由程序员完成程序的结果!所以在平日开发中养成良好的代码习惯及基本的计算机常识十分重要。例如,Java.util.Vector能够很好的替身程序的效率,就以上的基础认识,我们看看代码中 有那些可优化的地方。
 
1.多使用局部变量,少用静态,变量实例变量,局部变量在栈中,速度比较快,而静态变量在堆中创建,速度比较慢。
2.类尽量使用final修饰,则类中方法默认也是采用final修饰,java编译器会内联所有的final方法,从而提高效率
3.尽量使用重复的对象,避免过多创建,消耗内存和系统资源,所以在设计模式中出现单利模式
4.垃圾回收机制并不足够聪明,几遍对象失去引用满足回收条件,但是并不等于失去引用一定会被回收,当我们使用完一个对象,可以手动设置为null
5.Java代码中的SQL语句尽量按照数据库标准要求来写,例如Oracle要求大写,以减少Oralce解析SQL语句的压力。
6.IO开销,例如数据库链接,使用完毕之后最好关闭,因为大对象对资源的开销更大
7.同步线程最好采用同步方法,而不适用同步代码块,更好ThreadLocal
8.减少重复计算:例如方法结果的重复调用,调用一次保存起来使用就好了
for(int i = 0;i < list.size; i ++) 替换如下:
len = list.size;
9. for(int i = 0;i< len ;i++)
10.尽量采用lazy loading 的策略,即在需要的时候才开始创建。
      例如:String ss = “cc”;if(i == 1) {arrayList.add(ss);}
    应替换为:if(i == 1) {String ss = “aa”;arrayList.add(ss);}
11.不要在循环中使用try-catch 而放在for的外层
12.合理的使用Java类 java.util.Vector。
        例如向Vector中插入数据,直接Vector v = new Vector(100)
    v.add(0,new Object)//插入一万次,除非有必要必须插入到第一个位置,否则采用
    v.add(new Object)//提高的性能会是几倍,尤其是在数据量大的时候
 
    诚如上所看到的,最本质体现代码运算量问题,而代码运算量也体现了计算机运算量,所以早平日养好对于代码计算量常识,即是对性能调优的基本常识,而后掌握更多的代码基础核心,再掌握更多的调优工具,及CPU IO 内存,协议,端口,带宽相关等。在真正的大型项目实践,方能从根本上处理问题。
 

   感谢源码时代教学讲师提供此文章!
   本文为原创文章,转载请注明出处!
#标签:Java,调优