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


https://bugs.openjdk.java.net/browse/JDK-8185886

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
https://github.com/javafxports/openjdk-jfx/issues/409#event-2206515033

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
https://mail.openjdk.java.net/pipermail/openjfx-dev/2020-January/024780.html

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

Commits:
 - 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