> Fixes [JDK-8311505](https://bugs.openjdk.org/browse/JDK-8311505) > > This PR uses `set(int index, int end, boolean isSet)` in > `javafx.scene.control.MultipleSelectionModelBase` to avoid excessive calls to > `indexOf` when deselecting continuous ranges of rows. > > Benchmarks produced with the test application provided here: > https://bugs.openjdk.org/browse/JDK-8311505 > > Before (mainline): > > > Select item count 500000 took 724 > Deselect item count 500000 took 73103 > > > After (this PR): > > > Select item count 500000 took 249 > Deselect item count 500000 took 88 > > > Passes all unit tests: > > `.\gradlew.bat :controls:test` > `.\gradlew.bat :systemTests:test` > > Thank you!
chuckyschluz has updated the pull request incrementally with one additional commit since the last revision: move processContinguousRanges into the main function body ------------- Changes: - all: https://git.openjdk.org/jfx/pull/2100/files - new: https://git.openjdk.org/jfx/pull/2100/files/79003151..b519d735 Webrevs: - full: https://webrevs.openjdk.org/?repo=jfx&pr=2100&range=03 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=2100&range=02-03 Stats: 19 lines in 1 file changed: 8 ins; 9 del; 2 mod Patch: https://git.openjdk.org/jfx/pull/2100.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/2100/head:pull/2100 PR: https://git.openjdk.org/jfx/pull/2100
