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