为什么客户端使用更多的内存不同的服务器?

我在NodeJS请求计数和.Net Core上做了一些性能testing,我发现了我期望的。 很明显,.Net Core的请求数量要高得多。 但是,我发现特别有趣的是客户端,不用重新编译代码,实际上通过NodeJS服务器和.Net核心服务器使用更多的RAM。 RAM使用差异实际上是相当显着的,在那里我观察到NodeJS服务器的性能高于.Net核心服务器。

使用.Net Core 2.0.0和NodeJS 8.3.0

有问题的flooder。 使用.Net核心服务器,在最坏的使用情况下,运行使用从480MB到700MB的任何地方。 使用NodeJS服务器,我的电脑上使用了700MB到1.4GB的RAM(两者都是最大的CPU)。

Flooder代码

HttpServer.cs is the actual code that does the work Source.cs is where the HttpServer is run in a separate task to allow Console.ReadLine separately. 

Git链接到.Net核心服务器

NodeJS服务器代码

 const http = require('http') let serv = http.createServer((req, res) => { res.write("Hello!") // res.destroy() // Uncomment to reduce RAM usage, but the point is still valid }) serv.listen(48435) 

什么会导致内存使用的这种显着差异,以及为什么客户端会受到惩罚呢? 我理解服务器使用更多的内存,处理器,或者只是速度较慢,但​​为什么在某些情况下,为客户端使用相同的代码使用的内存几乎是RAM的两倍?

find解决scheme。 问题在于客户本质上创造了无限的请求。 服务器能够响应这些请求的速度越快,它们在客户端的处理速度就越快。 因此,在对Node的HTTP服务器进行集群之后,RAM的使用率大大降低了。

速度

NodeJS集群:935K请求,最低内存360MB,最高680MB。核心:780k请求,最低内存580MB,最高800MB NodeJS无集群:435k请求,最低RAM 800MB,最高1.4GB

感谢jfriend00,帮助我找出真正的来源。 这也是一个很好的指标,说明服务器如何“快速”(以RAM为代价),以便在处理时查看RAM的使用情况。