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.

To download the current JDK release, click here.
JDK 26
26Unresolved
Related Reports
Causes :  
Description
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!
20-06-2025