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

3.0-controls-scrum-58: 100% regression in NodeMemory.TreeItem and 96% in Controls.TreeView-Expand

    XMLWordPrintable

Details

    Description

      There are following regressions in build 3.0-controls-scrum-58:
       Controls.TreeView-Expand: 9.45 fps -95% (-174.37 fps)
       NodeMemory.TreeItem: 203 objects -100% (-83,237.00 objects)


      Running Controls.TreeView-Expand shows that we started to spend a lot of time in GC by collecting
      the garbage. There is no memory leak, we just create a lot of young garbage on every pulse.

      I looked at heap dump files from NodeMemory.TreeItem and I see that there are a lot of TreeCell
      objects being created (TreeView$12). I have instrumented TreeCell constructor and printed the number of
      time we create TreeCell objects. Here are the results of running NodeMemory.TreeItem with different options.

      > cd tests/performance/NodeMemory
      > ant
      > java -cp "JFX_HOME/rt/lib/jfxrt.jar;./dist/NodeMemory.jar" nodememory.TreeItemTest -render true -allocCnt 1 -allocMax 1
        TreeCell objects created: 43

      > java -cp "JFX_HOME/rt/lib/jfxrt.jar;./dist/NodeMemory.jar" nodememory.TreeItemTest -render true -allocCnt 10 -allocMax 10
        TreeCell objects created: 211

      > java -cp "JFX_HOME/rt/lib/jfxrt.jar;./dist/NodeMemory.jar" nodememory.TreeItemTest -render true -allocCnt 20 -allocMax 20
        TreeCell objects created: 421

      > java -cp "JFX_HOME/rt/lib/jfxrt.jar;./dist/NodeMemory.jar" nodememory.TreeItemTest -render true -allocCnt 100 -allocMax 100
        TreeCell objects created: 2101


      It looks like we do some unnecessary allocations which significantly affect performance and footprint.
       

      Attachments

        Activity

          People

            jgiles Jonathan Giles
            epavlova Ekaterina Pavlova
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              Imported: