<分区>
我刚刚在这里查看了一些编程语言基准:http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=php&lang2=java
我注意到像 PHP、Ruby 和 Python 这样的语言速度较慢,但令人惊讶的是,在大多数基准测试中使用的内存比 Java 少。这是什么原因?
<分区>
我刚刚在这里查看了一些编程语言基准:http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=php&lang2=java
我注意到像 PHP、Ruby 和 Python 这样的语言速度较慢,但令人惊讶的是,在大多数基准测试中使用的内存比 Java 少。这是什么原因?
最佳答案
当您使用 Oracle Java 时,Java 程序不会编译为可立即由 CPU 执行的 native 机器码,而是编译为称为“java 字节码”的中间形式。
执行这个 java 字节码的 Java 环境包括一个复杂的编译器,它可以生成非常好的本地机器码,因为它跟踪程序实际做了什么,以及在哪些地方花费大量精力优化机器是有意义的代码。不幸的是,所有这些簿记都会占用内存,编译器本身也会占用内存,还有 Java 环境的其余部分。此外,清理不需要的对象的垃圾收集机制也需要额外的内存才能正常工作(即快速)。
所有这些导致 Java 程序需要大量内存,即使对于小程序也是如此。
关于java - 为什么大多数脚本语言使用较少的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28273814/