On Thu, 4 Mar 2021 17:20:40 GMT, Claes Redestad <redes...@openjdk.org> wrote:

> This patch optimizes String.format expressions that uses trivial specifiers. 
> In the JDK, the most common variation of String.format is a variation of 
> format("foo: %s", s), which gets a significant speed-up from this.
> 
> Various other cleanups and minor improvements reduce overhead further and 
> ensure we get a small gain also for more complex format strings.

Looks good.

src/java.base/share/classes/java/util/Formatter.java line 3017:

> 3015:                 s = ((Character)arg).toString();
> 3016:             } else if (arg instanceof Byte) {
> 3017:                 byte i = (Byte) arg;

Can the pattern matching for instanceof be used here to remove explicit casts.  
(Supported in JDK 16) 
 s = null;
            if (arg instanceof Character c) {
                s = c.toString();
            } else if (arg instanceof Byte i) {
                if (Character.isValidCodePoint(i))
                    s = new String(Character.toChars(i));
                else
                    throw new IllegalFormatCodePointException(i);
            } else if (arg instanceof Short i) {
                if (Character.isValidCodePoint(i))
                    s = new String(Character.toChars(i));
                else
                    throw new IllegalFormatCodePointException(i);
            } ```
etc..

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

Marked as reviewed by rriggs (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/2830

Reply via email to