20 | 性能优化十大策略:如何系统地有层次地优化性能问题?
庄振运
该思维导图由 AI 生成,仅供参考
你好,我是庄振运。
上一讲中,我们聊了性能优化的六大原则。原则有了,但是在针对实际的性能问题的时候,用什么样的解决方案才可以提升性能呢?这就需要你了解具体的优化策略了。
现实中的性能问题和具体领域千差万别,我也不可能面面俱到。但是为了帮助你理解,我总结了十大常用的优化策略。
我将这十大策略分成五个类别,每个类别对应两个相关策略,帮助你掌握。这五个类别是:时空相互转换、并行 / 异步操作、预先 / 延后处理、缓存 / 批量合并、算法设计和数据结构。我们现在一个个来讲。
时空转换
第一个策略类别是“时空转换”。我们看科幻电影和小说的时候,经常会看到时空转换这个题材。性能优化里面有两个策略恰好组成了这个类别,包括“用时间换空间”和“用空间换时间”这两个看似互相对立的策略。
1. 用时间换空间
用时间换空间的策略,出发点是内存和存储这样的“空间”资源,有时会成为最稀缺的资源,所以需要尽量减少占用的空间。比如,一个系统的最大性能瓶颈如果是内存使用量,那么减少内存的使用就是最重要的性能优化。
这个策略具体的操作方法有几种:
改变应用程序本身的数据结构或者数据格式,减少需要存储的数据的大小;
想方设法压缩存在内存中的数据,比如采用某种压缩算法,真正使用时再解压缩;
把一些内存数据,存放到外部的、更加便宜的存储系统里面,到需要时再取回来。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文总结了十大性能优化策略,涵盖了时空相互转换、并行/异步操作、预先/延后处理、缓存/批量合并、算法设计和数据结构五个类别。在时空相互转换方面,介绍了“用时间换空间”和“用空间换时间”两种策略,针对内存和存储资源的优化。预先/延后处理方面提到了预先/提前处理和延后/惰性处理两种策略,以及它们在文件系统、CPU和内存中的应用。并行/异步操作方面介绍了并行操作和异步操作的概念,以及它们在多核CPU和IO阻塞处理中的应用。缓存/批量合并策略包括缓存数据和批量合并处理,涉及CPU、内存、文件系统、存储系统、内容分布、数据库等领域。最后,讨论了更先进算法和数据结构的重要性,强调了在不同场景下选择最适合的算法和数据结构的重要性。这些策略对于解决软件开发中常见的性能问题具有实用价值,有助于开发人员从不同角度思考问题,找到更好的解决方案。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能工程高手课》,新⼈⾸单¥59
《性能工程高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(6)
- 最新
- 精选
- 黄海峰c++的string具有写时拷贝的实现吗?是哪个stl实现这样做的?
作者回复: 以前有的,刚刚查了一下,似乎11版本的C++ standard library改了,不让用了。谢谢指出!
2020-01-15 - benny每一种都来一个实例就好了2020-03-226
- 许童童老师总结得很好,这五大性能优化的策略,基本上概括了我们程序优化的各种方法。2020-01-112
- 罗辑思维非常有收获。2020-03-07
- 钱思路是这样的,总结的OK2020-03-05
- LQQjava的arrylist和linklist,前者是读写性能比较好,后者是链表结构,删除和插入性能比较好2020-03-03
收起评论