Java背后的秘密之如何开发出高性能Java程序05

来源:互联网 发布:nginx源码剖析 pdf 编辑:程序博客网 时间:2024/05/03 12:13

1、开发高性能Java程序的原则和方法:
决定一个Java程序性能的好坏,是多方面的因素,包括前期的系统结构设计、底层平台架构设计、应用开发中的代码编写以及技巧的使用,系统平台的软件配置,系统平台的硬件性能等等。这里只给出代码编写方面的一些原则和方法。

相对于Java的其他方面,在性能领域Java饱受的非议可能最多。许多人认为,Java如果想更好的发展下去必须解决性能问题。然而真正的事实是Java在编译器、JVM以及运行期优化方面确实在不断的进步,Java正在运行的越来越快。实际上很多的性能问题,是由于设计不佳引起的,与Java本身并无关系。在拙劣的设计和编码面前,无论你使用多少运行期优化,无论你的编译技术多么先进,无论你的硬件平台性能多么强大,最后的代码运行依然低效。

同样无论运行期优化技术、编译技术以及硬件平台多么强大,运用一些已被验证对Java运行性能有益的技术,总是能获得非常好的收益。

优化程序代码的注意事项:
1.除非必须优化,否则不要轻易改动;
2.改动之后要进行仔细的测试;
3.在各个JVM产品中,优化的方式是有区别的;

2、高性能Java的编码原则:
(1)、先把焦点放在设计、数据结构和算法身上;
(2)、不要依赖于编译器编译期优化技术,正确理解运行期代码优化技术以及正确使用运行期代码优化;
(3)、使用StringBuffer类完成字符串连接;
(4)、将对象创建成本降至最低,即尽量创建轻量级对象;
                1、合理设计对象大小
                2、合理设计类的继承深度
                3、类的构造函数要短小精干
                4、不要创建非必要的对象
                5、将对象的创建拖延到最后一刻,即延迟加载技术
                6、可能的话要自己实现一个对象缓冲管理池,将对象的创建与回收控制在一个合理的范围内
(5)、降低同步化带来的影响;
                1、合理识别是否一定要使用同步控制,尽量从设计上避免
                2、注意控制同步代码范围,避免对线程活跃度造成影响
                3、合理使用锁变量,做到线程分离,提高程序并发度,更进一步提高程序吞吐量
                4、用于锁变量的对象不宜过多,当要使用多个对象作为锁变量时,一定要确保在代码中自始自终按照同样的顺序锁定它们,否则可能导致死锁
(6)、尽可能使用Stack变量和基本类型完成必要的任务;
(7)、使用static、final、private方法以促成inlining;
(8)、实例变量初始化一次就好;(即一定义就会有一个初始值,下面不需要再进行一次初始化)
(9)、集群类对象的处理;
                1、如何正确遍历集群类?
                2、如何复制数组元素?
                3、如何正确选择使用合适的集群类?
(10)、尽可能重用对象;
(11)、使用延迟加载技术;

当然上面都是理论方法,实践需要靠大家自己去了,两个代码实在不知道那种性能更好,javap看字节码执行,看步骤,这是最土的方法,却是最能说服自己的证据!


转载来源www.boobooke.com/bbs->J2EE专区->蓝山作品—Java背后的秘密(汇总)