2009-03-02读书记录:《代码大全》(第一版)第二十九章——代码调试技术
2009-03-02 21:17
369 查看
速度与规模是程序性能的标准,但减小规模更多的牵扯到重新设计数据结构而非代码调试,而调试指的主要是设计的执行方面,而非设计本身。
循环
由于循环要多次被执行,程序的弱点多半在循环段内。以下力图循环执行更快:
避免开关 —— 指在循环体内的判断语句
冲突 —— 或称“熔断”,是同一元素被两个循环同时操作造成的
展开 —— 循环展开的目的是减少循环内的操作
循环内工作量的最小化
标志值 —— 简化判断语句提高效率
多重循环将最忙的循环放在里面
降低运算强度 —— 将乘除等费时的运算替换为加减
逻辑
许多程序运行是靠逻辑判断操作的,以下是更好的操作逻辑表达式:
当你知道答案时就停止判断
根据频率确定判断次序
查表法代替复杂判断
偷懒改进法 —— 只有当接近需要时工作才开始做
数据转换
改变数据结构对于减小程序空间和提高执行速度可能是一个十分有力的帮助。下面是几种调整数据结构的方法:
尽量用整数而不是浮点数
尽量减小数组维数
减小数组访问
运用辅助索引
高速缓存运用
表达式
复杂的表达式往往要占用很多机时,以下是一些减少其运行时间的方法:
充分利用数学中的等价关系
运用强度削减 —— 用一个执行时间少的程序代替一个执行时间多的程序
编译期间初始化
密切注意系统程序
正确使用常数类型
预先计算结果
消除常用的子表达式
循环
由于循环要多次被执行,程序的弱点多半在循环段内。以下力图循环执行更快:
避免开关 —— 指在循环体内的判断语句
冲突 —— 或称“熔断”,是同一元素被两个循环同时操作造成的
展开 —— 循环展开的目的是减少循环内的操作
循环内工作量的最小化
标志值 —— 简化判断语句提高效率
多重循环将最忙的循环放在里面
降低运算强度 —— 将乘除等费时的运算替换为加减
逻辑
许多程序运行是靠逻辑判断操作的,以下是更好的操作逻辑表达式:
当你知道答案时就停止判断
根据频率确定判断次序
查表法代替复杂判断
偷懒改进法 —— 只有当接近需要时工作才开始做
数据转换
改变数据结构对于减小程序空间和提高执行速度可能是一个十分有力的帮助。下面是几种调整数据结构的方法:
尽量用整数而不是浮点数
尽量减小数组维数
减小数组访问
运用辅助索引
高速缓存运用
表达式
复杂的表达式往往要占用很多机时,以下是一些减少其运行时间的方法:
充分利用数学中的等价关系
运用强度削减 —— 用一个执行时间少的程序代替一个执行时间多的程序
编译期间初始化
密切注意系统程序
正确使用常数类型
预先计算结果
消除常用的子表达式
相关文章推荐
- 2009-02-24读书记录:《代码大全》(第一版)第二十六章——调试
- 2009-03-01读书记录:《代码大全》(第一版)第二十八章——代码调整策略
- 2009-02-21读书记录:《代码大全》(第一版)第二十章——编程工具
- 2009-02-22读书记录:《代码大全》(第一版)第二十二章——创建管理
- 2009-03-03读书记录:《代码大全》(第一版)第三十章——软件优化
- 2009-03-05读书记录:《代码大全》(第一版)第三十一章、三十二章、总结
- 2009-02-13读书记录:《代码大全》(第一版)第十章——变量
- 2009-02-23读书记录:《代码大全》(第一版)第二十四章——评审
- 2009-02-17读书记录:《代码大全》(第一版)第十五章——循环语句
- 2009-02-06读书记录——《代码大全》(第一版)第四章——建立子程序的步骤
- 2009-02-12读书记录——《代码大全》(第一版)第七章——高级结构设计
- 2009-02-22读书记录:《代码大全》(第一版)第二十三章——软件质量概述
- 2009-02-15读书记录:《代码大全》(第一版)第十一章——基本数据类型
- 2009-02-17读书记录:《代码大全》(第一版)第十四章——条件语句
- 2009-02-17读书记录:《代码大全》(第一版)第十六章——少见的控制结构
- 2009-02-12读书记录:《代码大全》(第一版)第八章——生成数据
- 2009-02-16读书记录:《代码大全》(第一版)第十三章——顺序程序语句
- 2009-02-05读书记录——《代码大全》(第一版)第三章——软件创建的先决条件
- 2009-02-09读书记录——《代码大全》(第一版)第六章——模块化设计
- 2009-02-21读书记录:《代码大全》(第一版)第二十一章——项目大小如何影响创建