代码之家  ›  专栏  ›  技术社区  ›  Fozi

节点。js EventEmitter处理程序内存泄漏

  •  1
  • Fozi  · 技术社区  · 6 年前

    这是内存泄漏吗?

    class Leaky {
        constructor(options) {
            process.on('message', function(msg) {
                this.do_something(msg)
                // ...
            }.bind(this))
        }
    
        // ...
    }
    

    当我打电话的时候 new Leaky() 引用通过处理程序绑定到实例。 process 不会被气相色谱分析所以我就泄露了 Leaky 例子

    我怎样才能防止这种情况?我能想到的唯一解决办法就是 dispose 调用 process.off ,但我想避免。我看不到类似的东西 unref 或是身体虚弱 EventEmitter .

    0 回复  |  直到 6 年前