Currently incremental builds for the microbenchmarks may take notable amount of 
time, like:

$ touch test/micro/org/openjdk/bench/java/io/BlackholedOutputStream.java; time 
make test TEST=jaxp:tier1
Building target 'test' in configuration 'linux-x86_64-server-release'
Compiling up to 656 files for BUILD_JDK_MICROBENCHMARK
Running Indify on microbenchmark classes
[snip]
==============================
Test summary
==============================
   TEST                                              TOTAL  PASS  FAIL ERROR
   jtreg:test/jaxp:tier1                                 0     0     0     0
==============================
TEST SUCCESS

Finished building target 'test' in configuration 'linux-x86_64-server-release'

real    0m37,581s
user    2m4,747s
sys     0m7,223s


The microbenchmark compilation is not using the `Depend` plugin that avoids 
recompilation of other files if the change files only contain minor changes 
(i.e. non-API changes). The patch here proposes to enhance the build to use the 
`Depend` plugin. The change that enables that is `CREATE_API_DIGEST := true,`, 
but since both the `Depend` plugin and JMH framework needs to be added to the 
classpath the patch re-organizes the code a little to properly augment the 
classpath.

With this patch, a build similar to the above might be:

$ touch test/micro/org/openjdk/bench/java/io/BlackholedOutputStream.java; time 
make test TEST=jaxp:tier1
Building target 'test' in configuration 'linux-x86_64-server-release'
Compiling up to 656 files for BUILD_JDK_MICROBENCHMARK
Running Indify on microbenchmark classes
[snip]
==============================
Test summary
==============================
   TEST                                              TOTAL  PASS  FAIL ERROR
   jtreg:test/jaxp:tier1                                 0     0     0     0
==============================
TEST SUCCESS

Finished building target 'test' in configuration 'linux-x86_64-server-release'

real    0m7,505s
user    0m14,128s
sys     0m3,158s

-------------

Commit messages:
 - 8298920: Improve microbenchmark build times

Changes: https://git.openjdk.org/jdk/pull/20616/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20616&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8298920
  Stats: 32 lines in 2 files changed: 16 ins; 14 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/20616.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20616/head:pull/20616

PR: https://git.openjdk.org/jdk/pull/20616

Reply via email to