Integrated: 8315454: Add a way to create an immutable snapshot of a BitSet

Per Minborg pminborg at openjdk.org
Tue Sep 5 06:46:01 UTC 2023


On Fri, 1 Sep 2023 08:21:13 GMT, Per Minborg <pminborg at openjdk.org> wrote:

> This PR proposes adding a new method to BitSet that provides an immutable snapshot of the set in the form of an `IntPredicate`.
> 
> The predicate is eligible for constant folding.
> 
> Here are some classes in the JDK that would benefit directly from constant-folding of BitSets:
> 
> PoolReader (6)
> URLEncoder (1) - Updated in this PR
> HtmlTree (2)
> 
> More over, the implementation of the predicate is @ValueBased and this would provide additional benefits in the future.
> 
> Initial benchmarks with the URLEncoder show encouraging results:
> 
> 
> Name                           (encodeChars) (maxLength) (unchanged) Cnt  Base   Error   Test   Error  Unit  Diff%
> URLEncodeDecode.testEncodeUTF8             6        1024           0  15 2,371 ± 0,016  2,073 ± 0,184 ms/op  12,6% (p = 0,000*)
> URLEncodeDecode.testEncodeUTF8             6        1024          75  15 1,772 ± 0,013  1,387 ± 0,032 ms/op  21,8% (p = 0,000*)
> URLEncodeDecode.testEncodeUTF8             6        1024         100  15 1,230 ± 0,009  1,140 ± 0,011 ms/op   7,3% (p = 0,000*)

This pull request has now been integrated.

Changeset: f2922682
Author:    Per Minborg <pminborg at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/f2922682688a40529df269e1551246ac8da5d7ee
Stats:     194 lines in 3 files changed: 181 ins; 1 del; 12 mod

8315454: Add a way to create an immutable snapshot of a BitSet

Co-authored-by: Claes Redestad <redestad at openjdk.org>
Reviewed-by: redestad

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

PR: https://git.openjdk.org/jdk/pull/15530


More information about the core-libs-dev mailing list