Details
-
Bug
-
Resolution: Fixed
-
P3
-
8
-
all
Description
There is up to 99% performance regression in Controls.ComboBox benchmark in promoted build 8.0-b106.
NodeMemory.ComboBox benchmark also shows up to 66% regression.
The regression first appeared in build 8.0-controls-scrum-744 which contains:
1. Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/scrum/controls/jfx/rt (detail)
2.RT-32618: change listener on ListView is called one extra time.
The same problem was also being exhibited on the other virtualised controls, so this changeset resolves it in all cases,
and adds a parameterised test for both single and multiple selection models, to prevent this appearing again. (detail)
3.RT-32582: [ComboBox] unnecessary scroll bar in dropdown (detail)
According to JPA profiles the time spent in GC has been significantly increased which results on low FPSs.
Memory dump for 100 ComboBox objects shows that StyleManager.cacheContainerMap has been increased from 60Kb to 5,6Mb.
#743:
Class Name | Shallow Heap | Retained Heap
------------------------------------------------------------------------------------------------------------
com.sun.javafx.css.StyleManager @ 0x65d6710 | 24 | 92 960
|- <class> class com.sun.javafx.css.StyleManager @ 0x65a8bb8 | 24 | 60 424
| |- <class> class java.lang.Class @ 0x65c84c8 System Class | 40 | 56
| |- <classloader> sun.misc.Launcher$AppClassLoader @ 0x659cfc8 Native Stack| 80 | 3 193 896
| |- <super> class java.lang.Object @ 0x65c87b0 System Class | 0 | 0
| |- cacheContainerMap java.util.WeakHashMap @ 0x65d6738 | 48 | 60 400
| | |- <class> class java.util.WeakHashMap @ 0x65c5a00 System Class | 16 | 24
| | |- keySet java.util.WeakHashMap$KeySet @ 0x65fcfb0 | 16 | 16
| | |- values java.util.WeakHashMap$Values @ 0x65fcfc0 | 16 | 16
| | |- table java.util.WeakHashMap$Entry[16] @ 0x65fcfd0 | 80 | 60 288
| | |- queue java.lang.ref.ReferenceQueue @ 0x65fd020 | 24 | 32
| | '- Total: 5 entries | |
| '- Total: 4 entries | |
------------------------------------------------------------------------------------------------------------
#744:
Class Name | Shallow Heap | Retained Heap
------------------------------------------------------------------------------------------------------------
com.sun.javafx.css.StyleManager @ 0x62782f8 | 24 | 92 960
|- <class> class com.sun.javafx.css.StyleManager @ 0x624a880 | 24 | 5 686 832
| |- <class> class java.lang.Class @ 0x626a1a0 System Class | 40 | 56
| |- <classloader> sun.misc.Launcher$AppClassLoader @ 0x623f050 Native Stack| 80 | 8 825 608
| |- <super> class java.lang.Object @ 0x626a488 System Class | 0 | 0
| |- cacheContainerMap java.util.WeakHashMap @ 0x6278320 | 48 | 5 686 808
| | |- <class> class java.util.WeakHashMap @ 0x62676d8 System Class | 16 | 24
| | |- table java.util.WeakHashMap$Entry[256] @ 0x5dc66c0 | 1 040 | 5 686 696
| | |- keySet java.util.WeakHashMap$KeySet @ 0x629ed50 | 16 | 16
| | |- values java.util.WeakHashMap$Values @ 0x629ed60 | 16 | 16
| | |- queue java.lang.ref.ReferenceQueue @ 0x629ed70 | 24 | 32
| | '- Total: 5 entries | |
| '- Total: 4 entries | |
------------------------------------------------------------------------------------------------------------
Looks likeRT-32582's fix introduced some bug in CSS.
NodeMemory.ComboBox benchmark also shows up to 66% regression.
The regression first appeared in build 8.0-controls-scrum-744 which contains:
1. Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/scrum/controls/jfx/rt (detail)
2.
The same problem was also being exhibited on the other virtualised controls, so this changeset resolves it in all cases,
and adds a parameterised test for both single and multiple selection models, to prevent this appearing again. (detail)
3.
According to JPA profiles the time spent in GC has been significantly increased which results on low FPSs.
Memory dump for 100 ComboBox objects shows that StyleManager.cacheContainerMap has been increased from 60Kb to 5,6Mb.
#743:
Class Name | Shallow Heap | Retained Heap
------------------------------------------------------------------------------------------------------------
com.sun.javafx.css.StyleManager @ 0x65d6710 | 24 | 92 960
|- <class> class com.sun.javafx.css.StyleManager @ 0x65a8bb8 | 24 | 60 424
| |- <class> class java.lang.Class @ 0x65c84c8 System Class | 40 | 56
| |- <classloader> sun.misc.Launcher$AppClassLoader @ 0x659cfc8 Native Stack| 80 | 3 193 896
| |- <super> class java.lang.Object @ 0x65c87b0 System Class | 0 | 0
| |- cacheContainerMap java.util.WeakHashMap @ 0x65d6738 | 48 | 60 400
| | |- <class> class java.util.WeakHashMap @ 0x65c5a00 System Class | 16 | 24
| | |- keySet java.util.WeakHashMap$KeySet @ 0x65fcfb0 | 16 | 16
| | |- values java.util.WeakHashMap$Values @ 0x65fcfc0 | 16 | 16
| | |- table java.util.WeakHashMap$Entry[16] @ 0x65fcfd0 | 80 | 60 288
| | |- queue java.lang.ref.ReferenceQueue @ 0x65fd020 | 24 | 32
| | '- Total: 5 entries | |
| '- Total: 4 entries | |
------------------------------------------------------------------------------------------------------------
#744:
Class Name | Shallow Heap | Retained Heap
------------------------------------------------------------------------------------------------------------
com.sun.javafx.css.StyleManager @ 0x62782f8 | 24 | 92 960
|- <class> class com.sun.javafx.css.StyleManager @ 0x624a880 | 24 | 5 686 832
| |- <class> class java.lang.Class @ 0x626a1a0 System Class | 40 | 56
| |- <classloader> sun.misc.Launcher$AppClassLoader @ 0x623f050 Native Stack| 80 | 8 825 608
| |- <super> class java.lang.Object @ 0x626a488 System Class | 0 | 0
| |- cacheContainerMap java.util.WeakHashMap @ 0x6278320 | 48 | 5 686 808
| | |- <class> class java.util.WeakHashMap @ 0x62676d8 System Class | 16 | 24
| | |- table java.util.WeakHashMap$Entry[256] @ 0x5dc66c0 | 1 040 | 5 686 696
| | |- keySet java.util.WeakHashMap$KeySet @ 0x629ed50 | 16 | 16
| | |- values java.util.WeakHashMap$Values @ 0x629ed60 | 16 | 16
| | |- queue java.lang.ref.ReferenceQueue @ 0x629ed70 | 24 | 32
| | '- Total: 5 entries | |
| '- Total: 4 entries | |
------------------------------------------------------------------------------------------------------------
Looks like