【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

在下面的blog当中,我将会讲解一些提高个人代码效率的一些手段。这些手段都是被实践证明,切实可行的。但是不同的处理器和处理平台上面可能会有所差别,但是本质上是一样的。

(1) 用for(; ;) 代替while(1)

(2) 循环的时候首先进行内部数据的循环,然后进行外部数据的循环

(3) 同一层循环之内,尽量只安排同一数据的相关操作

(4) 编译的时候头文件不要相互包含,尽量简单

(5) 尽量不要使用乘除, 多用加减和移位操作

(6) 部分复制、计算操作可以用SIMD命令代替,比如 SSE命令等等

(7) 如果是服务器软件或者是游戏客户端软件,请多使用查询,少计算

(8) if() ...else()的时候,把最长出现的代码放在前面,不经常出现的结果放在后面

(9) 使用数组的时候,多使用int* p = &value[0]; p ++;迭代的形式, 这样可以减少数据的计算

(10) 优化算法,发挥当前CPU多核的优势,最大限速地发挥CPU的特性

说明:

以下所有代码都是VC6.0完成。

详解:

(1) 为什么需要用for(; ;)代替while(1)?

5: int m = 0; 00401038 mov dword ptr [ebp-4],0 6: 7: while(1) 0040103F mov eax,1 00401044 test eax,eax 00401046 je test+32h (00401052) 8: { 9: if( m == 0) 00401048 cmp dword ptr [ebp-4],0 0040104C jne test+30h (00401050) 10: break; 0040104E jmp test+32h (00401052) 11: } 00401050 jmp test+1Fh (0040103f) 12: 13: for(;;) 14: { 15: if( m == 0) 00401052 cmp dword ptr [ebp-4],0 00401056 jne test+3Ah (0040105a) 16: break; 00401058 jmp test+3Ch (0040105c) 17: } 0040105A jmp test+32h (00401052)

可以很清楚地看出,while(1)被翻译成了三个命令,而for(;;)却没有。很多同学可能认为,这只是三条指令而已,没有什么大惊小怪的,

但是我们要知道,很多循环都是上百万次的进行的,如果一般的函数都注意这个问题,那么一天节省下来的CPU时间是相当可观的。

(2) 待续

提高代码的运行效率(1)相关推荐

  1. 提高代码的运行效率 (4)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] (7)尽量采用查询的方式,少采用计算的方式,注意分析经验数据 做过服务器侧软件的朋友都知道,单 ...

  2. 提高代码的运行效率(2)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 2. 在编写的代码的时候,我们强调需要对循环首先进行循环内部的计算,然后进行循环外面的计算.在 ...

  3. 提高代码的运行效率 (3)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 4.编译的时候,我们习惯于在头文件中包含很多其他的文件,不管他们对我们是有用还是没有用,殊不知 ...

  4. 提高代码质量的那些建议

    程序员跟各行各业的手艺人一样,都是靠自己的作品吃饭.所以要想获得高收入和业界的认可就要不断的学习提高自己的业务水平.这里我总结了一些程序员提升代码质量的建议希望能对你的进阶有帮助. 1.提高代码的复用 ...

  5. 如何提高代码能力:程序员的成长之路(上)

    作为一名程序员,不仅需要具备一定的编程技术和知识,还需要不断提高自己的代码能力.代码能力是程序员在编写.阅读.理解和维护代码时所需要的技能和素养,它直接影响着程序员的工作效率.代码质量和职业发展.那么 ...

  6. 分享9个提高代码运行效率的小技巧

    学习之余看到的一片文章,转载出来,经常看看,好处多多! 我们写程序的目的就是使它在任何情况下都可以稳定工作.一个运行的很快但是结果错误的程序并没有任何用处.在程序开发和优化的过程中,我们必须考虑代码使 ...

  7. 程序人生:提高代码运行效率的9个技巧

    我们写程序的目的,就是使它在任何情况下都可以稳定工作.一个运行的很快但结果错误的程序,并没有任何用处.在程序开发和优化的过程中,我们需要考虑代码使用的方式,以及影响它的关键因素.通常,我们要在程序的简 ...

  8. Java 性能优化:教你提高代码运行的效率

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:五月的仓颉 cnblogs.com/xrq730/p/486 ...

  9. 阿里程序员工作小技巧:理解CPU分支预测,提高代码效率

    技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,体现也会在优秀程序员在工作效率提升,产品性能优化和用户体验改善等小技巧方面的分享,以提高我们的工作能力 ...

最新文章

  1. unix实际用户ID和有效用户ID解析
  2. HarmonyOS之常用组件TextField的功能和使用
  3. c/c++面试试题(三)
  4. Entity Framework 简介
  5. highcharts 显示网格
  6. dynamo python修改多个参数_40岁小白学了30天python发现,编程真的其乐无穷
  7. 牛人和普通人的区别在于思维方式!
  8. php关联数组json,使用JSON从PHP到Javascript的关联数组
  9. mysql plus baomidou_com.baomidou.mybatisplus.core.mapper 不存在
  10. Blueprint:一个让你获取示例代码的Flash Builder扩展
  11. Java基础篇:如何应用接口?
  12. 将 php 转换/编译为 EXE
  13. 小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_33、SpringBoot2.x整合Mybatis3.x注解实战...
  14. Linux第九周作业
  15. ASP.Net下绑定TextBox回车事件的解决方法
  16. Unity基础知识—Transform
  17. OpenCV C++案例实战二十三《网孔检测》
  18. 实战演习(九)——用python分析科比生涯数据
  19. 项目部 vs 项目组
  20. 现代检测技术-测量误差和处理

热门文章

  1. Style Lessons in Clarity and Grace (11th Edition)中文翻译
  2. POJ 3168 排序+扫描
  3. 通过一个模拟程序让你明白ASP.NET MVC是如何运行的
  4. Java高手需要注意的25个学习目标
  5. 网管员、工程师 、专家 的岗位描述
  6. fiddler模拟低速网络
  7. uva 674 Coin Change 换钱币【完全背包】
  8. HDFS使用流的方式上传下载
  9. 20145226夏艺华 后门原理与实践
  10. JAVA编程中的类和对象