下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序优化的几个建议程序优化的几个建议程序优化的几个建议xxx公司程序优化的几个建议文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度给出程序优化的几个建议,希望对你有帮助如何写出高性能的C/C++代码一直是hack追求的境界,这里总结了一些常用的,希望对大家有用,欢迎拍砖,给出建议。第一:记住,代码写完后一定要做一下系统优化,无论上面是否这样要求,但是这点很重要,是一种态度,当然优化可以借助各种工具如IBM和INTEL系列的优化工具,一般80%的时间被20%的代码所占用。第二:如果你所在公司,对程序性能优化不重视,那么就请跳槽吧。第三:要知道你所用编译器是怎么去优化多维数组访问的,如A[i][j]->A[i][j+1]和A[i][j]->A[i+1][j]的访问速度对不同的编译器会有明显的速度差异,在里面涉及到cacheblock击中问题。第四:关注多核处理器对浮点运算的处理方式。第五:减少局部栈变量。我们知道任何系统给的栈空间的大小极为吝啬的,一般是1-4MB左右。如果栈变量过多,那么会导致一部分栈变量存在register里面,这会影响函数调用速度。第六:尽量减少函数参数个数,如果不需要返回,就不要返回,减少栈深度。第七:尽量用pass-by-reference和指针传递参数,避免不必要的复制。第八:尽量避免使用cast操作,这会产生一个temp变量,挤占register的空间,影响I./O效率。第九:声明C++类的时候避免使用赋值构造第十:正确写出轻量级的构造函数,如用A():a(0){}代替A(){a=0;}第十一:尽量用位运算代替四则运算第十二:谨慎使用函数跳转表第十三:对自己定义的类,尽量用+=-=
\=*=代替+-*/第十四:尽量延迟局部变量的声明和初始化第十五:如果不影响计算的话,用prefix++代替postfix++,对于用户自己定义的类,这两个操作符都要定义,防止客户误用第十六:使用泛型编程看起来很酷,但是主流编译器对他的优化是有限的,尽量避免使用。第十七:在计算过程过程中,避免动态内存操作。第十八:搞清楚你硬件cache大小第十九:避免不必要的初始化第二十:尽量提前结束loop第二十一:用数学公式去简化你的计算,如不要SB到用循环或者递归去计算等差数列的前N项和第二十二:递归尽量少用,虽然很美,但是这回消耗本来就不富裕的栈空间第二十三:尽量不要用虚函数。这会增加类的大小第二十四:浮点计算和整形计算的速度没有你想的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度文化娱乐产业投资合同2篇
- 2024年度居间服务合同诉讼范本下载
- 2024年度建筑防水工程技术咨询合同2篇
- 二零二四年联合开发合同新能源项目2篇
- 2024年租赁汽车权益保障合同2篇
- 2024年企业设备购置融资租赁合同2篇
- 二零二四年度房地产项目合作框架协议合同
- 2024年新版物业转让初步协议书3篇
- 2024年款智能手机定制服务合同3篇
- 全面视角审视行政合同纠纷解决机制(2024年修订版)2篇
- 人工装、卸煤工操作规程
- 氰化钠安全技术说明书MSDS
- 国家开放大学《管理学基础》形考任务4参考答案
- 2021年临界生培养计划
- 干接点输出模块说明书
- 清代官窑瓷器的装饰特色及文化传承研究共3篇
- 巨量合集全球simotion通讯ethernet
- 2023年社区退役军人服务站工作总结十三篇
- GB/T 20880-2018食用葡萄糖
- 《女生青春期教育》专题课件
- GB/T 10505.2-19893A分子筛磨耗率测定方法
评论
0/150
提交评论