首页 > 解决方案 > nodejs服务器空闲数组内存分配

问题描述

这是我第一次创建 Nodejs 服务器,我注意到全局变量值在对服务器的不同查询之间是持久的,这让我想我应该清除数组还是做其他事情来减少内存使用?

例如,如果我有一个数组(在函数内声明),它被推送到值并被记录到response.send(JSON.stringify(array)),我应该在函数调用之后将它设置为 null 吗?

此外,是否有更好的方法来处理 Nodejs 中的连接/请求/响应结束以减少内存使用?

...
code
...

if (results.length > 0) {
    var cur_data = {};
    cur_data["day"] = day_i;
    cur_data["data"] = results;
    ret_val.push(cur_data);
}

...
code
...

finish(con, req, res, JSONstringfy(ret_val), false);
ret_val = null;

function finish(con, req, res, log, is_error)
{
    req.pause();
    res.status(is_error == true ? 400 : 200);
    res.send(log);
    con.end();
}

标签: javascriptnode.js

解决方案


如果数组在函数内部,则无需担心,因为一旦函数完成执行,它就会释放其资源。但是,如果您在函数之外声明数组并在每次请求时将元素推入其中,那么您需要采取行动,因为它是全局保存的。


推荐阅读