Skip to content
This repository has been archived by the owner on Feb 11, 2024. It is now read-only.

Commit

Permalink
Update S3EscaperBenchmark.java
Browse files Browse the repository at this point in the history
  • Loading branch information
kzhsw authored Feb 2, 2024
1 parent a95e2a5 commit 158ade2
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions src/main/java/kzhsw/S3EscaperBenchmark.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package kzhsw;

import org.openjdk.jmh.annotations.*;

import java.util.concurrent.TimeUnit;

@State(Scope.Thread)
@Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
@Measurement(batchSize = 1000, iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
@Fork(value = 1)
public class S3EscaperBenchmark {

@Param({
public static String[] testStrings = {
"my-bucket",
"photos/2024/02/02",
"file.txt?versionId=3L137",
Expand All @@ -20,24 +22,25 @@ public class S3EscaperBenchmark {
"folder/subfolder/file.txt",
"special-characters/!$&'()*+,/:;=@[]",
"emoji/πŸ˜€πŸ˜ƒπŸ˜„πŸ˜πŸ˜†πŸ˜…πŸ˜‚πŸ€£",
"non-english/こんにけは/μ•ˆλ…•ν•˜μ„Έμš”",
"long-string/" + "a".repeat(1000),
"deep-nesting/" + "folder/".repeat(100) + "file"
})
public String testString;
"non-english/こんにけは/μ•ˆλ…•ν•˜μ„Έμš”"
};

@Benchmark
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void benchmarkEncode() {
S3Escaper.encode(testString);
for (String testString : testStrings) {
S3Escaper.encode(testString);
}
}

@Benchmark
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void benchmarkEncodeOptimized() {
S3Escaper.encodeOptimized(testString);
for (String testString : testStrings) {
S3Escaper.encodeOptimized(testString);
}
}

public static void main(String[] args) throws Exception {
Expand Down

0 comments on commit 158ade2

Please sign in to comment.