Hi Jim,
Yes, it is likely that the compiler gets to the same optimization.
But we save a little bit too by not making the compiler work so hard.
And it helps during startup before the compiler kicks in.
IntelliJ did the hard work and a full CI build/test is in progress.
And isEmpty reads better.
Thanks, Roger
On 12/6/18 3:27 PM, Jim Laskey wrote:
I assume you automated this change, might be worthwhile to automate a
verification (compare the -+ pairs.) Eyeballing the patch it seems complete,
one comment changed as well.
Question: Is it probably that vm optimizes .equals(“”) to .isEmpty() and there
is no net win, ie., more of an esthetic clean up than for performance?
Cheers,
— Jim
On Dec 6, 2018, at 4:04 PM, Roger Riggs <roger.ri...@oracle.com> wrote:
Please review changing string.equals("") to string.isEmpty().
isEmpty is preferred, performs better and is easier to optimize.
The change is a literal substitution in all files and only in these modules:
java.base
java.logging
java.management
java.management.rmi
java.naming
java.net.http
java.prefs
java.rmi
java.scripting
java.sql
java.sql.rowset
java.xml
jdk.jartool
jdk.javadoc
jdk.jcmd
jdk.jconsole
jdk.management.agent
jdk.naming.dns
jdk.rmic
Webrev:
http://cr.openjdk.java.net/~rriggs/webrev-string-isempty-8214971-1/
Issue:
https://bugs.openjdk.java.net/browse/JDK-8214971
Thanks, Roger