有进来在太阳校友邮件表的较小战争和在别处常见的误解的地方: “Java是慢的”再次浮出水面,对为年龄知道博学的Java开发商的沮丧Java是快速的甚而与C++比较和如此是几年。 所有这复出了,因为太阳决定 改变它的订单符号到JAVA (以前它是SUNW)。 所有此是非常令人沮丧对以Java为傲的Java开发商并且很好知道它的能力,因为他们每天支持它。 因此我们休息这个神话永远休息,将我们?


神话1 : Java是解释语言和,因此它一定是慢的

Java由JVM (Java虚拟机)当前在时间编写。 在时间编辑给它等效表现编写应用,有时改善。 太阳的JIT不是只那个。 IBM和其他也是提供他们的JVM的实施以在时间编辑。

您能也编写在当地executables的Java节目与象gcj (http://gcc.gnu.org/java/)的自由编译器或被支付的那些象细刨花喷气机(http://www.xlsoft.com/en/products/jet/index.html)。

Java的迟钝不是内在的,那是建筑误解如被展示以上。 但是那里等待是更多。

Java对C++基准

我们看有些基准Java与C++比较。

Java对由J.P.Lewis的C++和乌尔里克Neumann和Immersive技术实验室,南加州大学表现从计算机图表的

http://www.idiom.com/~zilla/Computer/javaCbenchmark.html

从2003个发现的这篇文章“这篇文章勘测一定数量的基准并且发现在数字代码的Java表现与那是可比较的C++,与Java的相对表现继续改进的提示。 我们然后描述清楚的理论原因为什么应该期望这些基准点结果”。

当他们给了关于Java迟钝神话的一个详细说明并且十分地,打消它我希望引述更加进一步:

结论: 为什么是“Java是慢”很普遍的?

Java现在是几乎相等的对(或快速地比)在低级和数字基准的C++。 这不应该惊奇: Java是一种编写语言(虽然编写的JIT)。

然而, “Java是慢的”的想法广泛被相信。 这为什么是,因此或许是这篇文章的最有趣的方面。

我们看几个可能的原因:

*大约1995年的Java是慢的。 Java的第一化身没有Java JIT编译器,并且是被解释的bytecode (象例如Python)。 JIT编译器出现于从微软, Symantec的JVMs和于太阳的java1.2。

这个解释是难以置信的。 多数“计算机伙计”能急促背诵在最新的处理器的GHz的确切的速度,并且他们跟踪这信息,当它每个月改变(和多年来如此做了)。 这个解释要求我们相信他们不能记得唯一和相当重要语言速度变动在1996年发生。

* Java可以仍然是慢的。 例如,节目写与穿线安全传染媒介类必要是慢(在至少一个唯一处理器)比那些写与等效穿线不安全的ArrayList类。

因为C++和其他语言有相似的“抽象惩罚”,这个解释平等地不令人满意。 例如, Kernighan和派克书实践编程有与以下词条的一张桌,描述正文处理节目的几实施表现:
版本400 MHz PII
C 0.30秒
C++/STL/deque 11.2秒
C++/STL/list 1.5秒

在C++的另一个显然地知名的问题是天花板退回对象从作用(几多余的对象创造或复制或者自毁周期是包含的)。

* Java节目起动是慢的。 当Java节目开始,它拉开Java图书馆拉链并且编写部分的本身,因此一个交互式程序可以是慢吞吞的在第一夫妇秒钟用途。

这接近是速度神话的一个合理的解释。 但是,当它也许解释用户的印象时,它不解释许多程序员(谁可能容易地了解被编写的一个被解释的节目的想法)为什么分享信仰。

二关于这个问题的最有趣的观察是那:

1.有一个相似的“无用单元收集是尽管数十年证据相反坚持的缓慢的”神话,和
2.在网发火焰的战争,人们是愉快谈论他们的许多页的速度印象,无需提到实际数据。

同时这些建议是可能的相当数量数据不会修改人的信仰,并且在事实这些“大概加速信仰”有一点做与Java、无用单元收集或者否则陈述的主题。 我们的答复在社会学或心理学方面大概在某处。 程序员,尽管他们的逻辑想法的公开宣称的欣赏,不是对一神话免疫,虽然这些特殊“神话”是任意和相对地无害的。

这在Java的另一个基准对C++

Java比C++基准快速

http://www.kano.net/javabench/
这在JDJ杂志文章上也被引述了: http://java.sys-con.com/read/45250.htm

“我为C++使用了G++ (GCC) 3.3.1 20030930 (与glibc 2.3.2-98),与- O2旗子(为i386和i686)。 我通常编写了Java代码与太阳Java 1.4.2_01编译器,并且跑了它与太阳1.4.2_01 JVM。 我进行了对Red Hat Linux 9/与2.4.20-20.9仁的浅顶软呢帽Test1的测试在T30膝上型计算机。 膝上型计算机有奔腾4流动芯片,记忆,一种慢盘512MB。

我取得的结果是Java比优化C++在许多情况下显着快速。
JVM启动时间在这些结果包括。 那比在许多C++意味甚而与JVM启动时间, Java快速这些测试”

BTW : 文章与许多其他基准也连接在末端。

有希望地我最后放置了休息对“Java神话是慢的”。 它是悟性,大胆地错误悟性,不是现实。 克服它。