Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 全局函数是否会导致Nodejs内存泄漏?这是个漏洞吗?_Javascript_Node.js_Memory_Memory Management_Memory Leaks - Fatal编程技术网

Javascript 全局函数是否会导致Nodejs内存泄漏?这是个漏洞吗?

Javascript 全局函数是否会导致Nodejs内存泄漏?这是个漏洞吗?,javascript,node.js,memory,memory-management,memory-leaks,Javascript,Node.js,Memory,Memory Management,Memory Leaks,我是Node的新手,我已经分配了一个项目来处理从API调用的控制器中的多个全局函数,这对吗?请求完成后,GC是否清除全局函数? 下面是示例源代码,调用控制器中使用了相同的体系结构 var Api = {}; async function getMeOperation() { //some operation var getCalc = getSubOp(); return getCalc; } function getSubOp() { //some calc }

我是Node的新手,我已经分配了一个项目来处理从API调用的控制器中的多个全局函数,这对吗?请求完成后,GC是否清除全局函数? 下面是示例源代码,调用控制器中使用了相同的体系结构

var Api = {};
async function getMeOperation() {
    //some operation
    var getCalc = getSubOp();
    return getCalc;
}
function getSubOp() {
    //some calc
}
Api.ApiOne = async (req, res) => {
    try {
        var awaitOp = await getMeOperation();
        res.send({

            "msg": "sucess"
        });
    } catch (ex) {
        res.send({

            "msg": "error"
        });
    }
};
Api.ApiTwo = async (req, res) => {
    try {
        var awaitOp = await getMeOperation();
        res.send({

            "msg": "sucess"
        });
    } catch (ex) {
        res.send({

            "msg": "error"
        });
    }
};
module.exports = Api;

不,这不是泄漏,因为每个请求都不会分配任何内容,只在开始时分配一次。@georg Ok,所以当请求结束时,GC会自动收集分配的内存吗?节点与php不同,当服务器启动时,程序只加载一次,然后留在内存中,基本上运行一个无限循环。因此,全局变量在启动服务器时分配一次,在停止服务器时释放。@georg Ok我很担心,因为当我在chrome inspect中加载Heapdump时,这些全局函数会显示出来。我应该担心吗?我的rss不断增加,但heapTotal是稳定的。