代码效率

来源:互联网 发布:蓝天超频软件 编辑:程序博客网 时间:2024/06/06 04:04

这里指的是代码运行的效率,目前在学习体数据可视化的知识,由于数据量较大,且对实时操作的流畅性有一定要求,这一年来我比较关注程序运行的效率。

由于不涉及算法本身,因此比较通用,目前我从这几个方面对原有的显示方法进行了优化(CPU运算):

1.首先要保证调用结构清晰,尽量避免出现重复运算,例如,某些预处理工作并非在每一次操作时都需要重新计算;

2.算法优化(核心计算方法优化)往往能大幅提高运行效率,应首先着眼于计算原理的优化,框架搭的好坏直接影响了代码效率的上限,好比麻布上绣花的问题;

3.多线程是提高算法效率最简单的方法;

4.分配线程时尽量让各线程的工作量尽量相当,避免线程浪费;

5.尽量将线程共有的计算提取出来单独进行加速;

6.把经常调用的小型函数写成内联函数有加速效果(编译器会自动内联一些函数,可以查看汇编码检查是否有内联);

7.宏函数的效率高于内联函数,但是宏函数容易出现问题,一定慎之又慎;

8.应在核心代码中尽量减少避免使用除法(随着CPU技术的发展似乎差距正在被抹除);

9.使用查表(损失一定精度)代替一些复杂运算(如复杂的插值运算可以用查表简化为线性运算);

10.使用按位操作进行运算有提速效果,代价是程序可读性差;

11.整型运算速度大于浮点型运算速度(仅实验了CPU,且不同CPU情况不一样),可以考虑用整型变量储存浮点数(把高位当做整数部分,低位当做小数部分);

12.可以使用SSE2(Streaming SIMD Extensions 2)加速程序(可读性差);

原创粉丝点击