如何在Jsoup Tokenizer中禁用错误​​跟踪?

时间:2011-11-06 20:52:18

标签: java jsoup

注意:此问题涉及Jsoup 1.6.1

我需要使用Jsoup解析几个文档,但是我注意到一段时间后内存会增加。使用堆转储和内存分析器,我已将问题跟踪到Jsoup的Tokeniser类,该类存储ArrayList ParseError个。在堆转储中,存储了超过500万个ParseError个对象,每个对象56个字节。

查看源代码,我注意到org.jsoup.parser.Tokeniser中的一个变量,它允许关闭错误跟踪。在通话流程之后,我看不到任何关闭它的呼叫,尽管有一种方法可以这样做。该类不公开,我被迫修改源代码并从源代码构建它。

是否有我可以调用的方法或我可以设置的属性,以便在Tokeniser中有效地禁用错误跟踪,而无需修改源代码?

1 个答案:

答案 0 :(得分:1)

原来问题不是由Jsoup引起的。它试图解析的文件不是HTML文件而是图像。由于Jsoup不打算检查它是否具有正确类型的文件并依赖于程序员首先检查,这个问题的答案是Jsoup 1.6.1中的,除非你修改了源代码。关闭Jsoup的Tokeniser类中的错误跟踪确实减少了内存使用量并提高了速度(由于未在ArrayList中插入许多元素),但不建议修改源代码。如果您遇到此问题,请先检查您自己的代码。 ;)