2012-07-03 82 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进行商品化。