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

8.0-graphics-scrum-h449: RT-25055 caused up to 80% regression in Charts.Bubble benchmark

XMLWordPrintable

      RT-25055 "CSS : style -fx-shape with -fx-scale-shape shifted and not fill background"
      which was integrated into build 8.0-graphics-scrum-h449 caused the following regressions
      in Charts.Bubble-series25:
       WinXP: -28%, 26.32 fps => 18.9 fps
       MacMid: -81%, 13.72 fps => 2.55 fps

      JPA profile shows that now we do spend a lot of time in com.sun.prism.impl.Disposer.disposeUnreachables().
      For example it is 9 seconds from total 40 seconds on Windows XP performance machine.

      Stack trace shows that all objects (textures) are created from NGRegion:481 because we now do caching:

         479 if (cache && CACHE.isImageCachable(textureWidth, textureHeight)) {
         480 old = g;
         481 cached = g.getResourceFactory().createRTTexture(textureWidth, textureHeight,
         482 WrapMode.CLAMP_TO_ZERO);
         483 g = cached.createGraphics();
         484 // Have to move the origin such that when rendering to x=0, we actually end up re
      ndering
         485 // at x=bounds.getMinX(). Otherwise anything rendered to the left of the origin w
      ould be lost
         486 g.translate(-outsetShapeBounds.getMinX(), -outsetShapeBounds.getMinY());
         487 // TODO need to pass in something like GraphicsConfiguration (RT-26923)
         488 CACHE.setImage(cached, null, textureWidth, textureHeight, background, shape);
         489 }


      Rough instrumentation also shows that the number of disposed objects is about 3000 per second while fps is about 20.
      So, we have about 150 objects to dispose per pulse. Note, we just change X and Y values
      for 25 BubbleChart objects on every pulse in Charts.Bubble benchmark .

      Also note, that it was mentioned in RT-25055 comments that some performance regression is expected in animated pie chart.
      However, it seems to be too significant for Charts.Bubble-series25.

      To run benchmark do:
      > cd JFX_WS/tests/performance/Charts/
      > ant run-bubble-bm

            rbair Richard Bair (Inactive)
            epavlova Ekaterina Pavlova
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: