Memory leaks 使用节点画布加载图像(本地、远程、缓冲区)时内存泄漏

Memory leaks 使用节点画布加载图像(本地、远程、缓冲区)时内存泄漏,memory-leaks,node-canvas,Memory Leaks,Node Canvas,调用实用程序方法loadImage(或仅使用Image对象)不会释放所使用的内存。本地和远程映像也会发生同样的情况。在下面的示例中加载3MB远程jpg将使rss内存保持在~400MB,并且不会进行GCed 2017年,通过将onload/onerror事件设置为null以删除对映像的任何引用,也解决了类似的问题,但现在似乎有其他东西阻止了内存释放 复制步骤 const{loadImage}=require('canvas') for(设i=1;i{ if(global.gc){global.gc

调用实用程序方法loadImage(或仅使用Image对象)不会释放所使用的内存。本地和远程映像也会发生同样的情况。在下面的示例中加载3MB远程jpg将使rss内存保持在~400MB,并且不会进行GCed

2017年,通过将onload/onerror事件设置为null以删除对映像的任何引用,也解决了类似的问题,但现在似乎有其他东西阻止了内存释放

复制步骤

const{loadImage}=require('canvas')
for(设i=1;i{
if(global.gc){global.gc()}
console.log('rss:'+process.memoryUsage().rss/(1024*1024)+'MB')
}, 1000)
环境
节点画布:2.6.1从源代码构建
MacOS 10.13.6和Heroku 18堆栈(Ubuntu 18.04)上的节点12.19.1和节点14.15.1