diff options
Diffstat (limited to 'benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java')
-rw-r--r-- | benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java b/benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java index 1550e81bf7..d710e3409d 100644 --- a/benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java +++ b/benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java @@ -20,6 +20,10 @@ public class StringBuilderAppendBenchmark { public static String longString1 = "This is a long string 1"; public static String longString2 = "This is a long string 2"; public static int int1 = 42; + public static double double1 = 42.0; + public static double double2 = 1.0E308; + public static float float1 = 42.0f; + public static float float2 = 1.0E38f; public void timeAppendStrings(int count) { String s1 = string1; @@ -59,4 +63,74 @@ public class StringBuilderAppendBenchmark { throw new AssertionError(); } } + + public void timeAppendStringAndDouble(int count) { + String s1 = string1; + double d1 = double1; + int sum = 0; + for (int i = 0; i < count; ++i) { + String result = s1 + d1; + sum += result.length(); // Make sure the append is not optimized away. + } + if (sum != count * (s1.length() + Double.toString(d1).length())) { + throw new AssertionError(); + } + } + + public void timeAppendStringAndHugeDouble(int count) { + String s1 = string1; + double d2 = double2; + int sum = 0; + for (int i = 0; i < count; ++i) { + String result = s1 + d2; + sum += result.length(); // Make sure the append is not optimized away. + } + if (sum != count * (s1.length() + Double.toString(d2).length())) { + throw new AssertionError(); + } + } + + public void timeAppendStringAndFloat(int count) { + String s1 = string1; + float f1 = float1; + int sum = 0; + for (int i = 0; i < count; ++i) { + String result = s1 + f1; + sum += result.length(); // Make sure the append is not optimized away. + } + if (sum != count * (s1.length() + Float.toString(f1).length())) { + throw new AssertionError(); + } + } + + public void timeAppendStringAndHugeFloat(int count) { + String s1 = string1; + float f2 = float2; + int sum = 0; + for (int i = 0; i < count; ++i) { + String result = s1 + f2; + sum += result.length(); // Make sure the append is not optimized away. + } + if (sum != count * (s1.length() + Float.toString(f2).length())) { + throw new AssertionError(); + } + } + + public void timeAppendStringDoubleStringAndFloat(int count) { + String s1 = string1; + String s2 = string2; + double d1 = double1; + float f1 = float1; + int sum = 0; + for (int i = 0; i < count; ++i) { + String result = s1 + d1 + s2 + f1; + sum += result.length(); // Make sure the append is not optimized away. + } + if (sum != count * (s1.length() + + Double.toString(d1).length() + + s2.length() + + Float.toString(f1).length())) { + throw new AssertionError(); + } + } } |