Java程序性能调优的基本知识和JDK调优
http://tech.ddvip.com 2006年11月21日 社区交流
本文详细介绍Java程序性能调优的基本知识和JDK调优
一 基本知识
1.1 性能是什么
在性能调优之前,我们首先来了解一下性能是什么?关于性能,我想每个学习过Java的人都能列出几点,甚至可以夸夸其谈。在《Java TM Platform Performance》一书中,定义了如下五个方面来作为评判性能的标准:
1) 运算的性能——哪一个算法的执行性能最好?
2) 内存的分配——程序运行时需要耗费多少内存?
3) 启动的时间——程序启动需要多长时间?这在Web项目中的影响不大,但要注意部分程序需要部署或运行在客户端时的情形(比如applet程序)。
4) 程序的可伸缩性——在压力负载的情况下,程序的性能如何?
5) 性能的感知——用户在什么情况下会觉得程序的性能不好?
以上五个方面,在具体的使用场景可以有选择的去评判。至于这五方面的性能调优,在后续的章节中将会陆续的给以相应的性能调优策略。
1.2 调优的规则
我们只需要关心对我们程序有影响,可以察觉到的性能问题,而不是每一个类中的每一个方法我们都需要想方设法的提高性能。如果程序的性能没有达到我们所期望的要求,我们才需要考虑如何优化性能。同样的,晦涩的代码虽然提高了程序的性能,但同时可能带给我们的是维护的噩梦。我们需要折中的考虑以上两种情况,使得程序的代码是优美的,并且运行的足够快,达到客户所期望的性能要求。
优化代码甚至会导致不良的结果,Donald Knuth(一位比较牛比较有影响的人物,具体是谁,我也忘了,谁知道,可以告诉我一下,谢谢!)曾说过,“Premature optimization is the root of all evil”。在开始性能调优前,需要先指出不优化代码的一些理由。
责编:豆豆技术应用