我的nodejs脚本失败,并出现以下错误,

<--- Last few GCs --->

[78:0x29f56b0]    31470 ms: Scavenge 2041.7 (2050.3) -> 2041.9 (2051.5) MB, 9.3 / 0.0 ms  (average mu = 0.231, current mu = 0.213) allocation failure
[78:0x29f56b0]    31547 ms: Scavenge 2042.8 (2051.5) -> 2042.5 (2047.8) MB, 14.9 / 0.0 ms  (average mu = 0.231, current mu = 0.213) allocation failure


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x134e879]
Security context: 0x01e8352c0919 <JSObject>
...


现在,我想知道在运行脚本时,nodejs的V8引擎在运行时的内存消耗
被执行。我怎样才能做到这一点 ?

最佳答案

如果要使用本机nodejs解决方案,则可以使用process.memoryUsage()函数。

您可以here了解更多信息。

我为自己编写了一个小的帮助程序脚本,该脚本返回易于读取的格式化内存消耗(值计算为MB):

function getMemory() {
    return Object.entries(process.memoryUsage()).reduce((carry, [key, value]) => {
        return `${carry}${key}:${Math.round(value / 1024 / 1024 * 100) / 100}MB;`;
    }, "");
};


该函数的输出如下所示:

rss:282.61MB;heapTotal:239.46MB;heapUsed:129.36MB;external:22.13MB;

关于javascript - 如何通过Node.js监视内存消耗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59575130/

10-16 19:13