java系统优化性能注意事项

 

优化性能注意事项

1、  非优化不可再优化———-牵一发动全身。

2、  改动后仔细测试。

3、  在一台虚拟机上的优化方案,在其它厂商虚拟机上不一定有相同效果。

高性能编码注意事项

1、  设计(功能设计)—-选择高效方案

针对同一功能模块一般有很多套方案可供选择,选择合适的一套方案实现(一般靠实现者的经验决定备选方案)

2、  将对象的创建成本降到最低:

对象分为轻型对象,重型对象:

轻型对象:只包含基本类型的对象

重型对象:包含其它对象做为属性,或有深层的继承关系

3、  合理设计类的继承深度

见意不得多于三层,深层的继承关系会对classloader在加载类时造成性能低下的问题。

4、  类的构造函数要短小精干

对象的创建和在内存中维护的成本很高,对象在内存中维护的信息尽量小些

5、  将对象的创建拖延到最后一刻

6、  可能的话要自己实现一个对象缓冲管理池,将对象的创建与回收控制在一个合理的范围内。

7、  降低同步带来的影响

同步对性能的影响一般比非同步高出1.5倍左右,应该减少同步的使用和减少同步的代码量

8、  尽量可能使用stack和基本类型完成必要的任务

使用stack和基本类型可大大提高性能,因为他可以减少对内存的访问次数,再者他的存取速度要高于对对象维护表中数据信息的存取速度

9、  使用static final private以促成inlining函数

使用以上三者有可能使函数成为内联函数,是否成为内联函数要看.class文件的大小,jvm中有一个检查文件大小的功能,如果文件小,在编译时以上三种类型函数被做为内联函数,否则不然.

10、实例变量初始化一次就好

初始化同样也会占有cup时间周期,尽量相同的初始化只做一次,如基本类型定义时已经初jvm初始化,不必做重复工作。

11、群集类对象处理

群集类型中存放在是对象 ,因此优先选择数组实现相同功能

遍历:size>enumeration>iterator=listiterator

复制:system.arraycopy()比其它方式快上2倍有余。不是决对,根据用户硬件软件环境决定。

优先选择数组:在不考虑数据同步的时候,优先考虑非同步群集类hashmap,arraylist,linklist

12、尽量重用对象

13、缓式评估技术(延尽加载):延缓可能不需要进行的工作。只做现在用到的工作,以后需要的以后再做(不是决)

 

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91531 人正在系统学习中

来源:月亮床

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2011年1月16日
下一篇 2011年1月17日

相关推荐