前天在用自己在lucene基础上做的搜索引擎抓取网站时,当抓取到11034个url时报jsoup里“java.lang.OutOfMemoryError: Java heap space”。
1.我首先怀疑是自己的代码使用了过多的静态变量,有很多循环里的变量用完了没有赋予null,检查了一下,都给赋予null,使用-Xms256m -Xmx1024m 给java虚拟机增加到1GB最大内存,又运行几次,结果每次都是失败,最后增加到1.5GB,还是不行。
2.我开始怀疑jsoup里有问题,于是打开它源代码看了半天也没有看明白
2.最后检查发现url中有一个url是一个下载文件,大小为260M,把这个url屏蔽了就好了。
看来搜索引擎得增加文件后缀过滤。不过这不上根本的解决办法,最好是修改jsoup增加判断文件类型和大小判断
09-15 11:54