2

最近我偶然发现了很多 Node.js 和 Clojure 之间的基准测试,例如thisthisthis。在我看来,与 Ruby 之类的语言相比,Node.js 和 Clojure 都差不多快(这意味着要快得多)。

问题是,Clojure 在 RAM 消耗方面与 Node.js 相比如何?假设我要编写一个简单的实时聊天应用程序。

如果我要比较 Rails 和 Node.js,我基本上可以预期 Node.js 比 Rails 快 100 倍,占用的内存少 10 倍……但是 Clojure 是如何适应这里的呢​​?

Clojure 在内存消耗方面如何比较?我可以期望它比 Node.js 占用更多的内存,因为它在 JVM 上运行吗?或者这只是一种不再真实的刻板印象?

4

1 回答 1

4

对于现代硬件上的简单应用程序,Node.js 或 Clojure 都应该没有内存使用问题。

当然,正如 Niklas 指出的那样,这最终将取决于您使用的框架以及您的应用程序编写得有多好。

Clojure 有相当大的基本内存需求(因为 java 运行时环境/JVM 非常大),但我发现它的内存效率非常高——Clojure 对象只是底层的 Java 对象,所以可能不应该不要太令人惊讶。

还值得注意的是,直接测量 JVM 应用程序的内存使用情况通常会产生误导,因为 JVM 通常会预先分配比它需要的更多的内存,并且只会以惰性(根据需要)方式进行垃圾收集。因此,虽然表面上的总内存使用量看起来很高,但实际的工作集可能非常小(这是您真正关心的性能目的)。

于 2012-04-21T12:28:06.233 回答