Ruby Clojure vs Node.js RAM消耗

Ruby Clojure vs Node.js RAM消耗,ruby,node.js,memory,resources,clojure,Ruby,Node.js,Memory,Resources,Clojure,最近,我在Node.js和Clojure之间遇到了很多基准测试,如、和。在我看来,与Ruby等语言相比,Node.js和Clojure的速度差不多(这意味着要快得多) 问题是,Clojure在RAM消耗方面与Node.js相比如何?比如说,我正要编写一个简单的实时聊天应用程序 如果我要比较Rails和Node.js,我基本上可以预期Node.js的速度是Rails的100倍,占用的内存是Rails的10倍。。。但是Clojure怎么适应这里呢 Clojure在内存消耗方面如何比较?我能指望它比N

最近,我在Node.js和Clojure之间遇到了很多基准测试,如、和。在我看来,与Ruby等语言相比,Node.js和Clojure的速度差不多(这意味着要快得多)

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

如果我要比较Rails和Node.js,我基本上可以预期Node.js的速度是Rails的100倍,占用的内存是Rails的10倍。。。但是Clojure怎么适应这里呢


Clojure在内存消耗方面如何比较?我能指望它比Node.js占用更多的内存吗,因为它是在JVM上运行的?或者这只是一个不再正确的原型?

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

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

Clojure有一个非常重要的基本内存需求(因为java运行时环境/JVM非常大),但我发现它的内存效率非常高,超出了这一点——Clojure对象只是隐藏在引擎盖下的java对象,所以这可能不会太令人惊讶


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

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

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

Clojure有一个非常重要的基本内存需求(因为java运行时环境/JVM非常大),但我发现它的内存效率非常高,超出了这一点——Clojure对象只是隐藏在引擎盖下的java对象,所以这可能不会太令人惊讶


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

您谈论的是Rails与Clojure,其中一个是web框架,另一个是语言。您还应该包括希望与Clojure和Node.js一起使用的web框架。@NiklasB。我知道我在比较一个框架和一种语言,但是因为我没有任何Clojure的经验,我在寻找一种通用的语言模式。你说的是Rails和Clojure,其中一种是web框架,另一种是语言。您还应该包括希望与Clojure和Node.js一起使用的web框架。@NiklasB。我知道我在比较一个框架和一种语言,但是因为我没有任何Clojure的经验,我在寻找一种通用的语言模式。你可以随时使用visualvm连接到jvm,监视有多少活动对象以及它们占用了多少空间。只需点击profiler/memory.Clojure也有一个不错的并发模型,而Ruby没有。NodeJS的事件驱动IO也可以近似于Java的NIO(使用Netty!)。您可以始终使用visualvm连接到jvm,并监视有多少活动对象以及它们占用了多少空间。只需点击profiler/memory.Clojure也有一个不错的并发模型,而Ruby没有。NodeJS的事件驱动IO也可以近似于Java的NIO(使用Netty!)。