首页 > Web开发 > 详细

htmlunit 导致高cup占用的坑

时间:2017-02-28 19:00:14      阅读:314      评论:0      收藏:0      [点我收藏+]

原文:http://blog.csdn.net/qq_28384353/article/details/52974432#reply  

将爬虫部署到服务器上运行后,在查看服务器的状态监控时发现,天猫爬虫执行一段时间后,CPU占用异常升高,内存也跟着爆炸,虽然程序没有中断,但是爬取速度已经变成龟速。查看日志,发现抛出了Java.lang.OutOfMemoryError: Java heap space异常。

在服务器上通过jstack查到占用CPU最严重的五个线程里有四个竟然都是htmlunit下的webclient。

Google后找到原因,罪魁祸首是webclient创建后始终没有关闭,导致分配的内存始终无法被GC回收,最终引起outofmemory。

解决方法为在当前webclient使用结束后立即执行webclient.close(),或者设定在爬取一定次数后关闭webclient,虽然会对性能有一定影响,但是解决了内存泄漏的问题。

htmlunit 导致高cup占用的坑

原文:http://www.cnblogs.com/cmyxn/p/6480157.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!