-
Enhancement
-
Resolution: Fixed
-
P4
-
None
-
8
The introduction of ListChangeBuilder resulted is some regressions (according to Katya's measurements):
I created heap dump files for 10000 rectangles (using NodeMemory.Rectangle test) for 3 builds - #98, #99, #121
and I see
8.0-graphics-scrum-99 build creates the following extra objects:
10,000 com.sun.javafx.collections.ListChangeBuilder
10,000 com.sun.javafx.collections.ListChangeBuilder$SubChange[]
10,000 com.sun.javafx.collections.ListChangeHelper$SingleChange
10,000 com.sun.javafx.collections.TrackableObservableList$1
This footprint increase is mostly the reason of observed runtime performance regressions:
- up to 19% in ListView-Rotate
- up to 13% in TableView-Mouse
- up to 27% in TableView-MoveRows
- up to 24% in TableView-Sort
- up to 22/29% in TreeView-Expand
- up to 74% in TreeView-Modify (both hw and sw)
I looked for example at profiles for TableView-Sort (on win7-high) and I see that we had
~4ms GC pauses every 4 pulses in build 8.0-b56 but now we have ~5ms GC pauses every 2 pulses
in build 8.0-b57. This explains FPS drops.
I created heap dump files for 10000 rectangles (using NodeMemory.Rectangle test) for 3 builds - #98, #99, #121
and I see
8.0-graphics-scrum-99 build creates the following extra objects:
10,000 com.sun.javafx.collections.ListChangeBuilder
10,000 com.sun.javafx.collections.ListChangeBuilder$SubChange[]
10,000 com.sun.javafx.collections.ListChangeHelper$SingleChange
10,000 com.sun.javafx.collections.TrackableObservableList$1
This footprint increase is mostly the reason of observed runtime performance regressions:
- up to 19% in ListView-Rotate
- up to 13% in TableView-Mouse
- up to 27% in TableView-MoveRows
- up to 24% in TableView-Sort
- up to 22/29% in TreeView-Expand
- up to 74% in TreeView-Modify (both hw and sw)
I looked for example at profiles for TableView-Sort (on win7-high) and I see that we had
~4ms GC pauses every 4 pulses in build 8.0-b56 but now we have ~5ms GC pauses every 2 pulses
in build 8.0-b57. This explains FPS drops.