最近,我一直在寻找Node.js和Clojure之间的许多基准测试,例如this,this和this。在我看来,与Ruby这样的语言相比,Node.js和Clojure的速度相同(这意味着更快)。
问题是,就RAM消耗而言,Clojure与Node.js相比如何?假设我即将编写一个简单的实时聊天应用程序。
如果我要比较Rails和Node.js,我基本上可以预期Node.js比Rails快100倍并且内存减少10倍......但是Clojure如何适应这里?
Clojure在内存消耗方面如何比较?我可以期望它比Node.js占用更多的内存,因为它在JVM上运行吗?或者这只是一种不再适用的刻板印象?
答案 0 :(得分:4)
对于现代硬件上的简单应用程序,Node.js或Clojure应该没有内存使用问题。
当然,正如Niklas所指出的那样,它最终将取决于您使用的框架以及您的应用程序编写得如何。
Clojure有相当重要的基本内存要求(因为java运行时环境/ JVM非常大),但我发现它的内存效率非常高于点 - Clojure对象只是引擎盖下的Java对象,所以可能不应该太令人惊讶。
值得注意的是,直接测量JVM应用程序的内存使用量通常会产生误导,因为JVM通常会预先分配超出其需要的内存,并且只会以惰性(根据需要)的方式收集垃圾。因此,虽然表观总内存使用率看起来很高,但实际工作集可能非常小(这是您真正关心性能的原因)。