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

标签 java jsoup

注意:本题引用Jsoup 1.6.1

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

查看源代码,我注意到 org.jsoup.parser.Tokeniser 中的一个变量允许关闭错误跟踪。按照调用流程,我看不到任何关闭它的调用,尽管有一种方法可以这样做。该类不是公开的,我不得不修改源代码并从源代码构建它。

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

最佳答案

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

关于java - 如何在 Jsoup Tokenizer 中禁用错误​​跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8030303/

相关文章:

java - Linux 命令在 Java 程序中无法正常工作

android - 如何使用此 html 页面从 div 类获取特定标签?

java - JSoup 抓取 - 尝试一次从 70 页抓取数据,但我的循环不起作用

java - Jsoup : how to extract img with space in filename?

java - 相当于 Java 8::(双冒号)运算符的 Scala

java - java api文档上的"Field Summary"

java - 为什么 "abc"+ null 结果 abcnull

java - 使用 Eclipse Tomcat 运行 Spring Boot

java - 以正常格式从 google 搜索获取 href - Jsoup

java - jsoup 中的什么方法可以返回修改后的 html?