Jsoup、正则表达式和XPath在从HTML中提取内容方面的性能比较?

3

我知道一般情况下不应该使用正则表达式来解析HTML

但是我想对Web应用程序进行性能测试。我确定了HTML的结构,因此可以使用正则表达式从页面源代码中提取一些数据。

由于我正在执行性能测试(使用Jmeter),因此我想从主机器中占用更少的资源。

哪个选项的资源消耗会更小:XPath、正则表达式(Jakarta ORO)还是Jsoup?

1个回答

3
从JMeter 2.8开始,答案是正则表达式。 但当然这取决于您使用的正则表达式。 JMeter中的正则表达式实现相当优化,是相关性的主要后处理方式。
关于JSoup,它需要基于JSR223后处理器进行自定义编码。
JMeter 2.9将引入一种基于CSS/JQuery选择器的新提取器,有两种可能的底层实现:
- JSOUP - Jodd Lagarto (CSSelly)
参见:

它的性能将低于正则表达式,因为它构建了一个DOM文档,但它可以在不需要超级优化的测试计划中减轻很多语法。

最后,关于XPath,由于它构建了一个DOM树:

它的内存和 CPU 消耗比正则表达式要高,特别是如果您想提取许多元素,因此已经创建了一个改进:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接