Fork Script created SUREFIRE-1516:
-------------------------------------
Summary: Should surefire specialize test runner when test
isolation (i.e., fork) is needed?
Key: SUREFIRE-1516
URL: https://issues.apache.org/jira/browse/SUREFIRE-1516
Project: Maven Surefire
Issue Type: New Feature
Components: Maven Surefire Plugin
Affects Versions: 2.21.0
Reporter: Fork Script
We observed that {code:java} mvn test -DforkCount=1 -DreuseForks=false {code}
has high overhead for several projects we recently used.
We developed a specific runner for this option, which reduces test execution
time by 49% on average. (Please see detailed results in the table below.)
[Here|https://github.com/forkscript/maven-surefire/commit/38f102f0165f081dd28c6a3023e0b052662857f0]
is a link to our commit (see ForkStarter.java:388). Our approach is hackish,
but we believe it can be engineered better if needed. Is this of interest to
surefire? We would be happy to discuss this further and provide more results.
Detailed results are below. Machine we used: Intel i7-6700U CPU @ 3.40GHz with
16GB of RAM, running Ubuntu 17.10. We can share our script used to collect the
numbers.
|| project || maven current (sec) || maven with our hack (sec) || time reduced
by ||
| activiti | 1300.54 | 1069.20 | 17% |
| bukkit | 18.98 | 4.80 | 74% |
| closurecompiler | 399.42 | 271.68 | 31% |
| commonscodec | 46.98 | 13.85 | 70% |
| commonsio | 107.35 | 67.41 | 37% |
| commonslang | 89.70 | 35.39 | 60% |
| commonsmath | 391.20 | 110.79 | 71% |
| commonsnet | 74.50 | 59.46 | 20% |
| commonsvalidator | 37.30 | 13.24 | 64% |
| configuration | 126.73 | 62.37 | 50% |
| crypto | 23.75 | 7.14 | 69% |
| gedcom4j | 195.43 | 64.10 | 67% |
| graphhopper | 90.80 | 41.25 | 54% |
| jaxx | 36.00 | 23.33 | 35% |
| la4j | 15.23 | 7.60 | 50% |
| openfire | 28.52 | 18.51 | 35% |
| retrofit | 53.22 | 35.36 | 33% |
| scribejava | 13.35 | 4.32 | 67% |
| vectorz | 37.90 | 11.19 | 70% |
| ztexec | 23.94 | 17.75 | 25% |
| Avg. | 155.54 | 96.93 | 49% |
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)