日期:2014-05-20  浏览次数:20704 次

比较同一个程序的c实现和java实现的速度及内存
RT
现在在改造一个c程序, 用java去实现
客户比较担心处理速度和内存问题
请教下如何比较?
(1. 处理速度 2.内存)

------解决方案--------------------
要看是什么程序。
如果是CPU密集型程序,比如压缩解压,当然C的效率较高了。
除此之外,基本没啥问题。
有些汽车制造的流水线,也用Java的程序来控制呢,只要开发过程中严谨把关,
对数据的处理格外注重效率,基本没什么可以担忧的。

内存一般不会成为问题,因为,C语言也会面临内存泄露的风险,
没有非常完美的程序,只有非常粗心的程序员,除此之外,内存不是问题。
------解决方案--------------------
在比较之前,很有必要先看看这篇文章:http://www.ibm.com/developerworks/cn/java/j-jtp12214/
------解决方案--------------------
这种比较,永远是公说公有理,婆说婆有理,测试数据也可以按需调整。

http://www.drdobbs.com/cpp/microbenchmarking-c-c-and-java/184401976

http://scribblethink.org/Computer/javaCbenchmark.html

http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/18351/1/99-1827.pdf

以上这几篇都是偏向Java的。
------解决方案--------------------
语言本身的特性固然重要,但是人依然会是主导因素。
------解决方案--------------------
费内存是肯定的了,这个不用听别人忽悠+扯淡,肯定多费很多内存。

速度一般也肯定是要慢的了,你就慢慢测试吧。这个速度看你系统的规模和类型。


如果你是一个从C改到Java的代码,不用说,代码量不会太大,那你的结果必然是慢。
但是不用担心,足够快就OK了。