Skip to content

Instantly share code, notes, and snippets.

View doom369's full-sized avatar
🛴
Working from home

Dmytro Dumanskiy doom369

🛴
Working from home
View GitHub Profile
JDK 11.0.8, OpenJDK 64-Bit Server VM, 11.0.8+10
Benchmark Mode Cnt Score Error Units
StringBuilderChainingFailure.noChaining avgt 10 56.246 ± 2.295 ns/op
StringBuilderChainingFailure.explicitConcat avgt 10 54.642 ± 0.696 ns/op
StringBuilderChainingFailure.explicitConcatImproved avgt 10 50.153 ± 0.597 ns/op
return leftFunction.concat("(")
.concat(alias).concat(".")
.concat(left).concat(")")
.concat(" ").concat(op).concat(" ")
.concat(":").concat(paramName);
JDK 1.8.0_265, OpenJDK 64-Bit Server VM, 25.265-b01
Benchmark Mode Cnt Score Error Units
StringBuilderChaining.chainingStringBuilder avgt 10 72.675 ± 1.548 ns/op
StringBuilderChaining.noChainingStringBuilder avgt 10 73.132 ± 2.126 ns/op
StringBuilderChaining.explicitConcat avgt 10 71.821 ± 1.274 ns/op
JDK 11.0.8, OpenJDK 64-Bit Server VM, 11.0.8+10 -XX:-OptimizeStringConcat
Benchmark Mode Cnt Score Error Units
JDK 11.0.8, OpenJDK 64-Bit Server VM, 11.0.8+10
Benchmark Mode Cnt Score Error Units
StringBuilderChaining.chainingStringBuilder avgt 10 51.790 ± 0.889 ns/op
StringBuilderChaining.concatMethod avgt 10 144.281 ± 5.302 ns/op
StringBuilderChaining.explicitConcat avgt 10 46.840 ± 0.460 ns/op
StringBuilderChaining.noChainingStringBuilder avgt 10 73.528 ± 1.534 ns/op
return leftFunction + "("
+ alias + "."
+ left + ")"
+ " " + op + " "
+ ":" + paramName;
return new StringBuilder()
.append(leftFunction).append("(")
.append(alias).append(".")
.append(left).append(")")
.append(" ").append(op).append(" ")
.append(":").append(paramName)
.toString();
StringBuilder expression = new StringBuilder();
expression.append(leftFunction).append("(");
expression.append(alias).append(".");
expression.append(left).append(")");
expression.append(" ").append(op).append(" ");
expression.append(":").append(paramName);
return expression.toString();
@BenchmarkMode(Mode.AverageTime)
@Fork(value = 1)
@State(Scope.Thread)
@Warmup(iterations = 5, time = 1)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@Measurement(iterations = 10, time = 1)
public class StringBuilderChaining {
@Param({"sum"})
private String leftFunction;
public boolean equalsIgnoreCase(String anotherString) {
return (this == anotherString) ? true
: (anotherString != null)
&& (anotherString.length() == length())
&& regionMatches(true, 0, anotherString, 0, length());
}
JDK 11.0.8, OpenJDK 64-Bit Server VM, 11.0.8+10
Benchmark (url) Mode Cnt Score Error Units
StartsWith.regionMatches http://facebook.com/loginMe avgt 10 5.025 ± 0.032 ns/op
StartsWith.substringEqualsIgnoreCase http://facebook.com/loginMe avgt 10 19.390 ± 0.922 ns/op
StartsWith.toLowerCaseStartsWith http://facebook.com/loginMe avgt 10 40.815 ± 0.550 ns/op
StartsWith.regionMatches Http://facebook.com/loginMe avgt 10 14.469 ± 0.164 ns/op
StartsWith.substringEqualsIgnoreCase Http://facebook.com/loginMe avgt 10 21.758 ± 0.304 ns/op
StartsWith.toLowerCaseStartsWith Http://facebook.com/loginMe avgt 10 46.457 ± 0.643 ns/op