我们有一个DLL,可以从“特定的” Windows应用程序访问侦听事件。 我已经编写了自定义C ++包装程序,用于在外部DLL和Node JS应用程序之间建立桥梁。 这是通信如何构建的一部分代码:
const connectionCallback = ffi.Callback('void', ['string'], (data) => app.eventEmitter.emit(INTERNAL_EVENTS.CONNECTION, data));
const quotesCallback = ffi.Callback('void', ['string'], (data) => app.eventEmitter.emit(INTERNAL_EVENTS.QUOTE, data));
const eventsCallback = ffi.Callback('void', ['string'], (data) => app.eventEmitter.emit(INTERNAL_EVENTS.EVENT, data));
问题。 我花了6个小时只观察C ++代码中的使用内存(当我在没有Node的情况下运行它),并且发现了节点内存泄漏。 我对Node进行了相同的操作(我已经安装了heapdump软件包并比较了很远的快照)。根据快照,我的应用程序未发现内存泄漏。
但是应用程序内存使用量增加。启动时为300mb,2小时后为500mb,而20小时后为1gb。 您是否知道我们可以使用什么工具来发现泄漏?
我找到了相似的主题,没有答案(node-ffi github问题),该主题始于2013年,但我希望解决方案已经存在:) 谢谢。