Skip to content

Commit e3092fb

Browse files
committed
[benchmark] Add benchmarks suggested by Radek Hubner
1 parent 6d7a309 commit e3092fb

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

exist-core-jmh/src/main/java/org/exist/xquery/utils/StringJoinBenchmark.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,21 @@ public StringBuilder forApproach(/*final BuilderState builderState*/) {
8989
return builder;
9090
}
9191

92+
@Benchmark
93+
public StringBuilder forApproachRadek(/*final BuilderState builderState*/) {
94+
// final StringBuilder builder = builderState.builder;
95+
final StringBuilder builder = new StringBuilder();
96+
97+
for (int i = 0; i < strings.size(); i++) {
98+
builder.append(strings.get(i));
99+
builder.append(", ");
100+
}
101+
102+
builder.substring(0, builder.length() - 3);
103+
104+
return builder;
105+
}
106+
92107
@Benchmark
93108
public StringBuilder forEachApproach(/*final BuilderState builderState*/) {
94109
// final StringBuilder builder = builderState.builder;
@@ -106,6 +121,22 @@ public StringBuilder forEachApproach(/*final BuilderState builderState*/) {
106121
return builder;
107122
}
108123

124+
@Benchmark
125+
public StringBuilder forEachApproachRadek(/*final BuilderState builderState*/) {
126+
// final StringBuilder builder = builderState.builder;
127+
final StringBuilder builder = new StringBuilder();
128+
129+
boolean firstArgument = true;
130+
for (final String str : strings) {
131+
builder.append(str);
132+
builder.append(", ");
133+
}
134+
135+
builder.substring(0, builder.length() - 3);
136+
137+
return builder;
138+
}
139+
109140
@Benchmark
110141
public String jdkApproach() {
111142
return String.join(", ", strings);

0 commit comments

Comments
 (0)