Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8187033

Improve performance of ObjectStreamClass.getClassDataLayout() on ppc arch

    Details

    • Type: Enhancement
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: tbd
    • Component/s: core-libs
    • Labels:
      None

      Description

      getClassDataLayout() checks if a private volatile variable "dataLayout" is null, and creates a data layout array when it is null. Since the variable dataLayout is volatile, even read access causes high overhead on POWER architecture (and may be ARM too). Making this variable non-volatile improved performance of GradientBoostingTree test in Intel HiBench [1] by 5% on a POWER8 machine.

      Although there is a benign race, the overhead of making this variable volatile must be larger than potential overhead for creating a data layout duplicatedly.

      [1] Intel HiBench: https://github.com/intel-hadoop/HiBench

        Attachments

          Activity

            People

            • Assignee:
              rriggs Roger Riggs
              Reporter:
              horii Hiroshi Horii
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: