这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天。
本堂课重点内容
大概可以分为两个大的层次,内存优化和编译器优化,并结合字节跳动两个落地的实践,进行数据上的直观展示优化后的效果。
介绍
先从性能优化这个比较大的点开始讲起吧。
想象一个场景,如果我们只是实现基本的增删改查,而不考虑系统上线后的高并发问题,会产生什么后果?就拿字节跳动的抖音产品举例。
- 刷抖音卡顿,用户体验不好
- 双十一购物系统卡顿...
总结一个字——卡!那么我们如何解决这个问题,字节跳动又是如何解决这个问题的。
笼统的来讲,就是减少磁盘IO读写操作、提高CPU资源利用率。
性能优化的最终目的是服务于业务,满足用户需求,手段就是减少不必要的资源消耗。
在进行性能优化的时候,有几点需要注意
- 稳定性。做性能优化要从整体的角度看,如果为了一个模块的性能优化,而使整个项目发生冲突,正常功能都出了问题,这种优化是不可取的。
- 测试用例。前面老师也讲了单元测试,不管是开发还是参与开源项目,开发一个功能,就要进行单元测试,覆盖面越广越好,考虑到边缘case,这才是好的测试,测试才能驱动开发。
- 隔离。我们进行性能优化时,最后产生的效果要进行控制,因为用户或者其他开发者可能更倾向于用优化前的版本。
- 可观测。就两个字——数据!一切判断不能只靠猜测,就算猜测也要结合数据,靠数据说话,要有必要的日志输出。