当前位置:  开发笔记 > 编程语言 > 正文

Java 1.6与C++的性能如何?

如何解决《Java1.6与C++的性能如何?》经验,为你挑选了2个好方法。

使用Java 1.6,我们可以说Java 1.6的性能几乎等同于C++代码,或者与C++相比,Java的性能方面还有很多需要改进的地方吗?

谢谢.



1> Crashworks..:

Debian喜欢对这类事情进行基准测试.在他们的例子中,似乎Java的速度大约是C++的一半,并且消耗的内存是C++的2-18倍.


应该采取一粒盐.首先,您可以根据自己的喜好编写程序.我知道haskell做得很好,但代码不是惯用的,所以你从未使用的廉价技巧问世.其次,它只使用小程序.很少有趣的Java和C++程序少于10000行代码.很多都超过100万LOC.
这是一个很好的观点,但我还应该提供一个计数器,如果95/5规则为真("95%的时间花费在5%的代码上"),那么5%应该进行基准测试.无论如何,即使是一百万行程序也包含许多单独的100行功能.
@Crashworks仅适用于优化给定环境中的给定程序 - 如果您将垃圾收集环境与使用自动指针的环境进行比较,使用细粒度总线锁定或不可变vs可变字符串处理使线程安全,你会得到整个程序效果以及特定的瓶颈.

2> alex tingle..:

编写良好的Java程序永远不会像编写良好的C或C++程序那样快.虚拟机是一种不可减少的开销.但是,大多数代码编写得不好.

Java是一种比C++更简单的语言,为没有经验的程序员提供了一个更宽容的环境 - 所以如果你的程序员缺乏经验(并且便宜),那么Java可能比C++表现得更好.

shared_ptr在C++中提供类似宽容的环境,因此它们对于没有经验的程序员或从Java迁移的程序员来说非常诱人,但是他们的性能开销与Java的垃圾收集一样糟糕或差.我见过大型C++程序,其中每个变量都是a shared_ptr,而且它们表现非常糟糕.

我的看法

就个人而言,我认为大型项目需要为大部分代码选择"简单"的编程语言,而对于需要优化的部分则需要"快速"编程语言.Java可能是"简单"语言的一个很好的选择,特别是因为目前有大量的Java程序员 - 在未来,我认为容易的语言如Python将开始接管.

如果你已经知道C++,那么C++是一种"快速"语言的合理选择,但我认为它过于复杂,最终会看到它被淘汰,而C将继续履行这一角色.


@alex一个shared_ptr是一个智能指针,而不是一个垃圾收集器.在编译时,你总是会知道shared_ptr是否进行了清理,但你不一定知道垃圾收集器什么时候会中断它来做它的事情.当你编写一个飞行控制系统时,你想要的最后一件事就是当你的飞机正在进行紧急着陆时,垃圾收集器会爆炸并开始大力旋转.这两个不起作用,不执行相同的操作
@alex,C++用于许多关键任务系统,包括具有硬实时约束的嵌入式系统.
推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有