Skip to content

Commit 4545d60

Browse files
committed
Add varying bucket benchmarks
1 parent 3a536cc commit 4545d60

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

  • aws/client/aws-client-rulesengine/src/jmh/java/software/amazon/smithy/java/aws/client/rulesengine

aws/client/aws-client-rulesengine/src/jmh/java/software/amazon/smithy/java/aws/client/rulesengine/S3EndpointBenchmark.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,4 +339,49 @@ public Object vanillaAccessPointArn(ParamState params) {
339339
public Object s3OutpostsVanilla(ParamState params) {
340340
return params.resolver.resolveEndpoint(params.s3OutpostsVanillaParams);
341341
}
342+
343+
/**
344+
* Cycles through different bucket names on each invocation to defeat the URI cache hot-slot.
345+
* This measures the cost of URI construction on cache miss.
346+
*/
347+
@State(Scope.Thread)
348+
public static class VaryingBucketState {
349+
private static final int BUCKET_COUNT = 64;
350+
private EndpointResolverParams[] paramVariants;
351+
private int index;
352+
353+
@Setup
354+
public void setup(ParamState params) {
355+
boolean canned = "canned".equals(params.paramMode);
356+
var client = SharedResolver.CLIENT;
357+
var getObject = SharedResolver.GET_OBJECT;
358+
paramVariants = new EndpointResolverParams[BUCKET_COUNT];
359+
for (int i = 0; i < BUCKET_COUNT; i++) {
360+
String bucket = "bucket-" + i;
361+
paramVariants[i] = ParamState.buildParams(client,
362+
getObject,
363+
canned,
364+
Map.of("Bucket", Document.of(bucket), "Key", Document.of("key")),
365+
"us-west-2",
366+
Map.of("Accelerate",
367+
false,
368+
"Bucket",
369+
bucket,
370+
"ForcePathStyle",
371+
false,
372+
"Region",
373+
"us-west-2",
374+
"UseDualStack",
375+
false,
376+
"UseFIPS",
377+
false));
378+
}
379+
}
380+
}
381+
382+
@Benchmark
383+
public Object vanillaVirtualAddressingVaryingBucket(ParamState params, VaryingBucketState varying) {
384+
var p = varying.paramVariants[varying.index++ & (VaryingBucketState.BUCKET_COUNT - 1)];
385+
return params.resolver.resolveEndpoint(p);
386+
}
342387
}

0 commit comments

Comments
 (0)