-Xcomp test time regressions?

Aleksey Shipilev shade at redhat.com
Mon Jun 28 14:07:41 UTC 2021

On 6/28/21 3:49 PM, Aleksey Shipilev wrote:
> On 6/28/21 3:18 PM, David Holmes wrote:
>> Did we use to handle the TEST_VM_OPTS differently, such that it didn't
>> apply to the javac part?
> Looking at test history, I think -Xcomp always applied to javac, but now -Xcomp is slower itself,
> and it shows. See below.
>>> Before I go and bisect this more thoroughly, is this an already known
>>> thing?
> Bisected.
> Yes, it is a known thing:
>     https://bugs.openjdk.java.net/browse/JDK-8264903
> So maybe we should attack it from a different angle: somehow ask jtreg to invoke javac without
> additional JVM options, so we don't spend significant time -Xcomp-ing javac itself. I tried to add
> "@build <testname>" to the exemplar test, but it is still compiled with -Xcomp. Either way, even if
> that worked, it would be awkward to add to every test out there.
> jtreg docs say that -vmoption is used when compiling and running classes. I cannot find the option
> that could provide different VM options to compiling and running classes. Adding one might make sense?

Oh wait, there is -javaoption: and -javacoption:, hm. First option is accessible via JAVA_OPTIONS.

So these two things behave differently:

$ make run-test TEST=gc/shenandoah/mxbeans/TestPauseNotifications.java TEST_VM_OPTS="-Xcomp"

real	5m37.320s
user	18m17.810s
sys	0m14.241s

$ make run-test TEST=gc/shenandoah/mxbeans/TestPauseNotifications.java TEST_OPTS="JAVA_OPTIONS=-Xcomp"

real	2m16.399s
user	9m3.895s
sys	0m10.085s

I have checked that -Xcomp is indeed passed to the test in the latter case, and it compiles 
everything there. I guess it is time to revise my test scripts to always do the latter to save cycles.


More information about the jdk-dev mailing list