mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8265237: String.join and StringJoiner can be improved further
Reviewed-by: rriggs, redestad
This commit is contained in:
parent
ed477da9c6
commit
98cb81b381
6 changed files with 197 additions and 40 deletions
|
@ -25,12 +25,14 @@ package org.openjdk.bench.java.util;
|
|||
import org.openjdk.jmh.annotations.Benchmark;
|
||||
import org.openjdk.jmh.annotations.BenchmarkMode;
|
||||
import org.openjdk.jmh.annotations.Fork;
|
||||
import org.openjdk.jmh.annotations.Measurement;
|
||||
import org.openjdk.jmh.annotations.Mode;
|
||||
import org.openjdk.jmh.annotations.OutputTimeUnit;
|
||||
import org.openjdk.jmh.annotations.Param;
|
||||
import org.openjdk.jmh.annotations.Scope;
|
||||
import org.openjdk.jmh.annotations.Setup;
|
||||
import org.openjdk.jmh.annotations.State;
|
||||
import org.openjdk.jmh.annotations.Warmup;
|
||||
|
||||
import java.util.StringJoiner;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
@ -41,9 +43,17 @@ import java.util.concurrent.TimeUnit;
|
|||
*/
|
||||
@BenchmarkMode(Mode.AverageTime)
|
||||
@OutputTimeUnit(TimeUnit.NANOSECONDS)
|
||||
@Fork(jvmArgsAppend = {"-Xms2g", "-Xmx2g"})
|
||||
@Warmup(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
|
||||
@Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
|
||||
@Fork(value = 3, jvmArgsAppend = {"-Xms1g", "-Xmx1g"})
|
||||
public class StringJoinerBenchmark {
|
||||
|
||||
@Benchmark
|
||||
public String join(Data data) {
|
||||
String[] stringArray = data.stringArray;
|
||||
return String.join(",", stringArray);
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
public String stringJoiner(Data data) {
|
||||
String[] stringArray = data.stringArray;
|
||||
|
@ -56,10 +66,10 @@ public class StringJoinerBenchmark {
|
|||
@Param({"latin", "cyrillic"})
|
||||
private String mode;
|
||||
|
||||
@Param({"8", "32"})
|
||||
@Param({"1", "8", "32", "128"})
|
||||
private int length;
|
||||
|
||||
@Param({"5", "10"})
|
||||
@Param({"5", "20"})
|
||||
private int count;
|
||||
|
||||
private String[] stringArray;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue