You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ch...@apache.org on 2015/07/15 06:02:57 UTC

[lang] LANG-1057 Micro optimization: Replace StringBuilder with String concatenation so that the compiler can better optimize the code

Repository: commons-lang
Updated Branches:
  refs/heads/master fb7784fa1 -> cc1aed9bd


LANG-1057
Micro optimization: Replace StringBuilder with String concatenation so that the compiler can better optimize the code


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/cc1aed9b
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/cc1aed9b
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/cc1aed9b

Branch: refs/heads/master
Commit: cc1aed9bdf196403c673a886bbf723101171a9bf
Parents: fb7784f
Author: Chas Honton <ch...@apache.org>
Authored: Tue Jul 14 21:02:49 2015 -0700
Committer: Chas Honton <ch...@apache.org>
Committed: Tue Jul 14 21:02:49 2015 -0700

----------------------------------------------------------------------
 src/changes/changes.xml                               |  1 +
 .../java/org/apache/commons/lang3/ClassPathUtils.java | 12 ++----------
 src/main/java/org/apache/commons/lang3/Range.java     | 14 +++-----------
 .../java/org/apache/commons/lang3/math/Fraction.java  |  8 +++-----
 .../java/org/apache/commons/lang3/tuple/Triple.java   |  3 +--
 .../org/apache/commons/lang3/BooleanUtilsTest.java    |  2 +-
 .../apache/commons/lang3/StringEscapeUtilsTest.java   |  2 +-
 7 files changed, 12 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cc1aed9b/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 1271d5f..fa53e12 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -22,6 +22,7 @@
   <body>
 
   <release version="3.5" date="tba" description="tba">
+    <action issue="LANG-1057" type="update" dev="chas" dute-to="Otávio Santana">Replace StringBuilder with String concatenation for better optimization</action>
     <action issue="LANG-1075" type="update" dev="chas">Deprecate SystemUtils.FILE_SEPARATOR and SystemUtils.PATH_SEPARATOR</action>
     <action issue="LANG-1154" type="add" dev="chas" due-to="Gary Gregory">FastDateFormat APIs that use a StringBuilder</action>
     <action issue="LANG-1149" type="add" dev="chas" due-to="Gregory Zak">Ability to throw checked exceptions without declaring them</action>

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cc1aed9b/src/main/java/org/apache/commons/lang3/ClassPathUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/ClassPathUtils.java b/src/main/java/org/apache/commons/lang3/ClassPathUtils.java
index 2a9f16f..df3773a 100644
--- a/src/main/java/org/apache/commons/lang3/ClassPathUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ClassPathUtils.java
@@ -79,11 +79,7 @@ public class ClassPathUtils {
     public static String toFullyQualifiedName(final Package context, final String resourceName) {
         Validate.notNull(context, "Parameter '%s' must not be null!", "context" );
         Validate.notNull(resourceName, "Parameter '%s' must not be null!", "resourceName");
-        final StringBuilder sb = new StringBuilder();
-        sb.append(context.getName());
-        sb.append(".");
-        sb.append(resourceName);
-        return sb.toString();
+        return context.getName() + "." + resourceName;
     }
 
     /**
@@ -128,11 +124,7 @@ public class ClassPathUtils {
     public static String toFullyQualifiedPath(final Package context, final String resourceName) {
         Validate.notNull(context, "Parameter '%s' must not be null!", "context" );
         Validate.notNull(resourceName, "Parameter '%s' must not be null!", "resourceName");
-        final StringBuilder sb = new StringBuilder();
-        sb.append(context.getName().replace('.', '/'));
-        sb.append("/");
-        sb.append(resourceName);
-        return sb.toString();
+        return context.getName().replace('.', '/') + "/" + resourceName;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cc1aed9b/src/main/java/org/apache/commons/lang3/Range.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/Range.java b/src/main/java/org/apache/commons/lang3/Range.java
index 450897f..fb0ccdb 100644
--- a/src/main/java/org/apache/commons/lang3/Range.java
+++ b/src/main/java/org/apache/commons/lang3/Range.java
@@ -445,18 +445,10 @@ public final class Range<T> implements Serializable {
      */
     @Override
     public String toString() {
-        String result = toString;
-        if (result == null) {
-            final StringBuilder buf = new StringBuilder(32);
-            buf.append('[');
-            buf.append(minimum);
-            buf.append("..");
-            buf.append(maximum);
-            buf.append(']');
-            result = buf.toString();
-            toString = result;
+        if (toString == null) {
+            toString = "[" + minimum + ".." + maximum + "]";
         }
-        return result;
+        return toString;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cc1aed9b/src/main/java/org/apache/commons/lang3/math/Fraction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/math/Fraction.java b/src/main/java/org/apache/commons/lang3/math/Fraction.java
index ee1d638..3ff964f 100644
--- a/src/main/java/org/apache/commons/lang3/math/Fraction.java
+++ b/src/main/java/org/apache/commons/lang3/math/Fraction.java
@@ -897,7 +897,7 @@ public final class Fraction extends Number implements Comparable<Fraction> {
     @Override
     public String toString() {
         if (toString == null) {
-            toString = new StringBuilder(32).append(getNumerator()).append('/').append(getDenominator()).toString();
+            toString = getNumerator() + "/" + getDenominator();
         }
         return toString;
     }
@@ -928,12 +928,10 @@ public final class Fraction extends Number implements Comparable<Fraction> {
                 if (properNumerator == 0) {
                     toProperString = Integer.toString(getProperWhole());
                 } else {
-                    toProperString = new StringBuilder(32).append(getProperWhole()).append(' ').append(properNumerator)
-                            .append('/').append(getDenominator()).toString();
+                    toProperString = getProperWhole() + " " + properNumerator + "/" + getDenominator();
                 }
             } else {
-                toProperString = new StringBuilder(32).append(getNumerator()).append('/').append(getDenominator())
-                        .toString();
+                toProperString = getNumerator() + "/" + getDenominator();
             }
         }
         return toProperString;

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cc1aed9b/src/main/java/org/apache/commons/lang3/tuple/Triple.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/tuple/Triple.java b/src/main/java/org/apache/commons/lang3/tuple/Triple.java
index 196580a..37d1b15 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/Triple.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/Triple.java
@@ -138,8 +138,7 @@ public abstract class Triple<L, M, R> implements Comparable<Triple<L, M, R>>, Se
      */
     @Override
     public String toString() {
-        return new StringBuilder().append('(').append(getLeft()).append(',').append(getMiddle()).append(',')
-            .append(getRight()).append(')').toString();
+        return "(" + getLeft() + "," + getMiddle() + "," + getRight() + ")";
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cc1aed9b/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java b/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
index fb7687e..c189cde 100644
--- a/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
@@ -319,7 +319,7 @@ public class BooleanUtilsTest {
         assertFalse(BooleanUtils.toBoolean("false"));
         assertFalse(BooleanUtils.toBoolean("a"));
         assertTrue(BooleanUtils.toBoolean("true")); // interned handled differently
-        assertTrue(BooleanUtils.toBoolean(new StringBuffer("tr").append("ue").toString()));
+        assertTrue(BooleanUtils.toBoolean(new StringBuilder("tr").append("ue").toString()));
         assertTrue(BooleanUtils.toBoolean("truE"));
         assertTrue(BooleanUtils.toBoolean("trUe"));
         assertTrue(BooleanUtils.toBoolean("trUE"));

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cc1aed9b/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java b/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
index 1eff6ed..28be437 100644
--- a/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
@@ -571,7 +571,7 @@ public class StringEscapeUtilsTest {
     @Test
     @SuppressWarnings( "deprecation" ) // escapeXml(String) has been replaced by escapeXml10(String) and escapeXml11(String) in 3.3
     public void testLang720() {
-        final String input = new StringBuilder("\ud842\udfb7").append("A").toString();
+        final String input = "\ud842\udfb7" + "A";
         final String escaped = StringEscapeUtils.escapeXml(input);
         assertEquals(input, escaped);
     }