RFR 8251989: Hex encoder and decoder utility

Corey Ashford cjashfor at linux.ibm.com
Mon Aug 24 21:11:44 UTC 2020

Just as a general comment, an SIMD-based encode() intrinsic would be an 
easy performance upgrade for this Hex class. I'd guess you'd get a 
5x-10x improvement, depending on the specific CPU/arch being used.  That 
said, the intrinsic would do better on larger buffers, and I don't know 
what the average length is for the use cases you have in mind.

- Corey

On 8/19/20 2:14 PM, Roger Riggs wrote:
> Please review a java.util.Hex API to encode and decode hexadecimal 
> strings to and from byte arrays.
> Within the JDK and JDK tests there are multiple implementations to 
> encode and decode
> hexadecimal strings to byte arrays. Hex encoders and decoders support
> upper or lower case hexadecimal characters, delimiters, prefix, and suffix.
> The API is modeled after the java.util.Base64 API providing static 
> factories,
> immutable threadsafe instances with methods to encode to and decode from
> string and StringBuilder.
> JavaDoc:
> http://cr.openjdk.java.net/~rriggs/hex-javadoc/java.base/java/util/Hex.html
> Webrev for Hex encoder and decoder:
>     http://cr.openjdk.java.net/~rriggs/webrev-hex-encoder-8251989
> Webrev for applying to java.security:
>     http://cr.openjdk.java.net/~rriggs/webrev-hex-security-8252055
> CSR:
>     https://bugs.openjdk.java.net/browse/JDK-8251991
> Issue for API and a few uses:
>     https://bugs.openjdk.java.net/browse/JDK-8251989
> Issue for Use in java.security and tests:
>     https://bugs.openjdk.java.net/browse/JDK-8252055

More information about the core-libs-dev mailing list