summaryrefslogtreecommitdiff
path: root/benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java')
-rw-r--r--benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java74
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();
+ }
+ }
}