RFR: 8317698: Optimization for URLEncoder
Claes Redestad
redestad at openjdk.org
Sun Oct 8 21:17:03 UTC 2023
On Fri, 6 Oct 2023 20:55:40 GMT, 温绍锦 <duke at openjdk.org> wrote:
> @cl4es and @Glavo have already made some very good optimizations to URLEncoder, but we can continue to improve.
>
> The current URLEncoder's Predicate for DONT_NEED_ENCODING is based on BitSet, which is actually a table lookup. The actual performance may not be as good as microbench.
>
> The character value range of DONT_NEED_ENCODING is between [45-122]. We can construct two long type constants to do the work of BitSet. This can improve performance by about 7% to 30%.
I drafted a PR that pulls off more or less the same optimization but does so by adding a variant to `ImmutableBitSetPredicate`. This ensures other `BitSet`-based predicates of 128 elements or less would get the similar benefit, and better contains the added complexity.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16082#issuecomment-1752163233
More information about the net-dev
mailing list