“计算机程序的性能(Performance)取决于两个因素:运行速度的快慢和需要消耗的系统资源(最重要的是内存和CPU)的多少,运行速度太慢的程序将会阻碍系统运行更多的任务。在现代多任务操作系统中,如果程序打断用户正在执行的其他活动,将会使用户倍感沮丧。这些都是相互关联的问题。对于可接受的执行速度或CPU使用量没有固定的标准,用户运行应用的感觉是最重要的。作为程序员,喜欢关注于应用逻辑,然而性能问题是无法回避的,我们必须保持关注,稍有疏忽,用户就会向我们提意见。”
所以,Performance的问题的要点就是:空间和时间。解决Performance问题主要从两方面着手:一是要去除系统在空间和时间上的浪费;二是在空间和时间上找到一个比较好的平衡点。一般来说,空间和时间是不可调和。节省空间的,时间上可能要多付出;消耗时间少的,可能要多占空间;即要节省空间又要节省时间很难,但是两个可以折衷,找到一个比较好的平衡点是Online Performance调优的关键之一。
还应该牢记的是,“任何有关性能的问题只有在这些性能要素可以被度量和分离之后才可以被解决。在没有事实论据的情况下,多数有关性能问题的本质和问题来源的猜想都是错误的。最常用的度量方法是通过比较不同的设计、负载和配置情况来展示性能的差别和变化的趋势”
(引号中的语句摘自《JAVA并发编程》)