-
Bug
-
Resolution: Fixed
-
P3
-
jfx11, jfx15
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8255611 | jfx11.0.10 | Jose Pereda | P3 | Resolved | Fixed |
This happens every time the number of items in the TableView control changes, as the VirtualFlow keeps track of the number of virtual cells (cellCount is the total number of items) while the number of actual cells or number of visible nodes used is given by sheetChildren.size().
This means that all the actual cells (usually 5 to 20 nodes) that are used by the VirtualFlow are disposed and recreated all over again every time the number of items changes, triggering all those calls to unregister those nodes from the scene that ultimately lead to remove the listeners with ExpressionHelper.removeListener.
This seems unnecessary, as the number of actual cells/nodes doesn't change that much and the VirtualFlow manages to update them properly, however, it causes very bad performance and high CPU usage.
This issue should explore the option of removing the call to:
sheetChildren.clear();
taking care of a possibly very old comment:
// Fix for
// the sheet would constantly grow, leaking memory for the life of the
// application. This was especially apparent when the total number of
// cells changes - regardless of whether it became bigger or smaller.
If we could get some information about
- backported by
-
JDK-8255611 The list of cells in a VirtualFlow is cleared every time the number of items changes
- Resolved
- duplicates
-
JDK-8185886 Improve scrolling performance of TableView and TreeTableView
- Closed
- relates to
-
JDK-8185887 TableRowSkinBase fails to correctly virtualize cells in horizontal direction
- Open
-
JDK-8260977 TreeView cell selection is 1px off after expansion is triggered at least once
- Open
-
JDK-8244826 Collapsing row outside of viewport with navigation key makes TreeTableView blank
- Open
-
JDK-8252936 Optimize removal of listeners from ExpressionHelper.Generic
- Open
-
JDK-8252935 Add treeShowing listener only when needed
- Resolved