据谷歌称,V8采用了“停止这世界,代,准确,垃圾收集器”采用了高效的垃圾回收。 权利要求的部分是,V8执行垃圾收集周期时停止程序的执行。
一个明显的问题是,你怎么能当你暂停执行程序有一个高效的GC?
我试图找到更多关于这个话题,因为我很想知道如何做的GC的影响时,你有可能是每秒几十射击您的node.js服务器thounsands请求的响应时间。
任何专家的帮助下,亲身经历或链接将不胜感激
谢谢
据谷歌称,V8采用了“停止这世界,代,准确,垃圾收集器”采用了高效的垃圾回收。 权利要求的部分是,V8执行垃圾收集周期时停止程序的执行。
一个明显的问题是,你怎么能当你暂停执行程序有一个高效的GC?
我试图找到更多关于这个话题,因为我很想知道如何做的GC的影响时,你有可能是每秒几十射击您的node.js服务器thounsands请求的响应时间。
任何专家的帮助下,亲身经历或链接将不胜感激
谢谢
“高效”可能意味着几件事情。 这可能是指高吞吐量 。 当响应时间来看,你更感兴趣的延迟 ,这的确能比用其他GC策略更糟。
主要的替代品,停止这世界的GC是
两者都需要进行额外的工作是在堆的并发修改面对正确的(例如,如果创建了一个新对象,并连接到一个已经扫描的对象,这种新的参考必须注意)。 这会影响总吞吐量,即它需要较长时间才能真正清洁整个堆。 有利的一面是,他们不(通常)中断程序很长,如果在所有,所以延迟低(更低)。
虽然V8文档仍然提到了停止的世界收藏家,似乎一个的V8 GC增量是自2011年因此,尽管它在一段时间后停止执行程序,它不会停止2的程序但是需要多长时间扫描整个堆。 相反,它可以扫描,比方说,一对夫妇毫秒,让程序恢复。
1“的Mutator”是其堆垃圾收集的程序GC术语。
2,至少在原则上,这可能是可配置的。