diff --git a/rules/S1643/java/rule.adoc b/rules/S1643/java/rule.adoc index 8deafcba613..47cf7847214 100644 --- a/rules/S1643/java/rule.adoc +++ b/rules/S1643/java/rule.adoc @@ -26,6 +26,50 @@ StringBuilder bld = new StringBuilder(); ---- +[options="header"] +|=== +| Method| size| Runtime| Average time| Error margin +| plus| 100| Temurin 21| 4.19 µs/op| ±0.34 µs/op +| plus| 1000| Temurin 21| 377.08 µs/op| ±17.36 µs/op +| plus| 10000| Temurin 21| 40221.49 µs/op| ±1342.76 µs/op +| plus| 100000| Temurin 21| 5286840.53 µs/op| ±185796.75 µs/op +| stringBuilder| 100| Temurin 21| 0.97 µs/op| ±0.03 µs/op +| stringBuilder| 1000| Temurin 21| 10.25 µs/op| ±1.64 µs/op +| stringBuilder| 10000| Temurin 21| 93.27 µs/op| ±16.05 µs/op +| stringBuilder| 100000| Temurin 21| 1019.91 µs/op| ±69.58 µs/op +|=== + + +*Benchmarking code* + +The results were generated by running the following snippet with https://github.com/openjdk/jmh[JMH]. + +[source,java] +---- +@Param({"100", "1000", "10000", "100000"}) +int size; +private String word = "append"; + +@Benchmark +public String plus() { + String str = ""; + for (int i = 0; i < size; i++) { + str = str + word; + } + return str; +} + +@Benchmark +public String stringBuilder() { + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < size; i++) { + builder.append(word); + } + return builder.toString(); +} +---- + + ifdef::env-github,rspecator-view[] '''