代码性能优化策略
2015-10-27 11:19
218 查看
一 应用级别
编译器选项
调用高性能库
去除全局变量
受限的指针
条件编译
二 算法级别
缓冲优化(索引顺序,缓冲分块),提高多级缓冲的命中率,数据访问局部化
软件预取
查表法
三 函数级别
函数调用参数
内联小函数(少于10行且无分支的函数)
四 循环级别
循环展开
循环累积
循环合并循环拆分
五 语句级别
减少内存读写
选用尽量小的数据类型
结构体对齐(大数据类型在前,小数据类型在后)
表达式移除(开发阶段对所有的访存检查是否越界,程序验证后言将相关代码去除)
分支优化(判断放在循环外面, 拆分循环,合并多个条件,使用条件复制指令移除分支,查表法移除分支,分支顺序,优化交换性能)
六 指令级别
减少数据依赖
优化乘除法和模余
其它如float数据时加f后缀,使用const, static, 少用虚函数
编译器选项
调用高性能库
去除全局变量
受限的指针
条件编译
二 算法级别
缓冲优化(索引顺序,缓冲分块),提高多级缓冲的命中率,数据访问局部化
软件预取
查表法
三 函数级别
函数调用参数
内联小函数(少于10行且无分支的函数)
四 循环级别
循环展开
循环累积
循环合并循环拆分
五 语句级别
减少内存读写
选用尽量小的数据类型
结构体对齐(大数据类型在前,小数据类型在后)
表达式移除(开发阶段对所有的访存检查是否越界,程序验证后言将相关代码去除)
分支优化(判断放在循环外面, 拆分循环,合并多个条件,使用条件复制指令移除分支,查表法移除分支,分支顺序,优化交换性能)
六 指令级别
减少数据依赖
优化乘除法和模余
其它如float数据时加f后缀,使用const, static, 少用虚函数
相关文章推荐
- c#习题之3
- C语言中的far关键字
- ubuntu中彻底删除java包
- ASP不能打开注册表关键字错误 '80004005'的解决方法
- c++实现tailf命令
- Spring MVC 教程快速入门
- 浅析Bitcode:一种中间代码
- Spring MVC 入门示例讲解
- Qt QLabel::setBuddy函数
- [深入浅出Cocoa]Block编程值得注意的那些事儿-循环引用&全局变量
- Python基础(一)
- 双11抢红包代码
- python入门3
- ShowFile
- 加密与解密:一个简单的C语言示例
- [转]在Eclipse中使用JUnit4进行单元测试(中级篇)
- BDD中数据的类型及处理方法(python)
- 经验积累之C语言与汇编语言的区别
- Spring MVC入门
- 开发自己的UBB”代码“