zoukankan      html  css  js  c++  java
  • 《代码大全》阅读笔记-26-代码调整技术

    核对表(代码调整方法)

    同时改善代码执行速度和规模

    • 用査询表替换复杂逻辑。
    • 合并循环
    • 使用整型变量而非浮点变量。
    • 在编译时初始化数据。
    • 使用正确的常量类型。
    • 预先计算结果。
    • 删除公共子表达式。
    • 将关键子程序代码转化为某种低级语言代码。

    仅仅提高代码执行速度

    • 在知道答案后就停止执行判断。
    • 根据各种情况的出现频率子句排序。
    • 比较相似逻辑结构的性能。
    • 使用惰性求值
    • 将循环中的if判断转到外部。
    • 展开循环。
    • 将循环内部所做的工作减少到最低限度。
    • 在査找循环中使用哨兵。
    • 把执行最为频繁的循环放在嵌套循环的最里面。
    • 减轻内层循环的强度。
    • 将多维数组改为一维数组。
    • 最大限度减少数组索引。
    • 为数据类型扩充索引。
    • 对频繁使用的值进行缓存。
    • 利用代数恒等式。
    • 降低逻辑和数学表达式的强度。
    • 注意系统调用。
    • 用内联子程序重写代码。

    要点

    • 优化结果在不同的语言、编译器和环境下有很大差异。如果没有对每一次的优化进行测量,你将无法判断优化到底是帮助还是损害了这个程序。
    • 第一次优化通常不会是最好的。即使找到了效果很不错的,也不要停下扩大战果的步伐。
    • 代码调整这一话题有点类似于核能,.富有争议,甚至会让人冲动。一些人认为代码调整损害了代码可读性和可维护性,他们绝对会将其弃之不用。其他人则认为只要有适当的安全保陣,代码调整对程序是有益的。如果你决定使用上述的调整方法,请务必谨慎行事。
  • 相关阅读:
    CMP指令(转)
    步进电机简介
    IDE改为AHCI后系统无法启动的解决办法
    无线网络(WLAN)常见加密方式介绍
    51单片机学习记录——数码管动态显示
    DEDECMS 调用上级栏目标题
    微信小程序开发系列(二)小程序的全局文件
    微信小程序开发系列(一)小程序开发初体验
    python+unittest日志和报告输出模块
    pip更换国内镜像源
  • 原文地址:https://www.cnblogs.com/taceywong/p/8726204.html
Copyright © 2011-2022 走看看