JDK-6810845 : Performance regression in mpegaudio on x64
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2009-02-26
  • Updated: 2010-04-03
  • Resolved: 2009-04-08
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 6 JDK 7 Other
6u18Fixed 7Fixed hs15Fixed
Related Reports
Relates :  
Description
The regression was introduced by changes in

6743900: frequency based block layout

Switching off BlockLayoutByFrequency does not help.

i% gamma -showversion SpecApplication -s100 -M5 -m5 -g -d3000 -a _222_mpegaudio | grep Finished
java version "1.6.0_06-p"
Java(TM) SE Runtime Environment (build 1.6.0_06-p-b04)
OpenJDK 64-Bit Server VM (build 14.0-b06-2008-10-31-000942.never.6764622, mixed mode)

======= _222_mpegaudio Finished in 1.572 secs
======= _222_mpegaudio Finished in 1.238 secs
======= _222_mpegaudio Finished in 1.214 secs
======= _222_mpegaudio Finished in 1.213 secs
======= _222_mpegaudio Finished in 1.208 secs

% gamma -showversion SpecApplication -s100 -M5 -m5 -g -d3000 -a _222_mpegaudio | grep Finished
java version "1.6.0_06-p"
Java(TM) SE Runtime Environment (build 1.6.0_06-p-b04)
OpenJDK 64-Bit Server VM (build 14.0-b06-2008-11-06-230423.rasbold.6743900, mixed mode)

======= _222_mpegaudio Finished in 1.786 secs
======= _222_mpegaudio Finished in 1.454 secs
======= _222_mpegaudio Finished in 1.425 secs
======= _222_mpegaudio Finished in 1.426 secs
======= _222_mpegaudio Finished in 1.422 secs

% gamma -XX:-BlockLayoutByFrequency -showversion SpecApplication -s100 -M5 -m5 -g -d3000 -a _222_mpegaudio | grep Finished
java version "1.6.0_06-p"
Java(TM) SE Runtime Environment (build 1.6.0_06-p-b04)
OpenJDK 64-Bit Server VM (build 14.0-b06-2008-11-06-230423.rasbold.6743900, mixed mode)

======= _222_mpegaudio Finished in 1.799 secs
======= _222_mpegaudio Finished in 1.471 secs
======= _222_mpegaudio Finished in 1.446 secs
======= _222_mpegaudio Finished in 1.445 secs
======= _222_mpegaudio Finished in 1.441 secs

Comments
PUBLIC COMMENTS Problem: Fix for 6743900 normalized blocks frequency with First block frequency equals to 1.0. The fix reduced frequencies in average. Register Allocator relays on blocks frequencies and in some places it has static values against which it compares frequencies. As result of 6743900 fix some of the code under the frequencies checks is not triggered. In the bug case the code which is not executed is LRG spilling for debug info in uncommon blocks which prevents spilling in hot paths for high LRGs. And this causes performance regression. Solution: Used the outer loop frequency in frequencies checks in RA instead of static values. Also add the check for uncommon blocks. Fixed performance issue with compressed oops which converts types to Bottom for memory operations which use a compressed oop as base. Switch on by default BlockLayoutRotateLoops to improve performance.
31-03-2009

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/fbc12e71c476
27-03-2009