RFR: 8185886: Improve scrolling performance of TableView and TreeTableView

dannygonzalez github.com+6702882+dannygonzalez at openjdk.java.net
Tue Feb 18 09:06:31 UTC 2020


Optimisation to ExpressionHelper.Generic class to use Sets rather than Arrays to improve listener removal speed.

This was due to the removal of listeners in TableView taking up to 50% of CPU time on the JavaFX Application thread when scrolling/adding rows to TableViews.

This may alleviate some of the issues seen here:

TableView has a horrific performance with many columns #409

JDK-8088394 : Huge memory consumption in TableView with too many columns
JDK-8166956: JavaFX TreeTableView slow scroll performance
JDK-8185887: TableRowSkinBase fails to correctly virtualise cells in horizontal direction

OpenJFX mailing list thread: TableView slow vertical scrolling with 300+ columns


 - 05c37196: JDK-8185886

Changes: https://git.openjdk.java.net/jfx/pull/108/files
 Webrev: https://webrevs.openjdk.java.net/jfx/108/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8185886
  Stats: 240 lines in 4 files changed: 105 ins; 76 del; 59 mod
  Patch: https://git.openjdk.java.net/jfx/pull/108.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/108/head:pull/108

PR: https://git.openjdk.java.net/jfx/pull/108

More information about the openjfx-dev mailing list