性能调优有哪些参考指标?
我们都知道性能调优很重要,他不仅可以让我们的代码吞吐量变高,而且还会节省公司的资源,用最少的资源获得更大的吞吐量和最小的响应时间。
但是调优应该什么时间去做呢?是在开发过程中吗?还是在开发之后呢?
还有调优的目的是什么?有哪些参考指标?比如是CPU、内存、响应时间还是吞吐量?
话不多说,show time.
调优应该在什么时间做?
- 开发过程中,你不需要做性能上调优,但需要做代码上的优化,比如减少迭代的次数、减少竞争锁、减少异常量、还有就是利用高效的算法,如果面对业务复杂的情况下,可以利用设计模式将代码进行优化。
- 开发完成之后,你就需要开始进行性能测试了,会另外的抽出对应的内容将如何进行性能测试。
- 代码上线后,你需要做的就是获取的对应的监控信息,看上线的过程中监控性能情况,并对此进行优化。
调优有哪些参考指标吗?
- 响应时间:(一条请求大概多久有回应)
数据库响应时间:写入和读取的时间;
服务器响应时间:(当网关接收到请求后,分发到各个模块的时间)+(各个模块后台获取到请求处理的时间 - 数据库响应时间);
客户端响应时间:请求经过页面或者APP发送到后端的之前的时间;
网络响应时间 - 吞吐量:(单位时间处理请求数)
磁盘吞吐量:单位时间内系统能处理的 I/O 请求数量 和 单位时间内可以成功传输的数据量
网络吞吐量:网络传输时没有帧丢失的情况下,设备能够接受的最大数据速率。 - 计算机资源分配使用率:CPU占有率、内存使用率、网络I/O、磁盘I/O
- 负载承受能力:当我每秒达到大于m条时,系统直接就报错了,则 m就是系统最大的承受能力。
总结
在开发前只做代码层面的优化,并添加对应的监控日志。
在开发后确认好性能参考指标的范围,进行优化。
在上线后,根据运行中的监控日志,对其进行分析优化。
参考:
《JAVA性能调优实战》作者:刘超