RFR: 8293836: Rendering performance degradation at bottom of TableView with many rows

Andy Goryachev angorya at openjdk.org
Fri May 26 20:24:00 UTC 2023


On Wed, 19 Apr 2023 12:14:45 GMT, Johan Vos <jvos at openjdk.org> wrote:

> Only update the VirtualFlow parameters in case the size of a cell has changed.
> 
> The fixes for JDK-8298728 and JDK-8277785 introduced an unconditional recalculation in case the size of a cell is set. This recalculation is only needed in case the size of that specific cell has changed.
> Fix for JDK-8293836

I've tested this change on Windows 11 at 225% scale (just in case).
TableView performance is much better (I think there is still a bit of difference between looking at the top of the table vs. the bottom, but it's hardly noticeable).

Question: is this fix supposed to affect performance of TreeTableView?  I've tested with the MonkeyTester
https://github.com/andy-goryachev-oracle/MonkeyTest

and at 10,000,000 rows the TreeTableView grinds to a halt.
Perhaps there is another bug for TTV?

modules/javafx.controls/src/main/java/javafx/scene/control/skin/VirtualFlow.java line 3092:

> 3090:                 }
> 3091:                 recalculateAndImproveEstimatedSize(0, currentIndex, oldOffset);
> 3092: 

minor: extra newline

-------------

PR Review: https://git.openjdk.org/jfx/pull/1098#pullrequestreview-1446900896
PR Review Comment: https://git.openjdk.org/jfx/pull/1098#discussion_r1207298342


More information about the openjfx-dev mailing list