RFR: 8197991: Selecting many items in a TableView is very slow

yosbits duke at openjdk.java.net
Fri Nov 26 13:13:12 UTC 2021


On Wed, 17 Nov 2021 05:34:46 GMT, Abhinay Agarwal <duke at openjdk.java.net> wrote:

> This work improves the performance of `MultipleSelectionModel`  over large data sets by caching some values and avoiding unnecessary calls to `SelectedIndicesList#size`. It further improves the performance by reducing the number of iterations required to find the index of an element in the BitSet.
> 
> The work is based on [an abandoned patch](https://github.com/openjdk/jfx/pull/127) submitted by @yososs
> 
> There are currently 2 manual tests for this fix.

tests/manual/controls/SelectTableViewTest.java line 19:

> 17:     //  final int ROW_COUNT = 80_000;
> 18:     //  final int ROW_COUNT = 50_000;
> 19:     //  final int ROW_COUNT = 8_000;

The number is meaningful because it is the number of data I used to show the improvement effect in the original PR.

Reference value of the number of data that can be handled within 3 seconds of processing time (before-> after)

TableView

selectAll: 8_000-> 700_000
selectRange: 7_000-> 50_000





``` Java
public class SelectTableViewTest extends Application {

	final int ROW_COUNT = 700_000;
//	final int ROW_COUNT = 80_000;
//	final int ROW_COUNT = 50_000;
//	final int ROW_COUNT = 8_000;
	final int COL_COUNT = 3;

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

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


More information about the openjfx-dev mailing list