On Fri, 1 Sep 2023 08:21:13 GMT, Per Minborg <pminb...@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 <pminb...@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 <redes...@openjdk.org> Reviewed-by: redestad ------------- PR: https://git.openjdk.org/jdk/pull/15530