gpt4 book ai didi

javascript - 如何理解 Node js 进程崩溃内存不足的日志

转载 作者:太空宇宙 更新时间:2023-11-04 03:19:48 26 4
gpt4 key购买 nike

我的 Node 服务器崩溃并显示以下日志。

<--- Last few GCs --->

504158 ms: Mark-sweep 1379.9 (1434.3) -> 1379.0 (1434.3) MB, 1486.7 / 0.0 ms [allocation failure] [GC in old space requested].
505610 ms: Mark-sweep 1379.0 (1434.3) -> 1379.0 (1434.3) MB, 1452.0 / 0.0 ms [allocation failure] [GC in old space requested].
507067 ms: Mark-sweep 1379.0 (1434.3) -> 1379.0 (1406.3) MB, 1456.1 / 0.0 ms [last resort gc].
508505 ms: Mark-sweep 1379.0 (1406.3) -> 1379.0 (1406.3) MB, 1438.3 / 0.0 ms [last resort gc].

我理解Mark-sweep是一种GC算法。之后我们如何解释这些数字“1379.9 (1434.3) -> 1379.0 (1434.3) MB, 1486.7/0.0 ms”?

最佳答案

这些是 GC 标记-清除(遍历、标记要删除,然后清除标记的项目)结束时报告的指标。这两个数字是总对象大小和总内存大小的开始和结束。

因此,一开始您的总对象大小为 1379.9,总内存大小为 1434.4 MB。最后,您的总对象大小为 1379.0,总内存大小为 1434.3 MB。因此释放了 0.9 MB。

我对时间安排不是 100% 确定,但我相信第一个是花费的总外部时间(这似乎是在某些“范围”内花费的总时间)

这是您想要的源代码: https://github.com/nodejs/node/blob/de732725d8ae232d7b6d56927ea8bef471d5bf1d/deps/v8/src/heap/gc-tracer.cc#L481

关于花费的外部时间: https://github.com/nodejs/node/blob/de732725d8ae232d7b6d56927ea8bef471d5bf1d/deps/v8/src/heap/gc-tracer.h#L368

关于javascript - 如何理解 Node js 进程崩溃内存不足的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51680414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com