这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
性能优化是什么?
- 提升软件系统处理能力,减少不必要的消耗,充分发掘计算机算力
为什么要做性能优化?
- 用户体验: 带来用户体验的提升 - 让刷抖音更丝滑,让双十一购物不再卡顿
- 资源高效利用: 降低成本,提高效率 一 很小的优化乘以海量机器会是显著的性能提升和成本节约
总结
- 性能优化的基本问题
- 性能优化的两个层面
- 性能优化的可维护性
自动内存管理
动态内存:程序在运行时根据需求动态分配的内存: malloc()
自动内存管理(垃圾回收): 由程序语言的运行时系统管理动态内存
- 避免手动内存管理,专注于实现业务逻辑
- 保证内存使用的正确性和安全性: double-free problem, use-after-free problem
三个任务
- 为新对象分配空间
- 找到存活对象
- 回收死亡对象的内存空间
Copying GC:把某一个内存块的里面存活的对象复制到另一块内存,那么就可以对这块内存进行回收
Mark-sweep GC:表示用连接表的形式记录空闲的内存块
Compact GC:表示移动对象到内存块的首部,从而形成大的空内存块