代码执行的效率

草鞋 发布于 2011/02/11 10:43
阅读 1K+
收藏 3

最近我做了一个很小的项目,计算量比较大。先用java写的,后来感觉计算速度不够快,改用C++写。拿出一块代码,两厢对比,java用时7.57秒,C++用时21秒多。java用的是eclipse helios,C++用的是netbeans6.9.1 + g++ 4.x,visual C++ 2010。

编码中常见的效率问题都尽量回避过,例如深度复制改用指针等。

虽然说没有java就比C++慢的证据,但是相差接近3倍,让我很是迷惑。

大家有什么对付效率问题的好的经验和方法工具,请赐教!!!!!

 

加载中
0
烈冰
烈冰

java就是内存占用比较大,运行速度一点都不慢。如果你的电脑有足够大内存的话,java比C++快一点都不奇怪

0
zhaowenwei
zhaowenwei

如果你以Java的方法去编写 C++的话。。。。

0
芙蓉镇
芙蓉镇

java的处理速度可不慢。还是要看具体做的什么计算处理,算法如何。

是否有频繁访问外部资源(如数据库)的情况,以及是否频繁创建对象。

0
0
灵剑子
灵剑子

Java比优化后的C快那么一点点。C++如果大量使用虚拟函数,或者频繁创建销毁对象,比Java慢是必然的。

0
草鞋
草鞋

嗯很想把代码传上来,代码的所有的权不是我的,真的很无奈。

我的项目使用的内存比较大,用java代码跑的时候,观察内存使用,呈现周期波浪型,估计是垃圾回收在频繁使用。内存使用高峰在1.67G,我的电脑有2G内存。从预测来看,完全计算一次需要70个小时,单例提供共享内存改进后,需要44个小时。

C++代码在内存上貌似要节约很多。我上午调了一下,大概到1.5G可以打住,当然不会有垃圾回收占用时间的问题。

0
xyz555
xyz555

呵呵,既然要问别人运行效率差在那,就要给出代码,不然让别人如何去猜?连你干了什么都不知道,怎么可能猜得到?至少你要放上你认为耗时多的部分代码,或给出你解决的是什么问题和使用什么算法。

0
草鞋
草鞋

这个真没法,版权不在我这。虽然项目很小,小到不值一提。唉,想想这些年来尽做这样的事情,写出的代码都属于公司的。

我希望知道朋友遇到效率问题时,都采用过那些方法工具来分析。

0
xyz555
xyz555

要是说分析软件倒是可以推荐一个Intel VTune

0
草鞋
草鞋

谢谢,我去找找看

返回顶部
顶部