RFR: 8185886: Improve scrolling performance of TableView and TreeTableView [v2]

Jeanette Winzenburg fastegal at openjdk.java.net
Sun Aug 30 13:23:05 UTC 2020

On Thu, 27 Aug 2020 06:37:53 GMT, yosbits <github.com+7517141+yososs at openjdk.org> wrote:

>> 19fabf2eafcb02b519d39a1b0a9dad5b9209db64
>> * Constructor creates multiple cell nodes, but the
>> Fixed a wasteful problem of creating all cells and deleting out-of-display cells because the fixedCellSize attribute
>> was not initialized in the constructor..
>> * Reduce the load on ExpressionHelper.removeListener by removing cells outside of the display range from the back of the
>>   scrolling operation.
> When setting the cell height to a fixed value with setFixedCellSize(), column virtualization can improve performance.
> As the next step, I think it is possible to try to enable column virtualization regardless of whether
> setFixedCellSize() is set or not. Before doing this step, the direct access validation of the internal structure of the
> test code needs to be changed via the public API.

this indeed improves scrolling performance considerably (from extremely lagging to smooth following the mouse when
dragging the thumb of the vertical scrollbar).

As a side-effect, start-up time of TreeTableView seems to increase considerably (at least by a factor of 3 to 4,
probably not linear in # of columns) - see f.i. the [example in
JDK-8166956](https://bugs.openjdk.java.net/browse/JDK-8166956). Any idea why that might happen?


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

More information about the openjfx-dev mailing list