为什么字节码可能比本机代码运行得更快 [已关闭]
Java很慢。
这不仅仅是一个“都市传说”,它似乎是一个事实。由于延迟,您不会将其用于实时编码,也不会将其用于集群/并行计算。有成千上万的基准测试,特别是“Java vs C#vs C++”。
http://benchmarksgame.alioth.debian.org/
根据上面的网站,不仅Java的性能几乎和C一样好(远非其他的),而且Scala和Clojure(两种在JVM上运行的函数式语言)都比OCaml,Erlang具有更好的性能。
还有很多“Java比X更快”(例如,关于SO的问题:Java运行时性能与本机C / C++代码?)。
因此,在某些情况下,Java似乎很快。有人能解释一下为什么吗?
为什么字节码可能比原生代码运行得更快,在某些情况下,给定动态代码(Scala,Clojure)和垃圾回收?为什么如果它更快,仍然有延迟?
这似乎是一个矛盾,有人可以发光吗?