BookNotes_《CSAPP_3e》_chp05_Optimizing Program Performance

calmXia的持续行动01 – 2020/01/12~ --《CSAPP_3e》


最近2个星期的时间读完了《Computer Systems, A Programmer`s Perspective》 3e 英文版 chapter05:Optimizing Program Performance。做个阶段性总结,个人觉得如下notes对日常工作中的编码和调优非常有帮助:

优化程序性能的基本策略:

Hige-level design

为眼前的问题选择适当的算法和数据结构。尤其要避免使用算法或编码渐进性能差的技术。

Basic coding princiiples

避免限制优化的因素,以便编译器产生高效的代码。

  • 消除过多的函数调用。
    如果可能的话,将计算移出到循环外。这需要在性能和程序的模块性之间作出平衡。
  • 消除不必要的内存引用。
    引入临时变量来保存中间结果,最后才将结果存放到数组或全局变量中。

Low-level optimizations

这个级别的优化指的是优化代码的结构,以充分利用硬件(处理器)性能。一般来说是利用pipeline,提高程序的并行性,从而提高性能。

  • 循环展开
  • 多个累计变量和重新结合
  • 将条件性代码改写为功能性代码
    目的是使编译采用condition move指令进行数据传送,可以提高性能。

警告:在为了优化性能而重写/重构代码时,一定要做好充分的code review和test,特别是一些边界条件的检查,确保优化后的代码和优化前的代码输出结果保持一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值