程序优化技术都有哪些,如何提高程序的执行效率 vc平台开发的程序,如何提高程序执行效率,都有哪些方法,现在知道的是:从算法上优化,采取更好的算法,采用更有效率的库,瓶颈代码的底层汇编优化,多线程,提高程序并发性等,有什么可以推荐的书没有,看过《我的编程之旅》里面介绍了一些游戏优化方法,比较实用,还有更多的书推荐没有,中文版或者英文原版的, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以采用一些底层代码优化,例如浮点整型化,分解嵌套结构,MMX/SSE,改变结构成员布局,等等 用GPU优化,参考nvida的CUDA还有一些,你上网搜搜看 有的,我记得微软专家写的一本书提到了: 多使用Windows API 看具体情况,如果是有规律的算法,象多媒体方面的数据处理,很多用mmx sse汇编优化,效果就很理想了 1、分析速度瓶颈;2、减少调用次数;(避免重复调用等)3、优化函数实现;(涉及到 SSE 等)4、使用 inline,避免函数调用的开销;5、自己管理内存,避免内存分配的开销;... 发给偶吧,邮箱[email protected] CSDN应该有下的,我在单位,这里没有 只用过AQTime测过代码的瓶颈..然后优化之.. effective 系列丛书描述的都是从语言级别上的优化但我觉得算法优化才是王道 最好的方法 不用MFC,不用c++直接用汇编+api 合理使用内存,提高cache的命中率,对性能也是很有帮助的。 不过问题是一般来说程序的大多数地方不存在算法与否的问题, 只是简单的流程执行,因而很难做实质上的优化。从8:2法则的观点看,找到实际上消耗CPU最多的那部分代码优化之才是最关键的,但讽刺的是,这部分代码往往既不好找,不容易被优化 期待这方面高手 给个明路zouzou 1、调用数据库的时候,存储过程2、少用循环3、共性提取,尽量变成类库、dll再高深的那些个算法啊,也不怎么说的清。 看实际情况,解决方法也大相径庭有些时候只要用第三方库就相当优化了有些时候一定要自己写有些时候加个sleep(1)就没事了 多线程能不用锁的地方,尽量不用锁,while()中sleep()有时也能降点cpu占用率 关键是监控和分析工具,测出瓶颈在哪。比如有些单机软件,解码编码等,其消耗是大量的计算,那么这种情况下指令优化和换更好的编译器包括GPU加速等就很有用而如果是网络应用,那么瓶颈在带宽以及连接开销等,那么可以考虑精简通信协议 我觉得有一个原则,就是尽量不要考虑底层的优化,比如提高线程并发度,这种优化除非在设计前期就考虑使用,在后期采取这种办法优化可能会有灾难性的后果。从宏观上来说,首先是减少线程数,规划好每个线程并将每个线程的休眠时间提高到最大,降低CPU在任务调度上的消耗。其次就是重点优化,毕竟程序80%的时间都在运行20%的代码,只要在这20%的代码上功夫下足了,性能自然就能上去。再次就是考量系统的性能,尤其是CPU和内存,是哪个比较吃紧,如果CPU比较吃紧,可以考虑用空间换时间的思路,否则就用时间换空间了。微观一点来说,首先就是降低内存拷贝次数,因为一般的程序都会设计大量的I/O,所以降低内存拷贝可以省不少CPU;其次是减少不必要的同步,比如使用了互斥锁,就将临界区缩到最小,只保护必要的数据,防止在线程互相等待上耗费不必要的CPU;降低堆内存的使用频率,尤其是频繁地申请、释放内存,对CPU的消耗很大;再次是条件语句中,将最容易命中的逻辑放在前面,越不易命中的往后排;频繁使用的变量使用register来修饰;使用高效率的I/O模型,比如网络使用epoll、聚散I/O等,磁盘I/O用DIRECT方式等;频繁使用的函数,参数不要超过4个(因CPU而异,比如ARM的寄存器就比较多),超过4字节的参数(如结构体)传地址;减少循环里面不必要的逻辑;总之优化方法很多,有些是架构层面的优化,有些是设计层面的优化,有些是代码级的优化。 好像有本书叫C++ effective的,可以看看 建议看一下这本书 effective C++ 我记得有人列举过C++代码优化你看下面的CSDN链接http://dev.csdn.net/htmls/16/16067.html据自己的使用经验看,可以提高一部分速度不过以其花时间去优化代码,还不如使用简洁的算法,那才是根本! 好好学习,天天向上.....1、分析速度瓶颈;2、减少调用次数;(避免重复调用等)3、优化函数实现;(涉及到 SSE 等)4、使用 inline,避免函数调用的开销;5、自己管理内存,避免内存分配的开销; 问问检查非法字符方法???? vc++的学习 关于win32下slider控件的问题 关于网管软件的事 ***给我推荐几本好教程*** 找错 按钮加载位图用bitmap怎么实现不了 问题 这个程序竟然出错,请高手指点? 如何判断子窗口是否已经建立 编码转换问题 内存中画图,打印的问题,快崩溃了,救命
还有一些,你上网搜搜看
描述的都是从语言级别上的优化
但我觉得算法优化才是王道
不用MFC,
不用c++
直接用汇编+api
不过问题是一般来说程序的大多数地方不存在算法与否的问题, 只是简单的流程执行,因而很难做实质上的优化。从8:2法则的观点看,找到实际上消耗CPU最多的那部分代码优化之才是最关键的,但讽刺的是,这部分代码往往既不好找,不容易被优化
2、少用循环
3、共性提取,尽量变成类库、dll再高深的那些个算法啊,也不怎么说的清。
而如果是网络应用,那么瓶颈在带宽以及连接开销等,那么可以考虑精简通信协议
从宏观上来说,首先是减少线程数,规划好每个线程并将每个线程的休眠时间提高到最大,降低CPU在任务调度上的消耗。
其次就是重点优化,毕竟程序80%的时间都在运行20%的代码,只要在这20%的代码上功夫下足了,性能自然就能上去。
再次就是考量系统的性能,尤其是CPU和内存,是哪个比较吃紧,如果CPU比较吃紧,可以考虑用空间换时间的思路,否则就用时间换空间了。
微观一点来说,首先就是降低内存拷贝次数,因为一般的程序都会设计大量的I/O,所以降低内存拷贝可以省不少CPU;
其次是减少不必要的同步,比如使用了互斥锁,就将临界区缩到最小,只保护必要的数据,防止在线程互相等待上耗费不必要的CPU;
降低堆内存的使用频率,尤其是频繁地申请、释放内存,对CPU的消耗很大;
再次是条件语句中,将最容易命中的逻辑放在前面,越不易命中的往后排;
频繁使用的变量使用register来修饰;
使用高效率的I/O模型,比如网络使用epoll、聚散I/O等,磁盘I/O用DIRECT方式等;
频繁使用的函数,参数不要超过4个(因CPU而异,比如ARM的寄存器就比较多),超过4字节的参数(如结构体)传地址;
减少循环里面不必要的逻辑;
总之优化方法很多,有些是架构层面的优化,有些是设计层面的优化,有些是代码级的优化。
你看下面的CSDN链接
http://dev.csdn.net/htmls/16/16067.html
据自己的使用经验看,可以提高一部分速度
不过以其花时间去优化代码,还不如使用简洁的算法,那才是根本!
1、分析速度瓶颈;2、减少调用次数;(避免重复调用等)3、优化函数实现;(涉及到 SSE 等)4、使用 inline,避免函数调用的开销;5、自己管理内存,避免内存分配的开销;