当我尝试使用正则表达式抽取器从Jmeter中的一个站点提取大量数据时,我发现了一些奇怪的东西,那就是Jmeter花费了很长时间(>50分钟)。
参考名称:dataId
使用的<strong><a href="(.+?)=(.+?)&(.+?)">:RegEx
模板:$2$
匹配号:-1 ->获得所有匹配
这个正则表达式运行在250行HTML源页面上,因此它可能会在该页面上找到100多个匹配的表达式(正如我所说的,我正在提取大量数据)。
我在任务管理器中检查了Jmeter的CPU使用情况,它是25% for java.exe
我的个人电脑有一个i5四核处理器,但java.exe只使用其中的一个核,它需要很长时间(字面上超过一个小时)。
如何加快数据提取的速度?实际问题在哪里?
发布于 2015-02-28 22:17:39
你的准则太笼统了。尝试使用类似于<strong><a href="([^"=&]+)=([^"=&]+)&([]^"=&+?)">的东西。Java在regex实现中使用了回溯算法,而且在某些输入下可能会非常慢。
至于处理器的装载,这是正常的。Regex实现不使用多个线程,因此它加载一个处理器核心。如果您想充分利用处理器的能力,就必须以某种方式实现多线程。例如,并行处理4种不同的HTML页面。
https://stackoverflow.com/questions/28787514
复制相似问题