0
Jsoup是一個非常方便的工具來解析html,並將其用作我們的抓取工程中的基本實用工具。但是最近我發現我們的抓取工具有時候一直在做全GC。因爲太多的ParserError對象,Jsoup保持完整的GC狀態?
通過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
我已致信Jsoup的作者,但得到任何答覆至今。 – passover
[你如何禁用Jsoup Tokeniser中的錯誤跟蹤?](http://stackoverflow.com/questions/8030303/how-do-you-disable-error-tracking-in-jsoups-tokeniser) – BalusC