On Tue, 22 Sep 2020 07:35:49 GMT, yosbits 
<[email protected]> wrote:

>> https://bugs.openjdk.java.net/browse/JDK-8253086
>> 
>> ObservableListWrapper.java
>>  * public boolean removeAll(Collection<?> c)
>> * public boolean retainAll(Collection<?> c)
>> 
>> These two methods use BitSet, but it doesn't make sense.
>> By rewriting to the equivalent behavior that does not use BitSet, it is 
>> possible to reduce the CPU load in a wide range
>> of use cases.
>> The test is done with the following command.
>> 
>> * gradle base: test
>> * gradle controls: test
>
> yosbits has refreshed the contents of this pull request, and previous commits 
> have been removed. The incremental views
> will show differences compared to the previous content of the PR.

As mentioned in a reply to a comment by @kleopatra , this fix will cause a 
regression in behavior, and cannot be
integrated in its current form.

A two-pass algorithm is still needed: the first pass collects the elements to 
be removed, the second pass actually
removes them. While it isn't necessary to use a BitSet to collect the indexes 
to be removed, that does seems a
reasonable approach. Unless there is a good reason to change it to some other 
two-pass algorithm, it's probably best to
leave it as-is, in which case this PR and the associated JBS issue can be 
withdrawn.

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

Changes requested by kcr (Lead).

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

Reply via email to