Java程序性能优化-第一章 Java性能优化概述

时间:2022-07-09 05:56:49

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层、数据库层或操作系统的优化。甚至,可以考虑修改原有设计,或提升硬件性能。