性能优化高手课
尉刚强
资深软件设计咨询顾问
19574 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 31 讲
性能优化高手课
15
15
1.0x
00:00/00:00
登录|注册

09 | 性能模式(上):如何有效提升性能指标?

你好,我是尉刚强。
构建高性能的软件,可以说是所有程序员的共同追求。不过,当我们碰到性能问题时,一般都只会想到数据结构和算法,而忘记系统性能是由运行态的各个硬件所承载的。比如说,当你的代码中遇到一个复杂数学计算的时候,你可能只会想到通过修改优化算法的方式来提升性能。可实际上,一个潜在更优的解决方案是提前计算好放到内存中,使用的时候直接取用,这时候具体的算法性能已经不是最重要的了。
所以,当我们从硬件运行态的视角去思考问题的时候,其实就会很容易地找到一些之前没发现,但性能收益比较大的解决方法,这就是我接下来的两节课要给你介绍的性能模式。
所谓的性能模式,就是在软件设计的过程中针对一些特定的上下文场景,以性能提升作为出发点的通用解决方案。下面我所讲解的各种性能模式,在很多场景下都已经被实际验证过了,你可以在特定的性能优化场景下去套用和实现,从而少走一些性能优化上的弯路。
另外,与软件设计模式不同,一般来说这些性能模式都是比较独立的,你可以将其看作是在时间、空间等不同维度去解决问题的参考思路,在很多的场景下都可以同时使用。所以我希望,你也不要局限于这几种性能模式,而是可以借鉴这些性能模式的解题思路,来掌握这种全局性地、软硬协同地、动态地思考和解决问题的思路
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了性能模式的概念及其在软件设计中的重要性。作者指出了在解决性能问题时,程序员通常只会考虑数据结构和算法,而忽视了系统性能受硬件运行态影响的事实。随后,作者介绍了八种性能模式,包括快速通道模式、并行分解模式、批处理模式、弹性时间模式、预计算模式、耦合模式、搬移计算模式和丢弃模式。其中,快速通道模式被重点介绍,其核心思想是针对系统中频繁使用的典型场景,提供定制化方案来优化性能。作者以阶乘计算为例,说明了如何通过针对典型场景实现快速处理来提升性能。此外,作者还指出快速通道模式不仅适用于优化时延,还可以用于内存的优化设计。另外,文章还介绍了并行分解模式和批处理模式,分别讨论了它们的优化特点和适用场景。文章通过实例和图表清晰地阐述了性能模式的重要性和实际应用,为读者提供了一种全局性地、软硬协同地、动态地思考和解决问题的思路。 性能模式的抽象粒度可大可小,你可以在不同抽象层级去使用这些模式,但我更推荐在更大的抽象级别去使用性能模式。 性能模式是建立在系统运行视图的基础上,因此你需要对软件执行模型有深入的理解,同时还要借助数据度量来辅助分析,否则很容易引起适得其反的效果。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能优化高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • 型火🔥
    底层逻辑我认为是资源与收益的权衡。更像经济学,用更少的成本带来最大的收益,比如多开并行的worker可以提高效率,但又会带来新的复杂度,需要权衡,折衷,trade-off. 换句话说,降本增效。

    作者回复: 哈哈,感觉每次你总结的更加精炼!赞

    2021-06-07
    2
  • 型火🔥
    作者的抽象能力太牛了,这个专栏就是宝藏。这种高屋建瓴,合纵连横的技术抽象很见功力,广度和深度。更犀利的是,不只是纸上谈兵,还有细化的画图分析以及每种模式的优点缺点,解决了什么问题,又带来了什么问题。有全局,有细节,有trade-off,有实战。仰望星空,脚踏实地。最可贵的是有些加粗文字的凝练和准确,可见是经过深思熟虑和创造的。哈哈,不是拖~

    作者回复: 很开心,收到你的肯定,我会继续努力分享自己的心得和经验,希望对你有帮助。

    2021-06-07
    2
    2
  • shibo
    并行模式下的总开销应该是8吧
    2024-01-30归属地:浙江
  • 该溜子
    有没有更具体点的case呢
    2021-07-11
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部