-
Bug
-
Resolution: Fixed
-
P3
-
8
-
windows
The number of TableColumn objects we are able to create and render using predefined heap size
decreased from 1870 to 1520 objects on WindowsXP in promoted build 8.0-b106.
This regression was introduced in build 8.0-controls-scrum-740 which contains the following changes:
1. Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/scrum/controls/jfx/rt (detail)
2.RT-32559: TableView: replaced columns disappear (detail)
The difference between memory heap dumps for 1000 TableColumn objects for builds 739 and 740 is:
Class Name | Objects | Shallow Heap
--------------------------------------------------------------------------------------------
java.lang.Object[] | +14 007 | +1 120 240
java.util.HashMap$Entry | +39 017 | +936 408
java.util.HashMap | +7 002 | +336 096
com.sun.javafx.binding.ExpressionHelper$SingleChange | +14 000 | +336 000
com.sun.javafx.scene.control.skin.LabeledText | +1 000 | +312 000
com.sun.javafx.css.PseudoClassState | +19 015 | +304 240
com.sun.javafx.geom.RectBounds | +11 000 | +264 000
com.sun.javafx.css.CalculatedValue | +9 009 | +216 216
com.sun.javafx.binding.ExpressionHelper$Generic | +5 000 | +200 000
java.lang.ref.WeakReference | +7 164 | +171 936
com.sun.javafx.event.CompositeEventHandler | +7 000 | +168 000
com.sun.javafx.sg.prism.NGText | +1 000 | +152 000
java.util.ArrayList | +6 004 | +144 096
com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord| +6 000 | +144 000
int[] | +4 013 | +128 336
com.sun.javafx.geom.transform.Affine3D | +1 000 | +120 000
java.util.Set[] | +3 003 | +104 104
long[] | +4 003 | +96 072
com.sun.javafx.scene.control.skin.LabelSkin | +1 000 | +96 000
com.sun.javafx.binding.ExpressionHelper$SingleInvalidation | +6 000 | +96 000
javafx.scene.CssStyleHelper$CacheContainer | +3 000 | +96 000
javafx.geometry.BoundingBox | +1 000 | +88 000
com.sun.javafx.text.TextRun | +1 000 | +88 000
java.lang.Double | +5 001 | +80 016
javafx.beans.InvalidationListener[] | +5 000 | +80 000
javafx.beans.value.ChangeListener[] | +5 000 | +80 000
...
--------------------------------------------------------------------------------------------
Steps to run NodeMemory.TableColumn benchmark:
> cd JFX_WS/tests/performance/NodeMemory/
> ant
> java -Xms64m -Xmx64m
-cp "JFX_HOME/rt/lib/jfxrt.jar;./dist/NodeMemory.jar"
nodememory.TableColumnTest -render true -allocCnt 10
decreased from 1870 to 1520 objects on WindowsXP in promoted build 8.0-b106.
This regression was introduced in build 8.0-controls-scrum-740 which contains the following changes:
1. Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/scrum/controls/jfx/rt (detail)
2.
The difference between memory heap dumps for 1000 TableColumn objects for builds 739 and 740 is:
Class Name | Objects | Shallow Heap
--------------------------------------------------------------------------------------------
java.lang.Object[] | +14 007 | +1 120 240
java.util.HashMap$Entry | +39 017 | +936 408
java.util.HashMap | +7 002 | +336 096
com.sun.javafx.binding.ExpressionHelper$SingleChange | +14 000 | +336 000
com.sun.javafx.scene.control.skin.LabeledText | +1 000 | +312 000
com.sun.javafx.css.PseudoClassState | +19 015 | +304 240
com.sun.javafx.geom.RectBounds | +11 000 | +264 000
com.sun.javafx.css.CalculatedValue | +9 009 | +216 216
com.sun.javafx.binding.ExpressionHelper$Generic | +5 000 | +200 000
java.lang.ref.WeakReference | +7 164 | +171 936
com.sun.javafx.event.CompositeEventHandler | +7 000 | +168 000
com.sun.javafx.sg.prism.NGText | +1 000 | +152 000
java.util.ArrayList | +6 004 | +144 096
com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord| +6 000 | +144 000
int[] | +4 013 | +128 336
com.sun.javafx.geom.transform.Affine3D | +1 000 | +120 000
java.util.Set[] | +3 003 | +104 104
long[] | +4 003 | +96 072
com.sun.javafx.scene.control.skin.LabelSkin | +1 000 | +96 000
com.sun.javafx.binding.ExpressionHelper$SingleInvalidation | +6 000 | +96 000
javafx.scene.CssStyleHelper$CacheContainer | +3 000 | +96 000
javafx.geometry.BoundingBox | +1 000 | +88 000
com.sun.javafx.text.TextRun | +1 000 | +88 000
java.lang.Double | +5 001 | +80 016
javafx.beans.InvalidationListener[] | +5 000 | +80 000
javafx.beans.value.ChangeListener[] | +5 000 | +80 000
...
--------------------------------------------------------------------------------------------
Steps to run NodeMemory.TableColumn benchmark:
> cd JFX_WS/tests/performance/NodeMemory/
> ant
> java -Xms64m -Xmx64m
-cp "JFX_HOME/rt/lib/jfxrt.jar;./dist/NodeMemory.jar"
nodememory.TableColumnTest -render true -allocCnt 10