Hi Chris,

On Mon, Jul 6, 2020 at 5:12 PM Christopher Schultz <
ch...@christopherschultz.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Martin,
>
> On 7/6/20 03:09, mgrigo...@apache.org wrote:
> > diff --git
> > a/java/org/apache/catalina/connector/CoyotePrincipal.java
> > b/java/org/apache/catalina/connector/CoyotePrincipal.java index
> > 1ae5608..93d7c02 100644 ---
> > a/java/org/apache/catalina/connector/CoyotePrincipal.java +++
> > b/java/org/apache/catalina/connector/CoyotePrincipal.java @@ -64,7
> > +64,7 @@ public class CoyotePrincipal implements Principal,
> > Serializable { public String toString() { StringBuilder sb = new
> > StringBuilder("CoyotePrincipal["); sb.append(this.name); -
> > sb.append("]"); +        sb.append(']'); return sb.toString(); }
>
> Might I suggest further improvements?
>
> Step 1:
>
>       public String toString() {
>           return new StringBuilder("CoyotePrincipal[")
>           .append(this.name);
>           .append(']');
>           .toString();
>
> It turns out that the generated bytecode is something like 2/3 as long
> as the sb.append(); sb.append(); sb.append(); code. JIT probably does
> the same thing eventually, but why not help it out?
>
> Step 2:
>
>       public String toString() {
>           return "CoyotePrincipal[" + this.name + ']';
>       }
>
> This has a few advantages:
>
> 1. It's dead easy to read
>
> 2. The compiler makes the best decision as to how to perform the
> concatenation
>
> In very old versions of Java, you'll get StringBuffer concatenation as
> the pre-commit version. Later versions get you StringBuilder as
> post-commit version. Post 9.x-versions get you a call to
> StringConcatFactory.makeConcatWithConstants which is presumably even
> more efficient.
>
> I understand that this was supposed to be a small patch, but I think
> further improvements are possible in many cases like this one.
>

Agreed!
https://github.com/apache/tomcat/pull/321

Martin


>
> Thanks,
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/
>
> iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl8DMT8ACgkQHPApP6U8
> pFgUtA/+OoHnIgHBLoIOXqP5t10g/dBFxGrIpOUOe1MvIhWMdObcNIlZmnM1vv0Z
> xCRYXxGCj20xm4P/NEzvRlEPWfd0uvoZczr34JVPlgOWUBJeRHmLQ+KlGdCeuuKk
> cmxV4ZXZSt8bzVMufQ+N2RPOCGUvti2kin0CSj9BlygKuTAMuXgwVcyEo7XvLf3z
> 153dHylBL3ka5jo2lR4vYlj8U6PvzoZuLj3NAnrRZP3YttbQKimhXDcOg7zkeVP+
> GFINDBE+fux+s5P38vqRLqzA4JEDFfjsKzT4JV21BrSbxhdUbXyYE4RMhW+izKB8
> B/SJhBtEN1huED3GkZbg/DN0nYgY4vVeoHz4kdal1E5uVybG5SLj6xoz6tkRsayB
> pOHguW1ds8NLPJwHBEATq6YQOXGfqECbW+iWuP54F7eBzo57CiZWsnQPalpSo9pn
> mdBRbcfyI7z9vJFaiGCpudKGKK5+F1VFj6KELxZP7nAO0Lyhwapsai9TzLXLOTk1
> 8ReS5GENoZDrzrb3Gn/YCmdYAxdED9ejjkiY5qVjX3ZXWXaeytcz1h3bY2opV4Ks
> a+tahArWqI1t44cemejJuiXFZB0xrDjji6pnd3ZqZ4vG1TREKxK2hdLjuwP3vaw9
> fqt4d3E596rPtqF2e0aJLGfW+3iJ2r67c7DP9ARHMAdadMIi23U=
> =N+0c
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>

Reply via email to