I've a static ExpressJS Server like that:
var express = require("express"),
app = express();
app.use(express.static(__dirname));
app.listen(1050);
当我启动服务器时,它使用了20MB的v8堆。如果我每秒钟重新加载页面,则使用的堆会不断增长。4小时后,v8堆使用量达到40MB。总v8堆达到80MB,RSS(进程使用的总内存)达到130MB。
为什么这个简单的静态服务器使用了这么多内存?看起来像是内存泄漏。如果我不停止页面重新加载,则使用的内存将继续增长。
如果一个简单的静态服务器使用太多内存,那么做更大的项目就不可能了。
NodeJS版本:v0.10.21 ExpressJS版本:3.3.5
编辑:我注意到这是NodeJS的问题,因为我尝试了node-static而不是express,虽然使用/总V8堆保持不变,但nodejs使用的RSS内存继续增长。
屏幕截图:
https://www.dropbox.com/s/4j5qs3rv2549dix/Screenshot%202014-03-20%2014.06.57.png https://www.dropbox.com/s/0c30ou8l3rv2081/Screenshot%202014-03-20%2014.07.54.png https://www.dropbox.com/s/5be1isk4v70qj8g/Screenshot%202014-03-20%2014.08.10.png
(从13:48开始)