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

8.0-controls-scrum-h51: -23% performance regression in Controls.TreeView-Expand.adhoc-items1000-wide benchmark

XMLWordPrintable

      There is following performance regressions in Controls.TreeView-Expand.adhoc-items1000-wide observed
      on windows7-high machine:
         -23%, 460 fps => 354 fps


      The regression first appeared in build 8.0-controls-scrum-h51 which contains following changes:
        1. RT-23461: partition css selectors into maps for faster lookup (detail)
        2. branch merge (detail)
        3. branch merge (detail)
        4. RT-23461: partition css selectors into maps for faster lookup (detail)
        5. RT-22076: use bits for styleclass (detail)

      The regression still exists in latest available hudson build 8.0-controls-scrum-h61.

      I can easy reproduce it on windows7-high machine as well as on my WindowsXP Dell laptop.
      JPA analysis shows that the time spent in javafx.scene.Noe.impl_processCSS(StyleManager, boolean) has
      been increased in twice:

      #50
       6.399 javafx.scene.Node.impl_processCSS(com.sun.javafx.css.StyleManager, boolean)
             4.968 com.sun.javafx.css.StyleHelper.transitionToState(javafx.scene.Node)
             1.417 com.sun.javafx.css.StyleManager.getStyleHelper(javafx.scene.Node)

      #51
      12.359 javafx.scene.Node.impl_processCSS(com.sun.javafx.css.StyleManager, boolean)
             7.017 com.sun.javafx.css.StyleHelper.setStyles(com.sun.javafx.css.StyleManager)
             5.320 com.sun.javafx.css.StyleHelper.transitionToState()



      Steps to run TreeView-Expand benchmark:
      > cd JFX_WS/tests/performance/Controls/
      > ant
      > java -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.TreeViewExpandBenchmark -i 1 -wt 0 -tr 60 -type depth -size 1000


      Btw, the same regression is also seen when running with treeview size of 10 elements ("-size 10").

      Note, you need substitute real path for JavaFX (JFX_WS, JFX_HOME variables).

            dgrieve David Grieve
            epavlova Ekaterina Pavlova
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: