zoukankan      html  css  js  c++  java
  • 《Code Complete》ch.26 代码调整技术

    WHAT?

     提高代码运行速度的方法,减少代码的资源占用

    WHY?

    这里提出的都是“可以尝试的”方法,有的或许在你的环境根本不起作用,有的则能实实在在产生很好的效果

    HOW?

    Logic - 逻辑

    • 在知道答案后停止判断
    • 按照出现频率来调整判断顺序:让运行最快和判断结果最肯能为真的判断先行,即,让程序更容易进入常见状况的处理
    • 用查询表代替复杂表达式
    • 惰性求值:lazy loading

    Loop - 循环

    • 将判断外提
    • 合并:将两个相同计数器的循环合并
    • 展开:循环被完全展开后,将具有更快的速度
    • 尽量减少在循环内部做的工作
    • 哨兵值
    • 把最忙的循环放在最内部
    • 削减强度

    Data Transformations - 数据变换

    • 使用整形数而不是浮点数
    • 数组维度尽可能少
    • 尽可能减少数组引用
    • 使用辅助索引
    • 使用缓存

    Expressions - 表达式

    • 利用代数恒等式:与其判断 sqrt(x) < sqrt(y) ,不如判断 x<y
    • 削弱运算强度
      • 用加法代替乘法
      • 用乘法代替幂
      • 利用三角恒等式代换等价的三角函数
      • 用long和int代替longlong整数
      • 用定点数或整形数代替浮点数
      • 用单精度代替双精度
      • 用移位操作代替乘2或除2
    • 编译期初始化:用0.693代替log2
    • 小心系统函数
    • 使用正确的常量类型:运行时的类型转换会产生很大消耗
    • 预先计算出结果
    • 删除公共子表达式

    Routime - 子程序

    • 使用内联
    • 用低级语言重写关键代码
  • 相关阅读:
    个人阅读作业Week7
    个人博客作业week3——案例分析
    结对项目——高级四则运算检验器记录(168 & 187)
    个人博客作业week2——代码复审
    个人项目---四则运算题目生成器项目记录
    第一次博客作业
    JAVA编程入门
    计算机基础知识点总结
    Java数据类型总结1
    JAVA编程入门
  • 原文地址:https://www.cnblogs.com/maozhige/p/3833110.html
Copyright © 2011-2022 走看看