性能的参考指标
执行时间:从开始运行到结束,所使用的时间。
CPU时间:函数或者线程占用CPU的时间。
内存分配:程序在运行期间占用的内存空间。
磁盘吞吐量:描述I/O的使用情况。
网络吞吐量:描述网络的使用情况。
响应时间:系统对某用户行为或者时间做出响应的时间。响应时间越短,性能越好。
木桶原理:系统的最终性能取决于系统中性能表现最差的组件,因此,为了提升系统整体性能,必须对系统中表现最差的组件进行优化,而不是对系统表现良好的组件进行优化。
最有可能成为系统瓶颈的计算资源如下:磁盘I/O,网络操作,CPU,异常(对异常的捕获和处理是非常消耗资源的),数据库,锁竞争,内存。
性能调优的层次:
设计调优:从设计模式和架构上来入手。一个良好的系统设计可以规避很多潜在的性能问题。
代码调优:对系统性能产生最直接影响的优化方法。
JVM调优、数据库调优(数据库优化,sql优化)、操作系统调优。
我们先主要进行Java程序优化的学习,也就是代码调优。
对Java程序进行优化主要涉及: