【问题标题】:Node.js and V8 garbage collectionNode.js 和 V8 垃圾回收
【发布时间】:2011-08-01 23:02:44
【问题描述】:

这是我目前读到的内容,如果我错了,请纠正我:

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

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

如果这是为生产代码运行,那么对于 10,000 个用户来说,这只是几秒钟的时间。

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

【问题讨论】:

    标签: garbage-collection node.js v8


    【解决方案1】:

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

    【讨论】:

    • 这个答案并不过时。增量 GC 已经落地,长时间的停顿应该成为过去。如果您仍然看到大的 GC 暂停,请提交错误并附加 --trace-gc 的输出。当然,我们不能承诺修复问题,但对于正常的工作负载,我们预计暂停的上限约为 40-50 毫秒,如果您使用 --max-new-space-size=1024,则约为 4 毫秒 - -never-compact 标志。
    猜你喜欢
    • 2014-02-05
    • 2015-04-03
    • 1970-01-01
    • 2012-07-11
    • 2016-08-17
    • 2015-11-13
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多