使用Java 1.6,我们可以说Java 1.6的性能几乎等同于C++代码,或者与C++相比,Java的性能方面还有很多需要改进的地方吗?
谢谢.
Debian喜欢对这类事情进行基准测试.在他们的例子中,似乎Java的速度大约是C++的一半,并且消耗的内存是C++的2-18倍.
编写良好的Java程序永远不会像编写良好的C或C++程序那样快.虚拟机是一种不可减少的开销.但是,大多数代码编写得不好.
Java是一种比C++更简单的语言,为没有经验的程序员提供了一个更宽容的环境 - 所以如果你的程序员缺乏经验(并且便宜),那么Java可能比C++表现得更好.
shared_ptr
在C++中提供类似宽容的环境,因此它们对于没有经验的程序员或从Java迁移的程序员来说非常诱人,但是他们的性能开销与Java的垃圾收集一样糟糕或差.我见过大型C++程序,其中每个变量都是a shared_ptr
,而且它们表现非常糟糕.
我的看法
就个人而言,我认为大型项目需要为大部分代码选择"简单"的编程语言,而对于需要优化的部分则需要"快速"编程语言.Java可能是"简单"语言的一个很好的选择,特别是因为目前有大量的Java程序员 - 在未来,我认为更容易的语言如Python将开始接管.
如果你已经知道C++,那么C++是一种"快速"语言的合理选择,但我认为它过于复杂,最终会看到它被淘汰,而C将继续履行这一角色.