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