2012-07-03 122 views
7

我使用Jsoup.parse()的所有字符串版本:有沒有辦法加快Jsoup.parse()?

parse(String html, String baseUri) 

排除連接速度爲基準性能。

在一個典型的低端Android手機,要求不那麼罕見的長維基百科頁面(〜600KB)的HTML字符串Jsoup.parse(),需要9秒

我的客戶不願意接受這個延遲,我正在考慮爲不同的引擎轉儲Jsoup,自己解析網頁(仍然在Java中),或者在NDK中使用一些C/C++解析器(如果可用)。

但我更喜歡繼續儘可能地使用Jsoup。

有沒有辦法加快Jsoup.parse()

+1

這可能會有所幫助,如果你想解釋你打算用解析後的頁面做什麼。 – CommonsWare

+1

@CommonsWare使用Jsoup衆所周知的'select()'語法以不同的方式顯示HTML頁面的某些部分。在Jsoup解析結束之前,我不能使用Jsoup的'select()'。 – Souper

+2

Yah這也發生在我身上。 Jsoup.parse絕對是一個性能問題,我認爲當你將它與J​​ava內存在內存有限的Android設備上顛簸時,結果可能會非常糟糕。在過去,我通過不使用解析來提高性能,例如使用正則表達式/字符串操作來提取信息。 –

回答

5

我嘗試做自己的大頁面(,如果有可能而您只需要在網頁上的一些信息)嘗試文本儘量減少解析之前確定你想要的區域,然後解析與希望的區域JSoup。

通過這種方式,您可以將自己的Java解析結合起來以減少數據,然後使用JSoup進行商品化。