[英]Node.js' garbage collector
我从node.js的这个线程垃圾收集中学到了node.js使用的是分代GC。
我经常使用循环对象引用(我删除/确保最终超出范围)并且想知道node.js是否处理好它们。 所以对于例如。 如果它是使用ref完成的。 计数,会有问题,所以我想知道节点有多好。
一些使用场景:
对于每个http请求,我创建一个带有lambda的setTimeout,该lambda可能引用了scope对象。 scope对象还引用了timeout对象等...
对于每个用户会话,我有一个
指针
(仍在进行C编程)对http请求对象的引用,它也引用了会话对象等...请求对象经常被删除,但会话对象不被删除。
编辑:我问因为我在网上找到这个链接http://lifecs.likai.org/2010/02/how-generational-garbage-collector.html
正如您所提到的,NodeJS使用世代GC ...特别是v8 。 因此,它不做引用计数类型GC。 相反,它执行完整的标记和扫描类型的GC。
因此,只要你摆脱对一组对象的所有引用(即使它们循环指向彼此),它们应该在某个时刻收集垃圾。
这并不意味着你不应该关心GC。 如果你有一个非常活跃的NodeJS服务器,垃圾收集器将很难清理你的垃圾,特别是如果你有很多“中等寿命”的对象(即不短或长寿)。
请参阅IPNCode代码以获取参考计数示例https://github.com/Frans-Willem/IPCNode
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.