为什么大多数脚本语言使用较少的内存?

Why do most scripting languages use less memory?

我刚刚在这里查看了一些编程语言基准测试:http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=php&lang2=java

我注意到像 PHP、Ruby 和 Python 这样的语言速度较慢,但​​令人惊讶的是,在大多数基准测试中使用的内存比 Java 少。这是什么原因?

当您使用 Oracle Java 时,Java 程序不会编译为 CPU 可以立即执行的本机代码,而是编译为称为 [=16] 的中间形式=].

执行这个 java 字节代码的 Java 环境包括一个复杂的编译器,它可以生成非常好的本地机器代码,因为它跟踪程序实际做了什么,以及它在哪里做得很好感觉要花很多精力优化机器码。不幸的是,所有这些簿记都会占用内存,编译器本身也会占用内存,以及 Java 环境的其余部分。此外,清理不需要的对象的垃圾收集机制也需要额外的内存才能正常工作(即快速)。

所有这些导致 Java 程序需要大量内存,即使对于小程序也是如此。