解释器做了很多额外的工作,所以它们最终比本地机器代码慢很多是可以理解的。但是 C# 或 Java 等语言有 JIT 编译器,据说可以编译为平台本地机器代码。
然而,根据 benchmarks这似乎足够合法,在大多数情况下仍然比 C/C++ 慢 2-4 倍?当然,我的意思是与同样优化的 C/C++ 代码相比。我很清楚 JIT 编译的优化优势以及它们生成比优化不佳的 C+C++ 更快的代码的能力。
毕竟关于 Java 内存分配有多好的噪音,为什么这样 horrendous内存使用情况? 2 到 50 倍,平均大约 30 倍以上的内存在特定的基准测试套件中使用,这没什么可小瞧的......
请注意,我不想启动 WAR,我询问的是定义这些性能和效率数据的技术细节。
最佳答案
产生差异的一些原因;
关于performance - 为什么 JIT 语言仍然比原生 C/C++ 更慢且内存效率更低?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11881853/