On Fri, 6 Oct 2023 20:55:40 GMT, 温绍锦 <[email protected]> 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

Reply via email to