Conversation
| private static final String TEST_DATA_PATH = "serde-tests/json-rpc-1-0/input/json_1_0.json"; | ||
|
|
||
| @Param({ | ||
| "awsJson1_0_GetItemInput_Baseline", |
There was a problem hiding this comment.
This is a limitation of JMH - we can't dynamically load the json set of test cases and define a JMH parameter for it. @param values must be constant expressions at compile-time because of how JMH handles the lifecycle of a benchmark. To get the best measurements JMH is a generator that during build generates raw classes/methods for all of these.
| "awsJson1_0_GetItemInput_Baseline", | ||
| "awsQuery_GetMetricDataRequest_S", | ||
| "awsQuery_GetMetricDataRequest_M", | ||
| "awsQuery_GetMetricDataRequest_L", |
There was a problem hiding this comment.
The JsonRpc SERDE tests include tests marked for other protocols because the model contains operations from the cloudwatch model like GetMetricData - see test/sdk-standard-benchmarks/src/main/resources/serde-tests/json-rpc-1-0/input/json_1_0.json - it includes this full set of tests. They can be used to compare performance across protocols for comparable operations - useful when evaluating protocol migrations for services.
There was a problem hiding this comment.
Oh wow I was wondering about this. Very clever 👍
Add Standard (cross-sdk) Benchmarks
Motivation and Context
Add standard (cross-SDK) benchmarks for endpoint resolution and SERDE (marshalling/unmarshalling).
Modifications
Adds a new sdk-standard-benchmarks module with the standard (performance part-2) benchmarks for endpoint resolution and serde.
The SERDE tests are based on the standard performance test models and use our existing protocol test loader to load the c2j protocol tests defined on each of the protocol models.
Testing
Run all benchmarks
Screenshots (if appropriate)
Types of changes
Checklist
mvn installsucceedsscripts/new-changescript and following the instructions. Commit the new file created by the script in.changes/next-releasewith your changes.License