这是我参与「第三届青训营 -后端场」笔记创作活动的的第 4 篇笔记
目录
- 什么是性能优化
- 性能优化的几个方面
- 性能优化时注意事项
- 怎样算是好的 GC 算法
什么是性能优化
性能优化是指,采用一定的方式方法,提供软件系统的处理能力,带来性能上的提高,提高服务的质量,改善用户体验,提高资源的利用效率……
性能优化的几个方面
-
业务层优化 针对各种业务场景,具体问题具体分析,不同的业务采用不同的优化方式,在不同的场景下,有所选择与取舍的进行优化。容易获得较大的性能提升
-
语言运行时优化 需要考虑更多的可能性,对运行时的优化需要针对的场景更加多样,所以优化的结果应当具有普适性。由于需要面对不同的场景所以在优化时也要有所取舍,保证优化能取得较大的收益时不过多影响其他方面的性能。
-
依靠测试分析数据进行优化 依靠性能测试工具进行分析,通过实际的数据而非猜测来进行优化,优先优化性能的最大瓶颈以求最快获取收益。习惯使用
pprof工具
性能优化时注意事项
- 保证优化时的用例能够覆盖尽可能多的场景
- 保证上层已经在使用的接口的稳定
- 提供详实的优化文档与日志
- 按需提供优化,将是否进行优化的选择权传递到上层使用者
怎样算是好的 GC 算法
- 安全,能保证仍然有用的对象不被回收
- 吞吐率高,程序不应把过多的时间用于 GC
吞吐率:1 - GC时间/程序运行总时间
- 暂停时间低,当没有足够的内存能够使用时,GC 需要暂停当前程序所有的活动,对不必要的对象进行清理。如果暂停时间过长,将会对正在运行的业务造成极大的影响。甚至发生P0事故
- 内存开销,GC 也是需要内存来记录相关对象的信息的,而 GC 的内存占用不应过高,否则会严重影响业务的进行