有人告诉我,Java有更多的开销,因为你基本上可以在大多数操作系统上运行它,并且C#没有那个开销,所以它可以以接近C++的速度执行.
那么Java中是否有更多的开销,或者每个操作系统是否有自己的JVM实现开销?
小智 8
C#,Java(我也会把它扔在那里--JavaScript)是语言.语言不是快或慢,它们只是我们人类如何编写最终由计算机处理的东西的规范.
该JVM是Java虚拟机.但它有几个不同的版本.有HotSpot(原版),OpenJDK,然后人们可以从BEA,Apache Harmony和更多人看看JRockit.
对于C#,有CLR,但也有Mono的运行时.还有一些随着时间的推移而被遗弃的人.
JavaScript(因为我在那里折腾)有一整套运行时.其中一些运行时比其他运行时更快.
它的运行时间比另一个更快或更慢 - 甚至可能是同一种语言.但是那个是"跨平台"而另一个并不足以说明一个比另一个更快.还有很多其他的东西在起作用,并且可以构建基准,显示每个组合比另一个组合更快.
更进一步,人们可以看到跨越多个运行时的语言.你已经将CPython作为其默认实现的Python - 但是Jython在JVM和运行在CLR中的IronPython中运行.类似的例子可以在Ruby,IronRuby和JRuby或Clojure中找到,它们可以通过ClojureScript编译成JavaScript ,然后在其中一个JavaScript运行时而不是JVM上运行.
同样,它不是快速或慢速的语言 - 而是它在运行时的实现方式.