java基准测试:更少的输入时间

时间:2013-05-24 00:43:04

标签: java regex performance nutch

在2个正则表达式库实现上运行一些基准测试后,下面是我们得到的结果:

inputs   automaton      regex
 50      343ms          210ms
100      48ms           187ms
200      65ms           363ms
400      100ms          692ms
800      165ms         1385ms

为什么第一次运行(有50个输入)对于两种实现来说都是非常昂贵的?

仅供参考:automation是指http://www.brics.dk/automaton和 'regex'指的是java正则表达式库。

2 个答案:

答案 0 :(得分:2)

这是由于Java的标准微基准问题。

JVM预热:由于有几个参数,代码首先经常变慢,并且在执行时间增长时变得越来越快,直到它进入稳定状态。

类加载:第一次启动基准测试时,必须加载所有使用的类,从而增加执行时间。

及时编译器:当JVM识别代码的热门部分时

垃圾收集器:在基准测试期间可能会发生垃圾收集,因此时间会增加很多。

一个好read

答案 1 :(得分:1)

一开始,编译正则表达式。所以第一次运行使用额外的时间。此外,可能还会进行运行时优化。