我在 Node.js 中编写了一个超级简单的 TCP/IP 套接字服务器:
'use strict';
var net = require('net');
net.createServer(function (socket) {
socket.resume();
socket.once('end', function () {
socket.removeAllListeners();
});
}).listen(3000);
甚至不应该是必要的once('end', ...
,但我想确定。然后我从终端运行以下命令,将 500 MB 的数据发送到服务器:
$ cat 500mb.txt | nc localhost 3000
现在它变得有趣了。我正在node
使用 观看该过程top
,并且我在 OS X 和 Linux 上执行此操作。
当我启动 Node.js...</p>
- OS X 报告
MEM 5152K
(看起来不错) - Linux 报告
RES 15180
(我将其解释为15 MB,但对此我不确定)。
第一个问题:这两个值是否具有可比性,还是我在这里遗漏了什么?
然后,一旦我运行cat ... | nc ...
,内存使用量就会增加。一通电话后……</p>
- OS X 报告
MEM 20M
- Linux 报告
RES 92320
(这意味着 92 (!) MB 内存使用量)
这里发生了什么?为什么 Node.js 在 Linux 上使用的内存比在 OS X 上多得多?我的设置错了吗?我错过了什么吗?...?