Node.js 和 V8 垃圾收集

发布于 2024-10-31 04:35:57 字数 247 浏览 1 评论 0原文

以下是我到目前为止所读到的内容,如果我错了,请纠正我:

  1. Node.js 基于 V8 JavaScript 引擎。
  2. V8 JavaScript 引擎实现了 stop-the-world 垃圾收集,

这导致 Node.js 有时完全关闭几秒钟到几分钟来处理垃圾收集。

如果这是针对生产代码运行的,则对于 10,000 个用户来说只需几秒钟。

这在生产环境中真的可以接受吗?

Here's what's I've read so far, and correct me if I'm wrong:

  1. Node.js is based on V8 JavaScript engine.
  2. V8 JavaScript engine implements stop-the-world garbage collection

Which..causes Node.js to sometimes completely shutdown for a few seconds to a few minutes to handle garbage collection.

If this is running for production code, that's a few seconds for 10,000 users.

Is this really acceptable in production environment?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怎言笑 2024-11-07 04:35:57

是否可以接受取决于您的应用程序和堆大小。 Big Gc 约为每 MB 1.3 毫秒。 YMMV。大约是压缩 GC 的一半。大约 10 次 GC 中的 1 次就很大了。大约 3 分之 1 的大型 GC 正在压缩。使用 V8 标志 --trace-gc 来记录 GC。我们在减少停顿方面做了一些工作。没有承诺,没有时间表。请参阅 V8 存储库中的 Branches/experimental/gc。

Whether it is acceptable depends on your application and your heap size. Big Gc is around 1.3ms per Mbyte. YMMV. About half that for a compacting GC. Around 1 GC in 10 is big. Around 1 big GC in 3 is compacting. Use V8 flag --trace-gc to log GCs. We have done some work on reducing pauses. No promises, no timetables. See branches/experimental/gc in V8 repo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文