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

8.0-graphics-scrum-1596: up to 40% performance regression in Controls.TreeView-Modify in SW pipeline

XMLWordPrintable

      There are following Controls.TreeView-Modify performance regressions in promoted build
      8.0-b106 in SW pipeline:
       - 26% on WinXP
       - 40% on Win7-high
       - 22% on Win7-Low

      The regression first appeared in build 8.0-graphics-scrum-1596 which contains:
       1. Updated TODO in NGRegion -- we definitely don't support background loaded images as image fills for a Region. (detail)
       2. RT-32646: Regions go down a very slow rendering path when width / height are not pixel aligned and image cache is used (detail)
       3. Minor comment fixes to NGRegion, also minor change to RegionImageCache to have the constructor take a ResourceFactory instead of a Graphics object (since the Graphics object was only used to get at its resource factory, and it is better style to pass what is really needed instead of a carrier). (detail)
       4. Fix to RT-30723: EGL: Disable clipping when clearing framebuffer
      Reviewed by Dave, Lisa and Kevin (detail)
       5. RT-32639: NGRegion can avoid invalidating the backgroundInsets if the Background in question does not have any percentage-based CornerRadii on any BackgroundFills (detail)
       6. RT-31521 8.0-graphics-scrum-h1423: Memory leak in PhongMaterial (detail)
       7. RT-32603: Bad analysis in NGGroup#computeRenderRoot results in Nodes being rendered that need not be (detail)
       8. ViewPainter shouldn't be painting anything if the width or height is <= 0 (detail)
       9. Clean up HelloRectangle (detail)
      10. EbayPad: use reflection for webview so the code can run on embedded (detail)


      According to JPA profiles the time spent in com.sun.javafx.sg.prism.NGRegion.renderContent has been increased from 10,965 sec to 26,756 sec (total execution time was 0 sec). See call trees for NGRegion.renderContent:

      b1595:
       8.825 (29%) com.sun.javafx.sg.prism.NGRegion.renderBackgrounds(com.sun.prism.Graphics, float, float)
        4.297 (14%) com.sun.javafx.sg.prism.NGGroup.renderContent(com.sun.prism.Graphics)
        0.005 (0%) javafx.scene.layout.Background.isEmpty()
        0.002 (0%) javafx.scene.layout.Border.isEmpty()
        0.001 (0%) javafx.geometry.Insets.getRight()
        9.4E-4 (0%) javafx.scene.layout.Background.getOutsets()
        9.23E-4 (0%) javafx.scene.layout.Background.getImages()


      b1596:
      28.341 (94%) com.sun.javafx.sg.prism.NGRegion.renderContent(com.sun.prism.Graphics)
        25.363 (84%) com.sun.prism.sw.SWGraphics.drawTexture9Slice(com.sun.prism.Texture, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float)
        2.946 (10%) com.sun.javafx.sg.prism.NGGroup.renderContent(com.sun.prism.Graphics)
        0.006 (0%) com.sun.javafx.sg.prism.RegionImageCache.getImageLocation(java.lang.Integer, com.sun.javafx.geom.Rectangle, javafx.scene.layout.Background, com.sun.javafx.geom.Shape, com.sun.prism.Graphics)
        0.004 (0%) com.sun.javafx.sg.prism.NGRegion.getImageCache(com.sun.prism.Graphics)
        0.004 (0%) javafx.scene.layout.Background.isEmpty()
        0.002 (0%) com.sun.javafx.sg.prism.NGRegion.getCacheKey(int, int)
        0.001 (0%) javafx.scene.layout.Border.isEmpty()
        9.81E-4 (0%) com.sun.javafx.sg.prism.NGRegion.roundUp(double)



      Steps to run Controls.TreeViewModify benchmark:
      > cd JFX_WS/tests/performance/Controls/
      > ant
      > java -Dprism.order=sw -Djavafx.animation.fullspeed=true
             -cp "JFX_HOME/rt/lib/jfxrt.jar;./dist/Controls.jar;../FXBenchmark/dist/FXBenchmark.jar;../../../import/benchmarks-2.1.1/benchmarks-2.1.1.jar"
             jrockit.bm.Main controls.bm.TreeViewModifyBenchmark -i 1 -wt 0 -tr 30 -allocCnt 1000

            kcr Kevin Rushforth
            epavlova Ekaterina Pavlova
            Votes:
            1 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: