【发布时间】:2010-09-01 00:30:12
【问题描述】:
根据我收集到的关于.NET和Java执行环境的信息,目前的情况如下:
现代 Java VM 能够执行连续重新编译,结合分析可以产生巨大的性能改进。较旧的 JVM 采用 JIT。 本文中的更多信息: http://www.ibm.com/developerworks/library/j-jtp12214/ 尤其是:Java theory and practice: Dynamic compilation and performance measurement
.NET 使用 JIT 或 NGEN 来生成本机代码,但是一旦生成本机代码,就不会执行进一步的(运行时)优化。
抛开基准测试并无意升级圣战,这是否意味着 Java Hotspot VM 比 .Net 领先一代。 Java VM 中采用的这些技术最终会进入 .NET 运行时吗?
【问题讨论】:
-
链接的文章表明动态重新编译可能是一件好事,但很难确定,因为虚拟机可以选择重新优化而不会发出警告。如果没有合理的代码分析,这似乎是一种信仰,因为没有证据表明“巨大的性能改进”确实发生了。
-
如果该技术对 JIT/NJEN 模型有如此大的改进,我相信微软会实施它。那篇论文是 1994 年的,IBM 的文章是 2004 年的。
-
@Matthew,这基本上意味着您信任的女士多于实施它的 Sun。我正在寻找一些更可靠的数据,可能是来自 Ms 团队的某个人的声明(例如,他们尝试过并认为它不值得等),或者可能是有关 Ms 当前实施它的努力的信息等。
-
另外,如果我不信任他们,我为什么要把我的事业交给他们?
-
基准测试是衡量一个平台编译方法是否优于另一个平台的有效方法。 “抛开基准”听起来可能有点像“忽略动态编译是否真的做了什么,听起来不是更好吗?”
标签: java .net comparison jit jvm-hotspot