关于jsdom内存泄漏,应该注意的问题
发布于 9 年前 作者 myliang 7071 次浏览 最后一次编辑是 5 年前

在我开发的网站 爱比物价跟踪时,使用nodejs用于数据抓取,其中用到的解析页面的插件有jsdom, jquery, 刚开始数据量不是很大的时候,抓取没有遇到任何的问题,后来,需要抓取的页面很多(万级别以上),程序就开始包内存溢出, 之后,去google找答案,说是jquery的问题,没有办法我就把jquery去掉了,但是跑了一会,发现还是报统一的错误,最后发现是jsdom的问题, 就是说在使用完dom的时候,没有回收相应的垃圾信息,所以需要,我们自己在调用jsdom.env使用完dom后,调用一下window.close,只要gc就可以收集垃圾内存

大家可以在执行node 加入–trace_gc 看 一下内存清理,就一目了然

5 回复

jsdom 说爱它不容易~

说的没错,不过注意这个问题,使用jsdom还是不错的,至少暂时还没有遇到其他的问题

我使用了window.close 还是不行,还是会报: FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory

@mejinke 用的是最新的0.6? 还有node 版本大于 > 0.8.x?

现在没问题了

回到顶部