regex - Jsoup、正则表达式、XPath 从 HTML 提取内容的性能比较?

标签 regex performance xpath jmeter jsoup

我知道在常见情况下HTML shouldn't be parsed with regex .

但是我想对网络应用程序进行性能测试。我非常清楚 HTML 的样子。因此,我可以使用正则表达式从页面源中提取一些数据。

当我进行性能测试(使用 Jmeter)时,我想从主机上占用更少的资源。

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

最佳答案

从 JMeter 2.8 开始,答案是 Regexp。 但这当然取决于您使用的正则表达式。 JMeter 中的正则表达式实现相当优化,是相关性的主要后处理方式。

对于 JSoup,它需要基于 JSR223 后处理器的自定义编码。

JMeter 2.9 将引入一个新的基于 CSS/JQuery 选择器的 Extractor,具有 2 种可能的底层实现:

参见:

当它构建 DOM 文档时,它的性能将低于 Regexp,但它简化了测试计划中的许多语法,不需要超优化的测试计划。

最后,关于 XPath,因为它构建了 DOM 树:

它的内存和 CPU 成本高于正则表达式,特别是如果您想提取许多元素,已创建增强功能:

关于regex - Jsoup、正则表达式、XPath 从 HTML 提取内容的性能比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759916/

相关文章:

performance - 您采取什么步骤来提高Sharepoint网站的性能?

c++ - block 拼图求解C++算法

regex - 从电子表格中单元格的值解析字符串和对象

正则表达式匹配包含西里尔字母符号的任何字符串,但标有//、///、///等的注释除外

Javascript正则表达式将字符串拆分为分组/连续字符数组

javascript - 正则表达式和 ISO8601 格式的日期时间

language-agnostic - 有什么好的代码优化方法?

xslt - 测试包含在XSLT 1.0中使用不区分大小写的匹配项

c# - XPath 查找所有匹配项 C# XmlDocument

python - 用于对具有相同标签的兄弟节点进行分组的 Xpath 选择器