1.1 性能概述
一般来说,程序的性能通过以下几个方面来表现:执行速度、内存分配、启动时间、负载承受能力
参考指标:执行时间、CPU时间、内存分配、磁盘吞吐量、网络吞吐量、响应时间
木桶原理:系统的最终性能取决于系统中性能表现最差的组件
最有可能成为系统瓶颈的计算资源如下:磁盘I/O、网络操作、CPU、异常、数据库、锁竞争、内存
Amdahl定律:定义了串行系统并行化后加速比的计算公式和理论上限
Speedup<= 1/(F+(1-F)/N) F:串行化程序比重 N:CPU数量 Speedup:加速比
加速比=优化前系统耗时/优化后系统耗时
根据Amdahl定律,为了提高系统速度,需要从根本上修改系统的串行行为,在此基础上合理增加处理器数量
1.2 性能调优的层次
设计调优、代码调优、JVM调优、数据库调优(应用层SQL语句优化、数据库优化、数据库软件优化)、操作系统优化
1.3 基本调优策略和手段
当找到性能瓶颈时,首先需要定位相关代码,确认是否在软件实现上存在问题或优化空间。若有,则进行代码优化;否则,则需要考虑进行JVM层、数据库层或操作系统的优化。甚至,可以考虑修改原有设计,或提升硬件性能。