JDK-8359955 : Regressions ~7% in several J2DBench in 25-b26
Type:Bug
Component:client-libs
Sub-Component:2d
Affected Version:25
Priority:P4
Status:Open
Resolution:Unresolved
Submitted:2025-06-18
Updated:2025-06-23
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
The regression is only seen on Mac and Windows, not on Linux intel or ARM.
Seems to be related to JDK-8353230.
Comments
Thanks for the guidance!
[~ecaspole] Does this options file need to be run using the `jdk8u` version of J2DBench? I had assumed that it would be OK to run it using the version in the main-line development tree, but it ends up not running any tests. I'm not sure if it's because I'm not in `jdk8u` or due to some other factor (note empty list of test results at the end):
$ java -server -jar dist/J2DBench.jar -batch -loadopts vimg_text_aa.opt -saveres vimg_text_aa.opt.baseline.res -title "vimg_text_aa.baseline" -desc "vimg_text_aa.baseline"
Option global.dest.screen=disabled at line 8 ignored: Key failed to match an existing option
Option global.dest.volimg=enabled at line 14 ignored: Key failed to match an existing option
Option graphics.imaging.src.volimg.opaque=disabled at line 57 ignored: Key failed to match an existing option
Option graphics.imaging.src.volimg.bitmask=disabled at line 58 ignored: Key failed to match an existing option
Option graphics.imaging.src.volimg.translucent=disabled at line 59 ignored: Key failed to match an existing option
Option graphics.imaging.tests.drawimage=disabled at line 72 ignored: Key failed to match an existing option
Option graphics.imaging.tests.drawimagebg=disabled at line 73 ignored: Key failed to match an existing option
Option graphics.imaging.tests.drawimagescaleup=disabled at line 74 ignored: Key failed to match an existing option
Option graphics.imaging.tests.drawimagescaledown=disabled at line 75 ignored: Key failed to match an existing option
Option graphics.imaging.tests.drawimagetxform=disabled at line 76 ignored: Key failed to match an existing option
Option imageio.input.image.jpegcodec.tests.decodeAsBufferedImage=disabled at line 138 ignored: Key failed to match an existing option
Option imageio.output.image.jpegcodec.tests.encode=disabled at line 164 ignored: Key failed to match an existing option
All test results:
23-06-2025
Hi [~dgredler]
With help from [~prr] I was able to extract this into a fairly simple sequence.
Check out jdk8u from here: https://github.com/openjdk/jdk8u/tree/master
Look in jdk8u/jdk/src/share/demo/java2d/J2DBench/
With a JDK 8, build with ant as shown in the README
Now with the vimg_text_aa.opt I attached to the JBS, you can run like this:
% mkdir result
baseline-jdk/bin/java -server -jar dist/J2DBench.jar -batch -loadopts ./vimg_text_aa.opt -saveres ./result/vimg_text_aa.opt.baseline.res -title "vimg_text_aa.baseline" -desc "vimg_text_aa_1.baseline"
patch-jdk/bin/java -server -jar dist/J2DBench.jar -batch -loadopts ./vimg_text_aa.opt -saveres ./result/vimg_text_aa.opt.patch.res -title "vimg_text_aa.patch" -desc "vimg_text_aa_1.patch"
Then run the Analyzer on each result and it will print the scores:
% java -Duser.language=en -Duser.region=US -jar dist/J2DAnalyzer.jar ./result/vimg_text_aa.opt.baseline.res -ShowUncontested
% java -Duser.language=en -Duser.region=US -jar dist/J2DAnalyzer.jar ./result/vimg_text_aa.opt.patch.res -ShowUncontested
On my MacBook Pro M1 Max, I got scores like:
Baseline:
Overall average: 28077.016592846423
Patch:
Overall average: 25440.151896778967
Let me know if you can get this to work.
23-06-2025
J2DBench is in the repo at src/demo/share/java2d/J2DBench
There is a README that tells you how to build and run it.
There are a few build options.
"make" may be the easiest but you will need to set JDK 8 on your path for the build,
since "-target 7" is used by the make build so that in theory javac is stable for resulting test runs.
Of course you can run with any later JDK - ie the ones you'd like to compare !
java -jar dist/J2DBench.jar ......
You will see various set up options - global options and benchmarks to run.
Eric is going to attach an "options.txt" file which you can load into the UI and a command line then you should have everything you need to reproduce the same as the perf. team see.
23-06-2025
We are reviewing it internally and we will advise you soon.
20-06-2025
[~ecaspole] This would be my first exposure to J2DBench, how would I reproduce a test run which exhibits the performance issue? Thanks!