gpt4 book ai didi

node.js - 在高负载下,Node.js 的可伸缩性是否会因为垃圾收集而受到影响?

转载 作者:搜寻专家 更新时间:2023-10-31 22:51:03 24 4
gpt4 key购买 nike

虽然 Node.js 是一个非常热门的话题,但我偶然发现据报道,由于 Node.js 的垃圾收集模型,它可能不适合实时应用程序 (http://amix.dk/blog/post/19577)。而且,一些基准测试表明,与 RingoJS 相比,Node.js 的响应速度较慢 (http://hns.github.com/2010/09/29/benchmark2.html)。

目前,Node.js 绑定(bind)到使用分代停止世界 GC 的 V8 JavaScript 引擎。

那么,当传入请求量很大时,Node.js 会崩溃吗?如果有真实的生产统计就更好了。

谢谢

最佳答案

垃圾收集的成本取决于堆中对象的数量,尤其是长生命周期对象的数量。你拥有的越多,花在 GC 上的时间就越多。

是的,如果堆很大,V8 目前有时会出现一些相当大的 GC 暂停。听起来 V8 团队正在努力通过分散工作来最小化每次 GC 暂停的成本。您可以通过使用 --trace-gc 启动它来查看您自己的 Node 程序中的 GC 成本。

对于很多应用来说,GC的成本被越来越优秀的优化编译器所抵消。我建议尝试一个简单的程序并测量 V8 报告的 GC 成本以及测量客户端到客户端的延迟。我发现当客户端通过开放的 Internet 连接时,GC 成本几乎可以完全忽略。

关于node.js - 在高负载下,Node.js 的可伸缩性是否会因为垃圾收集而受到影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6176055/

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