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