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

[macosx] Performance problems with Retina display on Mac OS X

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P2
    • Resolution: Fixed
    • Affects Version/s: 7u40, 8, 9
    • Fix Version/s: 9
    • Component/s: client-libs
    • Environment:
    • Subcomponent:
    • Resolved In Build:
      b38
    • OS:
      os_x

      Backports

        Description

        Text editing and scrolling in Java Swing applications is slow when running on Mac OS X with a Retina display. To reproduce create a JFrame with a JTextPane and past some large text into the pane. Then start editing the text to force scrolling in the text pane. It will be slow and CPU usage for that process will go over 100%.
        The same application running on external display connected to the same machine is much faster with CPU usage never going over 50%.
        It is reproducible with JDK 8 build 117 as well. Adjusting resolution scaling in OS X System Preferences makes no difference. The problem is even more severe on MacBook Air computer - probably because their CPUs are less powerful.

        See also https://netbeans.org/bugzilla/show_bug.cgi?id=237724

          Issue Links

            Activity

            Hide
            serb Sergey Bylokhov added a comment -
            j2dbench options file:
            http://cr.openjdk.java.net/~serb/8029253/drawimage

            Summary osx-retina Intel HD Graphics 4000 :
            http://cr.openjdk.java.net/~serb/8029253/perf.04/osx-retina-intel/results.txt
               base:
                 Number of tests: 24
                 Overall average: 92015.36146212014
                 Best spread: 0.0% variance
                 Worst spread: 0.0% variance
                 (Basis for results comparison)

               fix:
                 Number of tests: 24
                 Overall average: 616682.7498394073
                 Best spread: 0.0% variance
                 Worst spread: 0.0% variance
                 Comparison to basis:
            * Best result: 4899860.24% of basis*
                   Worst result: 100.48% of basis
                   Number of wins: 22
                   Number of ties: 2
                   Number of losses: 0

            Summary osx-retina Nvidia GeForce GT 650M 1024 MB :
            http://cr.openjdk.java.net/~serb/8029253/perf.04/osx-retina-nvidia/results.txt
               base:
                 Number of tests: 24
                 Overall average: 147138.4952051871
                 Best spread: 0.0% variance
                 Worst spread: 0.0% variance
                 (Basis for results comparison)

               fix:
                 Number of tests: 24
                 Overall average: 634465.9854992364
                 Best spread: 0.0% variance
                 Worst spread: 0.0% variance
                 Comparison to basis:
                   Best result: 42311.89% of basis
                   Worst result: 77.93% of basis
                   Number of wins: 16
                   Number of ties: 7
                   Number of losses: 1
            Show
            serb Sergey Bylokhov added a comment - j2dbench options file: http://cr.openjdk.java.net/~serb/8029253/drawimage Summary osx-retina Intel HD Graphics 4000 : http://cr.openjdk.java.net/~serb/8029253/perf.04/osx-retina-intel/results.txt    base:      Number of tests: 24      Overall average: 92015.36146212014      Best spread: 0.0% variance      Worst spread: 0.0% variance      (Basis for results comparison)    fix:      Number of tests: 24      Overall average: 616682.7498394073      Best spread: 0.0% variance      Worst spread: 0.0% variance      Comparison to basis: * Best result: 4899860.24% of basis*        Worst result: 100.48% of basis        Number of wins: 22        Number of ties: 2        Number of losses: 0 Summary osx-retina Nvidia GeForce GT 650M 1024 MB : http://cr.openjdk.java.net/~serb/8029253/perf.04/osx-retina-nvidia/results.txt    base:      Number of tests: 24      Overall average: 147138.4952051871      Best spread: 0.0% variance      Worst spread: 0.0% variance      (Basis for results comparison)    fix:      Number of tests: 24      Overall average: 634465.9854992364      Best spread: 0.0% variance      Worst spread: 0.0% variance      Comparison to basis:        Best result: 42311.89% of basis        Worst result: 77.93% of basis        Number of wins: 16        Number of ties: 7        Number of losses: 1
            Hide
            hgupdate HG Updates added a comment -
            URL: http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/f8498246a197
            User: lana
            Date: 2014-11-05 19:35:24 +0000
            Show
            hgupdate HG Updates added a comment - URL: http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/f8498246a197 User: lana Date: 2014-11-05 19:35:24 +0000
            Hide
            vdyakov Victor Dyakov added a comment -
            Sergey, do we need to back port it to 7u80(Sust)?
            Show
            vdyakov Victor Dyakov added a comment - Sergey, do we need to back port it to 7u80(Sust)?
            Hide
            serb Sergey Bylokhov added a comment -
            Currently I have no plan to backport it to jdk7 until I'll complete everything for jdk8.
            Show
            serb Sergey Bylokhov added a comment - Currently I have no plan to backport it to jdk7 until I'll complete everything for jdk8.
            Hide
            vdyakov Victor Dyakov added a comment -
            Back ported to 8u40.
            Show
            vdyakov Victor Dyakov added a comment - Back ported to 8u40.

              People

              • Assignee:
                serb Sergey Bylokhov
                Reporter:
                saubrech Stanislav Aubrecht
              • Votes:
                0 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: