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

时间:2015-02-02 08:42:03

标签: java php python ruby benchmarking

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

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

1 个答案:

答案 0 :(得分:3)

当您使用Oracle Java时,Java程序不会被编译为可以立即由CPU执行的本机代码,而是编译为一个名为" java字节代码的中间代码"。

执行此java字节代码的Java环境包括一个复杂的编译器,它可以生成非常好的本机机器代码,因为它可以跟踪程序实际执行的操作,以及花费大量精力优化机器的合理意义码。不幸的是,所有这些簿记都占用了内存,编译器本身也与其他Java环境一起使用。清理不需要的对象的垃圾收集机制也需要额外的存储器才能很好地工作(即快速)。

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