Jsoup - очень удобный инструмент для анализа html, который используется в качестве базового утилиты в нашем проекте на гусеничном шасси.Но недавно я обнаружил, что наш сканер всегда делал полный сборщик мусора.
После сброса объекта с помощью jmap, я удивляюсь, обнаружив, что существует слишком много объектов ParseError.При чтении исходного кода это не исключение, а объект.Когда у html есть какая-то проблема, это может вызвать много ошибок.Таким образом, он должен быть под контролем, чтобы предотвратить создание безумных объектов.
Ниже приведена некоторая подробная информация, надеюсь, она поможет вам найти решение.
java.lang.Thread.State: RUNNABLE
at org.jsoup.parser.Tokeniser.error(Tokeniser.java:211)
at org.jsoup.parser.TokeniserState$47.read(TokeniserState.java:1170)
at org.jsoup.parser.Tokeniser.read(Tokeniser.java:42)
at org.jsoup.parser.TreeBuilder.runParser(TreeBuilder.java:101)
at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:53)
at org.jsoup.parser.Parser.parse(Parser.java:24)
at org.jsoup.Jsoup.parse(Jsoup.java:44)
num #instances #bytes class name
----------------------------------------------
1: 30110820 1204432800 org.jsoup.parser.ParseError
2: 33076 156025088 [Ljava.lang.Object;
3: 68836 98796360 [C
4: 65808 9778264 <constMethodKlass>
5: 65808 8959520 <methodKlass>
6: 12044 8524088 [B
7: 6424 7447912 <constantPoolKlass>
8: 102203 5494560 <symbolKlass>
9: 6424 4909064 <instanceKlassKlass>
10: 5271 4171032 <constantPoolCacheKlass>
11: 105257 3368224 java.lang.String