性能优化小记| 青训营笔记

125 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第 4 篇笔记

目录

  • 什么是性能优化
  • 性能优化的几个方面
  • 性能优化时注意事项
  • 怎样算是好的 GC 算法

什么是性能优化

性能优化是指,采用一定的方式方法,提供软件系统的处理能力,带来性能上的提高,提高服务的质量,改善用户体验,提高资源的利用效率……

性能优化的几个方面

  • 业务层优化 针对各种业务场景,具体问题具体分析,不同的业务采用不同的优化方式,在不同的场景下,有所选择与取舍的进行优化。容易获得较大的性能提升

  • 语言运行时优化 需要考虑更多的可能性,对运行时的优化需要针对的场景更加多样,所以优化的结果应当具有普适性。由于需要面对不同的场景所以在优化时也要有所取舍,保证优化能取得较大的收益时不过多影响其他方面的性能。

  • 依靠测试分析数据进行优化 依靠性能测试工具进行分析,通过实际的数据而非猜测来进行优化,优先优化性能的最大瓶颈以求最快获取收益。习惯使用 pprof 工具

性能优化时注意事项

  • 保证优化时的用例能够覆盖尽可能多的场景
  • 保证上层已经在使用的接口的稳定
  • 提供详实的优化文档与日志
  • 按需提供优化,将是否进行优化的选择权传递到上层使用者

怎样算是好的 GC 算法

  • 安全,能保证仍然有用的对象不被回收
  • 吞吐率高,程序不应把过多的时间用于 GC

吞吐率:1 - GC时间/程序运行总时间

  • 暂停时间低,当没有足够的内存能够使用时,GC 需要暂停当前程序所有的活动,对不必要的对象进行清理。如果暂停时间过长,将会对正在运行的业务造成极大的影响。甚至发生P0事故
  • 内存开销,GC 也是需要内存来记录相关对象的信息的,而 GC 的内存占用不应过高,否则会严重影响业务的进行