diff --git a/.github/workflows/commit_performance_result.yml b/.github/workflows/commit_performance_result.yml new file mode 100644 index 000000000..86715d9d8 --- /dev/null +++ b/.github/workflows/commit_performance_result.yml @@ -0,0 +1,39 @@ +name: Commit performance results into repo +on: + workflow_dispatch: + inputs: + sha: + description: 'the commit sha which was performance tested' + required: true + branch: + description: 'the branch which the results should be commited in' + required: false + default: 'master' + +permissions: + id-token: write # This is required for requesting the JWT + contents: write # This is required for pushing changes back to the repo +jobs: + commitPerformanceResults: + runs-on: ubuntu-latest + steps: + - uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: arn:aws:iam::637423498965:role/GitHubActionGrahQLJava + aws-region: "ap-southeast-2" + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.branch }} + - run: | + aws s3 cp s3://graphql-java-jmh-output/ ./performance-results --recursive --exclude "*" --include "*-${{ github.event.inputs.sha }}-jdk17.json" + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add performance-results/*-${{ github.event.inputs.sha }}-jdk17.json + if [ -z "$(git status --porcelain)" ]; then + echo "Performance results already present" + exit 0 + fi + git pull + git commit -m "Add performance results for commit ${{ github.event.inputs.sha }}" + git push + diff --git a/.github/workflows/create_job.js b/.github/workflows/create_job.js deleted file mode 100644 index e14f39f82..000000000 --- a/.github/workflows/create_job.js +++ /dev/null @@ -1,77 +0,0 @@ -const { CloudTasksClient } = require('@google-cloud/tasks'); -const { v4: uuidv4 } = require('uuid'); - -const client = new CloudTasksClient(); - -const constructPayload = () => { - const jobId = String(uuidv4()); - const commitHash = process.env.COMMIT_HASH; - const branch = process.env.BRANCH; - const classes = process.env.CLASSES; - const pullRequestNumber = process.env.PULL_REQUEST_NUMBER; - - const payloadStructure = { - "jobId": jobId, - "commitHash": commitHash.trim(), - "branch": branch.trim(), - "classes": convertClassesStringToArray(classes), - "pullRequest": pullRequestNumber.trim(), - } - return payloadStructure; -} - -const convertClassesStringToArray = (classes) => { - const classesArray = classes.split(','); - const trimmedClassesArray = classesArray.map(currentClass => currentClass.trim()); - return trimmedClassesArray; -} - -const formatPayload = (payloadStructure) => { - const parsedPayload = JSON.stringify(JSON.stringify(payloadStructure)); - const payload = `{"argument": ${parsedPayload}}`; - console.log(`Payload: ${payload}`); - return payload; -} - -const constructTask = (serviceAccountEmail, payload, url) => { - const task = { - httpRequest: { - httpMethod: 'POST', - url, - oauthToken: { - serviceAccountEmail, - }, - body: Buffer.from(payload).toString('base64'), - }, - }; - return task; -} - -const createRequestBody = (payload) => { - const project = process.env.PROJECT_ID; - const queue = process.env.QUEUE_ID; - const location = process.env.LOCATION; - const url = process.env.WORKFLOW_URL - const serviceAccountEmail = process.env.SERVICE_ACCOUNT_EMAIL; - const requestBody = { - "fullyQualifiedQueueName": client.queuePath(project, location, queue), - "task": constructTask(serviceAccountEmail, payload, url) - } - return requestBody; -} - -const constructRequest = () => { - const payloadStructure = constructPayload(); - const payload = formatPayload(payloadStructure); - const requestBody = createRequestBody(payload); - const request = { parent: requestBody.fullyQualifiedQueueName, task: requestBody.task }; - return request; -} - -async function createHttpTaskWithToken() { - const request = constructRequest(); - const [response] = await client.createTask(request); - const name = response.name; - console.log(`Created task ${name}`); -} -createHttpTaskWithToken(); diff --git a/.github/workflows/invoke_test_runner.yml b/.github/workflows/invoke_test_runner.yml deleted file mode 100644 index 09f5cdb24..000000000 --- a/.github/workflows/invoke_test_runner.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: invoke_test_runner -on: - push: - branches: - - master - workflow_dispatch: - inputs: - BRANCH_INPUT: - description: 'Branch' - required: true - COMMIT_HASH_INPUT: - description: 'Commit hash' - required: true - CLASSES_TO_EXECUTE_INPUT: - description: 'Classes to test' - required: false - PULL_REQUEST_NUMBER_INPUT: - description: 'Pull request number' - required: false -env: - PROJECT_ID: ${{ secrets.PROJECT_ID }} - QUEUE_ID: ${{ secrets.QUEUE_ID }} - LOCATION: ${{ secrets.LOCATION }} - SERVICE_ACCOUNT_EMAIL: ${{ secrets.SERVICE_ACCOUNT_EMAIL }} - WORKFLOW_URL: ${{ secrets.WORKFLOW_URL }} - #Payload variables - COMMIT_HASH: ${{ (github.sha) }} - BRANCH: ${{ (github.ref_name) }} - CLASSES: ${{ (github.event.inputs.CLASSES_TO_EXECUTE_INPUT) }} - PULL_REQUEST_NUMBER: ${{ (github.event.inputs.PULL_REQUEST_NUMBER_INPUT) }} - -jobs: - execute_workflow: - if: github.repository == 'graphql-java/graphql-java' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: '14' - - run: npm install --prefix .github/workflows - - - name: Update COMMIT_HASH - if: ${{ github.event_name == 'workflow_dispatch' }} - run: echo "COMMIT_HASH=${{ (github.event.inputs.COMMIT_HASH_INPUT) }} " >> $GITHUB_ENV - - - name: Update BRANCH - if: ${{ github.event_name == 'workflow_dispatch' }} - run: echo "BRANCH=${{ (github.event.inputs.BRANCH_INPUT) }} " >> $GITHUB_ENV - - - id: 'auth' - name: 'Authenticate to Google Cloud' - uses: google-github-actions/auth@v2.1.5 - with: - credentials_json: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }} - - - name: Execute JS script - run: node .github/workflows/create_job.js diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index e0a280104..74651d884 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -4,6 +4,8 @@ on: push: branches: - master +permissions: # For test summary bot + checks: write jobs: buildAndPublish: runs-on: ubuntu-latest @@ -22,3 +24,8 @@ jobs: distribution: 'corretto' - name: build test and publish run: ./gradlew assemble && ./gradlew check --info && ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository -x check --info --stacktrace + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2.18.0 + if: always() + with: + files: '**/build/test-results/test/TEST-*.xml' diff --git a/.github/workflows/publish_commit.yml b/.github/workflows/publish_commit.yml new file mode 100644 index 000000000..f55a6a580 --- /dev/null +++ b/.github/workflows/publish_commit.yml @@ -0,0 +1,21 @@ +name: Publish Commit SHA for performance testing +on: + pull_request: + types: + - closed + branches: + - master + paths-ignore: + - 'performance-results/**' +permissions: + id-token: write # This is required for requesting the JWT + contents: read # This is required for actions/checkout +jobs: + publishCommit: + runs-on: ubuntu-latest + steps: + - uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: arn:aws:iam::637423498965:role/GitHubActionGrahQLJava + aws-region: "ap-southeast-2" + - run: aws sns publish --topic-arn "arn:aws:sns:ap-southeast-2:637423498965:graphql-java-commits.fifo" --message $GITHUB_SHA --message-group-id "graphql-java-commits" \ No newline at end of file diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index ef52a4f3c..8a1bbfe82 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -7,10 +7,14 @@ on: pull_request: branches: - master + - 23.x - 22.x - 21.x - 20.x - 19.x +permissions: # For test comment bot + checks: write + pull-requests: write jobs: buildAndTest: runs-on: ubuntu-latest @@ -24,3 +28,9 @@ jobs: distribution: 'corretto' - name: build and test run: ./gradlew assemble && ./gradlew check --info --stacktrace + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2.18.0 + if: always() + with: + files: '**/build/test-results/test/TEST-*.xml' + diff --git a/README.md b/README.md index 893dd2f6f..64f61df03 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ This is a [GraphQL](https://github.com/graphql/graphql-spec) Java implementation Latest build in Maven central: https://repo1.maven.org/maven2/com/graphql-java/graphql-java/ [![Build](https://github.com/graphql-java/graphql-java/actions/workflows/master.yml/badge.svg)](https://github.com/graphql-java/graphql-java/actions/workflows/master.yml) -[![Latest Release](https://img.shields.io/maven-central/v/com.graphql-java/graphql-java?versionPrefix=22.)](https://maven-badges.herokuapp.com/maven-central/com.graphql-java/graphql-java/) +[![Latest Release](https://img.shields.io/maven-central/v/com.graphql-java/graphql-java?versionPrefix=23.)](https://maven-badges.herokuapp.com/maven-central/com.graphql-java/graphql-java/) [![Latest Snapshot](https://img.shields.io/maven-central/v/com.graphql-java/graphql-java?label=maven-central%20snapshot&versionPrefix=0)](https://maven-badges.herokuapp.com/maven-central/com.graphql-java/graphql-java/) [![MIT licensed](https://img.shields.io/badge/license-MIT-green)](https://github.com/graphql-java/graphql-java/blob/master/LICENSE.md) @@ -33,8 +33,5 @@ take the time to read it. Copyright (c) 2015, Andreas Marek and [Contributors](https://github.com/graphql-java/graphql-java/graphs/contributors) -### Supported by - -![YourKit](https://www.yourkit.com/images/yklogo.png) - -[YourKit](https://www.yourkit.com/) supports this project by providing the YourKit Java Profiler. +### Powered by +[![IntelliJ IDEA logo](https://resources.jetbrains.com/storage/products/company/brand/logos/IntelliJ_IDEA.svg)](https://jb.gg/OpenSourceSupport) diff --git a/README.zh_cn.md b/README.zh_cn.md index 8c519b188..057e89df0 100644 --- a/README.zh_cn.md +++ b/README.zh_cn.md @@ -5,7 +5,7 @@ 该组件是 [GraphQL 规范](https://github.com/graphql/graphql-spec) 的 Java 实现。 [![Build](https://github.com/graphql-java/graphql-java/actions/workflows/master.yml/badge.svg)](https://github.com/graphql-java/graphql-java/actions/workflows/master.yml) -[![Latest Release](https://img.shields.io/maven-central/v/com.graphql-java/graphql-java?versionPrefix=20.)](https://maven-badges.herokuapp.com/maven-central/com.graphql-java/graphql-java/) +[![Latest Release](https://img.shields.io/maven-central/v/com.graphql-java/graphql-java?versionPrefix=23.)](https://maven-badges.herokuapp.com/maven-central/com.graphql-java/graphql-java/) [![Latest Snapshot](https://img.shields.io/maven-central/v/com.graphql-java/graphql-java?label=maven-central%20snapshot&versionPrefix=0)](https://maven-badges.herokuapp.com/maven-central/com.graphql-java/graphql-java/) [![MIT licensed](https://img.shields.io/badge/license-MIT-green)](https://github.com/graphql-java/graphql-java/blob/master/LICENSE.md) @@ -24,9 +24,3 @@ ### License Copyright (c) 2015, Andreas Marek and [贡献者们](https://github.com/graphql-java/graphql-java/graphs/contributors) - -### 帮助支持 - -![YourKit](https://www.yourkit.com/images/yklogo.png) - -[YourKit](https://www.yourkit.com/) 通过 YourKit Java Profiler 能力对该项目提供了支持。 diff --git a/SECURITY.md b/SECURITY.md index 2b7a57f5d..455934a13 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,5 +1,7 @@ # Security Policy +[GraphQL Java is the CVE Numbering Authority (CNA)](https://www.cve.org/PartnerInformation/ListofPartners/partner/graphql-java) for GraphQL Java, Java DataLoader, GraphQL Java Extended Scalars, and GraphQL Java Extended Validation. + ## Supported Versions As stated in our [Release Policy](https://www.graphql-java.com/blog/release-policy/), we will backport critical bugfixes and security fixes for versions dating back 18 months. These fixes will be backported depending on severity and demand. diff --git a/agent-test/build.gradle b/agent-test/build.gradle index 3a5911b82..cb6442950 100644 --- a/agent-test/build.gradle +++ b/agent-test/build.gradle @@ -4,12 +4,12 @@ plugins { dependencies { implementation(rootProject) - implementation("net.bytebuddy:byte-buddy-agent:1.15.1") + implementation("net.bytebuddy:byte-buddy-agent:1.17.5") - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.12.1' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' - testImplementation("org.assertj:assertj-core:3.26.3") + testImplementation("org.assertj:assertj-core:3.27.3") } diff --git a/agent/build.gradle b/agent/build.gradle index 7d220cfcd..3484d6955 100644 --- a/agent/build.gradle +++ b/agent/build.gradle @@ -2,11 +2,11 @@ plugins { id 'java' id 'java-library' id 'maven-publish' - id "com.github.johnrengelman.shadow" version "8.1.1" + id "com.gradleup.shadow" version "8.3.6" } dependencies { - implementation("net.bytebuddy:byte-buddy:1.15.1") + implementation("net.bytebuddy:byte-buddy:1.17.5") // graphql-java itself implementation(rootProject) } diff --git a/agent/src/main/java/graphql/agent/GraphQLJavaAgent.java b/agent/src/main/java/graphql/agent/GraphQLJavaAgent.java index 1dd9f1fe4..6169e2e7b 100644 --- a/agent/src/main/java/graphql/agent/GraphQLJavaAgent.java +++ b/agent/src/main/java/graphql/agent/GraphQLJavaAgent.java @@ -71,7 +71,7 @@ public static void agentmain(String agentArgs, Instrumentation inst) { return builder .visit(Advice.to(DataLoaderHelperDispatchAdvice.class).on(nameMatches("dispatch"))) .visit(Advice.to(DataLoaderHelperInvokeBatchLoaderAdvice.class) - .on(nameMatches("invokeLoader").and(takesArguments(List.class, List.class)))); + .on(nameMatches("invokeLoader").and(takesArguments(List.class, List.class, List.class)))); }) .type(named("graphql.schema.DataFetchingEnvironmentImpl")) .transform((builder, typeDescription, classLoader, module, protectionDomain) -> { @@ -207,6 +207,7 @@ public static class DataLoaderHelperInvokeBatchLoaderAdvice { @Advice.OnMethodEnter public static void invokeLoader(@Advice.Argument(0) List keys, @Advice.Argument(1) List keysContext, + @Advice.Argument(2) List queuedFutures, @Advice.This(typing = Assigner.Typing.DYNAMIC) Object dataLoaderHelper) { DataLoader dataLoader = getDataLoaderForHelper(dataLoaderHelper); ExecutionId executionId = GraphQLJavaAgent.dataLoaderToExecutionId.get(dataLoader); diff --git a/build.gradle b/build.gradle index 07509bb94..6cbf7cb9f 100644 --- a/build.gradle +++ b/build.gradle @@ -7,11 +7,11 @@ plugins { id 'maven-publish' id 'antlr' id 'signing' - id "com.github.johnrengelman.shadow" version "8.1.1" + id "com.gradleup.shadow" version "8.3.6" id "biz.aQute.bnd.builder" version "6.4.0" id "io.github.gradle-nexus.publish-plugin" version "2.0.0" id "groovy" - id "me.champeau.jmh" version "0.7.2" + id "me.champeau.jmh" version "0.7.3" } java { @@ -97,34 +97,43 @@ jar { attributes('Automatic-Module-Name': 'com.graphqljava') } } - +tasks.withType(GroovyCompile) { + // Options when compiling Java using the Groovy plugin. + // (Groovy itself defaults to UTF-8 for Groovy code) + options.encoding = 'UTF-8' + groovyOptions.forkOptions.memoryMaximumSize = "4g" +} dependencies { - compileOnly 'org.jetbrains:annotations:24.1.0' implementation 'org.antlr:antlr4-runtime:' + antlrVersion - api 'com.graphql-java:java-dataloader:3.3.0' + api 'com.graphql-java:java-dataloader:4.0.0' api 'org.reactivestreams:reactive-streams:' + reactiveStreamsVersion + api "org.jspecify:jspecify:1.0.0" antlr 'org.antlr:antlr4:' + antlrVersion implementation 'com.google.guava:guava:' + guavaVersion testImplementation group: 'junit', name: 'junit', version: '4.13.2' - testImplementation 'org.spockframework:spock-core:2.0-groovy-3.0' - testImplementation 'org.codehaus.groovy:groovy:3.0.22' - testImplementation 'org.codehaus.groovy:groovy-json:3.0.22' - testImplementation 'com.google.code.gson:gson:2.11.0' - testImplementation 'org.eclipse.jetty:jetty-server:11.0.22' - testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.17.2' - testImplementation 'org.awaitility:awaitility-groovy:4.2.0' + testImplementation 'org.spockframework:spock-core:2.3-groovy-4.0' + testImplementation 'net.bytebuddy:byte-buddy:1.17.5' + testImplementation 'org.objenesis:objenesis:3.4' + testImplementation 'org.apache.groovy:groovy:4.0.26"' + testImplementation 'org.apache.groovy:groovy-json:4.0.26' + testImplementation 'com.google.code.gson:gson:2.12.1' + testImplementation 'org.eclipse.jetty:jetty-server:11.0.25' + testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.18.3' + testImplementation 'org.awaitility:awaitility-groovy:4.3.0' testImplementation 'com.github.javafaker:javafaker:1.0.2' testImplementation 'org.reactivestreams:reactive-streams-tck:' + reactiveStreamsVersion testImplementation "io.reactivex.rxjava2:rxjava:2.2.21" - testImplementation "io.projectreactor:reactor-core:3.6.9" + testImplementation "io.projectreactor:reactor-core:3.7.4" - testImplementation 'org.testng:testng:7.10.2' // use for reactive streams test inheritance + testImplementation 'org.testng:testng:7.11.0' // use for reactive streams test inheritance testImplementation 'org.openjdk.jmh:jmh-core:1.37' testAnnotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.37' jmh 'org.openjdk.jmh:jmh-core:1.37' jmh 'org.openjdk.jmh:jmh-generator-annprocess:1.37' + + testImplementation "com.tngtech.archunit:archunit-junit5:1.2.0" } shadowJar { @@ -218,9 +227,9 @@ generateGrammarSource { outputDirectory = file("${project.buildDir}/generated-src/antlr/main/graphql/parser/antlr") } generateGrammarSource.inputs - .dir('src/main/antlr') - .withPropertyName('sourceDir') - .withPathSensitivity(PathSensitivity.RELATIVE) + .dir('src/main/antlr') + .withPropertyName('sourceDir') + .withPathSensitivity(PathSensitivity.RELATIVE) task sourcesJar(type: Jar) { diff --git a/gradle.properties b/gradle.properties index 50b231834..4c377884b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.caching=true org.gradle.daemon=true org.gradle.parallel=true -org.gradle.jvmargs=-Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Dfile.encoding=UTF-8 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 2c3521197..9bbc975c7 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 09523c0e5..37f853b1c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6d6..faf93008b 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. diff --git a/src/main/java/graphql/execution/instrumentation/adapters/ExecuteObjectInstrumentationContextAdapter.java b/performance-results/.gitkeep similarity index 100% rename from src/main/java/graphql/execution/instrumentation/adapters/ExecuteObjectInstrumentationContextAdapter.java rename to performance-results/.gitkeep diff --git a/performance-results/2024-11-28T01:53:48Z-1d50c655aaf1a907b65f39e2eba310f3463ba5d5-jdk17.json b/performance-results/2024-11-28T01:53:48Z-1d50c655aaf1a907b65f39e2eba310f3463ba5d5-jdk17.json new file mode 100644 index 000000000..e038ff0fe --- /dev/null +++ b/performance-results/2024-11-28T01:53:48Z-1d50c655aaf1a907b65f39e2eba310f3463ba5d5-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4098507705676995, + "scoreError" : 0.0248935503366656, + "scoreConfidence" : [ + 3.384957220231034, + 3.434744320904365 + ], + "scorePercentiles" : { + "0.0" : 3.40519673991893, + "50.0" : 3.409982052692473, + "90.0" : 3.414242236966922, + "95.0" : 3.414242236966922, + "99.0" : 3.414242236966922, + "99.9" : 3.414242236966922, + "99.99" : 3.414242236966922, + "99.999" : 3.414242236966922, + "99.9999" : 3.414242236966922, + "100.0" : 3.414242236966922 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.411312710571647, + 3.414242236966922 + ], + [ + 3.40519673991893, + 3.4086513948132993 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7231380231942457, + "scoreError" : 0.01856164149472618, + "scoreConfidence" : [ + 1.7045763816995194, + 1.741699664688972 + ], + "scorePercentiles" : { + "0.0" : 1.7201780646528506, + "50.0" : 1.722962619633562, + "90.0" : 1.7264487888570081, + "95.0" : 1.7264487888570081, + "99.0" : 1.7264487888570081, + "99.9" : 1.7264487888570081, + "99.99" : 1.7264487888570081, + "99.999" : 1.7264487888570081, + "99.9999" : 1.7264487888570081, + "100.0" : 1.7264487888570081 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7213864558761982, + 1.7264487888570081 + ], + [ + 1.7201780646528506, + 1.7245387833909256 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8669447004278835, + "scoreError" : 0.0033409895220654477, + "scoreConfidence" : [ + 0.8636037109058181, + 0.8702856899499489 + ], + "scorePercentiles" : { + "0.0" : 0.8663656186685549, + "50.0" : 0.8669349875468758, + "90.0" : 0.8675432079492276, + "95.0" : 0.8675432079492276, + "99.0" : 0.8675432079492276, + "99.9" : 0.8675432079492276, + "99.99" : 0.8675432079492276, + "99.999" : 0.8675432079492276, + "99.9999" : 0.8675432079492276, + "100.0" : 0.8675432079492276 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8675432079492276, + 0.8663656186685549 + ], + [ + 0.8667023944569926, + 0.867167580636759 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 42.926276842278895, + "scoreError" : 2.4191606861477783, + "scoreConfidence" : [ + 40.50711615613112, + 45.34543752842667 + ], + "scorePercentiles" : { + "0.0" : 40.61444079049615, + "50.0" : 42.970686811193, + "90.0" : 45.1302030720952, + "95.0" : 45.1302030720952, + "99.0" : 45.1302030720952, + "99.9" : 45.1302030720952, + "99.99" : 45.1302030720952, + "99.999" : 45.1302030720952, + "99.9999" : 45.1302030720952, + "100.0" : 45.1302030720952 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.40817053790828, + 43.939215333141064, + 45.1302030720952 + ], + [ + 42.18269950399568, + 40.61444079049615, + 41.31916000552604 + ], + [ + 42.799976301303936, + 42.970686811193, + 42.971939224850715 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022611135359511498, + "scoreError" : 5.924153810738151E-4, + "scoreConfidence" : [ + 0.022018719978437684, + 0.02320355074058531 + ], + "scorePercentiles" : { + "0.0" : 0.02192285936323851, + "50.0" : 0.022678289092760182, + "90.0" : 0.023260692930232557, + "95.0" : 0.023260692930232557, + "99.0" : 0.023260692930232557, + "99.9" : 0.023260692930232557, + "99.99" : 0.023260692930232557, + "99.999" : 0.023260692930232557, + "99.9999" : 0.023260692930232557, + "100.0" : 0.023260692930232557 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.022732881079545453, + 0.023260692930232557, + 0.022742364038636362 + ], + [ + 0.022468225233183856, + 0.022678289092760182, + 0.02192285936323851 + ], + [ + 0.022457287367713005, + 0.022713271950113377, + 0.02252434718018018 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2024-11-28T03:56:43Z-a3fcfcb843b2104f40e75940cea4ed03e6de12c0-jdk17.json b/performance-results/2024-11-28T03:56:43Z-a3fcfcb843b2104f40e75940cea4ed03e6de12c0-jdk17.json new file mode 100644 index 000000000..f08161aec --- /dev/null +++ b/performance-results/2024-11-28T03:56:43Z-a3fcfcb843b2104f40e75940cea4ed03e6de12c0-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4102578842457145, + "scoreError" : 0.02449629894447283, + "scoreConfidence" : [ + 3.3857615853012417, + 3.4347541831901873 + ], + "scorePercentiles" : { + "0.0" : 3.4062196008890453, + "50.0" : 3.40974951823215, + "90.0" : 3.4153128996295132, + "95.0" : 3.4153128996295132, + "99.0" : 3.4153128996295132, + "99.9" : 3.4153128996295132, + "99.99" : 3.4153128996295132, + "99.999" : 3.4153128996295132, + "99.9999" : 3.4153128996295132, + "100.0" : 3.4153128996295132 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4062196008890453, + 3.409143970092387 + ], + [ + 3.4103550663719124, + 3.4153128996295132 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.723628882965939, + "scoreError" : 0.01684992650921796, + "scoreConfidence" : [ + 1.706778956456721, + 1.7404788094751569 + ], + "scorePercentiles" : { + "0.0" : 1.720348242957288, + "50.0" : 1.7237243857120972, + "90.0" : 1.7267185174822728, + "95.0" : 1.7267185174822728, + "99.0" : 1.7267185174822728, + "99.9" : 1.7267185174822728, + "99.99" : 1.7267185174822728, + "99.999" : 1.7267185174822728, + "99.9999" : 1.7267185174822728, + "100.0" : 1.7267185174822728 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.720348242957288, + 1.7239130487239118 + ], + [ + 1.7235357227002823, + 1.7267185174822728 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8675344687711203, + "scoreError" : 0.007218718093431595, + "scoreConfidence" : [ + 0.8603157506776887, + 0.8747531868645518 + ], + "scorePercentiles" : { + "0.0" : 0.8659004700112273, + "50.0" : 0.8679187802361048, + "90.0" : 0.8683998446010442, + "95.0" : 0.8683998446010442, + "99.0" : 0.8683998446010442, + "99.9" : 0.8683998446010442, + "99.99" : 0.8683998446010442, + "99.999" : 0.8683998446010442, + "99.9999" : 0.8683998446010442, + "100.0" : 0.8683998446010442 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8677972271860673, + 0.8680403332861423 + ], + [ + 0.8659004700112273, + 0.8683998446010442 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 42.18911184050926, + "scoreError" : 0.9546618037946293, + "scoreConfidence" : [ + 41.234450036714634, + 43.14377364430389 + ], + "scorePercentiles" : { + "0.0" : 41.342744086435644, + "50.0" : 42.42040842447684, + "90.0" : 42.949395639087484, + "95.0" : 42.949395639087484, + "99.0" : 42.949395639087484, + "99.9" : 42.949395639087484, + "99.99" : 42.949395639087484, + "99.999" : 42.949395639087484, + "99.9999" : 42.949395639087484, + "100.0" : 42.949395639087484 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 42.949395639087484, + 42.43053158382356, + 42.77870012159051 + ], + [ + 42.10668734070957, + 42.47808802236617, + 42.42040842447684 + ], + [ + 41.342744086435644, + 41.459171410149246, + 41.736279935944374 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022785715830115526, + "scoreError" : 7.765947574646602E-4, + "scoreConfidence" : [ + 0.022009121072650868, + 0.023562310587580185 + ], + "scorePercentiles" : { + "0.0" : 0.02206299895154185, + "50.0" : 0.022887831881006866, + "90.0" : 0.023311196390697675, + "95.0" : 0.023311196390697675, + "99.0" : 0.023311196390697675, + "99.9" : 0.023311196390697675, + "99.99" : 0.023311196390697675, + "99.999" : 0.023311196390697675, + "99.9999" : 0.023311196390697675, + "100.0" : 0.023311196390697675 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.022410095964205817, + 0.02206299895154185, + 0.022154066898230088 + ], + [ + 0.022887831881006866, + 0.022883768581235697, + 0.023030873466666667 + ], + [ + 0.02313581221939954, + 0.023311196390697675, + 0.023194798118055554 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2024-12-03T01:09:26Z-9d6e31e367f7b2929dd393a694dc05a0c5bb6e1a-jdk17.json b/performance-results/2024-12-03T01:09:26Z-9d6e31e367f7b2929dd393a694dc05a0c5bb6e1a-jdk17.json new file mode 100644 index 000000000..cc3c0e1c6 --- /dev/null +++ b/performance-results/2024-12-03T01:09:26Z-9d6e31e367f7b2929dd393a694dc05a0c5bb6e1a-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.416195951743301, + "scoreError" : 0.026850420058968587, + "scoreConfidence" : [ + 3.3893455316843326, + 3.4430463718022697 + ], + "scorePercentiles" : { + "0.0" : 3.4104756625310313, + "50.0" : 3.417284846910124, + "90.0" : 3.4197384506219257, + "95.0" : 3.4197384506219257, + "99.0" : 3.4197384506219257, + "99.9" : 3.4197384506219257, + "99.99" : 3.4197384506219257, + "99.999" : 3.4197384506219257, + "99.9999" : 3.4197384506219257, + "100.0" : 3.4197384506219257 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.415843843944456, + 3.4197384506219257 + ], + [ + 3.4104756625310313, + 3.4187258498757913 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7230485586886197, + "scoreError" : 0.020087806386833534, + "scoreConfidence" : [ + 1.7029607523017862, + 1.7431363650754532 + ], + "scorePercentiles" : { + "0.0" : 1.7187149064375862, + "50.0" : 1.7237077757716905, + "90.0" : 1.726063776773511, + "95.0" : 1.726063776773511, + "99.0" : 1.726063776773511, + "99.9" : 1.726063776773511, + "99.99" : 1.726063776773511, + "99.999" : 1.726063776773511, + "99.9999" : 1.726063776773511, + "100.0" : 1.726063776773511 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7187149064375862, + 1.7240607327472357 + ], + [ + 1.7233548187961456, + 1.726063776773511 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8672591450106986, + "scoreError" : 0.0031722136235199333, + "scoreConfidence" : [ + 0.8640869313871786, + 0.8704313586342185 + ], + "scorePercentiles" : { + "0.0" : 0.8668100501731115, + "50.0" : 0.8671493032151358, + "90.0" : 0.8679279234394113, + "95.0" : 0.8679279234394113, + "99.0" : 0.8679279234394113, + "99.9" : 0.8679279234394113, + "99.99" : 0.8679279234394113, + "99.999" : 0.8679279234394113, + "99.9999" : 0.8679279234394113, + "100.0" : 0.8679279234394113 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8673072236763956, + 0.8668100501731115 + ], + [ + 0.866991382753876, + 0.8679279234394113 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 42.98710131013886, + "scoreError" : 1.2857923706741503, + "scoreConfidence" : [ + 41.70130893946471, + 44.27289368081301 + ], + "scorePercentiles" : { + "0.0" : 41.39140519888467, + "50.0" : 43.14941248747299, + "90.0" : 44.20711145156694, + "95.0" : 44.20711145156694, + "99.0" : 44.20711145156694, + "99.9" : 44.20711145156694, + "99.99" : 44.20711145156694, + "99.999" : 44.20711145156694, + "99.9999" : 44.20711145156694, + "100.0" : 44.20711145156694 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.20711145156694, + 43.20559444971562, + 43.38709980039055 + ], + [ + 42.65699183021884, + 43.40605138244976, + 42.67513011200432 + ], + [ + 43.14941248747299, + 42.80511507854605, + 41.39140519888467 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022628376233754664, + "scoreError" : 0.0010121779437417262, + "scoreConfidence" : [ + 0.021616198290012937, + 0.02364055417749639 + ], + "scorePercentiles" : { + "0.0" : 0.02194287973464912, + "50.0" : 0.02243926284753363, + "90.0" : 0.023448793035128805, + "95.0" : 0.023448793035128805, + "99.0" : 0.023448793035128805, + "99.9" : 0.023448793035128805, + "99.99" : 0.023448793035128805, + "99.999" : 0.023448793035128805, + "99.9999" : 0.023448793035128805, + "100.0" : 0.023448793035128805 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02333720638927739, + 0.023367165808411215, + 0.023448793035128805 + ], + [ + 0.022580380595936794, + 0.022375214377232142, + 0.02243926284753363 + ], + [ + 0.022161285869469027, + 0.022003197446153845, + 0.02194287973464912 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2024-12-04T02:33:30Z-3e5c77ba3f27de559a65c42684fc7deb9dead263-jdk17.json b/performance-results/2024-12-04T02:33:30Z-3e5c77ba3f27de559a65c42684fc7deb9dead263-jdk17.json new file mode 100644 index 000000000..2c0485966 --- /dev/null +++ b/performance-results/2024-12-04T02:33:30Z-3e5c77ba3f27de559a65c42684fc7deb9dead263-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4152001755669277, + "scoreError" : 0.021628843464137723, + "scoreConfidence" : [ + 3.39357133210279, + 3.4368290190310655 + ], + "scorePercentiles" : { + "0.0" : 3.4121139027546206, + "50.0" : 3.4144609174987552, + "90.0" : 3.419764964515579, + "95.0" : 3.419764964515579, + "99.0" : 3.419764964515579, + "99.9" : 3.419764964515579, + "99.99" : 3.419764964515579, + "99.999" : 3.419764964515579, + "99.9999" : 3.419764964515579, + "100.0" : 3.419764964515579 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4134232276246173, + 3.419764964515579 + ], + [ + 3.4121139027546206, + 3.415498607372893 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7263020460260308, + "scoreError" : 0.019054912694287184, + "scoreConfidence" : [ + 1.7072471333317436, + 1.745356958720318 + ], + "scorePercentiles" : { + "0.0" : 1.7233094219683196, + "50.0" : 1.7257643130488556, + "90.0" : 1.7303701360380923, + "95.0" : 1.7303701360380923, + "99.0" : 1.7303701360380923, + "99.9" : 1.7303701360380923, + "99.99" : 1.7303701360380923, + "99.999" : 1.7303701360380923, + "99.9999" : 1.7303701360380923, + "100.0" : 1.7303701360380923 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7233094219683196, + 1.7257308147936137 + ], + [ + 1.7257978113040977, + 1.7303701360380923 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8680565422533224, + "scoreError" : 0.004144184933370064, + "scoreConfidence" : [ + 0.8639123573199523, + 0.8722007271866925 + ], + "scorePercentiles" : { + "0.0" : 0.8673780217192926, + "50.0" : 0.8680285063653239, + "90.0" : 0.8687911345633491, + "95.0" : 0.8687911345633491, + "99.0" : 0.8687911345633491, + "99.9" : 0.8687911345633491, + "99.99" : 0.8687911345633491, + "99.999" : 0.8687911345633491, + "99.9999" : 0.8687911345633491, + "100.0" : 0.8687911345633491 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8673780217192926, + 0.8687911345633491 + ], + [ + 0.8683692960924105, + 0.8676877166382374 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 43.24510151191392, + "scoreError" : 1.658507364853044, + "scoreConfidence" : [ + 41.58659414706088, + 44.90360887676697 + ], + "scorePercentiles" : { + "0.0" : 41.770911843921056, + "50.0" : 43.48692947280641, + "90.0" : 44.42339392286783, + "95.0" : 44.42339392286783, + "99.0" : 44.42339392286783, + "99.9" : 44.42339392286783, + "99.99" : 44.42339392286783, + "99.999" : 44.42339392286783, + "99.9999" : 44.42339392286783, + "100.0" : 44.42339392286783 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.42339392286783, + 43.72390047070996, + 44.0283409955762 + ], + [ + 41.770911843921056, + 41.938385219028056, + 42.33876278427692 + ], + [ + 43.36311706281474, + 43.48692947280641, + 44.13217183522408 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022512762277781196, + "scoreError" : 5.112572288638061E-4, + "scoreConfidence" : [ + 0.02200150504891739, + 0.023024019506645003 + ], + "scorePercentiles" : { + "0.0" : 0.022083574353200883, + "50.0" : 0.022541668768018018, + "90.0" : 0.02301931708275862, + "95.0" : 0.02301931708275862, + "99.0" : 0.02301931708275862, + "99.9" : 0.02301931708275862, + "99.99" : 0.02301931708275862, + "99.999" : 0.02301931708275862, + "99.9999" : 0.02301931708275862, + "100.0" : 0.02301931708275862 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02301931708275862, + 0.02268371470068027, + 0.022794350806378132 + ], + [ + 0.02236791441517857, + 0.02244032732735426, + 0.022571994894144146 + ], + [ + 0.02211199815231788, + 0.022083574353200883, + 0.022541668768018018 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2024-12-05T21:56:29Z-08cf1702ce0c96ee0ed414ee8085a75696bc6cae-jdk17.json b/performance-results/2024-12-05T21:56:29Z-08cf1702ce0c96ee0ed414ee8085a75696bc6cae-jdk17.json new file mode 100644 index 000000000..2eb4cb00c --- /dev/null +++ b/performance-results/2024-12-05T21:56:29Z-08cf1702ce0c96ee0ed414ee8085a75696bc6cae-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.39947127955597, + "scoreError" : 0.04375139947714444, + "scoreConfidence" : [ + 3.3557198800788255, + 3.4432226790331146 + ], + "scorePercentiles" : { + "0.0" : 3.3932042357857095, + "50.0" : 3.398319202804707, + "90.0" : 3.4080424768287556, + "95.0" : 3.4080424768287556, + "99.0" : 3.4080424768287556, + "99.9" : 3.4080424768287556, + "99.99" : 3.4080424768287556, + "99.999" : 3.4080424768287556, + "99.9999" : 3.4080424768287556, + "100.0" : 3.4080424768287556 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.3932042357857095, + 3.3949930686358667 + ], + [ + 3.4016453369735475, + 3.4080424768287556 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7202643292853323, + "scoreError" : 0.010698822469557535, + "scoreConfidence" : [ + 1.709565506815775, + 1.7309631517548898 + ], + "scorePercentiles" : { + "0.0" : 1.7185075642902061, + "50.0" : 1.7200781357517012, + "90.0" : 1.722393481347721, + "95.0" : 1.722393481347721, + "99.0" : 1.722393481347721, + "99.9" : 1.722393481347721, + "99.99" : 1.722393481347721, + "99.999" : 1.722393481347721, + "99.9999" : 1.722393481347721, + "100.0" : 1.722393481347721 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7185075642902061, + 1.722393481347721 + ], + [ + 1.719561062814024, + 1.7205952086893783 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8654605738416737, + "scoreError" : 0.002206407164656894, + "scoreConfidence" : [ + 0.8632541666770168, + 0.8676669810063307 + ], + "scorePercentiles" : { + "0.0" : 0.8649842104508775, + "50.0" : 0.8655377996365867, + "90.0" : 0.8657824856426442, + "95.0" : 0.8657824856426442, + "99.0" : 0.8657824856426442, + "99.9" : 0.8657824856426442, + "99.99" : 0.8657824856426442, + "99.999" : 0.8657824856426442, + "99.9999" : 0.8657824856426442, + "100.0" : 0.8657824856426442 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8649842104508775, + 0.8654774880262567 + ], + [ + 0.8655981112469168, + 0.8657824856426442 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 41.38406101685299, + "scoreError" : 0.6843156074743918, + "scoreConfidence" : [ + 40.6997454093786, + 42.06837662432738 + ], + "scorePercentiles" : { + "0.0" : 40.78923580225026, + "50.0" : 41.44125463453928, + "90.0" : 41.95496958011177, + "95.0" : 41.95496958011177, + "99.0" : 41.95496958011177, + "99.9" : 41.95496958011177, + "99.99" : 41.95496958011177, + "99.999" : 41.95496958011177, + "99.9999" : 41.95496958011177, + "100.0" : 41.95496958011177 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 40.90606757700961, + 41.44125463453928, + 41.95496958011177 + ], + [ + 41.86591295369653, + 41.48402929587195, + 41.624082377265175 + ], + [ + 41.04673717098326, + 41.34425975994901, + 40.78923580225026 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.024747128652428545, + "scoreError" : 8.316013168757033E-4, + "scoreConfidence" : [ + 0.02391552733555284, + 0.02557872996930425 + ], + "scorePercentiles" : { + "0.0" : 0.02395063935167464, + "50.0" : 0.024757809653465346, + "90.0" : 0.025461867081424935, + "95.0" : 0.025461867081424935, + "99.0" : 0.025461867081424935, + "99.9" : 0.025461867081424935, + "99.99" : 0.025461867081424935, + "99.999" : 0.025461867081424935, + "99.9999" : 0.025461867081424935, + "100.0" : 0.025461867081424935 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.024250484956416466, + 0.02482653333995037, + 0.024802851465346536 + ], + [ + 0.025461867081424935, + 0.02452199099754902, + 0.02545728996183206 + ], + [ + 0.02469469106419753, + 0.024757809653465346, + 0.02395063935167464 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2024-12-08T08:18:55Z-3d46b3737bf4f0c617425af4c63036a1336a7423-jdk17.json b/performance-results/2024-12-08T08:18:55Z-3d46b3737bf4f0c617425af4c63036a1336a7423-jdk17.json new file mode 100644 index 000000000..d7d414300 --- /dev/null +++ b/performance-results/2024-12-08T08:18:55Z-3d46b3737bf4f0c617425af4c63036a1336a7423-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4077902649261356, + "scoreError" : 0.011234878517476501, + "scoreConfidence" : [ + 3.396555386408659, + 3.419025143443612 + ], + "scorePercentiles" : { + "0.0" : 3.4053492910657934, + "50.0" : 3.408347201679087, + "90.0" : 3.4091173652805766, + "95.0" : 3.4091173652805766, + "99.0" : 3.4091173652805766, + "99.9" : 3.4091173652805766, + "99.99" : 3.4091173652805766, + "99.999" : 3.4091173652805766, + "99.9999" : 3.4091173652805766, + "100.0" : 3.4091173652805766 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4053492910657934, + 3.407743717137213 + ], + [ + 3.40895068622096, + 3.4091173652805766 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7203127954265476, + "scoreError" : 0.013318600773962557, + "scoreConfidence" : [ + 1.706994194652585, + 1.73363139620051 + ], + "scorePercentiles" : { + "0.0" : 1.7175975018719172, + "50.0" : 1.7205913784095175, + "90.0" : 1.722470923015238, + "95.0" : 1.722470923015238, + "99.0" : 1.722470923015238, + "99.9" : 1.722470923015238, + "99.99" : 1.722470923015238, + "99.999" : 1.722470923015238, + "99.9999" : 1.722470923015238, + "100.0" : 1.722470923015238 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7211197986006654, + 1.722470923015238 + ], + [ + 1.7175975018719172, + 1.7200629582183695 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8650705897922965, + "scoreError" : 0.009557110836336062, + "scoreConfidence" : [ + 0.8555134789559604, + 0.8746277006286325 + ], + "scorePercentiles" : { + "0.0" : 0.8631902016341529, + "50.0" : 0.8653947483238336, + "90.0" : 0.8663026608873658, + "95.0" : 0.8663026608873658, + "99.0" : 0.8663026608873658, + "99.9" : 0.8663026608873658, + "99.99" : 0.8663026608873658, + "99.999" : 0.8663026608873658, + "99.9999" : 0.8663026608873658, + "100.0" : 0.8663026608873658 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8662003758298101, + 0.8663026608873658 + ], + [ + 0.8631902016341529, + 0.864589120817857 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 41.829882344445565, + "scoreError" : 2.1834707260014885, + "scoreConfidence" : [ + 39.64641161844408, + 44.01335307044705 + ], + "scorePercentiles" : { + "0.0" : 40.522546266756436, + "50.0" : 41.16019698230881, + "90.0" : 43.998564098060946, + "95.0" : 43.998564098060946, + "99.0" : 43.998564098060946, + "99.9" : 43.998564098060946, + "99.99" : 43.998564098060946, + "99.999" : 43.998564098060946, + "99.9999" : 43.998564098060946, + "100.0" : 43.998564098060946 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 40.99599155133248, + 41.10904513591438, + 41.16019698230881 + ], + [ + 40.92612743551148, + 41.19737129049191, + 40.522546266756436 + ], + [ + 43.20615819460214, + 43.998564098060946, + 43.3529401450314 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.023323010576891567, + "scoreError" : 6.943879125023075E-4, + "scoreConfidence" : [ + 0.02262862266438926, + 0.024017398489393875 + ], + "scorePercentiles" : { + "0.0" : 0.02265938378280543, + "50.0" : 0.023499072201877934, + "90.0" : 0.02383227217142857, + "95.0" : 0.02383227217142857, + "99.0" : 0.02383227217142857, + "99.9" : 0.02383227217142857, + "99.99" : 0.02383227217142857, + "99.999" : 0.02383227217142857, + "99.9999" : 0.02383227217142857, + "100.0" : 0.02383227217142857 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.023499072201877934, + 0.023596047476415093, + 0.023534972790588235 + ], + [ + 0.022848023748858446, + 0.022876015378995435, + 0.02265938378280543 + ], + [ + 0.023485217551643192, + 0.023576090089411764, + 0.02383227217142857 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2024-12-08T22:54:25Z-46c03234896e2ffad02a5dbf704a721ea0717c67-jdk17.json b/performance-results/2024-12-08T22:54:25Z-46c03234896e2ffad02a5dbf704a721ea0717c67-jdk17.json new file mode 100644 index 000000000..a13f68e38 --- /dev/null +++ b/performance-results/2024-12-08T22:54:25Z-46c03234896e2ffad02a5dbf704a721ea0717c67-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.424378627035124, + "scoreError" : 0.0240399263203179, + "scoreConfidence" : [ + 3.4003387007148063, + 3.448418553355442 + ], + "scorePercentiles" : { + "0.0" : 3.4207630701321463, + "50.0" : 3.4236022814383293, + "90.0" : 3.429546875131693, + "95.0" : 3.429546875131693, + "99.0" : 3.429546875131693, + "99.9" : 3.429546875131693, + "99.99" : 3.429546875131693, + "99.999" : 3.429546875131693, + "99.9999" : 3.429546875131693, + "100.0" : 3.429546875131693 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4230868615582297, + 3.429546875131693 + ], + [ + 3.4207630701321463, + 3.4241177013184285 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7298687803269965, + "scoreError" : 0.010463124288060224, + "scoreConfidence" : [ + 1.7194056560389364, + 1.7403319046150567 + ], + "scorePercentiles" : { + "0.0" : 1.7280934234954237, + "50.0" : 1.7296979626163922, + "90.0" : 1.731985772579778, + "95.0" : 1.731985772579778, + "99.0" : 1.731985772579778, + "99.9" : 1.731985772579778, + "99.99" : 1.731985772579778, + "99.999" : 1.731985772579778, + "99.9999" : 1.731985772579778, + "100.0" : 1.731985772579778 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7294035761393258, + 1.731985772579778 + ], + [ + 1.7280934234954237, + 1.7299923490934583 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8701164779654085, + "scoreError" : 0.00395761298041778, + "scoreConfidence" : [ + 0.8661588649849907, + 0.8740740909458262 + ], + "scorePercentiles" : { + "0.0" : 0.869458088898, + "50.0" : 0.8701123859892204, + "90.0" : 0.8707830509851929, + "95.0" : 0.8707830509851929, + "99.0" : 0.8707830509851929, + "99.9" : 0.8707830509851929, + "99.99" : 0.8707830509851929, + "99.999" : 0.8707830509851929, + "99.9999" : 0.8707830509851929, + "100.0" : 0.8707830509851929 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8704641226465905, + 0.8707830509851929 + ], + [ + 0.869458088898, + 0.8697606493318503 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 44.78882381498855, + "scoreError" : 1.6789885454880027, + "scoreConfidence" : [ + 43.10983526950054, + 46.46781236047655 + ], + "scorePercentiles" : { + "0.0" : 43.649949104503946, + "50.0" : 44.40706804090582, + "90.0" : 46.08789493604563, + "95.0" : 46.08789493604563, + "99.0" : 46.08789493604563, + "99.9" : 46.08789493604563, + "99.99" : 46.08789493604563, + "99.999" : 46.08789493604563, + "99.9999" : 46.08789493604563, + "100.0" : 46.08789493604563 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 46.06557024270227, + 46.08789493604563, + 46.08198077042825 + ], + [ + 44.39265750328088, + 44.40706804090582, + 44.42821713852795 + ], + [ + 43.649949104503946, + 43.99180129638337, + 43.99427530211887 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02236314997162596, + "scoreError" : 7.931364759453877E-4, + "scoreConfidence" : [ + 0.021570013495680572, + 0.023156286447571346 + ], + "scorePercentiles" : { + "0.0" : 0.022002074795604395, + "50.0" : 0.022066712607929515, + "90.0" : 0.02300942944597701, + "95.0" : 0.02300942944597701, + "99.0" : 0.02300942944597701, + "99.9" : 0.02300942944597701, + "99.99" : 0.02300942944597701, + "99.999" : 0.02300942944597701, + "99.9999" : 0.02300942944597701, + "100.0" : 0.02300942944597701 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02299016895632184, + 0.02297587995642202, + 0.02300942944597701 + ], + [ + 0.02206858371585903, + 0.022066712607929515, + 0.022060007019823788 + ], + [ + 0.022002074795604395, + 0.022048064753303964, + 0.02204742849339207 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2024-12-09T02:45:13Z-35760dc9e50dc3ce35a046a5b272eda696c870d5-jdk17.json b/performance-results/2024-12-09T02:45:13Z-35760dc9e50dc3ce35a046a5b272eda696c870d5-jdk17.json new file mode 100644 index 000000000..68ea67350 --- /dev/null +++ b/performance-results/2024-12-09T02:45:13Z-35760dc9e50dc3ce35a046a5b272eda696c870d5-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.3995645247595654, + "scoreError" : 0.02987629044326602, + "scoreConfidence" : [ + 3.3696882343162993, + 3.4294408152028315 + ], + "scorePercentiles" : { + "0.0" : 3.393628753189234, + "50.0" : 3.400273375153123, + "90.0" : 3.404082595542781, + "95.0" : 3.404082595542781, + "99.0" : 3.404082595542781, + "99.9" : 3.404082595542781, + "99.99" : 3.404082595542781, + "99.999" : 3.404082595542781, + "99.9999" : 3.404082595542781, + "100.0" : 3.404082595542781 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.398339998248194, + 3.4022067520580523 + ], + [ + 3.393628753189234, + 3.404082595542781 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7205088090910943, + "scoreError" : 0.012083738709990733, + "scoreConfidence" : [ + 1.7084250703811035, + 1.732592547801085 + ], + "scorePercentiles" : { + "0.0" : 1.7181281468730438, + "50.0" : 1.7209360921738943, + "90.0" : 1.722034905143545, + "95.0" : 1.722034905143545, + "99.0" : 1.722034905143545, + "99.9" : 1.722034905143545, + "99.99" : 1.722034905143545, + "99.999" : 1.722034905143545, + "99.9999" : 1.722034905143545, + "100.0" : 1.722034905143545 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7181281468730438, + 1.722034905143545 + ], + [ + 1.7199044135030424, + 1.721967770844746 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.864565745832372, + "scoreError" : 0.0026425774790852547, + "scoreConfidence" : [ + 0.8619231683532868, + 0.8672083233114573 + ], + "scorePercentiles" : { + "0.0" : 0.8642812220365862, + "50.0" : 0.8644122330769803, + "90.0" : 0.8651572951389412, + "95.0" : 0.8651572951389412, + "99.0" : 0.8651572951389412, + "99.9" : 0.8651572951389412, + "99.99" : 0.8651572951389412, + "99.999" : 0.8651572951389412, + "99.9999" : 0.8651572951389412, + "100.0" : 0.8651572951389412 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8642812220365862, + 0.8643034133675414 + ], + [ + 0.8645210527864192, + 0.8651572951389412 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 38.949218227332636, + "scoreError" : 1.5418956244161082, + "scoreConfidence" : [ + 37.40732260291653, + 40.49111385174874 + ], + "scorePercentiles" : { + "0.0" : 37.33301129092536, + "50.0" : 38.9146032107846, + "90.0" : 40.30890725487399, + "95.0" : 40.30890725487399, + "99.0" : 40.30890725487399, + "99.9" : 40.30890725487399, + "99.99" : 40.30890725487399, + "99.999" : 40.30890725487399, + "99.9999" : 40.30890725487399, + "100.0" : 40.30890725487399 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 39.64330498367299, + 39.921199062124764, + 40.30890725487399 + ], + [ + 37.33301129092536, + 38.286993705317236, + 38.383005751480006 + ], + [ + 39.07198320782333, + 38.9146032107846, + 38.6799555789915 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.026043005372482237, + "scoreError" : 0.0013237341236282344, + "scoreConfidence" : [ + 0.024719271248854, + 0.027366739496110473 + ], + "scorePercentiles" : { + "0.0" : 0.024870349985111662, + "50.0" : 0.026153539485639688, + "90.0" : 0.026994492881401617, + "95.0" : 0.026994492881401617, + "99.0" : 0.026994492881401617, + "99.9" : 0.026994492881401617, + "99.99" : 0.026994492881401617, + "99.999" : 0.026994492881401617, + "99.9999" : 0.026994492881401617, + "100.0" : 0.026994492881401617 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.025874787736434108, + 0.026153539485639688, + 0.026638927933510637 + ], + [ + 0.02556267860714286, + 0.024960604900249376, + 0.024870349985111662 + ], + [ + 0.02643135141424802, + 0.026994492881401617, + 0.02690031540860215 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2024-12-17T03:02:43Z-9de9f06a7200cf98c69129730626f9a5f35f6e8d-jdk17.json b/performance-results/2024-12-17T03:02:43Z-9de9f06a7200cf98c69129730626f9a5f35f6e8d-jdk17.json new file mode 100644 index 000000000..ccf4a784a --- /dev/null +++ b/performance-results/2024-12-17T03:02:43Z-9de9f06a7200cf98c69129730626f9a5f35f6e8d-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4254834308373514, + "scoreError" : 0.015025400543458568, + "scoreConfidence" : [ + 3.410458030293893, + 3.44050883138081 + ], + "scorePercentiles" : { + "0.0" : 3.423328219387952, + "50.0" : 3.425552177730207, + "90.0" : 3.42750114850104, + "95.0" : 3.42750114850104, + "99.0" : 3.42750114850104, + "99.9" : 3.42750114850104, + "99.99" : 3.42750114850104, + "99.999" : 3.42750114850104, + "99.9999" : 3.42750114850104, + "100.0" : 3.42750114850104 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.423328219387952, + 3.42750114850104 + ], + [ + 3.4236164536870035, + 3.4274879017734112 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7302247645519597, + "scoreError" : 0.010033955510826632, + "scoreConfidence" : [ + 1.720190809041133, + 1.7402587200627864 + ], + "scorePercentiles" : { + "0.0" : 1.7288955727752675, + "50.0" : 1.7298209211776594, + "90.0" : 1.7323616430772524, + "95.0" : 1.7323616430772524, + "99.0" : 1.7323616430772524, + "99.9" : 1.7323616430772524, + "99.99" : 1.7323616430772524, + "99.999" : 1.7323616430772524, + "99.9999" : 1.7323616430772524, + "100.0" : 1.7323616430772524 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7292851672177052, + 1.7323616430772524 + ], + [ + 1.7288955727752675, + 1.7303566751376136 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8700678921409488, + "scoreError" : 0.00713353924393665, + "scoreConfidence" : [ + 0.8629343528970121, + 0.8772014313848855 + ], + "scorePercentiles" : { + "0.0" : 0.8686670360707984, + "50.0" : 0.8701250932717297, + "90.0" : 0.8713543459495379, + "95.0" : 0.8713543459495379, + "99.0" : 0.8713543459495379, + "99.9" : 0.8713543459495379, + "99.99" : 0.8713543459495379, + "99.999" : 0.8713543459495379, + "99.9999" : 0.8713543459495379, + "100.0" : 0.8713543459495379 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8686670360707984, + 0.8702516506204957 + ], + [ + 0.8699985359229638, + 0.8713543459495379 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 45.32130915520371, + "scoreError" : 3.560055957159324, + "scoreConfidence" : [ + 41.761253198044386, + 48.88136511236303 + ], + "scorePercentiles" : { + "0.0" : 42.7537076662837, + "50.0" : 45.5422455784985, + "90.0" : 47.642633062453015, + "95.0" : 47.642633062453015, + "99.0" : 47.642633062453015, + "99.9" : 47.642633062453015, + "99.99" : 47.642633062453015, + "99.999" : 47.642633062453015, + "99.9999" : 47.642633062453015, + "100.0" : 47.642633062453015 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 42.7537076662837, + 42.76955088117818, + 42.768304606190554 + ], + [ + 47.63155598328764, + 47.64036553406184, + 47.642633062453015 + ], + [ + 45.624284346660495, + 45.519134738219414, + 45.5422455784985 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022670557238933457, + "scoreError" : 9.94605572521605E-4, + "scoreConfidence" : [ + 0.02167595166641185, + 0.023665162811455063 + ], + "scorePercentiles" : { + "0.0" : 0.022023165004395603, + "50.0" : 0.022586484038374717, + "90.0" : 0.02347066886416862, + "95.0" : 0.02347066886416862, + "99.0" : 0.02347066886416862, + "99.9" : 0.02347066886416862, + "99.99" : 0.02347066886416862, + "99.999" : 0.02347066886416862, + "99.9999" : 0.02347066886416862, + "100.0" : 0.02347066886416862 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02347066886416862, + 0.023345283524475523, + 0.02333887996270396 + ], + [ + 0.02202807403964758, + 0.02202869620044053, + 0.022023165004395603 + ], + [ + 0.022632988674208144, + 0.022580774841986458, + 0.022586484038374717 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2024-12-26T02:48:37Z-d4b3b07df4d1edecfdcaaec4fb5adc54728f9574-jdk17.json b/performance-results/2024-12-26T02:48:37Z-d4b3b07df4d1edecfdcaaec4fb5adc54728f9574-jdk17.json new file mode 100644 index 000000000..b1e622135 --- /dev/null +++ b/performance-results/2024-12-26T02:48:37Z-d4b3b07df4d1edecfdcaaec4fb5adc54728f9574-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4183186208130487, + "scoreError" : 0.022246121905918532, + "scoreConfidence" : [ + 3.39607249890713, + 3.4405647427189674 + ], + "scorePercentiles" : { + "0.0" : 3.413848941434486, + "50.0" : 3.4190590718704748, + "90.0" : 3.42130739807676, + "95.0" : 3.42130739807676, + "99.0" : 3.42130739807676, + "99.9" : 3.42130739807676, + "99.99" : 3.42130739807676, + "99.999" : 3.42130739807676, + "99.9999" : 3.42130739807676, + "100.0" : 3.42130739807676 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4173936330209784, + 3.42130739807676 + ], + [ + 3.413848941434486, + 3.4207245107199706 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7291357989986291, + "scoreError" : 0.015790087869288705, + "scoreConfidence" : [ + 1.7133457111293404, + 1.7449258868679178 + ], + "scorePercentiles" : { + "0.0" : 1.726553979052951, + "50.0" : 1.7288314425743558, + "90.0" : 1.7323263317928532, + "95.0" : 1.7323263317928532, + "99.0" : 1.7323263317928532, + "99.9" : 1.7323263317928532, + "99.99" : 1.7323263317928532, + "99.999" : 1.7323263317928532, + "99.9999" : 1.7323263317928532, + "100.0" : 1.7323263317928532 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.726553979052951, + 1.729495524499686 + ], + [ + 1.728167360649026, + 1.7323263317928532 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8694925783721111, + "scoreError" : 0.0043954381149764795, + "scoreConfidence" : [ + 0.8650971402571347, + 0.8738880164870876 + ], + "scorePercentiles" : { + "0.0" : 0.868936526115034, + "50.0" : 0.8692746681495762, + "90.0" : 0.8704844510742582, + "95.0" : 0.8704844510742582, + "99.0" : 0.8704844510742582, + "99.9" : 0.8704844510742582, + "99.99" : 0.8704844510742582, + "99.999" : 0.8704844510742582, + "99.9999" : 0.8704844510742582, + "100.0" : 0.8704844510742582 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.869270402780433, + 0.8692789335187193 + ], + [ + 0.868936526115034, + 0.8704844510742582 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 44.48605468306695, + "scoreError" : 2.5689013669187672, + "scoreConfidence" : [ + 41.91715331614819, + 47.05495604998572 + ], + "scorePercentiles" : { + "0.0" : 42.465270555590564, + "50.0" : 45.23859981991722, + "90.0" : 45.75807170958764, + "95.0" : 45.75807170958764, + "99.0" : 45.75807170958764, + "99.9" : 45.75807170958764, + "99.99" : 45.75807170958764, + "99.999" : 45.75807170958764, + "99.9999" : 45.75807170958764, + "100.0" : 45.75807170958764 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 42.465270555590564, + 42.465537157018524, + 42.47251210446258 + ], + [ + 45.75807170958764, + 45.73163472741838, + 45.73404569787986 + ], + [ + 45.23859981991722, + 45.22964511515073, + 45.279175260577084 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02247107156704055, + "scoreError" : 5.19834581792683E-4, + "scoreConfidence" : [ + 0.021951236985247865, + 0.022990906148833232 + ], + "scorePercentiles" : { + "0.0" : 0.02216260132522124, + "50.0" : 0.0223607604375, + "90.0" : 0.022881822034246574, + "95.0" : 0.022881822034246574, + "99.0" : 0.022881822034246574, + "99.9" : 0.022881822034246574, + "99.99" : 0.022881822034246574, + "99.999" : 0.022881822034246574, + "99.9999" : 0.022881822034246574, + "100.0" : 0.022881822034246574 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.022213481620842572, + 0.022176993237250555, + 0.02216260132522124 + ], + [ + 0.022881822034246574, + 0.022866326511415524, + 0.02286390547260274 + ], + [ + 0.02236220743526786, + 0.0223607604375, + 0.022351546029017857 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-03T23:05:41Z-74c62b6464504f3231805d928499e3faaeaddd2b-jdk17.json b/performance-results/2025-01-03T23:05:41Z-74c62b6464504f3231805d928499e3faaeaddd2b-jdk17.json new file mode 100644 index 000000000..3e67765b4 --- /dev/null +++ b/performance-results/2025-01-03T23:05:41Z-74c62b6464504f3231805d928499e3faaeaddd2b-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4086383192028586, + "scoreError" : 0.05662927719471223, + "scoreConfidence" : [ + 3.3520090420081465, + 3.4652675963975708 + ], + "scorePercentiles" : { + "0.0" : 3.3989687508416133, + "50.0" : 3.4089573516309404, + "90.0" : 3.4176698227079405, + "95.0" : 3.4176698227079405, + "99.0" : 3.4176698227079405, + "99.9" : 3.4176698227079405, + "99.99" : 3.4176698227079405, + "99.999" : 3.4176698227079405, + "99.9999" : 3.4176698227079405, + "100.0" : 3.4176698227079405 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.3989687508416133, + 3.4037075113574597 + ], + [ + 3.4176698227079405, + 3.414207191904421 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7247042514212518, + "scoreError" : 0.025577661073979848, + "scoreConfidence" : [ + 1.699126590347272, + 1.7502819124952316 + ], + "scorePercentiles" : { + "0.0" : 1.7199822553826223, + "50.0" : 1.7247603094085062, + "90.0" : 1.729314131485372, + "95.0" : 1.729314131485372, + "99.0" : 1.729314131485372, + "99.9" : 1.729314131485372, + "99.99" : 1.729314131485372, + "99.999" : 1.729314131485372, + "99.9999" : 1.729314131485372, + "100.0" : 1.729314131485372 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7199822553826223, + 1.7234475192789092 + ], + [ + 1.7260730995381033, + 1.729314131485372 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.866926795435834, + "scoreError" : 0.0024224565675789894, + "scoreConfidence" : [ + 0.864504338868255, + 0.869349252003413 + ], + "scorePercentiles" : { + "0.0" : 0.86643401727251, + "50.0" : 0.8670019062531722, + "90.0" : 0.8672693519644817, + "95.0" : 0.8672693519644817, + "99.0" : 0.8672693519644817, + "99.9" : 0.8672693519644817, + "99.99" : 0.8672693519644817, + "99.999" : 0.8672693519644817, + "99.9999" : 0.8672693519644817, + "100.0" : 0.8672693519644817 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8671602438844096, + 0.8672693519644817 + ], + [ + 0.86643401727251, + 0.8668435686219347 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 43.19235624466463, + "scoreError" : 0.8357968532166162, + "scoreConfidence" : [ + 42.356559391448016, + 44.028153097881244 + ], + "scorePercentiles" : { + "0.0" : 42.558882497479054, + "50.0" : 43.37071116457182, + "90.0" : 43.74757796416252, + "95.0" : 43.74757796416252, + "99.0" : 43.74757796416252, + "99.9" : 43.74757796416252, + "99.99" : 43.74757796416252, + "99.999" : 43.74757796416252, + "99.9999" : 43.74757796416252, + "100.0" : 43.74757796416252 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 43.74757796416252, + 43.62853498940572, + 43.704103996118626 + ], + [ + 43.1493793660059, + 43.40285809714331, + 43.37071116457182 + ], + [ + 42.60127105164282, + 42.567887075451914, + 42.558882497479054 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02386800728298746, + "scoreError" : 0.0012277527492095812, + "scoreConfidence" : [ + 0.022640254533777878, + 0.025095760032197042 + ], + "scorePercentiles" : { + "0.0" : 0.023171930243055555, + "50.0" : 0.023588256443396228, + "90.0" : 0.024856540679900743, + "95.0" : 0.024856540679900743, + "99.0" : 0.024856540679900743, + "99.9" : 0.024856540679900743, + "99.99" : 0.024856540679900743, + "99.999" : 0.024856540679900743, + "99.9999" : 0.024856540679900743, + "100.0" : 0.024856540679900743 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02369723180851064, + 0.023588256443396228, + 0.023394148107476635 + ], + [ + 0.024750938538271604, + 0.024856540679900743, + 0.024840508146401985 + ], + [ + 0.023294356925581395, + 0.023171930243055555, + 0.023218154654292344 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-06T22:51:09Z-9b4739e8f4dfc1f84a50807d8f4f511a9c84766b-jdk17.json b/performance-results/2025-01-06T22:51:09Z-9b4739e8f4dfc1f84a50807d8f4f511a9c84766b-jdk17.json new file mode 100644 index 000000000..d5e2c28bc --- /dev/null +++ b/performance-results/2025-01-06T22:51:09Z-9b4739e8f4dfc1f84a50807d8f4f511a9c84766b-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.3976951594270473, + "scoreError" : 0.021181351836786013, + "scoreConfidence" : [ + 3.3765138075902614, + 3.418876511263833 + ], + "scorePercentiles" : { + "0.0" : 3.394397211357331, + "50.0" : 3.3970764950011465, + "90.0" : 3.4022304363485647, + "95.0" : 3.4022304363485647, + "99.0" : 3.4022304363485647, + "99.9" : 3.4022304363485647, + "99.99" : 3.4022304363485647, + "99.999" : 3.4022304363485647, + "99.9999" : 3.4022304363485647, + "100.0" : 3.4022304363485647 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.396971687382568, + 3.4022304363485647 + ], + [ + 3.394397211357331, + 3.397181302619725 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7206873716995075, + "scoreError" : 0.012165584639558507, + "scoreConfidence" : [ + 1.708521787059949, + 1.732852956339066 + ], + "scorePercentiles" : { + "0.0" : 1.7186421998985886, + "50.0" : 1.7205165660847093, + "90.0" : 1.723074154730023, + "95.0" : 1.723074154730023, + "99.0" : 1.723074154730023, + "99.9" : 1.723074154730023, + "99.99" : 1.723074154730023, + "99.999" : 1.723074154730023, + "99.9999" : 1.723074154730023, + "100.0" : 1.723074154730023 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7186421998985886, + 1.723074154730023 + ], + [ + 1.7199270052468307, + 1.7211061269225876 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8652782291117496, + "scoreError" : 0.005814391511710975, + "scoreConfidence" : [ + 0.8594638376000386, + 0.8710926206234605 + ], + "scorePercentiles" : { + "0.0" : 0.8644150098784186, + "50.0" : 0.86521255834284, + "90.0" : 0.8662727898828995, + "95.0" : 0.8662727898828995, + "99.0" : 0.8662727898828995, + "99.9" : 0.8662727898828995, + "99.99" : 0.8662727898828995, + "99.999" : 0.8662727898828995, + "99.9999" : 0.8662727898828995, + "100.0" : 0.8662727898828995 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8644150098784186, + 0.8657981807853821 + ], + [ + 0.8646269359002979, + 0.8662727898828995 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 40.61285782239622, + "scoreError" : 0.6777927611228544, + "scoreConfidence" : [ + 39.93506506127337, + 41.290650583519074 + ], + "scorePercentiles" : { + "0.0" : 40.135983126980456, + "50.0" : 40.446192613931636, + "90.0" : 41.26053647129548, + "95.0" : 41.26053647129548, + "99.0" : 41.26053647129548, + "99.9" : 41.26053647129548, + "99.99" : 41.26053647129548, + "99.999" : 41.26053647129548, + "99.9999" : 41.26053647129548, + "100.0" : 41.26053647129548 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 40.42388748729046, + 40.135983126980456, + 40.446192613931636 + ], + [ + 41.26053647129548, + 40.93219516379605, + 41.0876293447744 + ], + [ + 40.692707622637776, + 40.36803370459829, + 40.168554866261466 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.024507084673500084, + "scoreError" : 7.918917887814012E-4, + "scoreConfidence" : [ + 0.023715192884718683, + 0.025298976462281485 + ], + "scorePercentiles" : { + "0.0" : 0.023988348623501198, + "50.0" : 0.02444568706097561, + "90.0" : 0.025114872824561405, + "95.0" : 0.025114872824561405, + "99.0" : 0.025114872824561405, + "99.9" : 0.025114872824561405, + "99.99" : 0.025114872824561405, + "99.999" : 0.025114872824561405, + "99.9999" : 0.025114872824561405, + "100.0" : 0.025114872824561405 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.025114872824561405, + 0.024194508417874395, + 0.02402947871942446 + ], + [ + 0.024717387565432097, + 0.02510975446115288, + 0.024928946002487563 + ], + [ + 0.024034778386091128, + 0.023988348623501198, + 0.02444568706097561 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-06T23:22:01Z-e0f6b66266fac13aeecaef1c2ef1b458828b6cc2-jdk17.json b/performance-results/2025-01-06T23:22:01Z-e0f6b66266fac13aeecaef1c2ef1b458828b6cc2-jdk17.json new file mode 100644 index 000000000..13895b223 --- /dev/null +++ b/performance-results/2025-01-06T23:22:01Z-e0f6b66266fac13aeecaef1c2ef1b458828b6cc2-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4245773136105413, + "scoreError" : 0.01868185502277945, + "scoreConfidence" : [ + 3.4058954585877617, + 3.443259168633321 + ], + "scorePercentiles" : { + "0.0" : 3.4210483921283243, + "50.0" : 3.4245663949120306, + "90.0" : 3.428128072489781, + "95.0" : 3.428128072489781, + "99.0" : 3.428128072489781, + "99.9" : 3.428128072489781, + "99.99" : 3.428128072489781, + "99.999" : 3.428128072489781, + "99.9999" : 3.428128072489781, + "100.0" : 3.428128072489781 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4210483921283243, + 3.42448613335437 + ], + [ + 3.4246466564696907, + 3.428128072489781 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7286707595661703, + "scoreError" : 0.014432774965261578, + "scoreConfidence" : [ + 1.7142379846009088, + 1.7431035345314319 + ], + "scorePercentiles" : { + "0.0" : 1.726194463728229, + "50.0" : 1.7285915896476376, + "90.0" : 1.7313053952411779, + "95.0" : 1.7313053952411779, + "99.0" : 1.7313053952411779, + "99.9" : 1.7313053952411779, + "99.99" : 1.7313053952411779, + "99.999" : 1.7313053952411779, + "99.9999" : 1.7313053952411779, + "100.0" : 1.7313053952411779 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7276221767696878, + 1.7313053952411779 + ], + [ + 1.726194463728229, + 1.7295610025255874 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8700555481313456, + "scoreError" : 0.005840168981869053, + "scoreConfidence" : [ + 0.8642153791494765, + 0.8758957171132146 + ], + "scorePercentiles" : { + "0.0" : 0.8693974925550426, + "50.0" : 0.869748144757817, + "90.0" : 0.8713284104547055, + "95.0" : 0.8713284104547055, + "99.0" : 0.8713284104547055, + "99.9" : 0.8713284104547055, + "99.99" : 0.8713284104547055, + "99.999" : 0.8713284104547055, + "99.9999" : 0.8713284104547055, + "100.0" : 0.8713284104547055 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.869425495170068, + 0.8700707943455662 + ], + [ + 0.8693974925550426, + 0.8713284104547055 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 44.80751344197212, + "scoreError" : 2.3026391744093355, + "scoreConfidence" : [ + 42.50487426756278, + 47.110152616381455 + ], + "scorePercentiles" : { + "0.0" : 43.41381117714613, + "50.0" : 44.272183388727214, + "90.0" : 46.594979535399496, + "95.0" : 46.594979535399496, + "99.0" : 46.594979535399496, + "99.9" : 46.594979535399496, + "99.99" : 46.594979535399496, + "99.999" : 46.594979535399496, + "99.9999" : 46.594979535399496, + "100.0" : 46.594979535399496 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 46.56945500132572, + 46.59220457904513, + 46.594979535399496 + ], + [ + 44.28270501315412, + 44.269073877323024, + 44.272183388727214 + ], + [ + 43.41381117714613, + 43.63753652329247, + 43.63567188233574 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022354977816848462, + "scoreError" : 0.0014391345634307308, + "scoreConfidence" : [ + 0.02091584325341773, + 0.023794112380279193 + ], + "scorePercentiles" : { + "0.0" : 0.02147898639699571, + "50.0" : 0.02210505130905077, + "90.0" : 0.023454101953161593, + "95.0" : 0.023454101953161593, + "99.0" : 0.023454101953161593, + "99.9" : 0.023454101953161593, + "99.99" : 0.023454101953161593, + "99.999" : 0.023454101953161593, + "99.9999" : 0.023454101953161593, + "100.0" : 0.023454101953161593 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02210505130905077, + 0.022098411260485652, + 0.02210520964679912 + ], + [ + 0.023454101953161593, + 0.023442564526932084, + 0.023437853107728338 + ], + [ + 0.0215884915625, + 0.021484130587982833, + 0.02147898639699571 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-21T21:47:01Z-1c9edf8ee7db8c7ba6142637799b0bb3b9d97540-jdk17.json b/performance-results/2025-01-21T21:47:01Z-1c9edf8ee7db8c7ba6142637799b0bb3b9d97540-jdk17.json new file mode 100644 index 000000000..2eb0a8679 --- /dev/null +++ b/performance-results/2025-01-21T21:47:01Z-1c9edf8ee7db8c7ba6142637799b0bb3b9d97540-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.424149683933229, + "scoreError" : 0.006012078052582705, + "scoreConfidence" : [ + 3.4181376058806463, + 3.430161761985812 + ], + "scorePercentiles" : { + "0.0" : 3.422989050483065, + "50.0" : 3.4242682261724955, + "90.0" : 3.4250732329048588, + "95.0" : 3.4250732329048588, + "99.0" : 3.4250732329048588, + "99.9" : 3.4250732329048588, + "99.99" : 3.4250732329048588, + "99.999" : 3.4250732329048588, + "99.9999" : 3.4250732329048588, + "100.0" : 3.4250732329048588 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4238388779551903, + 3.4250732329048588 + ], + [ + 3.424697574389801, + 3.422989050483065 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.72855038217974, + "scoreError" : 0.01730574953804975, + "scoreConfidence" : [ + 1.7112446326416904, + 1.7458561317177899 + ], + "scorePercentiles" : { + "0.0" : 1.7255286788866957, + "50.0" : 1.7285983884604545, + "90.0" : 1.7314760729113563, + "95.0" : 1.7314760729113563, + "99.0" : 1.7314760729113563, + "99.9" : 1.7314760729113563, + "99.99" : 1.7314760729113563, + "99.999" : 1.7314760729113563, + "99.9999" : 1.7314760729113563, + "100.0" : 1.7314760729113563 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7255286788866957, + 1.729980675302766 + ], + [ + 1.727216101618143, + 1.7314760729113563 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8693640578908688, + "scoreError" : 0.0038641087706285395, + "scoreConfidence" : [ + 0.8654999491202402, + 0.8732281666614974 + ], + "scorePercentiles" : { + "0.0" : 0.868835145795416, + "50.0" : 0.8692360046799832, + "90.0" : 0.8701490764080931, + "95.0" : 0.8701490764080931, + "99.0" : 0.8701490764080931, + "99.9" : 0.8701490764080931, + "99.99" : 0.8701490764080931, + "99.999" : 0.8701490764080931, + "99.9999" : 0.8701490764080931, + "100.0" : 0.8701490764080931 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.868835145795416, + 0.8701490764080931 + ], + [ + 0.8695042632942258, + 0.8689677460657406 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 41.223752010392595, + "scoreError" : 3.8144464636708864, + "scoreConfidence" : [ + 37.40930554672171, + 45.03819847406348 + ], + "scorePercentiles" : { + "0.0" : 38.2336896832272, + "50.0" : 40.18837813592528, + "90.0" : 44.30468594681641, + "95.0" : 44.30468594681641, + "99.0" : 44.30468594681641, + "99.9" : 44.30468594681641, + "99.99" : 44.30468594681641, + "99.999" : 44.30468594681641, + "99.9999" : 44.30468594681641, + "100.0" : 44.30468594681641 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 38.2336896832272, + 39.53191823714816, + 40.70619870358236 + ], + [ + 44.30468594681641, + 44.16707605948855, + 43.861664961843516 + ], + [ + 39.91624959318406, + 40.18837813592528, + 40.10390677231785 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.023235785904743733, + "scoreError" : 7.768693990131797E-4, + "scoreConfidence" : [ + 0.022458916505730554, + 0.024012655303756913 + ], + "scorePercentiles" : { + "0.0" : 0.022705058088435374, + "50.0" : 0.023171598224537036, + "90.0" : 0.024077781197115386, + "95.0" : 0.024077781197115386, + "99.0" : 0.024077781197115386, + "99.9" : 0.024077781197115386, + "99.99" : 0.024077781197115386, + "99.999" : 0.024077781197115386, + "99.9999" : 0.024077781197115386, + "100.0" : 0.024077781197115386 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.024077781197115386, + 0.023737192085308056, + 0.023171598224537036 + ], + [ + 0.02332228789044289, + 0.023445212770491802, + 0.02302199960229885 + ], + [ + 0.022924428318077804, + 0.022705058088435374, + 0.022716514965986395 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-22T03:36:34Z-e4d3a7176e2072ff6894cde18b4cf6229364bb47-jdk17.json b/performance-results/2025-01-22T03:36:34Z-e4d3a7176e2072ff6894cde18b4cf6229364bb47-jdk17.json new file mode 100644 index 000000000..926032db2 --- /dev/null +++ b/performance-results/2025-01-22T03:36:34Z-e4d3a7176e2072ff6894cde18b4cf6229364bb47-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4237503712681403, + "scoreError" : 0.029687066333119228, + "scoreConfidence" : [ + 3.3940633049350213, + 3.4534374376012593 + ], + "scorePercentiles" : { + "0.0" : 3.419633132532349, + "50.0" : 3.4229857951413147, + "90.0" : 3.4293967622575843, + "95.0" : 3.4293967622575843, + "99.0" : 3.4293967622575843, + "99.9" : 3.4293967622575843, + "99.99" : 3.4293967622575843, + "99.999" : 3.4293967622575843, + "99.9999" : 3.4293967622575843, + "100.0" : 3.4293967622575843 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.419633132532349, + 3.425565998706806 + ], + [ + 3.4204055915758236, + 3.4293967622575843 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7296696232543467, + "scoreError" : 0.01459335969739169, + "scoreConfidence" : [ + 1.715076263556955, + 1.7442629829517384 + ], + "scorePercentiles" : { + "0.0" : 1.7270073570666922, + "50.0" : 1.729745390562144, + "90.0" : 1.732180354826406, + "95.0" : 1.732180354826406, + "99.0" : 1.732180354826406, + "99.9" : 1.732180354826406, + "99.99" : 1.732180354826406, + "99.999" : 1.732180354826406, + "99.9999" : 1.732180354826406, + "100.0" : 1.732180354826406 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7287713875849016, + 1.732180354826406 + ], + [ + 1.7270073570666922, + 1.7307193935393865 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8696333686305204, + "scoreError" : 0.005541304741506886, + "scoreConfidence" : [ + 0.8640920638890135, + 0.8751746733720274 + ], + "scorePercentiles" : { + "0.0" : 0.8688071395118665, + "50.0" : 0.8696504293139969, + "90.0" : 0.8704254763822215, + "95.0" : 0.8704254763822215, + "99.0" : 0.8704254763822215, + "99.9" : 0.8704254763822215, + "99.99" : 0.8704254763822215, + "99.999" : 0.8704254763822215, + "99.9999" : 0.8704254763822215, + "100.0" : 0.8704254763822215 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8704254763822215, + 0.870319520460667 + ], + [ + 0.8688071395118665, + 0.8689813381673269 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 44.36501878810898, + "scoreError" : 1.0694255389554572, + "scoreConfidence" : [ + 43.29559324915353, + 45.43444432706444 + ], + "scorePercentiles" : { + "0.0" : 43.87862862432957, + "50.0" : 43.94274487526744, + "90.0" : 45.26941974191114, + "95.0" : 45.26941974191114, + "99.0" : 45.26941974191114, + "99.9" : 45.26941974191114, + "99.99" : 45.26941974191114, + "99.999" : 45.26941974191114, + "99.9999" : 45.26941974191114, + "100.0" : 45.26941974191114 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 43.89429547541287, + 43.94274487526744, + 43.92535377650392 + ], + [ + 45.175535730731454, + 45.175776703355886, + 45.26941974191114 + ], + [ + 44.1308230548884, + 43.87862862432957, + 43.892591110580156 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022229747564292305, + "scoreError" : 8.487147291876869E-4, + "scoreConfidence" : [ + 0.02138103283510462, + 0.02307846229347999 + ], + "scorePercentiles" : { + "0.0" : 0.021779635182608694, + "50.0" : 0.02198335262857143, + "90.0" : 0.022899222466819222, + "95.0" : 0.022899222466819222, + "99.0" : 0.022899222466819222, + "99.9" : 0.022899222466819222, + "99.99" : 0.022899222466819222, + "99.999" : 0.022899222466819222, + "99.9999" : 0.022899222466819222, + "100.0" : 0.022899222466819222 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.022899222466819222, + 0.022884819782608697, + 0.022899069610983983 + ], + [ + 0.021779635182608694, + 0.02181247005882353, + 0.021822282640522876 + ], + [ + 0.022003539923076923, + 0.021983335784615386, + 0.02198335262857143 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-22T23:12:51Z-b3fa90f639e0563a19b7e3fbda0da85b68aad6e9-jdk17.json b/performance-results/2025-01-22T23:12:51Z-b3fa90f639e0563a19b7e3fbda0da85b68aad6e9-jdk17.json new file mode 100644 index 000000000..757c5e369 --- /dev/null +++ b/performance-results/2025-01-22T23:12:51Z-b3fa90f639e0563a19b7e3fbda0da85b68aad6e9-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4105040447860073, + "scoreError" : 0.015189749299248573, + "scoreConfidence" : [ + 3.3953142954867586, + 3.425693794085256 + ], + "scorePercentiles" : { + "0.0" : 3.4073899492105153, + "50.0" : 3.4107651539923443, + "90.0" : 3.4130959219488255, + "95.0" : 3.4130959219488255, + "99.0" : 3.4130959219488255, + "99.9" : 3.4130959219488255, + "99.99" : 3.4130959219488255, + "99.999" : 3.4130959219488255, + "99.9999" : 3.4130959219488255, + "100.0" : 3.4130959219488255 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.410876097631111, + 3.4106542103535773 + ], + [ + 3.4073899492105153, + 3.4130959219488255 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.721583114673582, + "scoreError" : 0.006425157612156726, + "scoreConfidence" : [ + 1.7151579570614253, + 1.7280082722857388 + ], + "scorePercentiles" : { + "0.0" : 1.7207681098037457, + "50.0" : 1.7212982503350518, + "90.0" : 1.7229678482204793, + "95.0" : 1.7229678482204793, + "99.0" : 1.7229678482204793, + "99.9" : 1.7229678482204793, + "99.99" : 1.7229678482204793, + "99.999" : 1.7229678482204793, + "99.9999" : 1.7229678482204793, + "100.0" : 1.7229678482204793 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7216313296507169, + 1.7229678482204793 + ], + [ + 1.7207681098037457, + 1.7209651710193865 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8657441060642906, + "scoreError" : 0.002785758573795765, + "scoreConfidence" : [ + 0.8629583474904948, + 0.8685298646380865 + ], + "scorePercentiles" : { + "0.0" : 0.8653771382765126, + "50.0" : 0.8656275904190045, + "90.0" : 0.8663441051426409, + "95.0" : 0.8663441051426409, + "99.0" : 0.8663441051426409, + "99.9" : 0.8663441051426409, + "99.99" : 0.8663441051426409, + "99.999" : 0.8663441051426409, + "99.9999" : 0.8663441051426409, + "100.0" : 0.8663441051426409 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8653771382765126, + 0.8654939424156864 + ], + [ + 0.8663441051426409, + 0.8657612384223224 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 41.17225098673794, + "scoreError" : 3.22722044059398, + "scoreConfidence" : [ + 37.94503054614396, + 44.399471427331925 + ], + "scorePercentiles" : { + "0.0" : 39.366693887369976, + "50.0" : 40.2648390876238, + "90.0" : 43.70997475241803, + "95.0" : 43.70997475241803, + "99.0" : 43.70997475241803, + "99.9" : 43.70997475241803, + "99.99" : 43.70997475241803, + "99.999" : 43.70997475241803, + "99.9999" : 43.70997475241803, + "100.0" : 43.70997475241803 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 43.69435426122478, + 43.70997475241803, + 43.68716268451894 + ], + [ + 40.14696818355368, + 40.364255215826645, + 40.2648390876238 + ], + [ + 39.366693887369976, + 39.60165914823881, + 39.714351659866864 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02469539257718066, + "scoreError" : 8.108306476004372E-4, + "scoreConfidence" : [ + 0.023884561929580224, + 0.025506223224781098 + ], + "scorePercentiles" : { + "0.0" : 0.023942090337320573, + "50.0" : 0.024977390805486284, + "90.0" : 0.02509696658897243, + "95.0" : 0.02509696658897243, + "99.0" : 0.02509696658897243, + "99.9" : 0.02509696658897243, + "99.99" : 0.02509696658897243, + "99.999" : 0.02509696658897243, + "99.9999" : 0.02509696658897243, + "100.0" : 0.02509696658897243 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.023942090337320573, + 0.024220828239709443, + 0.024023169163069544 + ], + [ + 0.024977390805486284, + 0.024933186425373136, + 0.02502382824 + ], + [ + 0.024994583122194512, + 0.0250464902725, + 0.02509696658897243 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-23T23:55:34Z-2551254d88f6abb0cd6b9b66b53102915ec41ec2-jdk17.json b/performance-results/2025-01-23T23:55:34Z-2551254d88f6abb0cd6b9b66b53102915ec41ec2-jdk17.json new file mode 100644 index 000000000..0bda0220f --- /dev/null +++ b/performance-results/2025-01-23T23:55:34Z-2551254d88f6abb0cd6b9b66b53102915ec41ec2-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4099306926639925, + "scoreError" : 0.02395335305028509, + "scoreConfidence" : [ + 3.3859773396137074, + 3.4338840457142776 + ], + "scorePercentiles" : { + "0.0" : 3.40582898025533, + "50.0" : 3.4096702375154466, + "90.0" : 3.414553315369746, + "95.0" : 3.414553315369746, + "99.0" : 3.414553315369746, + "99.9" : 3.414553315369746, + "99.99" : 3.414553315369746, + "99.999" : 3.414553315369746, + "99.9999" : 3.414553315369746, + "100.0" : 3.414553315369746 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.408467549843088, + 3.414553315369746 + ], + [ + 3.40582898025533, + 3.410872925187805 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7232751528014894, + "scoreError" : 0.009671040518753964, + "scoreConfidence" : [ + 1.7136041122827355, + 1.7329461933202432 + ], + "scorePercentiles" : { + "0.0" : 1.7211199198884921, + "50.0" : 1.723842197697369, + "90.0" : 1.724296295922727, + "95.0" : 1.724296295922727, + "99.0" : 1.724296295922727, + "99.9" : 1.724296295922727, + "99.99" : 1.724296295922727, + "99.999" : 1.724296295922727, + "99.9999" : 1.724296295922727, + "100.0" : 1.724296295922727 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7211199198884921, + 1.723401385599165 + ], + [ + 1.7242830097955733, + 1.724296295922727 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8670588236163693, + "scoreError" : 0.005759442186378244, + "scoreConfidence" : [ + 0.8612993814299911, + 0.8728182658027476 + ], + "scorePercentiles" : { + "0.0" : 0.8661195610548678, + "50.0" : 0.8670034186931103, + "90.0" : 0.868108896024389, + "95.0" : 0.868108896024389, + "99.0" : 0.868108896024389, + "99.9" : 0.868108896024389, + "99.99" : 0.868108896024389, + "99.999" : 0.868108896024389, + "99.9999" : 0.868108896024389, + "100.0" : 0.868108896024389 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8674462136623503, + 0.868108896024389 + ], + [ + 0.8661195610548678, + 0.8665606237238702 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 41.83462677585385, + "scoreError" : 1.920978041265327, + "scoreConfidence" : [ + 39.91364873458852, + 43.75560481711918 + ], + "scorePercentiles" : { + "0.0" : 40.19477434571843, + "50.0" : 42.437967904570684, + "90.0" : 42.93846254059917, + "95.0" : 42.93846254059917, + "99.0" : 42.93846254059917, + "99.9" : 42.93846254059917, + "99.99" : 42.93846254059917, + "99.999" : 42.93846254059917, + "99.9999" : 42.93846254059917, + "100.0" : 42.93846254059917 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 42.241582636916014, + 42.45421817350641, + 42.437967904570684 + ], + [ + 42.712603840570935, + 42.70835342137284, + 42.93846254059917 + ], + [ + 40.19477434571843, + 40.25337275926056, + 40.570305360169606 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.024205050051165463, + "scoreError" : 0.0013802366621486247, + "scoreConfidence" : [ + 0.02282481338901684, + 0.025585286713314087 + ], + "scorePercentiles" : { + "0.0" : 0.02336303003962704, + "50.0" : 0.023876212723150356, + "90.0" : 0.02530103744191919, + "95.0" : 0.02530103744191919, + "99.0" : 0.02530103744191919, + "99.9" : 0.02530103744191919, + "99.99" : 0.02530103744191919, + "99.999" : 0.02530103744191919, + "99.9999" : 0.02530103744191919, + "100.0" : 0.02530103744191919 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.024042493644230768, + 0.02386281233095238, + 0.023876212723150356 + ], + [ + 0.02336303003962704, + 0.02347626125117371, + 0.023449581548009368 + ], + [ + 0.02530103744191919, + 0.025278192126262627, + 0.025195829355163728 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-27T22:22:57Z-a66c24b4e98169967f6753bd6abebb1b15820fd5-jdk17.json b/performance-results/2025-01-27T22:22:57Z-a66c24b4e98169967f6753bd6abebb1b15820fd5-jdk17.json new file mode 100644 index 000000000..4a8eef6b6 --- /dev/null +++ b/performance-results/2025-01-27T22:22:57Z-a66c24b4e98169967f6753bd6abebb1b15820fd5-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4060502209625665, + "scoreError" : 0.021580257949835764, + "scoreConfidence" : [ + 3.3844699630127306, + 3.4276304789124024 + ], + "scorePercentiles" : { + "0.0" : 3.401427352349789, + "50.0" : 3.4070054913200853, + "90.0" : 3.408762548860305, + "95.0" : 3.408762548860305, + "99.0" : 3.408762548860305, + "99.9" : 3.408762548860305, + "99.99" : 3.408762548860305, + "99.999" : 3.408762548860305, + "99.9999" : 3.408762548860305, + "100.0" : 3.408762548860305 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.401427352349789, + 3.408762548860305 + ], + [ + 3.4058002030403016, + 3.408210779599869 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7215522864016763, + "scoreError" : 0.005696764733470336, + "scoreConfidence" : [ + 1.715855521668206, + 1.7272490511351466 + ], + "scorePercentiles" : { + "0.0" : 1.7203910519779488, + "50.0" : 1.7217467656558114, + "90.0" : 1.722324562317134, + "95.0" : 1.722324562317134, + "99.0" : 1.722324562317134, + "99.9" : 1.722324562317134, + "99.99" : 1.722324562317134, + "99.999" : 1.722324562317134, + "99.9999" : 1.722324562317134, + "100.0" : 1.722324562317134 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7203910519779488, + 1.7221411217652358 + ], + [ + 1.721352409546387, + 1.722324562317134 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8646527287713972, + "scoreError" : 0.00856950365882502, + "scoreConfidence" : [ + 0.8560832251125722, + 0.8732222324302222 + ], + "scorePercentiles" : { + "0.0" : 0.8630999525475413, + "50.0" : 0.8646080545802135, + "90.0" : 0.8662948533776209, + "95.0" : 0.8662948533776209, + "99.0" : 0.8662948533776209, + "99.9" : 0.8662948533776209, + "99.99" : 0.8662948533776209, + "99.999" : 0.8662948533776209, + "99.9999" : 0.8662948533776209, + "100.0" : 0.8662948533776209 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8662948533776209, + 0.8648946418419918 + ], + [ + 0.8630999525475413, + 0.8643214673184352 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 41.571094678999174, + "scoreError" : 0.9886983334392854, + "scoreConfidence" : [ + 40.582396345559886, + 42.55979301243846 + ], + "scorePercentiles" : { + "0.0" : 40.64766694582536, + "50.0" : 41.79030375939435, + "90.0" : 42.290871079881434, + "95.0" : 42.290871079881434, + "99.0" : 42.290871079881434, + "99.9" : 42.290871079881434, + "99.99" : 42.290871079881434, + "99.999" : 42.290871079881434, + "99.9999" : 42.290871079881434, + "100.0" : 42.290871079881434 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 42.290871079881434, + 42.118215951762124, + 42.099304911006406 + ], + [ + 41.79030375939435, + 41.81089696054987, + 40.87654670117831 + ], + [ + 40.64766694582536, + 41.13077840122415, + 41.3752674001706 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.024796778092981732, + "scoreError" : 0.0013904138007945043, + "scoreConfidence" : [ + 0.023406364292187228, + 0.026187191893776236 + ], + "scorePercentiles" : { + "0.0" : 0.023756459386255924, + "50.0" : 0.024653574322660098, + "90.0" : 0.02602229912987013, + "95.0" : 0.02602229912987013, + "99.0" : 0.02602229912987013, + "99.9" : 0.02602229912987013, + "99.99" : 0.02602229912987013, + "99.999" : 0.02602229912987013, + "99.9999" : 0.02602229912987013, + "100.0" : 0.02602229912987013 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.025637418092071613, + 0.02602229912987013, + 0.025694226674358975 + ], + [ + 0.02384663041190476, + 0.023756459386255924, + 0.02430528267961165 + ], + [ + 0.02434602874209246, + 0.024653574322660098, + 0.02490908339800995 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-27T22:43:23Z-b65ac4194c6302651a21ff3a1a78b0a99f4ba78e-jdk17.json b/performance-results/2025-01-27T22:43:23Z-b65ac4194c6302651a21ff3a1a78b0a99f4ba78e-jdk17.json new file mode 100644 index 000000000..a3742d474 --- /dev/null +++ b/performance-results/2025-01-27T22:43:23Z-b65ac4194c6302651a21ff3a1a78b0a99f4ba78e-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.408427127074759, + "scoreError" : 0.01925153848185639, + "scoreConfidence" : [ + 3.3891755885929022, + 3.4276786655566154 + ], + "scorePercentiles" : { + "0.0" : 3.4053449162452507, + "50.0" : 3.408406543484691, + "90.0" : 3.4115505050844046, + "95.0" : 3.4115505050844046, + "99.0" : 3.4115505050844046, + "99.9" : 3.4115505050844046, + "99.99" : 3.4115505050844046, + "99.999" : 3.4115505050844046, + "99.9999" : 3.4115505050844046, + "100.0" : 3.4115505050844046 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.406486845438764, + 3.4115505050844046 + ], + [ + 3.4053449162452507, + 3.4103262415306177 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7257387687026013, + "scoreError" : 0.008473331075327967, + "scoreConfidence" : [ + 1.7172654376272734, + 1.7342120997779293 + ], + "scorePercentiles" : { + "0.0" : 1.72423397317898, + "50.0" : 1.7256529242770822, + "90.0" : 1.7274152530772604, + "95.0" : 1.7274152530772604, + "99.0" : 1.7274152530772604, + "99.9" : 1.7274152530772604, + "99.99" : 1.7274152530772604, + "99.999" : 1.7274152530772604, + "99.9999" : 1.7274152530772604, + "100.0" : 1.7274152530772604 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.72423397317898, + 1.7254679382487557 + ], + [ + 1.7274152530772604, + 1.725837910305409 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8665575040773247, + "scoreError" : 0.0029564407943501268, + "scoreConfidence" : [ + 0.8636010632829746, + 0.8695139448716748 + ], + "scorePercentiles" : { + "0.0" : 0.8661858451203391, + "50.0" : 0.8664480513236263, + "90.0" : 0.8671480685417073, + "95.0" : 0.8671480685417073, + "99.0" : 0.8671480685417073, + "99.9" : 0.8671480685417073, + "99.99" : 0.8671480685417073, + "99.999" : 0.8671480685417073, + "99.9999" : 0.8671480685417073, + "100.0" : 0.8671480685417073 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8666900187240116, + 0.8661858451203391 + ], + [ + 0.866206083923241, + 0.8671480685417073 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 42.677382462593584, + "scoreError" : 1.2020700735328222, + "scoreConfidence" : [ + 41.47531238906076, + 43.87945253612641 + ], + "scorePercentiles" : { + "0.0" : 41.743276822691925, + "50.0" : 42.730073405675626, + "90.0" : 43.7290083381939, + "95.0" : 43.7290083381939, + "99.0" : 43.7290083381939, + "99.9" : 43.7290083381939, + "99.99" : 43.7290083381939, + "99.999" : 43.7290083381939, + "99.9999" : 43.7290083381939, + "100.0" : 43.7290083381939 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 42.865228348309664, + 43.30915071935464, + 42.23165861844071 + ], + [ + 42.730073405675626, + 43.7290083381939, + 43.44903173965612 + ], + [ + 41.924035090602636, + 42.11497908041706, + 41.743276822691925 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.023553876284725203, + "scoreError" : 5.593054909302037E-4, + "scoreConfidence" : [ + 0.022994570793795, + 0.024113181775655405 + ], + "scorePercentiles" : { + "0.0" : 0.022851900970319635, + "50.0" : 0.02365095373995272, + "90.0" : 0.02389461776849642, + "95.0" : 0.02389461776849642, + "99.0" : 0.02389461776849642, + "99.9" : 0.02389461776849642, + "99.99" : 0.02389461776849642, + "99.999" : 0.02389461776849642, + "99.9999" : 0.02389461776849642, + "100.0" : 0.02389461776849642 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02344361818032787, + 0.023304230553488372, + 0.022851900970319635 + ], + [ + 0.023773622921615202, + 0.02389461776849642, + 0.02389178353699284 + ], + [ + 0.023707024319905214, + 0.02365095373995272, + 0.02346713457142857 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-01-28T23:02:55Z-ece8f57e9b04eb1d14a3555192bb626d8315bc71-jdk17.json b/performance-results/2025-01-28T23:02:55Z-ece8f57e9b04eb1d14a3555192bb626d8315bc71-jdk17.json new file mode 100644 index 000000000..5ef4290df --- /dev/null +++ b/performance-results/2025-01-28T23:02:55Z-ece8f57e9b04eb1d14a3555192bb626d8315bc71-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.421774272094884, + "scoreError" : 0.02565110456140225, + "scoreConfidence" : [ + 3.396123167533482, + 3.447425376656286 + ], + "scorePercentiles" : { + "0.0" : 3.417929940473629, + "50.0" : 3.4209231454561904, + "90.0" : 3.427320856993527, + "95.0" : 3.427320856993527, + "99.0" : 3.427320856993527, + "99.9" : 3.427320856993527, + "99.99" : 3.427320856993527, + "99.999" : 3.427320856993527, + "99.9999" : 3.427320856993527, + "100.0" : 3.427320856993527 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.417929940473629, + 3.420549417579972 + ], + [ + 3.421296873332408, + 3.427320856993527 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.72756042853176, + "scoreError" : 0.012153093372248453, + "scoreConfidence" : [ + 1.7154073351595116, + 1.7397135219040085 + ], + "scorePercentiles" : { + "0.0" : 1.7249582673227821, + "50.0" : 1.7279662835519356, + "90.0" : 1.7293508797003863, + "95.0" : 1.7293508797003863, + "99.0" : 1.7293508797003863, + "99.9" : 1.7293508797003863, + "99.99" : 1.7293508797003863, + "99.999" : 1.7293508797003863, + "99.9999" : 1.7293508797003863, + "100.0" : 1.7293508797003863 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7249582673227821, + 1.7283566391748764 + ], + [ + 1.727575927928995, + 1.7293508797003863 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8700223920340285, + "scoreError" : 0.010218700290680633, + "scoreConfidence" : [ + 0.8598036917433479, + 0.8802410923247092 + ], + "scorePercentiles" : { + "0.0" : 0.8685012135337304, + "50.0" : 0.8698338176924882, + "90.0" : 0.8719207192174072, + "95.0" : 0.8719207192174072, + "99.0" : 0.8719207192174072, + "99.9" : 0.8719207192174072, + "99.99" : 0.8719207192174072, + "99.999" : 0.8719207192174072, + "99.9999" : 0.8719207192174072, + "100.0" : 0.8719207192174072 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8707036745599296, + 0.8719207192174072 + ], + [ + 0.8685012135337304, + 0.8689639608250469 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 45.339925200263075, + "scoreError" : 2.0723545765171996, + "scoreConfidence" : [ + 43.267570623745875, + 47.412279776780274 + ], + "scorePercentiles" : { + "0.0" : 43.81296578444052, + "50.0" : 45.38453023809995, + "90.0" : 46.800269388776904, + "95.0" : 46.800269388776904, + "99.0" : 46.800269388776904, + "99.9" : 46.800269388776904, + "99.99" : 46.800269388776904, + "99.999" : 46.800269388776904, + "99.9999" : 46.800269388776904, + "100.0" : 46.800269388776904 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 46.800269388776904, + 46.71346073074192, + 46.75431722626851 + ], + [ + 45.38453023809995, + 45.42450404274816, + 45.24527092665326 + ], + [ + 43.81296578444052, + 43.96259264756082, + 43.96141581707756 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022398155993954644, + "scoreError" : 6.89912700021175E-4, + "scoreConfidence" : [ + 0.02170824329393347, + 0.023088068693975818 + ], + "scorePercentiles" : { + "0.0" : 0.021928783170678336, + "50.0" : 0.02232751393080357, + "90.0" : 0.022923588995423343, + "95.0" : 0.022923588995423343, + "99.0" : 0.022923588995423343, + "99.9" : 0.022923588995423343, + "99.99" : 0.022923588995423343, + "99.999" : 0.022923588995423343, + "99.9999" : 0.022923588995423343, + "100.0" : 0.022923588995423343 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02240651148769575, + 0.02232751393080357, + 0.022318053033407573 + ], + [ + 0.022923588995423343, + 0.02292196304347826, + 0.022829846011389522 + ], + [ + 0.021928783170678336, + 0.02199617635824176, + 0.021930967914473683 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-02T22:32:54Z-559cbaccc777fd7e229f8071a8701412191d3867-jdk17.json b/performance-results/2025-02-02T22:32:54Z-559cbaccc777fd7e229f8071a8701412191d3867-jdk17.json new file mode 100644 index 000000000..f13fb309b --- /dev/null +++ b/performance-results/2025-02-02T22:32:54Z-559cbaccc777fd7e229f8071a8701412191d3867-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.422004543886982, + "scoreError" : 0.037274354718148585, + "scoreConfidence" : [ + 3.3847301891688333, + 3.4592788986051306 + ], + "scorePercentiles" : { + "0.0" : 3.4150603098850625, + "50.0" : 3.4222557397499918, + "90.0" : 3.428446386162883, + "95.0" : 3.428446386162883, + "99.0" : 3.428446386162883, + "99.9" : 3.428446386162883, + "99.99" : 3.428446386162883, + "99.999" : 3.428446386162883, + "99.9999" : 3.428446386162883, + "100.0" : 3.428446386162883 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.424488689195108, + 3.428446386162883 + ], + [ + 3.4150603098850625, + 3.4200227903048757 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7266312356699343, + "scoreError" : 0.01275265278475576, + "scoreConfidence" : [ + 1.7138785828851786, + 1.73938388845469 + ], + "scorePercentiles" : { + "0.0" : 1.7253973345774025, + "50.0" : 1.7257740764391891, + "90.0" : 1.7295794552239565, + "95.0" : 1.7295794552239565, + "99.0" : 1.7295794552239565, + "99.9" : 1.7295794552239565, + "99.99" : 1.7295794552239565, + "99.999" : 1.7295794552239565, + "99.9999" : 1.7295794552239565, + "100.0" : 1.7295794552239565 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.725774269697518, + 1.7295794552239565 + ], + [ + 1.7253973345774025, + 1.7257738831808604 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8685221843173088, + "scoreError" : 0.0028393507308871763, + "scoreConfidence" : [ + 0.8656828335864216, + 0.8713615350481959 + ], + "scorePercentiles" : { + "0.0" : 0.8679815361027219, + "50.0" : 0.8685252892748702, + "90.0" : 0.8690566226167731, + "95.0" : 0.8690566226167731, + "99.0" : 0.8690566226167731, + "99.9" : 0.8690566226167731, + "99.99" : 0.8690566226167731, + "99.999" : 0.8690566226167731, + "99.9999" : 0.8690566226167731, + "100.0" : 0.8690566226167731 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8685503260697689, + 0.8690566226167731 + ], + [ + 0.8679815361027219, + 0.8685002524799714 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 45.15939026975822, + "scoreError" : 3.2726275519079855, + "scoreConfidence" : [ + 41.88676271785023, + 48.43201782166621 + ], + "scorePercentiles" : { + "0.0" : 43.32162148701893, + "50.0" : 44.476019988835475, + "90.0" : 47.73912870583933, + "95.0" : 47.73912870583933, + "99.0" : 47.73912870583933, + "99.9" : 47.73912870583933, + "99.99" : 47.73912870583933, + "99.999" : 47.73912870583933, + "99.9999" : 47.73912870583933, + "100.0" : 47.73912870583933 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 47.73912870583933, + 47.64792793812885, + 47.641556164042235 + ], + [ + 44.3975721232082, + 44.48295546595411, + 44.476019988835475 + ], + [ + 43.328343957387034, + 43.32162148701893, + 43.39938659740977 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02224196911386321, + "scoreError" : 5.718797688838376E-4, + "scoreConfidence" : [ + 0.021670089344979375, + 0.022813848882747047 + ], + "scorePercentiles" : { + "0.0" : 0.022001641415384614, + "50.0" : 0.022020313514285714, + "90.0" : 0.022701417299319727, + "95.0" : 0.022701417299319727, + "99.0" : 0.022701417299319727, + "99.9" : 0.022701417299319727, + "99.99" : 0.022701417299319727, + "99.999" : 0.022701417299319727, + "99.9999" : 0.022701417299319727, + "100.0" : 0.022701417299319727 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.022018342547252746, + 0.022017725931868133, + 0.02202387962197802 + ], + [ + 0.022001641415384614, + 0.022008949474725276, + 0.022020313514285714 + ], + [ + 0.022696075142857142, + 0.022689377077097506, + 0.022701417299319727 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-03T23:19:46Z-ee7382895dde50d5e203c473aaedbf2a8b1796a5-jdk17.json b/performance-results/2025-02-03T23:19:46Z-ee7382895dde50d5e203c473aaedbf2a8b1796a5-jdk17.json new file mode 100644 index 000000000..1d6ace239 --- /dev/null +++ b/performance-results/2025-02-03T23:19:46Z-ee7382895dde50d5e203c473aaedbf2a8b1796a5-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4002502019051217, + "scoreError" : 0.03940721118245434, + "scoreConfidence" : [ + 3.3608429907226673, + 3.439657413087576 + ], + "scorePercentiles" : { + "0.0" : 3.393090154110096, + "50.0" : 3.4002891548424987, + "90.0" : 3.4073323438253937, + "95.0" : 3.4073323438253937, + "99.0" : 3.4073323438253937, + "99.9" : 3.4073323438253937, + "99.99" : 3.4073323438253937, + "99.999" : 3.4073323438253937, + "99.9999" : 3.4073323438253937, + "100.0" : 3.4073323438253937 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.398037257321173, + 3.4073323438253937 + ], + [ + 3.393090154110096, + 3.402541052363824 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7210546490132013, + "scoreError" : 0.012387317274444386, + "scoreConfidence" : [ + 1.7086673317387568, + 1.7334419662876457 + ], + "scorePercentiles" : { + "0.0" : 1.718746930977431, + "50.0" : 1.7210793200388954, + "90.0" : 1.7233130249975834, + "95.0" : 1.7233130249975834, + "99.0" : 1.7233130249975834, + "99.9" : 1.7233130249975834, + "99.99" : 1.7233130249975834, + "99.999" : 1.7233130249975834, + "99.9999" : 1.7233130249975834, + "100.0" : 1.7233130249975834 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7205329400600824, + 1.7233130249975834 + ], + [ + 1.718746930977431, + 1.7216257000177082 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.864706321488554, + "scoreError" : 0.0030292477814532876, + "scoreConfidence" : [ + 0.8616770737071007, + 0.8677355692700073 + ], + "scorePercentiles" : { + "0.0" : 0.8640312899876621, + "50.0" : 0.8648396757094557, + "90.0" : 0.865114644547642, + "95.0" : 0.865114644547642, + "99.0" : 0.865114644547642, + "99.9" : 0.865114644547642, + "99.99" : 0.865114644547642, + "99.999" : 0.865114644547642, + "99.9999" : 0.865114644547642, + "100.0" : 0.865114644547642 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8648141750571403, + 0.8648651763617712 + ], + [ + 0.8640312899876621, + 0.865114644547642 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 40.49237253367603, + "scoreError" : 1.4784498919336293, + "scoreConfidence" : [ + 39.013922641742404, + 41.97082242560966 + ], + "scorePercentiles" : { + "0.0" : 39.21798489494184, + "50.0" : 40.632274190391094, + "90.0" : 41.860872454143184, + "95.0" : 41.860872454143184, + "99.0" : 41.860872454143184, + "99.9" : 41.860872454143184, + "99.99" : 41.860872454143184, + "99.999" : 41.860872454143184, + "99.9999" : 41.860872454143184, + "100.0" : 41.860872454143184 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 40.632274190391094, + 39.21798489494184, + 40.52013138493316 + ], + [ + 41.860872454143184, + 41.10434763868566, + 41.21868290029448 + ], + [ + 40.698457638341345, + 39.81248540885506, + 39.36611629249843 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02505365998153623, + "scoreError" : 7.321224107054102E-4, + "scoreConfidence" : [ + 0.02432153757083082, + 0.02578578239224164 + ], + "scorePercentiles" : { + "0.0" : 0.024503543127139364, + "50.0" : 0.025069455263157896, + "90.0" : 0.025665329338461537, + "95.0" : 0.025665329338461537, + "99.0" : 0.025665329338461537, + "99.9" : 0.025665329338461537, + "99.99" : 0.025665329338461537, + "99.999" : 0.025665329338461537, + "99.9999" : 0.025665329338461537, + "100.0" : 0.025665329338461537 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.025069455263157896, + 0.02473229191111111, + 0.02461288542997543 + ], + [ + 0.025665329338461537, + 0.025577278539641944, + 0.025356023572151897 + ], + [ + 0.024503543127139364, + 0.024692934773399015, + 0.02527319787878788 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-04T22:18:16Z-83fb2f9750acdea86a5d42a99eacfe75343bdb6e-jdk17.json b/performance-results/2025-02-04T22:18:16Z-83fb2f9750acdea86a5d42a99eacfe75343bdb6e-jdk17.json new file mode 100644 index 000000000..7a1d3a9af --- /dev/null +++ b/performance-results/2025-02-04T22:18:16Z-83fb2f9750acdea86a5d42a99eacfe75343bdb6e-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.427046433766062, + "scoreError" : 0.04365548760091392, + "scoreConfidence" : [ + 3.383390946165148, + 3.470701921366976 + ], + "scorePercentiles" : { + "0.0" : 3.4187459374535316, + "50.0" : 3.4274414136872613, + "90.0" : 3.4345569702361933, + "95.0" : 3.4345569702361933, + "99.0" : 3.4345569702361933, + "99.9" : 3.4345569702361933, + "99.99" : 3.4345569702361933, + "99.999" : 3.4345569702361933, + "99.9999" : 3.4345569702361933, + "100.0" : 3.4345569702361933 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4187459374535316, + 3.425064288111735 + ], + [ + 3.429818539262788, + 3.4345569702361933 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7279093977892266, + "scoreError" : 0.01145621864072765, + "scoreConfidence" : [ + 1.716453179148499, + 1.7393656164299542 + ], + "scorePercentiles" : { + "0.0" : 1.7260944011710606, + "50.0" : 1.7276465395017473, + "90.0" : 1.7302501109823514, + "95.0" : 1.7302501109823514, + "99.0" : 1.7302501109823514, + "99.9" : 1.7302501109823514, + "99.99" : 1.7302501109823514, + "99.999" : 1.7302501109823514, + "99.9999" : 1.7302501109823514, + "100.0" : 1.7302501109823514 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7271377249156863, + 1.7302501109823514 + ], + [ + 1.7260944011710606, + 1.728155354087808 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8699132212785552, + "scoreError" : 0.003846909616339744, + "scoreConfidence" : [ + 0.8660663116622155, + 0.8737601308948949 + ], + "scorePercentiles" : { + "0.0" : 0.8695145403196621, + "50.0" : 0.8696695386461242, + "90.0" : 0.8707992675023106, + "95.0" : 0.8707992675023106, + "99.0" : 0.8707992675023106, + "99.9" : 0.8707992675023106, + "99.99" : 0.8707992675023106, + "99.999" : 0.8707992675023106, + "99.9999" : 0.8707992675023106, + "100.0" : 0.8707992675023106 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8696838162153353, + 0.8707992675023106 + ], + [ + 0.8696552610769129, + 0.8695145403196621 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 44.49448131762865, + "scoreError" : 1.1498204083528643, + "scoreConfidence" : [ + 43.34466090927578, + 45.644301725981514 + ], + "scorePercentiles" : { + "0.0" : 43.9067707953283, + "50.0" : 44.18457675048271, + "90.0" : 45.430707798776275, + "95.0" : 45.430707798776275, + "99.0" : 45.430707798776275, + "99.9" : 45.430707798776275, + "99.99" : 45.430707798776275, + "99.999" : 45.430707798776275, + "99.9999" : 45.430707798776275, + "100.0" : 45.430707798776275 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.054179446201815, + 44.19728125286074, + 44.18457675048271 + ], + [ + 43.9067707953283, + 43.946569962393944, + 43.96958858794671 + ], + [ + 45.37186589053077, + 45.38879137413653, + 45.430707798776275 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.0223351247933896, + "scoreError" : 7.66788561808646E-4, + "scoreConfidence" : [ + 0.021568336231580953, + 0.023101913355198244 + ], + "scorePercentiles" : { + "0.0" : 0.021752088417391305, + "50.0" : 0.02243793969955157, + "90.0" : 0.022811016271070614, + "95.0" : 0.022811016271070614, + "99.0" : 0.022811016271070614, + "99.9" : 0.022811016271070614, + "99.99" : 0.022811016271070614, + "99.999" : 0.022811016271070614, + "99.9999" : 0.022811016271070614, + "100.0" : 0.022811016271070614 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.021754917986956522, + 0.021752088417391305, + 0.02177836983478261 + ], + [ + 0.02246497825560538, + 0.02243793969955157, + 0.02243549151569507 + ], + [ + 0.02279936298861048, + 0.022811016271070614, + 0.022781958170842824 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-05T03:30:40Z-43f8ace3d9fbada18046c602b0b205dc562e8aa7-jdk17.json b/performance-results/2025-02-05T03:30:40Z-43f8ace3d9fbada18046c602b0b205dc562e8aa7-jdk17.json new file mode 100644 index 000000000..2a129ecd0 --- /dev/null +++ b/performance-results/2025-02-05T03:30:40Z-43f8ace3d9fbada18046c602b0b205dc562e8aa7-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.422693724848574, + "scoreError" : 0.034923902189520864, + "scoreConfidence" : [ + 3.387769822659053, + 3.4576176270380947 + ], + "scorePercentiles" : { + "0.0" : 3.4170249463534113, + "50.0" : 3.4220117595222, + "90.0" : 3.4297264339964837, + "95.0" : 3.4297264339964837, + "99.0" : 3.4297264339964837, + "99.9" : 3.4297264339964837, + "99.99" : 3.4297264339964837, + "99.999" : 3.4297264339964837, + "99.9999" : 3.4297264339964837, + "100.0" : 3.4297264339964837 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4236089548467903, + 3.4297264339964837 + ], + [ + 3.4170249463534113, + 3.42041456419761 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7300534439742297, + "scoreError" : 0.019032673370126152, + "scoreConfidence" : [ + 1.7110207706041036, + 1.7490861173443557 + ], + "scorePercentiles" : { + "0.0" : 1.7260690976473414, + "50.0" : 1.7304886524743175, + "90.0" : 1.733167373300942, + "95.0" : 1.733167373300942, + "99.0" : 1.733167373300942, + "99.9" : 1.733167373300942, + "99.99" : 1.733167373300942, + "99.999" : 1.733167373300942, + "99.9999" : 1.733167373300942, + "100.0" : 1.733167373300942 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7302956837792431, + 1.733167373300942 + ], + [ + 1.7260690976473414, + 1.7306816211693918 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8698987120372736, + "scoreError" : 0.00377581375645047, + "scoreConfidence" : [ + 0.8661228982808232, + 0.8736745257937241 + ], + "scorePercentiles" : { + "0.0" : 0.8690967971416474, + "50.0" : 0.8700294827105304, + "90.0" : 0.8704390855863859, + "95.0" : 0.8704390855863859, + "99.0" : 0.8704390855863859, + "99.9" : 0.8704390855863859, + "99.99" : 0.8704390855863859, + "99.999" : 0.8704390855863859, + "99.9999" : 0.8704390855863859, + "100.0" : 0.8704390855863859 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8701952932654208, + 0.8704390855863859 + ], + [ + 0.8690967971416474, + 0.8698636721556401 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 44.43585541369755, + "scoreError" : 2.21713038130226, + "scoreConfidence" : [ + 42.21872503239529, + 46.652985794999815 + ], + "scorePercentiles" : { + "0.0" : 42.70591352572246, + "50.0" : 44.91351616811866, + "90.0" : 45.698943042856044, + "95.0" : 45.698943042856044, + "99.0" : 45.698943042856044, + "99.9" : 45.698943042856044, + "99.99" : 45.698943042856044, + "99.999" : 45.698943042856044, + "99.9999" : 45.698943042856044, + "100.0" : 45.698943042856044 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 42.70591352572246, + 42.7354668083411, + 42.75134494654927 + ], + [ + 45.62264437022108, + 45.66645088612438, + 45.698943042856044 + ], + [ + 44.89908833299122, + 44.91351616811866, + 44.92933064235384 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022318768566288623, + "scoreError" : 4.839872571792104E-4, + "scoreConfidence" : [ + 0.021834781309109413, + 0.022802755823467833 + ], + "scorePercentiles" : { + "0.0" : 0.022101342944812363, + "50.0" : 0.022146305756637168, + "90.0" : 0.02271604529478458, + "95.0" : 0.02271604529478458, + "99.0" : 0.02271604529478458, + "99.9" : 0.02271604529478458, + "99.99" : 0.02271604529478458, + "99.999" : 0.02271604529478458, + "99.9999" : 0.02271604529478458, + "100.0" : 0.02271604529478458 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02210229688741722, + 0.022101342944812363, + 0.02212873989159292 + ], + [ + 0.022697511213151927, + 0.02269267171882086, + 0.02271604529478458 + ], + [ + 0.022146305756637168, + 0.02214712675884956, + 0.022136876630530974 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-05T05:02:49Z-d370d0b15b9a50bb15b4b1a494ca29164b68edb4-jdk17.json b/performance-results/2025-02-05T05:02:49Z-d370d0b15b9a50bb15b4b1a494ca29164b68edb4-jdk17.json new file mode 100644 index 000000000..0ab2bd6f9 --- /dev/null +++ b/performance-results/2025-02-05T05:02:49Z-d370d0b15b9a50bb15b4b1a494ca29164b68edb4-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4042371393335316, + "scoreError" : 0.0446872583155137, + "scoreConfidence" : [ + 3.359549881018018, + 3.448924397649045 + ], + "scorePercentiles" : { + "0.0" : 3.394914893117686, + "50.0" : 3.4052290542625556, + "90.0" : 3.4115755556913285, + "95.0" : 3.4115755556913285, + "99.0" : 3.4115755556913285, + "99.9" : 3.4115755556913285, + "99.99" : 3.4115755556913285, + "99.999" : 3.4115755556913285, + "99.9999" : 3.4115755556913285, + "100.0" : 3.4115755556913285 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.394914893117686, + 3.40583895732733 + ], + [ + 3.404619151197781, + 3.4115755556913285 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7184579763646566, + "scoreError" : 0.017984029000478307, + "scoreConfidence" : [ + 1.7004739473641783, + 1.7364420053651348 + ], + "scorePercentiles" : { + "0.0" : 1.7150109700481377, + "50.0" : 1.7185017101631561, + "90.0" : 1.721817515084177, + "95.0" : 1.721817515084177, + "99.0" : 1.721817515084177, + "99.9" : 1.721817515084177, + "99.99" : 1.721817515084177, + "99.999" : 1.721817515084177, + "99.9999" : 1.721817515084177, + "100.0" : 1.721817515084177 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7183229689238861, + 1.721817515084177 + ], + [ + 1.7150109700481377, + 1.718680451402426 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8644166678618949, + "scoreError" : 0.014273824793039343, + "scoreConfidence" : [ + 0.8501428430688556, + 0.8786904926549342 + ], + "scorePercentiles" : { + "0.0" : 0.8625013881061403, + "50.0" : 0.8640499230080323, + "90.0" : 0.8670654373253741, + "95.0" : 0.8670654373253741, + "99.0" : 0.8670654373253741, + "99.9" : 0.8670654373253741, + "99.99" : 0.8670654373253741, + "99.999" : 0.8670654373253741, + "99.9999" : 0.8670654373253741, + "100.0" : 0.8670654373253741 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8654071827075736, + 0.8670654373253741 + ], + [ + 0.8625013881061403, + 0.8626926633084911 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 40.107849203374485, + "scoreError" : 1.8613429979991036, + "scoreConfidence" : [ + 38.24650620537538, + 41.96919220137359 + ], + "scorePercentiles" : { + "0.0" : 38.957375193089185, + "50.0" : 39.87978038106594, + "90.0" : 42.106739336781644, + "95.0" : 42.106739336781644, + "99.0" : 42.106739336781644, + "99.9" : 42.106739336781644, + "99.99" : 42.106739336781644, + "99.999" : 42.106739336781644, + "99.9999" : 42.106739336781644, + "100.0" : 42.106739336781644 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 41.32311514586201, + 39.22873722502622, + 39.40093047378082 + ], + [ + 40.22868330630514, + 42.106739336781644, + 40.820245253788244 + ], + [ + 39.02503651467119, + 38.957375193089185, + 39.87978038106594 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02515763671701217, + "scoreError" : 4.5515478538928604E-4, + "scoreConfidence" : [ + 0.02470248193162288, + 0.025612791502401457 + ], + "scorePercentiles" : { + "0.0" : 0.024772995148514852, + "50.0" : 0.025168438949748743, + "90.0" : 0.02553268769132653, + "95.0" : 0.02553268769132653, + "99.0" : 0.02553268769132653, + "99.9" : 0.02553268769132653, + "99.99" : 0.02553268769132653, + "99.999" : 0.02553268769132653, + "99.9999" : 0.02553268769132653, + "100.0" : 0.02553268769132653 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.024772995148514852, + 0.024887766286069653, + 0.024896308708955223 + ], + [ + 0.02533403954177215, + 0.025328802524050634, + 0.025448840152671754 + ], + [ + 0.02504885145, + 0.025168438949748743, + 0.02553268769132653 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-06T03:25:19Z-b0546d74a3a1974caed0d87930b8867bdd487762-jdk17.json b/performance-results/2025-02-06T03:25:19Z-b0546d74a3a1974caed0d87930b8867bdd487762-jdk17.json new file mode 100644 index 000000000..8d80b209f --- /dev/null +++ b/performance-results/2025-02-06T03:25:19Z-b0546d74a3a1974caed0d87930b8867bdd487762-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.402866252226364, + "scoreError" : 0.0421848378937494, + "scoreConfidence" : [ + 3.360681414332615, + 3.4450510901201135 + ], + "scorePercentiles" : { + "0.0" : 3.397928831896492, + "50.0" : 3.400671059467336, + "90.0" : 3.412194058074291, + "95.0" : 3.412194058074291, + "99.0" : 3.412194058074291, + "99.9" : 3.412194058074291, + "99.99" : 3.412194058074291, + "99.999" : 3.412194058074291, + "99.9999" : 3.412194058074291, + "100.0" : 3.412194058074291 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.397928831896492, + 3.402518546600235 + ], + [ + 3.3988235723344373, + 3.412194058074291 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.718488887939728, + "scoreError" : 0.01413215419536935, + "scoreConfidence" : [ + 1.7043567337443586, + 1.7326210421350974 + ], + "scorePercentiles" : { + "0.0" : 1.7167794743050087, + "50.0" : 1.717892436788207, + "90.0" : 1.7213912038774897, + "95.0" : 1.7213912038774897, + "99.0" : 1.7213912038774897, + "99.9" : 1.7213912038774897, + "99.99" : 1.7213912038774897, + "99.999" : 1.7213912038774897, + "99.9999" : 1.7213912038774897, + "100.0" : 1.7213912038774897 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7168220567730959, + 1.718962816803318 + ], + [ + 1.7167794743050087, + 1.7213912038774897 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8647181507551523, + "scoreError" : 0.007284417772818592, + "scoreConfidence" : [ + 0.8574337329823337, + 0.872002568527971 + ], + "scorePercentiles" : { + "0.0" : 0.8635274440152577, + "50.0" : 0.8646774530881736, + "90.0" : 0.8659902528290045, + "95.0" : 0.8659902528290045, + "99.0" : 0.8659902528290045, + "99.9" : 0.8659902528290045, + "99.99" : 0.8659902528290045, + "99.999" : 0.8659902528290045, + "99.9999" : 0.8659902528290045, + "100.0" : 0.8659902528290045 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8635274440152577, + 0.8640558078024131 + ], + [ + 0.8652990983739342, + 0.8659902528290045 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 39.40515730294485, + "scoreError" : 1.4215726826153885, + "scoreConfidence" : [ + 37.98358462032946, + 40.82672998556024 + ], + "scorePercentiles" : { + "0.0" : 37.93581376773447, + "50.0" : 39.27752387686973, + "90.0" : 40.343217369362335, + "95.0" : 40.343217369362335, + "99.0" : 40.343217369362335, + "99.9" : 40.343217369362335, + "99.99" : 40.343217369362335, + "99.999" : 40.343217369362335, + "99.9999" : 40.343217369362335, + "100.0" : 40.343217369362335 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 40.06384938710178, + 40.17442301384987, + 40.259929376837086 + ], + [ + 39.27752387686973, + 38.714228572397936, + 37.93581376773447 + ], + [ + 40.343217369362335, + 38.96220507920764, + 38.91522528314284 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02554874198958805, + "scoreError" : 0.0017688172917319394, + "scoreConfidence" : [ + 0.02377992469785611, + 0.02731755928131999 + ], + "scorePercentiles" : { + "0.0" : 0.024039496365384615, + "50.0" : 0.02525976276010101, + "90.0" : 0.027049900545945946, + "95.0" : 0.027049900545945946, + "99.0" : 0.027049900545945946, + "99.9" : 0.027049900545945946, + "99.99" : 0.027049900545945946, + "99.999" : 0.027049900545945946, + "99.9999" : 0.027049900545945946, + "100.0" : 0.027049900545945946 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.026940275467741935, + 0.02652689669230769, + 0.027049900545945946 + ], + [ + 0.025087918175438595, + 0.02502862981, + 0.024039496365384615 + ], + [ + 0.024630795724815725, + 0.02525976276010101, + 0.02537500236455696 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-06T03:54:13Z-3710e685f7643d3ed541078fb3be9ca7c4b3ffaa-jdk17.json b/performance-results/2025-02-06T03:54:13Z-3710e685f7643d3ed541078fb3be9ca7c4b3ffaa-jdk17.json new file mode 100644 index 000000000..fab923472 --- /dev/null +++ b/performance-results/2025-02-06T03:54:13Z-3710e685f7643d3ed541078fb3be9ca7c4b3ffaa-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.40840468928762, + "scoreError" : 0.03172758838290947, + "scoreConfidence" : [ + 3.3766771009047103, + 3.4401322776705294 + ], + "scorePercentiles" : { + "0.0" : 3.401889288067258, + "50.0" : 3.4089583002614106, + "90.0" : 3.4138128685604006, + "95.0" : 3.4138128685604006, + "99.0" : 3.4138128685604006, + "99.9" : 3.4138128685604006, + "99.99" : 3.4138128685604006, + "99.999" : 3.4138128685604006, + "99.9999" : 3.4138128685604006, + "100.0" : 3.4138128685604006 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.408891511405186, + 3.4138128685604006 + ], + [ + 3.401889288067258, + 3.4090250891176357 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7210007707040362, + "scoreError" : 0.017508545331382953, + "scoreConfidence" : [ + 1.7034922253726532, + 1.7385093160354192 + ], + "scorePercentiles" : { + "0.0" : 1.7180058125704887, + "50.0" : 1.721345212697952, + "90.0" : 1.7233068448497522, + "95.0" : 1.7233068448497522, + "99.0" : 1.7233068448497522, + "99.9" : 1.7233068448497522, + "99.99" : 1.7233068448497522, + "99.999" : 1.7233068448497522, + "99.9999" : 1.7233068448497522, + "100.0" : 1.7233068448497522 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7180058125704887, + 1.7194089020585175 + ], + [ + 1.7232815233373864, + 1.7233068448497522 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8643609823632786, + "scoreError" : 0.0161080169738309, + "scoreConfidence" : [ + 0.8482529653894477, + 0.8804689993371095 + ], + "scorePercentiles" : { + "0.0" : 0.8621131943188688, + "50.0" : 0.8639380343612875, + "90.0" : 0.8674546664116706, + "95.0" : 0.8674546664116706, + "99.0" : 0.8674546664116706, + "99.9" : 0.8674546664116706, + "99.99" : 0.8674546664116706, + "99.999" : 0.8674546664116706, + "99.9999" : 0.8674546664116706, + "100.0" : 0.8674546664116706 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8652908015543234, + 0.8674546664116706 + ], + [ + 0.8625852671682516, + 0.8621131943188688 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 42.13143739568395, + "scoreError" : 1.28997090052118, + "scoreConfidence" : [ + 40.84146649516277, + 43.421408296205136 + ], + "scorePercentiles" : { + "0.0" : 40.7091955299111, + "50.0" : 42.34700827507123, + "90.0" : 43.09494311870861, + "95.0" : 43.09494311870861, + "99.0" : 43.09494311870861, + "99.9" : 43.09494311870861, + "99.99" : 43.09494311870861, + "99.999" : 43.09494311870861, + "99.9999" : 43.09494311870861, + "100.0" : 43.09494311870861 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 40.7091955299111, + 41.54843086871625, + 42.4898195879411 + ], + [ + 42.34700827507123, + 43.09494311870861, + 41.772721481340994 + ], + [ + 41.69707756441562, + 43.0226619809692, + 42.5010781540815 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.023930444714706154, + "scoreError" : 8.884213123377579E-4, + "scoreConfidence" : [ + 0.023042023402368397, + 0.02481886602704391 + ], + "scorePercentiles" : { + "0.0" : 0.023008338947126436, + "50.0" : 0.024051551677884614, + "90.0" : 0.024526884235294116, + "95.0" : 0.024526884235294116, + "99.0" : 0.024526884235294116, + "99.9" : 0.024526884235294116, + "99.99" : 0.024526884235294116, + "99.999" : 0.024526884235294116, + "99.9999" : 0.024526884235294116, + "100.0" : 0.024526884235294116 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.024526884235294116, + 0.024363735328467154, + 0.023997522652278176 + ], + [ + 0.024367394362530412, + 0.024051551677884614, + 0.024217514585956418 + ], + [ + 0.023008338947126436, + 0.023298507360465116, + 0.02354255328235294 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-14T05:39:11Z-a8e00c32c112ccef5695b0427cdda006da887a37-jdk17.json b/performance-results/2025-02-14T05:39:11Z-a8e00c32c112ccef5695b0427cdda006da887a37-jdk17.json new file mode 100644 index 000000000..5b3e1c6e4 --- /dev/null +++ b/performance-results/2025-02-14T05:39:11Z-a8e00c32c112ccef5695b0427cdda006da887a37-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.404357283980617, + "scoreError" : 0.03521914452873535, + "scoreConfidence" : [ + 3.3691381394518816, + 3.439576428509352 + ], + "scorePercentiles" : { + "0.0" : 3.3966817360964723, + "50.0" : 3.40558944367229, + "90.0" : 3.4095685124814152, + "95.0" : 3.4095685124814152, + "99.0" : 3.4095685124814152, + "99.9" : 3.4095685124814152, + "99.99" : 3.4095685124814152, + "99.999" : 3.4095685124814152, + "99.9999" : 3.4095685124814152, + "100.0" : 3.4095685124814152 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.3966817360964723, + 3.4055314796534444 + ], + [ + 3.4056474076911356, + 3.4095685124814152 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7178122106916855, + "scoreError" : 0.01023832001786633, + "scoreConfidence" : [ + 1.7075738906738192, + 1.728050530709552 + ], + "scorePercentiles" : { + "0.0" : 1.7160908939955062, + "50.0" : 1.7177309775482787, + "90.0" : 1.7196959936746783, + "95.0" : 1.7196959936746783, + "99.0" : 1.7196959936746783, + "99.9" : 1.7196959936746783, + "99.99" : 1.7196959936746783, + "99.999" : 1.7196959936746783, + "99.9999" : 1.7196959936746783, + "100.0" : 1.7196959936746783 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7170217100517866, + 1.7196959936746783 + ], + [ + 1.7160908939955062, + 1.718440245044771 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.864719378037384, + "scoreError" : 0.008385695422045172, + "scoreConfidence" : [ + 0.8563336826153388, + 0.8731050734594291 + ], + "scorePercentiles" : { + "0.0" : 0.8635028724987689, + "50.0" : 0.8645279250288825, + "90.0" : 0.8663187895930019, + "95.0" : 0.8663187895930019, + "99.0" : 0.8663187895930019, + "99.9" : 0.8663187895930019, + "99.99" : 0.8663187895930019, + "99.999" : 0.8663187895930019, + "99.9999" : 0.8663187895930019, + "100.0" : 0.8663187895930019 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8638420932589354, + 0.8663187895930019 + ], + [ + 0.8635028724987689, + 0.8652137567988297 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 38.68765878419774, + "scoreError" : 1.3595024579632389, + "scoreConfidence" : [ + 37.3281563262345, + 40.047161242160975 + ], + "scorePercentiles" : { + "0.0" : 37.6176212727424, + "50.0" : 38.91625003504807, + "90.0" : 39.96719044176991, + "95.0" : 39.96719044176991, + "99.0" : 39.96719044176991, + "99.9" : 39.96719044176991, + "99.99" : 39.96719044176991, + "99.999" : 39.96719044176991, + "99.9999" : 39.96719044176991, + "100.0" : 39.96719044176991 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 38.07023523961371, + 37.6176212727424, + 37.7109409706809 + ], + [ + 38.23620460941478, + 39.22998086295451, + 38.91625003504807 + ], + [ + 39.96719044176991, + 39.195550172304046, + 39.244955453251286 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02482110118000495, + "scoreError" : 0.0012491594771989168, + "scoreConfidence" : [ + 0.023571941702806035, + 0.026070260657203866 + ], + "scorePercentiles" : { + "0.0" : 0.02395586482057416, + "50.0" : 0.0250229317475, + "90.0" : 0.025947926660621762, + "95.0" : 0.025947926660621762, + "99.0" : 0.025947926660621762, + "99.9" : 0.025947926660621762, + "99.99" : 0.025947926660621762, + "99.999" : 0.025947926660621762, + "99.9999" : 0.025947926660621762, + "100.0" : 0.025947926660621762 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02557740179539642, + 0.02512524028822055, + 0.025947926660621762 + ], + [ + 0.0250229317475, + 0.025267129606060607, + 0.024533764960784313 + ], + [ + 0.02395586482057416, + 0.023976613050239234, + 0.023983037690647482 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-15T06:20:41Z-2d740aad4b4e7264bdddbdfad1d38923544700db-jdk17.json b/performance-results/2025-02-15T06:20:41Z-2d740aad4b4e7264bdddbdfad1d38923544700db-jdk17.json new file mode 100644 index 000000000..6ac543c4f --- /dev/null +++ b/performance-results/2025-02-15T06:20:41Z-2d740aad4b4e7264bdddbdfad1d38923544700db-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4170644521395346, + "scoreError" : 0.06948104475705158, + "scoreConfidence" : [ + 3.347583407382483, + 3.486545496896586 + ], + "scorePercentiles" : { + "0.0" : 3.4066504834553046, + "50.0" : 3.4162868626402703, + "90.0" : 3.4290335998222927, + "95.0" : 3.4290335998222927, + "99.0" : 3.4290335998222927, + "99.9" : 3.4290335998222927, + "99.99" : 3.4290335998222927, + "99.999" : 3.4290335998222927, + "99.9999" : 3.4290335998222927, + "100.0" : 3.4290335998222927 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.423139355195289, + 3.4290335998222927 + ], + [ + 3.4066504834553046, + 3.4094343700852514 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7299781307919717, + "scoreError" : 0.007857454898446732, + "scoreConfidence" : [ + 1.722120675893525, + 1.7378355856904184 + ], + "scorePercentiles" : { + "0.0" : 1.7289438396262016, + "50.0" : 1.7297098953749621, + "90.0" : 1.7315488927917617, + "95.0" : 1.7315488927917617, + "99.0" : 1.7315488927917617, + "99.9" : 1.7315488927917617, + "99.99" : 1.7315488927917617, + "99.999" : 1.7315488927917617, + "99.9999" : 1.7315488927917617, + "100.0" : 1.7315488927917617 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7290956274732558, + 1.7303241632766684 + ], + [ + 1.7289438396262016, + 1.7315488927917617 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8697467791753941, + "scoreError" : 0.0028323725711086665, + "scoreConfidence" : [ + 0.8669144066042854, + 0.8725791517465028 + ], + "scorePercentiles" : { + "0.0" : 0.8692196616762735, + "50.0" : 0.869817331270005, + "90.0" : 0.8701327924852931, + "95.0" : 0.8701327924852931, + "99.0" : 0.8701327924852931, + "99.9" : 0.8701327924852931, + "99.99" : 0.8701327924852931, + "99.999" : 0.8701327924852931, + "99.9999" : 0.8701327924852931, + "100.0" : 0.8701327924852931 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8695531911766186, + 0.8700814713633914 + ], + [ + 0.8692196616762735, + 0.8701327924852931 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 45.0549346381212, + "scoreError" : 0.848757856193997, + "scoreConfidence" : [ + 44.206176781927205, + 45.9036924943152 + ], + "scorePercentiles" : { + "0.0" : 44.68208621438223, + "50.0" : 44.738282881112745, + "90.0" : 45.76180661959652, + "95.0" : 45.76180661959652, + "99.0" : 45.76180661959652, + "99.9" : 45.76180661959652, + "99.99" : 45.76180661959652, + "99.999" : 45.76180661959652, + "99.9999" : 45.76180661959652, + "100.0" : 45.76180661959652 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.756697510251236, + 44.738282881112745, + 44.68208621438223 + ], + [ + 44.73782098292451, + 44.695078879626514, + 44.70247575123757 + ], + [ + 45.698962720374276, + 45.72120018358523, + 45.76180661959652 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022437348164506113, + "scoreError" : 9.210176860938199E-4, + "scoreConfidence" : [ + 0.021516330478412293, + 0.023358365850599933 + ], + "scorePercentiles" : { + "0.0" : 0.021832881671023964, + "50.0" : 0.022377403029082775, + "90.0" : 0.02315576094675926, + "95.0" : 0.02315576094675926, + "99.0" : 0.02315576094675926, + "99.9" : 0.02315576094675926, + "99.99" : 0.02315576094675926, + "99.999" : 0.02315576094675926, + "99.9999" : 0.02315576094675926, + "100.0" : 0.02315576094675926 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.021843250683406115, + 0.021832881671023964, + 0.02184149683187773 + ], + [ + 0.022377403029082775, + 0.022397466700223714, + 0.02235870547767857 + ], + [ + 0.022976684075688075, + 0.02315576094675926, + 0.023152484064814814 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-16T03:40:11Z-fc9c1336de7ab351d6cd6a68a43e8ee6b7876fb6-jdk17.json b/performance-results/2025-02-16T03:40:11Z-fc9c1336de7ab351d6cd6a68a43e8ee6b7876fb6-jdk17.json new file mode 100644 index 000000000..40711a4f9 --- /dev/null +++ b/performance-results/2025-02-16T03:40:11Z-fc9c1336de7ab351d6cd6a68a43e8ee6b7876fb6-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4197378188044096, + "scoreError" : 0.04262561676864909, + "scoreConfidence" : [ + 3.3771122020357605, + 3.462363435573059 + ], + "scorePercentiles" : { + "0.0" : 3.4117117828701837, + "50.0" : 3.4198156241090585, + "90.0" : 3.4276082441293374, + "95.0" : 3.4276082441293374, + "99.0" : 3.4276082441293374, + "99.9" : 3.4276082441293374, + "99.99" : 3.4276082441293374, + "99.999" : 3.4276082441293374, + "99.9999" : 3.4276082441293374, + "100.0" : 3.4276082441293374 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.418372884463662, + 3.4276082441293374 + ], + [ + 3.4117117828701837, + 3.421258363754455 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.726255760607202, + "scoreError" : 0.0069887452082228844, + "scoreConfidence" : [ + 1.719267015398979, + 1.7332445058154249 + ], + "scorePercentiles" : { + "0.0" : 1.724942047136417, + "50.0" : 1.7262524899916596, + "90.0" : 1.7275760153090716, + "95.0" : 1.7275760153090716, + "99.0" : 1.7275760153090716, + "99.9" : 1.7275760153090716, + "99.99" : 1.7275760153090716, + "99.999" : 1.7275760153090716, + "99.9999" : 1.7275760153090716, + "100.0" : 1.7275760153090716 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7261109025806118, + 1.7263940774027073 + ], + [ + 1.724942047136417, + 1.7275760153090716 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8695008952141935, + "scoreError" : 0.002839649770146112, + "scoreConfidence" : [ + 0.8666612454440474, + 0.8723405449843395 + ], + "scorePercentiles" : { + "0.0" : 0.8688932944831845, + "50.0" : 0.8695867203095606, + "90.0" : 0.8699368457544682, + "95.0" : 0.8699368457544682, + "99.0" : 0.8699368457544682, + "99.9" : 0.8699368457544682, + "99.99" : 0.8699368457544682, + "99.999" : 0.8699368457544682, + "99.9999" : 0.8699368457544682, + "100.0" : 0.8699368457544682 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8688932944831845, + 0.869534969252187 + ], + [ + 0.8699368457544682, + 0.8696384713669342 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 44.79340737680421, + "scoreError" : 1.1283373708302868, + "scoreConfidence" : [ + 43.665070005973924, + 45.9217447476345 + ], + "scorePercentiles" : { + "0.0" : 44.22709764883389, + "50.0" : 44.37852960081133, + "90.0" : 45.72777210141981, + "95.0" : 45.72777210141981, + "99.0" : 45.72777210141981, + "99.9" : 45.72777210141981, + "99.99" : 45.72777210141981, + "99.999" : 45.72777210141981, + "99.9999" : 45.72777210141981, + "100.0" : 45.72777210141981 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.37103141816148, + 44.37808732974959, + 44.43775470829123 + ], + [ + 45.68653293043291, + 45.63986315460877, + 45.72777210141981 + ], + [ + 44.37852960081133, + 44.29399749892893, + 44.22709764883389 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02254336100574041, + "scoreError" : 0.0014251861750202459, + "scoreConfidence" : [ + 0.021118174830720163, + 0.023968547180760656 + ], + "scorePercentiles" : { + "0.0" : 0.02140835029059829, + "50.0" : 0.022582479492099322, + "90.0" : 0.023531701548235293, + "95.0" : 0.023531701548235293, + "99.0" : 0.023531701548235293, + "99.9" : 0.023531701548235293, + "99.99" : 0.023531701548235293, + "99.999" : 0.023531701548235293, + "99.9999" : 0.023531701548235293, + "100.0" : 0.023531701548235293 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.023531701548235293, + 0.02344455574941452, + 0.023488433495305164 + ], + [ + 0.021671676398268398, + 0.02140835029059829, + 0.021538914713978494 + ], + [ + 0.022566439108108106, + 0.022657698255656108, + 0.022582479492099322 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-17T20:34:06Z-1c40027a308e3a8034e8f2e168d2697e979e5c1b-jdk17.json b/performance-results/2025-02-17T20:34:06Z-1c40027a308e3a8034e8f2e168d2697e979e5c1b-jdk17.json new file mode 100644 index 000000000..808a4a5fc --- /dev/null +++ b/performance-results/2025-02-17T20:34:06Z-1c40027a308e3a8034e8f2e168d2697e979e5c1b-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4206088887895985, + "scoreError" : 0.013042699082723508, + "scoreConfidence" : [ + 3.4075661897068747, + 3.433651587872322 + ], + "scorePercentiles" : { + "0.0" : 3.417984980421843, + "50.0" : 3.4207956154691894, + "90.0" : 3.4228593437981725, + "95.0" : 3.4228593437981725, + "99.0" : 3.4228593437981725, + "99.9" : 3.4228593437981725, + "99.99" : 3.4228593437981725, + "99.999" : 3.4228593437981725, + "99.9999" : 3.4228593437981725, + "100.0" : 3.4228593437981725 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4211136575072607, + 3.4228593437981725 + ], + [ + 3.417984980421843, + 3.420477573431118 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7290954275461694, + "scoreError" : 0.014971146867698142, + "scoreConfidence" : [ + 1.7141242806784713, + 1.7440665744138675 + ], + "scorePercentiles" : { + "0.0" : 1.7268335612289947, + "50.0" : 1.728618007948021, + "90.0" : 1.732312133059641, + "95.0" : 1.732312133059641, + "99.0" : 1.732312133059641, + "99.9" : 1.732312133059641, + "99.99" : 1.732312133059641, + "99.999" : 1.732312133059641, + "99.9999" : 1.732312133059641, + "100.0" : 1.732312133059641 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7289210060678664, + 1.732312133059641 + ], + [ + 1.7268335612289947, + 1.7283150098281757 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8691296924737124, + "scoreError" : 0.003217906230387458, + "scoreConfidence" : [ + 0.865911786243325, + 0.8723475987040998 + ], + "scorePercentiles" : { + "0.0" : 0.8685411985907953, + "50.0" : 0.8691692958613317, + "90.0" : 0.8696389795813908, + "95.0" : 0.8696389795813908, + "99.0" : 0.8696389795813908, + "99.9" : 0.8696389795813908, + "99.99" : 0.8696389795813908, + "99.999" : 0.8696389795813908, + "99.9999" : 0.8696389795813908, + "100.0" : 0.8696389795813908 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8685411985907953, + 0.8694292003590817 + ], + [ + 0.8689093913635819, + 0.8696389795813908 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 44.00002592220759, + "scoreError" : 1.0169729471967608, + "scoreConfidence" : [ + 42.98305297501083, + 45.016998869404354 + ], + "scorePercentiles" : { + "0.0" : 43.190621895015134, + "50.0" : 44.339727784246385, + "90.0" : 44.49859689249208, + "95.0" : 44.49859689249208, + "99.0" : 44.49859689249208, + "99.9" : 44.49859689249208, + "99.99" : 44.49859689249208, + "99.999" : 44.49859689249208, + "99.9999" : 44.49859689249208, + "100.0" : 44.49859689249208 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.296203523003136, + 44.3675733423135, + 44.339727784246385 + ], + [ + 44.433477192763355, + 44.47220710306538, + 44.49859689249208 + ], + [ + 43.190621895015134, + 43.195083051862106, + 43.2067425151073 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022014991133773334, + "scoreError" : 7.270139507733344E-4, + "scoreConfidence" : [ + 0.021287977183, + 0.022742005084546667 + ], + "scorePercentiles" : { + "0.0" : 0.02151436482795699, + "50.0" : 0.021798280185185186, + "90.0" : 0.02263859209276018, + "95.0" : 0.02263859209276018, + "99.0" : 0.02263859209276018, + "99.9" : 0.02263859209276018, + "99.99" : 0.02263859209276018, + "99.999" : 0.02263859209276018, + "99.9999" : 0.02263859209276018, + "100.0" : 0.02263859209276018 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02176385843695652, + 0.021756122958695653, + 0.021755845339130435 + ], + [ + 0.021798280185185186, + 0.021809013647058822, + 0.02151436482795699 + ], + [ + 0.02263859209276018, + 0.022552278957207208, + 0.02254656375900901 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-17T22:24:53Z-6669c2035a983b1641544c06517726c31fba6de8-jdk17.json b/performance-results/2025-02-17T22:24:53Z-6669c2035a983b1641544c06517726c31fba6de8-jdk17.json new file mode 100644 index 000000000..be9f5a784 --- /dev/null +++ b/performance-results/2025-02-17T22:24:53Z-6669c2035a983b1641544c06517726c31fba6de8-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4242633766606025, + "scoreError" : 0.018975601014235673, + "scoreConfidence" : [ + 3.405287775646367, + 3.443238977674838 + ], + "scorePercentiles" : { + "0.0" : 3.4212131355295408, + "50.0" : 3.423987593935866, + "90.0" : 3.427865183241137, + "95.0" : 3.427865183241137, + "99.0" : 3.427865183241137, + "99.9" : 3.427865183241137, + "99.99" : 3.427865183241137, + "99.999" : 3.427865183241137, + "99.9999" : 3.427865183241137, + "100.0" : 3.427865183241137 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4212131355295408, + 3.427865183241137 + ], + [ + 3.4226761215874024, + 3.42529906628433 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7297100885344647, + "scoreError" : 0.012575602193575109, + "scoreConfidence" : [ + 1.7171344863408897, + 1.7422856907280397 + ], + "scorePercentiles" : { + "0.0" : 1.7269537146749794, + "50.0" : 1.7301797508085786, + "90.0" : 1.7315271378457233, + "95.0" : 1.7315271378457233, + "99.0" : 1.7315271378457233, + "99.9" : 1.7315271378457233, + "99.99" : 1.7315271378457233, + "99.999" : 1.7315271378457233, + "99.9999" : 1.7315271378457233, + "100.0" : 1.7315271378457233 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7269537146749794, + 1.730283069142333 + ], + [ + 1.730076432474824, + 1.7315271378457233 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8694133387568189, + "scoreError" : 8.350509859162894E-4, + "scoreConfidence" : [ + 0.8685782877709026, + 0.8702483897427352 + ], + "scorePercentiles" : { + "0.0" : 0.8692902387995611, + "50.0" : 0.8693866443860734, + "90.0" : 0.8695898274555681, + "95.0" : 0.8695898274555681, + "99.0" : 0.8695898274555681, + "99.9" : 0.8695898274555681, + "99.99" : 0.8695898274555681, + "99.999" : 0.8695898274555681, + "99.9999" : 0.8695898274555681, + "100.0" : 0.8695898274555681 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8693522182862535, + 0.8692902387995611 + ], + [ + 0.8695898274555681, + 0.8694210704858931 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 44.351621241143484, + "scoreError" : 0.5953242229423784, + "scoreConfidence" : [ + 43.7562970182011, + 44.946945464085864 + ], + "scorePercentiles" : { + "0.0" : 43.77066626511391, + "50.0" : 44.366053527100796, + "90.0" : 44.87096788250905, + "95.0" : 44.87096788250905, + "99.0" : 44.87096788250905, + "99.9" : 44.87096788250905, + "99.99" : 44.87096788250905, + "99.999" : 44.87096788250905, + "99.9999" : 44.87096788250905, + "100.0" : 44.87096788250905 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.297296748606456, + 44.397303245644636, + 44.366053527100796 + ], + [ + 44.0500241243553, + 44.05602909596345, + 43.77066626511391 + ], + [ + 44.87096788250905, + 44.68165375318243, + 44.674596527815304 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.022335216267832168, + "scoreError" : 5.743756954042363E-4, + "scoreConfidence" : [ + 0.02176084057242793, + 0.022909591963236404 + ], + "scorePercentiles" : { + "0.0" : 0.022069386140969163, + "50.0" : 0.02213912410619469, + "90.0" : 0.022815809872437358, + "95.0" : 0.022815809872437358, + "99.0" : 0.022815809872437358, + "99.9" : 0.022815809872437358, + "99.99" : 0.022815809872437358, + "99.999" : 0.022815809872437358, + "99.9999" : 0.022815809872437358, + "100.0" : 0.022815809872437358 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.02210124018763797, + 0.022075338872246695, + 0.022069386140969163 + ], + [ + 0.02275205906818182, + 0.022799795460136673, + 0.022815809872437358 + ], + [ + 0.022123397386313467, + 0.02213912410619469, + 0.02214079531637168 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-18T21:00:41Z-a38c75c4e4a155ab2d88dfb1304971e61ee32aed-jdk17.json b/performance-results/2025-02-18T21:00:41Z-a38c75c4e4a155ab2d88dfb1304971e61ee32aed-jdk17.json new file mode 100644 index 000000000..260e44a4d --- /dev/null +++ b/performance-results/2025-02-18T21:00:41Z-a38c75c4e4a155ab2d88dfb1304971e61ee32aed-jdk17.json @@ -0,0 +1,287 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4115822946692296, + "scoreError" : 0.02374031077593178, + "scoreConfidence" : [ + 3.387841983893298, + 3.4353226054451613 + ], + "scorePercentiles" : { + "0.0" : 3.4079551742814718, + "50.0" : 3.4109733124928603, + "90.0" : 3.4164273794097273, + "95.0" : 3.4164273794097273, + "99.0" : 3.4164273794097273, + "99.9" : 3.4164273794097273, + "99.99" : 3.4164273794097273, + "99.999" : 3.4164273794097273, + "99.9999" : 3.4164273794097273, + "100.0" : 3.4164273794097273 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4097245690943745, + 3.4164273794097273 + ], + [ + 3.4079551742814718, + 3.4122220558913456 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.722694825573204, + "scoreError" : 0.009524342266229335, + "scoreConfidence" : [ + 1.7131704833069747, + 1.7322191678394332 + ], + "scorePercentiles" : { + "0.0" : 1.7205165151963069, + "50.0" : 1.7232566846012491, + "90.0" : 1.7237494178940111, + "95.0" : 1.7237494178940111, + "99.0" : 1.7237494178940111, + "99.9" : 1.7237494178940111, + "99.99" : 1.7237494178940111, + "99.999" : 1.7237494178940111, + "99.9999" : 1.7237494178940111, + "100.0" : 1.7237494178940111 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7233762538651085, + 1.7237494178940111 + ], + [ + 1.7205165151963069, + 1.7231371153373898 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.866572515884187, + "scoreError" : 0.004874669836230257, + "scoreConfidence" : [ + 0.8616978460479567, + 0.8714471857204173 + ], + "scorePercentiles" : { + "0.0" : 0.8659772491632904, + "50.0" : 0.866317387084177, + "90.0" : 0.867678040205104, + "95.0" : 0.867678040205104, + "99.0" : 0.867678040205104, + "99.9" : 0.867678040205104, + "99.99" : 0.867678040205104, + "99.999" : 0.867678040205104, + "99.9999" : 0.867678040205104, + "100.0" : 0.867678040205104 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8663020308179187, + 0.867678040205104 + ], + [ + 0.8659772491632904, + 0.8663327433504354 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 43.16581893791316, + "scoreError" : 2.066948947766819, + "scoreConfidence" : [ + 41.09886999014634, + 45.232767885679976 + ], + "scorePercentiles" : { + "0.0" : 41.47630378715374, + "50.0" : 43.19324157508737, + "90.0" : 45.10306662709041, + "95.0" : 45.10306662709041, + "99.0" : 45.10306662709041, + "99.9" : 45.10306662709041, + "99.99" : 45.10306662709041, + "99.999" : 45.10306662709041, + "99.9999" : 45.10306662709041, + "100.0" : 45.10306662709041 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 41.9283125770102, + 41.47630378715374, + 42.49340373619001 + ], + [ + 43.19324157508737, + 44.967595343521324, + 45.10306662709041 + ], + [ + 42.69787652122177, + 43.33871227400222, + 43.29385799994142 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.02357816374013612, + "scoreError" : 6.853628187300454E-4, + "scoreConfidence" : [ + 0.022892800921406078, + 0.024263526558866166 + ], + "scorePercentiles" : { + "0.0" : 0.02294608312614679, + "50.0" : 0.023463286145199064, + "90.0" : 0.024420310319512195, + "95.0" : 0.024420310319512195, + "99.0" : 0.024420310319512195, + "99.9" : 0.024420310319512195, + "99.99" : 0.024420310319512195, + "99.999" : 0.024420310319512195, + "99.9999" : 0.024420310319512195, + "100.0" : 0.024420310319512195 + }, + "scoreUnit" : "s/op", + "rawData" : [ + [ + 0.023463286145199064, + 0.02341394538551402, + 0.023628221283018867 + ], + [ + 0.023451077770491803, + 0.02331047241395349, + 0.02294608312614679 + ], + [ + 0.024420310319512195, + 0.02383940636904762, + 0.023730670848341233 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-23T23:27:11Z-422035b18d79a8c2da519fa224d57b54328d21af-jdk17.json b/performance-results/2025-02-23T23:27:11Z-422035b18d79a8c2da519fa224d57b54328d21af-jdk17.json new file mode 100644 index 000000000..42469cd67 --- /dev/null +++ b/performance-results/2025-02-23T23:27:11Z-422035b18d79a8c2da519fa224d57b54328d21af-jdk17.json @@ -0,0 +1,1657 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.407056046800354, + "scoreError" : 0.029918815472154754, + "scoreConfidence" : [ + 3.3771372313281995, + 3.4369748622725087 + ], + "scorePercentiles" : { + "0.0" : 3.4007909424708345, + "50.0" : 3.4082762103332733, + "90.0" : 3.410880824064036, + "95.0" : 3.410880824064036, + "99.0" : 3.410880824064036, + "99.9" : 3.410880824064036, + "99.99" : 3.410880824064036, + "99.999" : 3.410880824064036, + "99.9999" : 3.410880824064036, + "100.0" : 3.410880824064036 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4063459499983404, + 3.4102064706682067 + ], + [ + 3.4007909424708345, + 3.410880824064036 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7237261899951235, + "scoreError" : 0.012279956940872572, + "scoreConfidence" : [ + 1.711446233054251, + 1.736006146935996 + ], + "scorePercentiles" : { + "0.0" : 1.7209620297907924, + "50.0" : 1.7243493101951046, + "90.0" : 1.725244109799492, + "95.0" : 1.725244109799492, + "99.0" : 1.725244109799492, + "99.9" : 1.725244109799492, + "99.99" : 1.725244109799492, + "99.999" : 1.725244109799492, + "99.9999" : 1.725244109799492, + "100.0" : 1.725244109799492 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7209620297907924, + 1.7245866091668745 + ], + [ + 1.7241120112233348, + 1.725244109799492 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8655072619557832, + "scoreError" : 0.0076541027379537704, + "scoreConfidence" : [ + 0.8578531592178295, + 0.873161364693737 + ], + "scorePercentiles" : { + "0.0" : 0.864075538285419, + "50.0" : 0.8655494103959934, + "90.0" : 0.866854688745727, + "95.0" : 0.866854688745727, + "99.0" : 0.866854688745727, + "99.9" : 0.866854688745727, + "99.99" : 0.866854688745727, + "99.999" : 0.866854688745727, + "99.9999" : 0.866854688745727, + "100.0" : 0.866854688745727 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8659617453318614, + 0.866854688745727 + ], + [ + 0.864075538285419, + 0.8651370754601254 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "2" + }, + "primaryMetric" : { + "score" : 26552.524153094724, + "scoreError" : 639.1805987554905, + "scoreConfidence" : [ + 25913.343554339233, + 27191.704751850215 + ], + "scorePercentiles" : { + "0.0" : 26180.44553092005, + "50.0" : 26356.254345436864, + "90.0" : 27200.80700737948, + "95.0" : 27200.80700737948, + "99.0" : 27200.80700737948, + "99.9" : 27200.80700737948, + "99.99" : 27200.80700737948, + "99.999" : 27200.80700737948, + "99.9999" : 27200.80700737948, + "100.0" : 27200.80700737948 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 26356.254345436864, + 26236.647378597983, + 26180.44553092005 + ], + [ + 27200.80700737948, + 26956.168602989936, + 26977.190532199587 + ], + [ + 26347.091494468492, + 26352.678896785805, + 26365.433589074324 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 52218.80958985782, + "scoreError" : 2879.5912049286203, + "scoreConfidence" : [ + 49339.2183849292, + 55098.40079478644 + ], + "scorePercentiles" : { + "0.0" : 50017.97044480345, + "50.0" : 52649.465625625206, + "90.0" : 53886.84577830227, + "95.0" : 53886.84577830227, + "99.0" : 53886.84577830227, + "99.9" : 53886.84577830227, + "99.99" : 53886.84577830227, + "99.999" : 53886.84577830227, + "99.9999" : 53886.84577830227, + "100.0" : 53886.84577830227 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 50017.97044480345, + 50035.0168865673, + 50041.48226304438 + ], + [ + 53885.89643819377, + 53886.84577830227, + 53842.27665966726 + ], + [ + 52989.15061916798, + 52621.18159334877, + 52649.465625625206 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 331112.89002765866, + "scoreError" : 9506.721360091407, + "scoreConfidence" : [ + 321606.16866756725, + 340619.6113877501 + ], + "scorePercentiles" : { + "0.0" : 324464.0961357516, + "50.0" : 330664.8458155606, + "90.0" : 337893.6958372753, + "95.0" : 337893.6958372753, + "99.0" : 337893.6958372753, + "99.9" : 337893.6958372753, + "99.99" : 337893.6958372753, + "99.999" : 337893.6958372753, + "99.9999" : 337893.6958372753, + "100.0" : 337893.6958372753 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 324886.30850199796, + 325013.14257856936, + 324464.0961357516 + ], + [ + 337864.1532146356, + 337893.6958372753, + 337731.1074636947 + ], + [ + 330875.09724060347, + 330623.5634608391, + 330664.8458155606 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "2" + }, + "primaryMetric" : { + "score" : 11427.622258229836, + "scoreError" : 324.31758374745107, + "scoreConfidence" : [ + 11103.304674482384, + 11751.939841977288 + ], + "scorePercentiles" : { + "0.0" : 11172.28876683924, + "50.0" : 11487.803492020093, + "90.0" : 11629.032201570599, + "95.0" : 11629.032201570599, + "99.0" : 11629.032201570599, + "99.9" : 11629.032201570599, + "99.99" : 11629.032201570599, + "99.999" : 11629.032201570599, + "99.9999" : 11629.032201570599, + "100.0" : 11629.032201570599 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 11483.757824638526, + 11487.803492020093, + 11492.811145806158 + ], + [ + 11191.473096017226, + 11179.267410675857, + 11172.28876683924 + ], + [ + 11629.032201570599, + 11611.247604627724, + 11600.918781873106 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 52007.73574828912, + "scoreError" : 2747.6709117774185, + "scoreConfidence" : [ + 49260.0648365117, + 54755.40666006653 + ], + "scorePercentiles" : { + "0.0" : 49772.18481171423, + "50.0" : 53028.99369495013, + "90.0" : 53201.20417305073, + "95.0" : 53201.20417305073, + "99.0" : 53201.20417305073, + "99.9" : 53201.20417305073, + "99.99" : 53201.20417305073, + "99.999" : 53201.20417305073, + "99.9999" : 53201.20417305073, + "100.0" : 53201.20417305073 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 53163.70150610576, + 53165.25671602116, + 53201.20417305073 + ], + [ + 49891.42993843483, + 49826.70391334243, + 49772.18481171423 + ], + [ + 53028.99369495013, + 53042.75352463799, + 52977.393456344726 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 519817.1073999086, + "scoreError" : 22899.539550691738, + "scoreConfidence" : [ + 496917.56784921687, + 542716.6469506003 + ], + "scorePercentiles" : { + "0.0" : 501659.81840983196, + "50.0" : 522679.67015104793, + "90.0" : 534125.0044864605, + "95.0" : 534125.0044864605, + "99.0" : 534125.0044864605, + "99.9" : 534125.0044864605, + "99.99" : 534125.0044864605, + "99.999" : 534125.0044864605, + "99.9999" : 534125.0044864605, + "100.0" : 534125.0044864605 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 523641.3408210284, + 522679.67015104793, + 522124.72834542894 + ], + [ + 502553.2957435047, + 501659.81840983196, + 504259.8995058491 + ], + [ + 533653.9709696355, + 534125.0044864605, + 533656.2381663909 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "2" + }, + "primaryMetric" : { + "score" : 5611.061899727954, + "scoreError" : 199.0334455523655, + "scoreConfidence" : [ + 5412.028454175589, + 5810.09534528032 + ], + "scorePercentiles" : { + "0.0" : 5471.789355523734, + "50.0" : 5604.591856510667, + "90.0" : 5748.895040773562, + "95.0" : 5748.895040773562, + "99.0" : 5748.895040773562, + "99.9" : 5748.895040773562, + "99.99" : 5748.895040773562, + "99.999" : 5748.895040773562, + "99.9999" : 5748.895040773562, + "100.0" : 5748.895040773562 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 5748.895040773562, + 5747.524777559183, + 5743.206077045362 + ], + [ + 5477.598544947824, + 5471.789355523734, + 5472.026265965817 + ], + [ + 5632.66979088397, + 5604.591856510667, + 5601.255388341467 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 23867.987814775624, + "scoreError" : 1536.3352111463519, + "scoreConfidence" : [ + 22331.65260362927, + 25404.323025921978 + ], + "scorePercentiles" : { + "0.0" : 22847.395096563116, + "50.0" : 23765.784316195237, + "90.0" : 24989.494894720796, + "95.0" : 24989.494894720796, + "99.0" : 24989.494894720796, + "99.9" : 24989.494894720796, + "99.99" : 24989.494894720796, + "99.999" : 24989.494894720796, + "99.9999" : 24989.494894720796, + "100.0" : 24989.494894720796 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 22877.390001349748, + 22847.395096563116, + 22865.330788454987 + ], + [ + 24989.494894720796, + 24966.94336075499, + 24946.11605536971 + ], + [ + 23819.37460549602, + 23734.06121407601, + 23765.784316195237 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 245953.21356996294, + "scoreError" : 4056.5186707154076, + "scoreConfidence" : [ + 241896.69489924752, + 250009.73224067836 + ], + "scorePercentiles" : { + "0.0" : 243425.86234512305, + "50.0" : 245794.41238785794, + "90.0" : 249309.52607698445, + "95.0" : 249309.52607698445, + "99.0" : 249309.52607698445, + "99.9" : 249309.52607698445, + "99.99" : 249309.52607698445, + "99.999" : 249309.52607698445, + "99.9999" : 249309.52607698445, + "100.0" : 249309.52607698445 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 243425.86234512305, + 243637.14963699263, + 243514.4556080456 + ], + [ + 248570.7896895429, + 248742.11399646793, + 249309.52607698445 + ], + [ + 244261.41762536333, + 245794.41238785794, + 246323.19476328883 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "2" + }, + "primaryMetric" : { + "score" : 23528.336167796446, + "scoreError" : 750.0966191948582, + "scoreConfidence" : [ + 22778.23954860159, + 24278.432786991303 + ], + "scorePercentiles" : { + "0.0" : 23042.671609256584, + "50.0" : 23441.3835416066, + "90.0" : 24124.690474984258, + "95.0" : 24124.690474984258, + "99.0" : 24124.690474984258, + "99.9" : 24124.690474984258, + "99.99" : 24124.690474984258, + "99.999" : 24124.690474984258, + "99.9999" : 24124.690474984258, + "100.0" : 24124.690474984258 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 23042.671609256584, + 23071.787075831264, + 23068.08098868525 + ], + [ + 24124.690474984258, + 24087.042072327695, + 24027.066119336283 + ], + [ + 23435.216268469587, + 23457.08735967048, + 23441.3835416066 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 100895.67719469467, + "scoreError" : 5842.513427615709, + "scoreConfidence" : [ + 95053.16376707896, + 106738.19062231037 + ], + "scorePercentiles" : { + "0.0" : 96850.12681348907, + "50.0" : 100614.00032196075, + "90.0" : 105156.68496708658, + "95.0" : 105156.68496708658, + "99.0" : 105156.68496708658, + "99.9" : 105156.68496708658, + "99.99" : 105156.68496708658, + "99.999" : 105156.68496708658, + "99.9999" : 105156.68496708658, + "100.0" : 105156.68496708658 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 105156.68496708658, + 104941.96199051337, + 104970.59175361619 + ], + [ + 97318.89535506097, + 96869.54980481048, + 96850.12681348907 + ], + [ + 100614.00032196075, + 100570.34877055362, + 100768.93497516097 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 1043337.3049575173, + "scoreError" : 37779.596320040575, + "scoreConfidence" : [ + 1005557.7086374768, + 1081116.901277558 + ], + "scorePercentiles" : { + "0.0" : 1015703.2474101158, + "50.0" : 1047311.917897162, + "90.0" : 1070712.6724839401, + "95.0" : 1070712.6724839401, + "99.0" : 1070712.6724839401, + "99.9" : 1070712.6724839401, + "99.99" : 1070712.6724839401, + "99.999" : 1070712.6724839401, + "99.9999" : 1070712.6724839401, + "100.0" : 1070712.6724839401 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 1015929.1653799269, + 1015703.2474101158, + 1015896.6107273466 + ], + [ + 1070712.6724839401, + 1065183.4569176696, + 1065792.1213897474 + ], + [ + 1048437.9009330119, + 1045068.6514787334, + 1047311.917897162 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "2" + }, + "primaryMetric" : { + "score" : 11315.216474771834, + "scoreError" : 172.02494354923866, + "scoreConfidence" : [ + 11143.191531222596, + 11487.241418321073 + ], + "scorePercentiles" : { + "0.0" : 11231.735644345008, + "50.0" : 11259.25251134355, + "90.0" : 11454.819931776112, + "95.0" : 11454.819931776112, + "99.0" : 11454.819931776112, + "99.9" : 11454.819931776112, + "99.99" : 11454.819931776112, + "99.999" : 11454.819931776112, + "99.9999" : 11454.819931776112, + "100.0" : 11454.819931776112 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 11454.819931776112, + 11443.821424852233, + 11452.087348576637 + ], + [ + 11232.920604413812, + 11233.837882043948, + 11231.735644345008 + ], + [ + 11250.457024921698, + 11259.25251134355, + 11278.015900673514 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 45224.83568262534, + "scoreError" : 1048.5119689576616, + "scoreConfidence" : [ + 44176.323713667676, + 46273.347651583 + ], + "scorePercentiles" : { + "0.0" : 44360.472011143196, + "50.0" : 45531.788517051406, + "90.0" : 45783.9767695266, + "95.0" : 45783.9767695266, + "99.0" : 45783.9767695266, + "99.9" : 45783.9767695266, + "99.99" : 45783.9767695266, + "99.999" : 45783.9767695266, + "99.9999" : 45783.9767695266, + "100.0" : 45783.9767695266 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 45548.20796990221, + 45531.788517051406, + 45457.03387411303 + ], + [ + 44360.472011143196, + 44439.66910192999, + 44418.26749609125 + ], + [ + 45783.9767695266, + 45742.61839198232, + 45741.48701188804 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 443138.7335609501, + "scoreError" : 5074.984883957929, + "scoreConfidence" : [ + 438063.74867699214, + 448213.71844490804 + ], + "scorePercentiles" : { + "0.0" : 438853.1384122526, + "50.0" : 445095.7127915257, + "90.0" : 445728.84810126584, + "95.0" : 445728.84810126584, + "99.0" : 445728.84810126584, + "99.9" : 445728.84810126584, + "99.99" : 445728.84810126584, + "99.999" : 445728.84810126584, + "99.9999" : 445728.84810126584, + "100.0" : 445728.84810126584 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 439968.1464144303, + 438853.1384122526, + 438961.0512685453 + ], + [ + 443190.1281687644, + 445095.7127915257, + 445312.6153092577 + ], + [ + 445728.84810126584, + 445501.1878201987, + 445637.77376231004 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "2" + }, + "primaryMetric" : { + "score" : 6503.243331074969, + "scoreError" : 155.88656306809895, + "scoreConfidence" : [ + 6347.35676800687, + 6659.129894143069 + ], + "scorePercentiles" : { + "0.0" : 6370.511738174869, + "50.0" : 6557.353963186129, + "90.0" : 6577.488689812577, + "95.0" : 6577.488689812577, + "99.0" : 6577.488689812577, + "99.9" : 6577.488689812577, + "99.99" : 6577.488689812577, + "99.999" : 6577.488689812577, + "99.9999" : 6577.488689812577, + "100.0" : 6577.488689812577 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 6577.488689812577, + 6566.590325298333, + 6570.458516592181 + ], + [ + 6387.074046326138, + 6370.511738174869, + 6382.5923342190135 + ], + [ + 6565.003626463732, + 6552.1167396017545, + 6557.353963186129 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 11867.329269757813, + "scoreError" : 196.04260834659178, + "scoreConfidence" : [ + 11671.28666141122, + 12063.371878104404 + ], + "scorePercentiles" : { + "0.0" : 11746.292867513015, + "50.0" : 11825.349115238892, + "90.0" : 12015.450360638877, + "95.0" : 12015.450360638877, + "99.0" : 12015.450360638877, + "99.9" : 12015.450360638877, + "99.99" : 12015.450360638877, + "99.999" : 12015.450360638877, + "99.9999" : 12015.450360638877, + "100.0" : 12015.450360638877 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 11825.349115238892, + 11746.292867513015, + 11913.832032557713 + ], + [ + 11777.689927721174, + 11753.985844854053, + 11766.35859539635 + ], + [ + 11993.450327416647, + 12015.450360638877, + 12013.554356483579 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 71438.27038128191, + "scoreError" : 1509.9384867966066, + "scoreConfidence" : [ + 69928.33189448531, + 72948.20886807851 + ], + "scorePercentiles" : { + "0.0" : 70268.86934433256, + "50.0" : 71282.76049270073, + "90.0" : 72538.75318438996, + "95.0" : 72538.75318438996, + "99.0" : 72538.75318438996, + "99.9" : 72538.75318438996, + "99.99" : 72538.75318438996, + "99.999" : 72538.75318438996, + "99.9999" : 72538.75318438996, + "100.0" : 72538.75318438996 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 72530.55498821396, + 72538.75318438996, + 72388.19837707932 + ], + [ + 70782.79696911784, + 70401.48243162378, + 70268.86934433256 + ], + [ + 71727.89320604227, + 71023.12443803666, + 71282.76049270073 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "2" + }, + "primaryMetric" : { + "score" : 6398709.275408815, + "scoreError" : 126183.5867819212, + "scoreConfidence" : [ + 6272525.688626894, + 6524892.8621907355 + ], + "scorePercentiles" : { + "0.0" : 6291085.297484277, + "50.0" : 6387188.439974457, + "90.0" : 6491328.1239454895, + "95.0" : 6491328.1239454895, + "99.0" : 6491328.1239454895, + "99.9" : 6491328.1239454895, + "99.99" : 6491328.1239454895, + "99.999" : 6491328.1239454895, + "99.9999" : 6491328.1239454895, + "100.0" : 6491328.1239454895 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 6491328.1239454895, + 6488077.19001297, + 6481109.981205444 + ], + [ + 6354258.74841169, + 6291085.297484277, + 6310670.466246056 + ], + [ + 6387188.439974457, + 6403043.638924456, + 6381621.5924744895 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 6569576.793351535, + "scoreError" : 384954.5853160948, + "scoreConfidence" : [ + 6184622.20803544, + 6954531.378667629 + ], + "scorePercentiles" : { + "0.0" : 6265185.024420789, + "50.0" : 6650287.005984043, + "90.0" : 6793779.208559782, + "95.0" : 6793779.208559782, + "99.0" : 6793779.208559782, + "99.9" : 6793779.208559782, + "99.99" : 6793779.208559782, + "99.999" : 6793779.208559782, + "99.9999" : 6793779.208559782, + "100.0" : 6793779.208559782 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 6282970.966080402, + 6269994.820689655, + 6265185.024420789 + ], + [ + 6747180.360755226, + 6789676.959945689, + 6793779.208559782 + ], + [ + 6643032.754316069, + 6684084.039412158, + 6650287.005984043 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAbgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 6478658.767822663, + "scoreError" : 49069.54441114768, + "scoreConfidence" : [ + 6429589.223411515, + 6527728.312233811 + ], + "scorePercentiles" : { + "0.0" : 6437623.745817246, + "50.0" : 6485599.195849546, + "90.0" : 6526921.3568167, + "95.0" : 6526921.3568167, + "99.0" : 6526921.3568167, + "99.9" : 6526921.3568167, + "99.99" : 6526921.3568167, + "99.999" : 6526921.3568167, + "99.9999" : 6526921.3568167, + "100.0" : 6526921.3568167 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 6526921.3568167, + 6492636.765736534, + 6506922.867924528 + ], + [ + 6437623.745817246, + 6472031.835058215, + 6450381.75177305 + ], + [ + 6449317.71308833, + 6486493.6783398185, + 6485599.195849546 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "2" + }, + "primaryMetric" : { + "score" : 6376575.1027172785, + "scoreError" : 194988.26138432373, + "scoreConfidence" : [ + 6181586.841332954, + 6571563.364101603 + ], + "scorePercentiles" : { + "0.0" : 6238185.0137157105, + "50.0" : 6369792.822929936, + "90.0" : 6524331.181343771, + "95.0" : 6524331.181343771, + "99.0" : 6524331.181343771, + "99.9" : 6524331.181343771, + "99.99" : 6524331.181343771, + "99.999" : 6524331.181343771, + "99.9999" : 6524331.181343771, + "100.0" : 6524331.181343771 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 6524331.181343771, + 6523662.991519895, + 6487411.79766537 + ], + [ + 6369792.822929936, + 6368797.631444939, + 6379426.840561224 + ], + [ + 6244740.780274657, + 6252826.865, + 6238185.0137157105 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 6263376.655796844, + "scoreError" : 223312.4731747562, + "scoreConfidence" : [ + 6040064.182622087, + 6486689.1289716 + ], + "scorePercentiles" : { + "0.0" : 6147048.186846958, + "50.0" : 6200365.234345939, + "90.0" : 6453870.472258065, + "95.0" : 6453870.472258065, + "99.0" : 6453870.472258065, + "99.9" : 6453870.472258065, + "99.99" : 6453870.472258065, + "99.999" : 6453870.472258065, + "99.9999" : 6453870.472258065, + "100.0" : 6453870.472258065 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 6441251.466194462, + 6418451.837075048, + 6453870.472258065 + ], + [ + 6147048.186846958, + 6148743.549477566, + 6159800.388546798 + ], + [ + 6202072.626782393, + 6200365.234345939, + 6198786.140644362 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 6448861.512850301, + "scoreError" : 94674.30577495846, + "scoreConfidence" : [ + 6354187.207075343, + 6543535.81862526 + ], + "scorePercentiles" : { + "0.0" : 6392429.194249202, + "50.0" : 6421305.336970475, + "90.0" : 6533245.871325931, + "95.0" : 6533245.871325931, + "99.0" : 6533245.871325931, + "99.9" : 6533245.871325931, + "99.99" : 6533245.871325931, + "99.999" : 6533245.871325931, + "99.9999" : 6533245.871325931, + "100.0" : 6533245.871325931 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 6533245.871325931, + 6506297.143786597, + 6526423.699282452 + ], + [ + 6392429.194249202, + 6431628.632154341, + 6403075.450704225 + ], + [ + 6411964.421794872, + 6413383.865384615, + 6421305.336970475 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-24T00:16:50Z-4f40d2eed6c54adcdfb8f67de1f7601ad3d5311a-jdk17.json b/performance-results/2025-02-24T00:16:50Z-4f40d2eed6c54adcdfb8f67de1f7601ad3d5311a-jdk17.json new file mode 100644 index 000000000..45bd9b817 --- /dev/null +++ b/performance-results/2025-02-24T00:16:50Z-4f40d2eed6c54adcdfb8f67de1f7601ad3d5311a-jdk17.json @@ -0,0 +1,1161 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4274036884572663, + "scoreError" : 0.024762764818203227, + "scoreConfidence" : [ + 3.402640923639063, + 3.4521664532754697 + ], + "scorePercentiles" : { + "0.0" : 3.4228175390638214, + "50.0" : 3.427351229060756, + "90.0" : 3.4320947566437314, + "95.0" : 3.4320947566437314, + "99.0" : 3.4320947566437314, + "99.9" : 3.4320947566437314, + "99.99" : 3.4320947566437314, + "99.999" : 3.4320947566437314, + "99.9999" : 3.4320947566437314, + "100.0" : 3.4320947566437314 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4280617857617046, + 3.4320947566437314 + ], + [ + 3.4228175390638214, + 3.4266406723598073 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7317595392033245, + "scoreError" : 0.007202794691721973, + "scoreConfidence" : [ + 1.7245567445116026, + 1.7389623338950464 + ], + "scorePercentiles" : { + "0.0" : 1.730142448238231, + "50.0" : 1.7321035723481373, + "90.0" : 1.7326885638787919, + "95.0" : 1.7326885638787919, + "99.0" : 1.7326885638787919, + "99.9" : 1.7326885638787919, + "99.99" : 1.7326885638787919, + "99.999" : 1.7326885638787919, + "99.9999" : 1.7326885638787919, + "100.0" : 1.7326885638787919 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7320245712018445, + 1.7326885638787919 + ], + [ + 1.730142448238231, + 1.7321825734944303 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8696805774263187, + "scoreError" : 0.0034440948327385066, + "scoreConfidence" : [ + 0.8662364825935801, + 0.8731246722590572 + ], + "scorePercentiles" : { + "0.0" : 0.8691513855289171, + "50.0" : 0.8696254417977733, + "90.0" : 0.8703200405808109, + "95.0" : 0.8703200405808109, + "99.0" : 0.8703200405808109, + "99.9" : 0.8703200405808109, + "99.99" : 0.8703200405808109, + "99.999" : 0.8703200405808109, + "99.9999" : 0.8703200405808109, + "100.0" : 0.8703200405808109 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8699057612066945, + 0.8703200405808109 + ], + [ + 0.8693451223888521, + 0.8691513855289171 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 43.725382690111864, + "scoreError" : 1.2467483817498346, + "scoreConfidence" : [ + 42.47863430836203, + 44.972131071861696 + ], + "scorePercentiles" : { + "0.0" : 42.878972567778796, + "50.0" : 43.657222701719, + "90.0" : 44.64471078475697, + "95.0" : 44.64471078475697, + "99.0" : 44.64471078475697, + "99.9" : 44.64471078475697, + "99.99" : 44.64471078475697, + "99.999" : 44.64471078475697, + "99.9999" : 44.64471078475697, + "100.0" : 44.64471078475697 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.56080073698337, + 44.64471078475697, + 44.63330805860265 + ], + [ + 42.878972567778796, + 42.90726413527759, + 42.9272503303202 + ], + [ + 43.65377670524797, + 43.657222701719, + 43.66513819032023 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 43.51101417312418, + "scoreError" : 1.3039758175367824, + "scoreConfidence" : [ + 42.2070383555874, + 44.81498999066096 + ], + "scorePercentiles" : { + "0.0" : 42.46074799798999, + "50.0" : 43.919897336473376, + "90.0" : 44.14038266172348, + "95.0" : 44.14038266172348, + "99.0" : 44.14038266172348, + "99.9" : 44.14038266172348, + "99.99" : 44.14038266172348, + "99.999" : 44.14038266172348, + "99.9999" : 44.14038266172348, + "100.0" : 44.14038266172348 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 44.13510746298949, + 44.11681928133372, + 44.14038266172348 + ], + [ + 43.89040451298183, + 43.94458681643863, + 43.919897336473376 + ], + [ + 42.46074799798999, + 42.48649199343833, + 42.50468949474879 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 0.05188249344848197, + "scoreError" : 0.0016286800311858416, + "scoreConfidence" : [ + 0.05025381341729613, + 0.05351117347966781 + ], + "scorePercentiles" : { + "0.0" : 0.05066552862050097, + "50.0" : 0.05210605107363002, + "90.0" : 0.052883179308193064, + "95.0" : 0.052883179308193064, + "99.0" : 0.052883179308193064, + "99.9" : 0.052883179308193064, + "99.99" : 0.052883179308193064, + "99.999" : 0.052883179308193064, + "99.9999" : 0.052883179308193064, + "100.0" : 0.052883179308193064 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.050668343981962356, + 0.05066552862050097, + 0.050671809669066786 + ], + [ + 0.0521102071869268, + 0.052101387525008334, + 0.05210605107363002 + ], + [ + 0.05288311202068758, + 0.052883179308193064, + 0.05285282165036177 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33817752867976947, + "scoreError" : 0.01650232636616941, + "scoreConfidence" : [ + 0.3216752023136001, + 0.35467985504593885 + ], + "scorePercentiles" : { + "0.0" : 0.3254714952483239, + "50.0" : 0.3396426453267219, + "90.0" : 0.34879158770185903, + "95.0" : 0.34879158770185903, + "99.0" : 0.34879158770185903, + "99.9" : 0.34879158770185903, + "99.99" : 0.34879158770185903, + "99.999" : 0.34879158770185903, + "99.9999" : 0.34879158770185903, + "100.0" : 0.34879158770185903 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.34038622288028864, + 0.3396426453267219, + 0.3394560875084861 + ], + [ + 0.34879158770185903, + 0.34850733047569266, + 0.34845366375135023 + ], + [ + 0.3271867593901322, + 0.32570196583507033, + 0.3254714952483239 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 0.0527440308189436, + "scoreError" : 7.295368504205332E-4, + "scoreConfidence" : [ + 0.05201449396852306, + 0.05347356766936413 + ], + "scorePercentiles" : { + "0.0" : 0.05218023944147021, + "50.0" : 0.05290051550754614, + "90.0" : 0.053163110423544546, + "95.0" : 0.053163110423544546, + "99.0" : 0.053163110423544546, + "99.9" : 0.053163110423544546, + "99.99" : 0.053163110423544546, + "99.999" : 0.053163110423544546, + "99.9999" : 0.053163110423544546, + "100.0" : 0.053163110423544546 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.0529105015846477, + 0.05289031704685492, + 0.05290051550754614 + ], + [ + 0.05218363736602064, + 0.052186375219179224, + 0.05218023944147021 + ], + [ + 0.053163110423544546, + 0.05316134911141944, + 0.053120231669809566 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.5202083735295633, + "scoreError" : 0.03190522031978566, + "scoreConfidence" : [ + 0.48830315320977763, + 0.552113593849349 + ], + "scorePercentiles" : { + "0.0" : 0.49537793248129985, + "50.0" : 0.5277170549868074, + "90.0" : 0.5377159787073879, + "95.0" : 0.5377159787073879, + "99.0" : 0.5377159787073879, + "99.9" : 0.5377159787073879, + "99.99" : 0.5377159787073879, + "99.999" : 0.5377159787073879, + "99.9999" : 0.5377159787073879, + "100.0" : 0.5377159787073879 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.5372063835947573, + 0.5372449502524981, + 0.5377159787073879 + ], + [ + 0.5277170549868074, + 0.5284748000845532, + 0.5269452361155021 + ], + [ + 0.49537793248129985, + 0.4955745880370682, + 0.4956184375061949 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 0.02330213170499937, + "scoreError" : 8.600355254300683E-4, + "scoreConfidence" : [ + 0.022442096179569302, + 0.02416216723042944 + ], + "scorePercentiles" : { + "0.0" : 0.022813897548678522, + "50.0" : 0.023125910827642506, + "90.0" : 0.02400309627284467, + "95.0" : 0.02400309627284467, + "99.0" : 0.02400309627284467, + "99.9" : 0.02400309627284467, + "99.99" : 0.02400309627284467, + "99.999" : 0.02400309627284467, + "99.9999" : 0.02400309627284467, + "100.0" : 0.02400309627284467 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.02400309627284467, + 0.02393782406913143, + 0.0239411025073199 + ], + [ + 0.023125910827642506, + 0.023130867757813513, + 0.02312172802480468 + ], + [ + 0.022815617882190817, + 0.022813897548678522, + 0.022829140454568284 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.24497773765850908, + "scoreError" : 0.01858056660717018, + "scoreConfidence" : [ + 0.2263971710513389, + 0.2635583042656793 + ], + "scorePercentiles" : { + "0.0" : 0.23287860653905268, + "50.0" : 0.24373483102196009, + "90.0" : 0.2584875260545906, + "95.0" : 0.2584875260545906, + "99.0" : 0.2584875260545906, + "99.9" : 0.2584875260545906, + "99.99" : 0.2584875260545906, + "99.999" : 0.2584875260545906, + "99.9999" : 0.2584875260545906, + "100.0" : 0.2584875260545906 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.24291845883838997, + 0.24373483102196009, + 0.244542229520223 + ], + [ + 0.23289833480832828, + 0.232887405798789, + 0.23287860653905268 + ], + [ + 0.2583865650983128, + 0.2580656812469356, + 0.2584875260545906 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 0.10041460423244533, + "scoreError" : 0.00344695704530663, + "scoreConfidence" : [ + 0.0969676471871387, + 0.10386156127775197 + ], + "scorePercentiles" : { + "0.0" : 0.09789638518844836, + "50.0" : 0.09973601610715496, + "90.0" : 0.10319401726415289, + "95.0" : 0.10319401726415289, + "99.0" : 0.10319401726415289, + "99.9" : 0.10319401726415289, + "99.99" : 0.10319401726415289, + "99.999" : 0.10319401726415289, + "99.9999" : 0.10319401726415289, + "100.0" : 0.10319401726415289 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.0997753193151546, + 0.09973601610715496, + 0.09968744761999701 + ], + [ + 0.10319401726415289, + 0.10292642249737541, + 0.10296189465122266 + ], + [ + 0.09890774312108085, + 0.09864619232742124, + 0.09789638518844836 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 1.0159083973122576, + "scoreError" : 0.02939051680419365, + "scoreConfidence" : [ + 0.9865178805080639, + 1.0452989141164513 + ], + "scorePercentiles" : { + "0.0" : 1.0011459455400942, + "50.0" : 1.0057589681182741, + "90.0" : 1.0412337920874544, + "95.0" : 1.0412337920874544, + "99.0" : 1.0412337920874544, + "99.9" : 1.0412337920874544, + "99.99" : 1.0412337920874544, + "99.999" : 1.0412337920874544, + "99.9999" : 1.0412337920874544, + "100.0" : 1.0412337920874544 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.009501218958207, + 1.005332541314837, + 1.0057589681182741 + ], + [ + 1.0412337920874544, + 1.0381442229834943, + 1.0374625426348547 + ], + [ + 1.003403861141768, + 1.0011924830313346, + 1.0011459455400942 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 0.04436857258557735, + "scoreError" : 0.001215658707935488, + "scoreConfidence" : [ + 0.04315291387764186, + 0.04558423129351284 + ], + "scorePercentiles" : { + "0.0" : 0.04356789100771141, + "50.0" : 0.04423132656897566, + "90.0" : 0.04526977572758838, + "95.0" : 0.04526977572758838, + "99.0" : 0.04526977572758838, + "99.9" : 0.04526977572758838, + "99.99" : 0.04526977572758838, + "99.999" : 0.04526977572758838, + "99.9999" : 0.04526977572758838, + "100.0" : 0.04526977572758838 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04427510071104736, + 0.04423132656897566, + 0.04421848874876743 + ], + [ + 0.043641449038373414, + 0.04356789100771141, + 0.04360398981424959 + ], + [ + 0.045260049685898945, + 0.04526977572758838, + 0.045249081967584 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.4358362930061064, + "scoreError" : 0.00755290990194395, + "scoreConfidence" : [ + 0.4282833831041624, + 0.44338920290805034 + ], + "scorePercentiles" : { + "0.0" : 0.4298716314477304, + "50.0" : 0.4364674297747905, + "90.0" : 0.44085744850996295, + "95.0" : 0.44085744850996295, + "99.0" : 0.44085744850996295, + "99.9" : 0.44085744850996295, + "99.99" : 0.44085744850996295, + "99.999" : 0.44085744850996295, + "99.9999" : 0.44085744850996295, + "100.0" : 0.44085744850996295 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.4368088904953263, + 0.4364674297747905, + 0.43620555661694144 + ], + [ + 0.44085744850996295, + 0.4406312695747962, + 0.44042787976746234 + ], + [ + 0.43134281193926843, + 0.4299137189286789, + 0.4298716314477304 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 0.011722568660637263, + "scoreError" : 2.1956260875161603E-4, + "scoreConfidence" : [ + 0.011503006051885646, + 0.01194213126938888 + ], + "scorePercentiles" : { + "0.0" : 0.011542314397607535, + "50.0" : 0.011800895635252648, + "90.0" : 0.011824917085953011, + "95.0" : 0.011824917085953011, + "99.0" : 0.011824917085953011, + "99.9" : 0.011824917085953011, + "99.99" : 0.011824917085953011, + "99.999" : 0.011824917085953011, + "99.9999" : 0.011824917085953011, + "100.0" : 0.011824917085953011 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.011550013690086382, + 0.011542314397607535, + 0.01155425209245146 + ], + [ + 0.011824917085953011, + 0.011808919938877789, + 0.01182250247441645 + ], + [ + 0.011800895635252648, + 0.01179528595810834, + 0.011804016672981744 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.0698523009710762, + "scoreError" : 0.0014210968304418292, + "scoreConfidence" : [ + 0.06843120414063437, + 0.07127339780151802 + ], + "scorePercentiles" : { + "0.0" : 0.06866273061342196, + "50.0" : 0.07006469910388363, + "90.0" : 0.07072980937157407, + "95.0" : 0.07072980937157407, + "99.0" : 0.07072980937157407, + "99.9" : 0.07072980937157407, + "99.99" : 0.07072980937157407, + "99.999" : 0.07072980937157407, + "99.9999" : 0.07072980937157407, + "100.0" : 0.07072980937157407 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.07070594901472782, + 0.07072980937157407, + 0.07066807764877146 + ], + [ + 0.06896519448563133, + 0.06874885908056566, + 0.06866273061342196 + ], + [ + 0.07010626623108039, + 0.07006469910388363, + 0.07001912319002941 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "10" + }, + "primaryMetric" : { + "score" : 2.2874525121049147E7, + "scoreError" : 920787.4900115487, + "scoreConfidence" : [ + 2.1953737631037597E7, + 2.3795312611060698E7 + ], + "scorePercentiles" : { + "0.0" : 2.240210304474273E7, + "50.0" : 2.2565303896396395E7, + "90.0" : 2.3641611439716313E7, + "95.0" : 2.3641611439716313E7, + "99.0" : 2.3641611439716313E7, + "99.9" : 2.3641611439716313E7, + "99.99" : 2.3641611439716313E7, + "99.999" : 2.3641611439716313E7, + "99.9999" : 2.3641611439716313E7, + "100.0" : 2.3641611439716313E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 2.3641611439716313E7, + 2.359826475471698E7, + 2.3560848635294117E7 + ], + [ + 2.2503107015730336E7, + 2.2443770878923766E7, + 2.240210304474273E7 + ], + [ + 2.2591522221218962E7, + 2.25641942027027E7, + 2.2565303896396395E7 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 2.3047301492169302E7, + "scoreError" : 309261.7454961725, + "scoreConfidence" : [ + 2.273803974667313E7, + 2.3356563237665474E7 + ], + "scorePercentiles" : { + "0.0" : 2.284278906392694E7, + "50.0" : 2.2973325006880734E7, + "90.0" : 2.3301097169767443E7, + "95.0" : 2.3301097169767443E7, + "99.0" : 2.3301097169767443E7, + "99.9" : 2.3301097169767443E7, + "99.99" : 2.3301097169767443E7, + "99.999" : 2.3301097169767443E7, + "99.9999" : 2.3301097169767443E7, + "100.0" : 2.3301097169767443E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 2.319061096064815E7, + 2.2973325006880734E7, + 2.2951058389908258E7 + ], + [ + 2.2868141162100457E7, + 2.2856062216894977E7, + 2.284278906392694E7 + ], + [ + 2.3301097169767443E7, + 2.323164748491879E7, + 2.3210981974477958E7 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-24T01:29:41Z-53fa9b53fcbe2b6804d82a3e24bd58c0f5e70c2d-jdk17.json b/performance-results/2025-02-24T01:29:41Z-53fa9b53fcbe2b6804d82a3e24bd58c0f5e70c2d-jdk17.json new file mode 100644 index 000000000..94b24bdf8 --- /dev/null +++ b/performance-results/2025-02-24T01:29:41Z-53fa9b53fcbe2b6804d82a3e24bd58c0f5e70c2d-jdk17.json @@ -0,0 +1,665 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4240890205405137, + "scoreError" : 0.03936617511364664, + "scoreConfidence" : [ + 3.384722845426867, + 3.46345519565416 + ], + "scorePercentiles" : { + "0.0" : 3.416280112766159, + "50.0" : 3.424803993008525, + "90.0" : 3.4304679833788474, + "95.0" : 3.4304679833788474, + "99.0" : 3.4304679833788474, + "99.9" : 3.4304679833788474, + "99.99" : 3.4304679833788474, + "99.999" : 3.4304679833788474, + "99.9999" : 3.4304679833788474, + "100.0" : 3.4304679833788474 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4268828533900053, + 3.4304679833788474 + ], + [ + 3.416280112766159, + 3.4227251326270443 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7289182439981992, + "scoreError" : 0.009875088289429172, + "scoreConfidence" : [ + 1.71904315570877, + 1.7387933322876283 + ], + "scorePercentiles" : { + "0.0" : 1.7275909081867116, + "50.0" : 1.728819061863204, + "90.0" : 1.7304439440796775, + "95.0" : 1.7304439440796775, + "99.0" : 1.7304439440796775, + "99.9" : 1.7304439440796775, + "99.99" : 1.7304439440796775, + "99.999" : 1.7304439440796775, + "99.9999" : 1.7304439440796775, + "100.0" : 1.7304439440796775 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7300225473819377, + 1.7304439440796775 + ], + [ + 1.7275909081867116, + 1.7276155763444705 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8700132941789567, + "scoreError" : 0.0021170309298315024, + "scoreConfidence" : [ + 0.8678962632491252, + 0.8721303251087882 + ], + "scorePercentiles" : { + "0.0" : 0.8695372797886042, + "50.0" : 0.8701173884345118, + "90.0" : 0.870281120058199, + "95.0" : 0.870281120058199, + "99.0" : 0.870281120058199, + "99.9" : 0.870281120058199, + "99.99" : 0.870281120058199, + "99.999" : 0.870281120058199, + "99.9999" : 0.870281120058199, + "100.0" : 0.870281120058199 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8695372797886042, + 0.8700857738212587 + ], + [ + 0.8701490030477649, + 0.870281120058199 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 42.64160574403351, + "scoreError" : 1.3640765499826009, + "scoreConfidence" : [ + 41.27752919405091, + 44.00568229401611 + ], + "scorePercentiles" : { + "0.0" : 41.707744537786546, + "50.0" : 42.49634829304081, + "90.0" : 43.71206456211418, + "95.0" : 43.71206456211418, + "99.0" : 43.71206456211418, + "99.9" : 43.71206456211418, + "99.99" : 43.71206456211418, + "99.999" : 43.71206456211418, + "99.9999" : 43.71206456211418, + "100.0" : 43.71206456211418 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 41.707744537786546, + 41.77952555912812, + 41.87837244221971 + ], + [ + 43.71206456211418, + 43.60545355674085, + 43.60775354052616 + ], + [ + 42.50645826039412, + 42.48073094435115, + 42.49634829304081 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.34440201171656104, + "scoreError" : 0.004486131561743835, + "scoreConfidence" : [ + 0.3399158801548172, + 0.34888814327830486 + ], + "scorePercentiles" : { + "0.0" : 0.34078550754813425, + "50.0" : 0.34573783564390664, + "90.0" : 0.3467770228517928, + "95.0" : 0.3467770228517928, + "99.0" : 0.3467770228517928, + "99.9" : 0.3467770228517928, + "99.99" : 0.3467770228517928, + "99.999" : 0.3467770228517928, + "99.9999" : 0.3467770228517928, + "100.0" : 0.3467770228517928 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3466564419717138, + 0.34573783564390664, + 0.3454683490862611 + ], + [ + 0.34078550754813425, + 0.341077951739427, + 0.3407947371183206 + ], + [ + 0.3467770228517928, + 0.3460057300532835, + 0.34631452943621 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.5108566930793287, + "scoreError" : 0.01673376640611887, + "scoreConfidence" : [ + 0.49412292667320984, + 0.5275904594854476 + ], + "scorePercentiles" : { + "0.0" : 0.4975432007562565, + "50.0" : 0.5133298237347295, + "90.0" : 0.5213933500521376, + "95.0" : 0.5213933500521376, + "99.0" : 0.5213933500521376, + "99.9" : 0.5213933500521376, + "99.99" : 0.5213933500521376, + "99.999" : 0.5213933500521376, + "99.9999" : 0.5213933500521376, + "100.0" : 0.5213933500521376 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.5133298237347295, + 0.5134748340521668, + 0.5125813436699128 + ], + [ + 0.49966809073648444, + 0.49803418884462153, + 0.4975432007562565 + ], + [ + 0.5213933500521376, + 0.5209760688200052, + 0.5207093370476439 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.22985229142533534, + "scoreError" : 0.009007513978974728, + "scoreConfidence" : [ + 0.2208447774463606, + 0.23885980540431007 + ], + "scorePercentiles" : { + "0.0" : 0.2246681499179978, + "50.0" : 0.2278689162375245, + "90.0" : 0.237023872223934, + "95.0" : 0.237023872223934, + "99.0" : 0.237023872223934, + "99.9" : 0.237023872223934, + "99.99" : 0.237023872223934, + "99.999" : 0.237023872223934, + "99.9999" : 0.237023872223934, + "100.0" : 0.237023872223934 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.2278689162375245, + 0.22774250177636074, + 0.22795436086986254 + ], + [ + 0.22517435144446196, + 0.2246681499179978, + 0.2248926582634313 + ], + [ + 0.237023872223934, + 0.23653219364223374, + 0.2368136184522118 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 1.0276159079256935, + "scoreError" : 0.03894493523763066, + "scoreConfidence" : [ + 0.9886709726880628, + 1.0665608431633242 + ], + "scorePercentiles" : { + "0.0" : 1.0002823356671335, + "50.0" : 1.0272291300328678, + "90.0" : 1.0546416500052727, + "95.0" : 1.0546416500052727, + "99.0" : 1.0546416500052727, + "99.9" : 1.0546416500052727, + "99.99" : 1.0546416500052727, + "99.999" : 1.0546416500052727, + "99.9999" : 1.0546416500052727, + "100.0" : 1.0546416500052727 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0546416500052727, + 1.054312120177103, + 1.0531231917649537 + ], + [ + 1.0005659335667834, + 1.0002823356671335, + 1.0008482301841473 + ], + [ + 1.0303489075829384, + 1.0272291300328678, + 1.0271916723500412 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.43364130483497326, + "scoreError" : 0.00832028889387276, + "scoreConfidence" : [ + 0.4253210159411005, + 0.441961593728846 + ], + "scorePercentiles" : { + "0.0" : 0.42869411788914136, + "50.0" : 0.43192799589686004, + "90.0" : 0.4409237714285714, + "95.0" : 0.4409237714285714, + "99.0" : 0.4409237714285714, + "99.9" : 0.4409237714285714, + "99.99" : 0.4409237714285714, + "99.999" : 0.4409237714285714, + "99.9999" : 0.4409237714285714, + "100.0" : 0.4409237714285714 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.4409237714285714, + 0.4396748718839305, + 0.4388150212383167 + ], + [ + 0.4287206548915373, + 0.42869411788914136, + 0.4290466350609233 + ], + [ + 0.43398500785488003, + 0.43192799589686004, + 0.4309836673705986 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.07000095626907243, + "scoreError" : 0.0014089190015736848, + "scoreConfidence" : [ + 0.06859203726749875, + 0.07140987527064611 + ], + "scorePercentiles" : { + "0.0" : 0.06913664714503985, + "50.0" : 0.06945898296891062, + "90.0" : 0.07108060061981121, + "95.0" : 0.07108060061981121, + "99.0" : 0.07108060061981121, + "99.9" : 0.07108060061981121, + "99.99" : 0.07108060061981121, + "99.999" : 0.07108060061981121, + "99.9999" : 0.07108060061981121, + "100.0" : 0.07108060061981121 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.07108060061981121, + 0.06928036679298614, + 0.06945898296891062 + ], + [ + 0.0692402498563288, + 0.06913664714503985, + 0.06942358199868097 + ], + [ + 0.07097093614137184, + 0.0708561556971084, + 0.07056108520141402 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 2.315031757691618E7, + "scoreError" : 834203.297699478, + "scoreConfidence" : [ + 2.2316114279216703E7, + 2.3984520874615658E7 + ], + "scorePercentiles" : { + "0.0" : 2.251475790786517E7, + "50.0" : 2.3254453705336425E7, + "90.0" : 2.3667659647754136E7, + "95.0" : 2.3667659647754136E7, + "99.0" : 2.3667659647754136E7, + "99.9" : 2.3667659647754136E7, + "99.99" : 2.3667659647754136E7, + "99.999" : 2.3667659647754136E7, + "99.9999" : 2.3667659647754136E7, + "100.0" : 2.3667659647754136E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 2.3667659647754136E7, + 2.3658213401891254E7, + 2.366260164066194E7 + ], + [ + 2.251475790786517E7, + 2.2533523272522524E7, + 2.2547165313063063E7 + ], + [ + 2.3254453705336425E7, + 2.32293066450116E7, + 2.3285176658139534E7 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-24T09:48:13Z-d229276fb3c4911f7a7e56bf28334808acb01ca3-jdk17.json b/performance-results/2025-02-24T09:48:13Z-d229276fb3c4911f7a7e56bf28334808acb01ca3-jdk17.json new file mode 100644 index 000000000..30667dd79 --- /dev/null +++ b/performance-results/2025-02-24T09:48:13Z-d229276fb3c4911f7a7e56bf28334808acb01ca3-jdk17.json @@ -0,0 +1,665 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4022546195396735, + "scoreError" : 0.017482973489114994, + "scoreConfidence" : [ + 3.3847716460505586, + 3.4197375930287883 + ], + "scorePercentiles" : { + "0.0" : 3.3988796541507518, + "50.0" : 3.4023760846252484, + "90.0" : 3.4053866547574443, + "95.0" : 3.4053866547574443, + "99.0" : 3.4053866547574443, + "99.9" : 3.4053866547574443, + "99.99" : 3.4053866547574443, + "99.999" : 3.4053866547574443, + "99.9999" : 3.4053866547574443, + "100.0" : 3.4053866547574443 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.401772014494162, + 3.4029801547563348 + ], + [ + 3.3988796541507518, + 3.4053866547574443 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7196663533286398, + "scoreError" : 0.014536449828748476, + "scoreConfidence" : [ + 1.7051299034998912, + 1.7342028031573884 + ], + "scorePercentiles" : { + "0.0" : 1.7174594833968682, + "50.0" : 1.7194137156433158, + "90.0" : 1.722378498631059, + "95.0" : 1.722378498631059, + "99.0" : 1.722378498631059, + "99.9" : 1.722378498631059, + "99.99" : 1.722378498631059, + "99.999" : 1.722378498631059, + "99.9999" : 1.722378498631059, + "100.0" : 1.722378498631059 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7174594833968682, + 1.720602732042664 + ], + [ + 1.7182246992439676, + 1.722378498631059 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8642645143308028, + "scoreError" : 0.0034989436549679176, + "scoreConfidence" : [ + 0.8607655706758348, + 0.8677634579857707 + ], + "scorePercentiles" : { + "0.0" : 0.8635509397774016, + "50.0" : 0.8643195138315781, + "90.0" : 0.8648680898826532, + "95.0" : 0.8648680898826532, + "99.0" : 0.8648680898826532, + "99.9" : 0.8648680898826532, + "99.99" : 0.8648680898826532, + "99.999" : 0.8648680898826532, + "99.9999" : 0.8648680898826532, + "100.0" : 0.8648680898826532 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8643220007966118, + 0.8648680898826532 + ], + [ + 0.8635509397774016, + 0.8643170268665444 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 37.92108556259461, + "scoreError" : 2.1803773481991127, + "scoreConfidence" : [ + 35.7407082143955, + 40.10146291079373 + ], + "scorePercentiles" : { + "0.0" : 36.7907295161254, + "50.0" : 37.1257475248306, + "90.0" : 39.74442108757022, + "95.0" : 39.74442108757022, + "99.0" : 39.74442108757022, + "99.9" : 39.74442108757022, + "99.99" : 39.74442108757022, + "99.999" : 39.74442108757022, + "99.9999" : 39.74442108757022, + "100.0" : 39.74442108757022 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 37.093128965232616, + 37.108901583866064, + 36.7907295161254 + ], + [ + 37.1257475248306, + 37.04892454527629, + 37.19742750402842 + ], + [ + 39.464342600993746, + 39.74442108757022, + 39.716146735428204 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.35038660216748957, + "scoreError" : 0.0036178241546157524, + "scoreConfidence" : [ + 0.3467687780128738, + 0.3540044263221053 + ], + "scorePercentiles" : { + "0.0" : 0.34693029758889854, + "50.0" : 0.3503044037760964, + "90.0" : 0.3537241296381451, + "95.0" : 0.3537241296381451, + "99.0" : 0.3537241296381451, + "99.9" : 0.3537241296381451, + "99.99" : 0.3537241296381451, + "99.999" : 0.3537241296381451, + "99.9999" : 0.3537241296381451, + "100.0" : 0.3537241296381451 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3537241296381451, + 0.3500387195211593, + 0.3499470267697799 + ], + [ + 0.35256384406839414, + 0.3510276912492541, + 0.35132210816792553 + ], + [ + 0.3503044037760964, + 0.34762119872775304, + 0.34693029758889854 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.5133334808724517, + "scoreError" : 0.004854914945014691, + "scoreConfidence" : [ + 0.508478565927437, + 0.5181883958174663 + ], + "scorePercentiles" : { + "0.0" : 0.5105533991422883, + "50.0" : 0.5127151179697513, + "90.0" : 0.517916162773836, + "95.0" : 0.517916162773836, + "99.0" : 0.517916162773836, + "99.9" : 0.517916162773836, + "99.99" : 0.517916162773836, + "99.999" : 0.517916162773836, + "99.9999" : 0.517916162773836, + "100.0" : 0.517916162773836 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.5110045925907001, + 0.5107955352436409, + 0.5110505164554374 + ], + [ + 0.517916162773836, + 0.516407525690679, + 0.5166440658710477 + ], + [ + 0.5127151179697513, + 0.5129144121146844, + 0.5105533991422883 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.24284745478312963, + "scoreError" : 0.01049551718919714, + "scoreConfidence" : [ + 0.2323519375939325, + 0.2533429719723268 + ], + "scorePercentiles" : { + "0.0" : 0.23525882779306936, + "50.0" : 0.24295487135881053, + "90.0" : 0.2516049401197605, + "95.0" : 0.2516049401197605, + "99.0" : 0.2516049401197605, + "99.9" : 0.2516049401197605, + "99.99" : 0.2516049401197605, + "99.999" : 0.2516049401197605, + "99.9999" : 0.2516049401197605, + "100.0" : 0.2516049401197605 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.24295487135881053, + 0.2430232010012394, + 0.2428598038468077 + ], + [ + 0.2492799530373657, + 0.24897829017801568, + 0.2516049401197605 + ], + [ + 0.23538877749270312, + 0.23627842822039505, + 0.23525882779306936 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 1.0144827414344384, + "scoreError" : 0.040590136169010034, + "scoreConfidence" : [ + 0.9738926052654283, + 1.0550728776034484 + ], + "scorePercentiles" : { + "0.0" : 0.9830720440381402, + "50.0" : 1.019898655109117, + "90.0" : 1.039894017988978, + "95.0" : 1.039894017988978, + "99.0" : 1.039894017988978, + "99.9" : 1.039894017988978, + "99.99" : 1.039894017988978, + "99.999" : 1.039894017988978, + "99.9999" : 1.039894017988978, + "100.0" : 1.039894017988978 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0388163423704166, + 1.0388171291160277, + 1.039894017988978 + ], + [ + 1.0213398724468954, + 1.019898655109117, + 1.0187678639095448 + ], + [ + 0.9838052153467781, + 0.9830720440381402, + 0.9859335325840481 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.43793185003198876, + "scoreError" : 0.007114234387317298, + "scoreConfidence" : [ + 0.43081761564467147, + 0.44504608441930604 + ], + "scorePercentiles" : { + "0.0" : 0.43224321594052556, + "50.0" : 0.4372556124786848, + "90.0" : 0.4434983154020134, + "95.0" : 0.4434983154020134, + "99.0" : 0.4434983154020134, + "99.9" : 0.4434983154020134, + "99.99" : 0.4434983154020134, + "99.999" : 0.4434983154020134, + "99.9999" : 0.4434983154020134, + "100.0" : 0.4434983154020134 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.4380310428821726, + 0.43682558900100465, + 0.43433328165038004 + ], + [ + 0.44269590252324037, + 0.4434983154020134, + 0.44286145321287806 + ], + [ + 0.4372556124786848, + 0.43224321594052556, + 0.43364223719699924 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.07028972787073305, + "scoreError" : 5.179855389906926E-4, + "scoreConfidence" : [ + 0.06977174233174235, + 0.07080771340972375 + ], + "scorePercentiles" : { + "0.0" : 0.06970817791269919, + "50.0" : 0.07033018202533248, + "90.0" : 0.07068447294240719, + "95.0" : 0.07068447294240719, + "99.0" : 0.07068447294240719, + "99.9" : 0.07068447294240719, + "99.99" : 0.07068447294240719, + "99.999" : 0.07068447294240719, + "99.9999" : 0.07068447294240719, + "100.0" : 0.07068447294240719 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06994119092314256, + 0.06970817791269919, + 0.07017967310904319 + ], + [ + 0.07031189624963087, + 0.07056519143351092, + 0.07033018202533248 + ], + [ + 0.0705037038261691, + 0.07038306241466195, + 0.07068447294240719 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 2.6797161614550885E7, + "scoreError" : 1219300.8546828355, + "scoreConfidence" : [ + 2.5577860759868048E7, + 2.801646246923372E7 + ], + "scorePercentiles" : { + "0.0" : 2.616316707310705E7, + "50.0" : 2.6336108715789475E7, + "90.0" : 2.7772019864265926E7, + "95.0" : 2.7772019864265926E7, + "99.0" : 2.7772019864265926E7, + "99.9" : 2.7772019864265926E7, + "99.99" : 2.7772019864265926E7, + "99.999" : 2.7772019864265926E7, + "99.9999" : 2.7772019864265926E7, + "100.0" : 2.7772019864265926E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 2.7772019864265926E7, + 2.770387028531856E7, + 2.7753106371191137E7 + ], + [ + 2.6267871010498688E7, + 2.616316707310705E7, + 2.6336108715789475E7 + ], + [ + 2.620666960209424E7, + 2.6275712790026248E7, + 2.6695928818666667E7 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-25T01:23:55Z-2f880f3c1b28bc9004d94aea79dd7609f3b3d513-jdk17.json b/performance-results/2025-02-25T01:23:55Z-2f880f3c1b28bc9004d94aea79dd7609f3b3d513-jdk17.json new file mode 100644 index 000000000..9ff60cd61 --- /dev/null +++ b/performance-results/2025-02-25T01:23:55Z-2f880f3c1b28bc9004d94aea79dd7609f3b3d513-jdk17.json @@ -0,0 +1,665 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.404690960666666, + "scoreError" : 0.03044852968952923, + "scoreConfidence" : [ + 3.374242430977137, + 3.4351394903561956 + ], + "scorePercentiles" : { + "0.0" : 3.400213854643417, + "50.0" : 3.4045940175499285, + "90.0" : 3.4093619529233923, + "95.0" : 3.4093619529233923, + "99.0" : 3.4093619529233923, + "99.9" : 3.4093619529233923, + "99.99" : 3.4093619529233923, + "99.999" : 3.4093619529233923, + "99.9999" : 3.4093619529233923, + "100.0" : 3.4093619529233923 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4010779262103115, + 3.4093619529233923 + ], + [ + 3.400213854643417, + 3.4081101088895456 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7196934301008682, + "scoreError" : 0.009433261921329341, + "scoreConfidence" : [ + 1.7102601681795389, + 1.7291266920221975 + ], + "scorePercentiles" : { + "0.0" : 1.718360312679651, + "50.0" : 1.7193343356815178, + "90.0" : 1.7217447363607858, + "95.0" : 1.7217447363607858, + "99.0" : 1.7217447363607858, + "99.9" : 1.7217447363607858, + "99.99" : 1.7217447363607858, + "99.999" : 1.7217447363607858, + "99.9999" : 1.7217447363607858, + "100.0" : 1.7217447363607858 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.718360312679651, + 1.7196083418321035 + ], + [ + 1.7190603295309321, + 1.7217447363607858 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8631208369410628, + "scoreError" : 0.013966265434022882, + "scoreConfidence" : [ + 0.8491545715070399, + 0.8770871023750857 + ], + "scorePercentiles" : { + "0.0" : 0.8611588039727823, + "50.0" : 0.8627513593861174, + "90.0" : 0.8658218250192341, + "95.0" : 0.8658218250192341, + "99.0" : 0.8658218250192341, + "99.9" : 0.8658218250192341, + "99.99" : 0.8658218250192341, + "99.999" : 0.8658218250192341, + "99.9999" : 0.8658218250192341, + "100.0" : 0.8658218250192341 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8611588039727823, + 0.8616121378539223 + ], + [ + 0.8638905809183123, + 0.8658218250192341 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 98.27096987223166, + "scoreError" : 2.5045477559708336, + "scoreConfidence" : [ + 95.76642211626083, + 100.7755176282025 + ], + "scorePercentiles" : { + "0.0" : 95.68051247255123, + "50.0" : 98.9270899531805, + "90.0" : 100.39260288227369, + "95.0" : 100.39260288227369, + "99.0" : 100.39260288227369, + "99.9" : 100.39260288227369, + "99.99" : 100.39260288227369, + "99.999" : 100.39260288227369, + "99.9999" : 100.39260288227369, + "100.0" : 100.39260288227369 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 98.94312506760458, + 96.69698833361956, + 95.68051247255123 + ], + [ + 97.34514063006868, + 98.9270899531805, + 99.06264023901753 + ], + [ + 97.87215469667093, + 99.5184745750984, + 100.39260288227369 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18459150246144512, + "scoreError" : 0.015563152229965621, + "scoreConfidence" : [ + 0.1690283502314795, + 0.20015465469141075 + ], + "scorePercentiles" : { + "0.0" : 0.17348002208344177, + "50.0" : 0.18480328357326337, + "90.0" : 0.195657021150046, + "95.0" : 0.195657021150046, + "99.0" : 0.195657021150046, + "99.9" : 0.195657021150046, + "99.99" : 0.195657021150046, + "99.999" : 0.195657021150046, + "99.9999" : 0.195657021150046, + "100.0" : 0.195657021150046 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17405713295854075, + 0.17348002208344177, + 0.17388261548225556 + ], + [ + 0.18486138387311446, + 0.18480328357326337, + 0.18468698899292665 + ], + [ + 0.195657021150046, + 0.19494815564263018, + 0.19494691839678735 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.34461395648434884, + "scoreError" : 0.018543995661311215, + "scoreConfidence" : [ + 0.32606996082303763, + 0.36315795214566005 + ], + "scorePercentiles" : { + "0.0" : 0.33486547773238684, + "50.0" : 0.33847169561685564, + "90.0" : 0.35935824540031625, + "95.0" : 0.35935824540031625, + "99.0" : 0.35935824540031625, + "99.9" : 0.35935824540031625, + "99.99" : 0.35935824540031625, + "99.999" : 0.35935824540031625, + "99.9999" : 0.35935824540031625, + "100.0" : 0.35935824540031625 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3397393252250722, + 0.33774711324259515, + 0.33847169561685564 + ], + [ + 0.33581736851472516, + 0.33486547773238684, + 0.33725926642385 + ], + [ + 0.3590065454676001, + 0.3592605707357379, + 0.35935824540031625 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1662644528201741, + "scoreError" : 0.007041908485461542, + "scoreConfidence" : [ + 0.15922254433471256, + 0.17330636130563565 + ], + "scorePercentiles" : { + "0.0" : 0.16043068409991498, + "50.0" : 0.16863301156790664, + "90.0" : 0.16965664430646038, + "95.0" : 0.16965664430646038, + "99.0" : 0.16965664430646038, + "99.9" : 0.16965664430646038, + "99.99" : 0.16965664430646038, + "99.999" : 0.16965664430646038, + "99.9999" : 0.16965664430646038, + "100.0" : 0.16965664430646038 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16937442495172927, + 0.16863301156790664, + 0.16815488644694804 + ], + [ + 0.16933125113026398, + 0.16909790911243003, + 0.16965664430646038 + ], + [ + 0.16098464717719216, + 0.16071661658872122, + 0.16043068409991498 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3986439231800467, + "scoreError" : 0.00637091300263217, + "scoreConfidence" : [ + 0.39227301017741456, + 0.40501483618267886 + ], + "scorePercentiles" : { + "0.0" : 0.39420818677073477, + "50.0" : 0.3977881543754972, + "90.0" : 0.40496893557139385, + "95.0" : 0.40496893557139385, + "99.0" : 0.40496893557139385, + "99.9" : 0.40496893557139385, + "99.99" : 0.40496893557139385, + "99.999" : 0.40496893557139385, + "99.9999" : 0.40496893557139385, + "100.0" : 0.40496893557139385 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.40496893557139385, + 0.39927211874151564, + 0.3992613548528766 + ], + [ + 0.40407144094710895, + 0.3971080157646031, + 0.3967713057451198 + ], + [ + 0.3977881543754972, + 0.3943457958515714, + 0.39420818677073477 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16648713306207816, + "scoreError" : 0.005414247074119306, + "scoreConfidence" : [ + 0.16107288598795885, + 0.17190138013619746 + ], + "scorePercentiles" : { + "0.0" : 0.16283060862981355, + "50.0" : 0.16614479812261174, + "90.0" : 0.1708238147110572, + "95.0" : 0.1708238147110572, + "99.0" : 0.1708238147110572, + "99.9" : 0.1708238147110572, + "99.99" : 0.1708238147110572, + "99.999" : 0.1708238147110572, + "99.9999" : 0.1708238147110572, + "100.0" : 0.1708238147110572 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17022843914479283, + 0.1708238147110572, + 0.17013370232566052 + ], + [ + 0.16572026116929603, + 0.16614479812261174, + 0.16627377380576294 + ], + [ + 0.1633060520772095, + 0.16283060862981355, + 0.1629227475724992 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.048708404283641024, + "scoreError" : 3.256900826240487E-4, + "scoreConfidence" : [ + 0.048382714201016974, + 0.049034094366265074 + ], + "scorePercentiles" : { + "0.0" : 0.04842643591134269, + "50.0" : 0.04864128523274478, + "90.0" : 0.04892708317962317, + "95.0" : 0.04892708317962317, + "99.0" : 0.04892708317962317, + "99.9" : 0.04892708317962317, + "99.99" : 0.04892708317962317, + "99.999" : 0.04892708317962317, + "99.9999" : 0.04892708317962317, + "100.0" : 0.04892708317962317 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.048913571263665044, + 0.04851722961938724, + 0.04856391890421869 + ], + [ + 0.04892708317962317, + 0.04887132461807626, + 0.04889490055397192 + ], + [ + 0.048619889269739404, + 0.04864128523274478, + 0.04842643591134269 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 1.0553918135524623E7, + "scoreError" : 679622.1646854198, + "scoreConfidence" : [ + 9874295.970839202, + 1.1233540300210044E7 + ], + "scorePercentiles" : { + "0.0" : 1.0047981846385542E7, + "50.0" : 1.0525982719242902E7, + "90.0" : 1.1121641787777778E7, + "95.0" : 1.1121641787777778E7, + "99.0" : 1.1121641787777778E7, + "99.9" : 1.1121641787777778E7, + "99.99" : 1.1121641787777778E7, + "99.999" : 1.1121641787777778E7, + "99.9999" : 1.1121641787777778E7, + "100.0" : 1.1121641787777778E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 1.0205105657142857E7, + 1.0095831249243189E7, + 1.0047981846385542E7 + ], + [ + 1.0493827069254985E7, + 1.0525982719242902E7, + 1.0534360494736843E7 + ], + [ + 1.0856959726681128E7, + 1.1103572669256382E7, + 1.1121641787777778E7 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-26T21:08:56Z-6f33577a109177a85edb84a8f9d16c4662a8b867-jdk17.json b/performance-results/2025-02-26T21:08:56Z-6f33577a109177a85edb84a8f9d16c4662a8b867-jdk17.json new file mode 100644 index 000000000..7955929f2 --- /dev/null +++ b/performance-results/2025-02-26T21:08:56Z-6f33577a109177a85edb84a8f9d16c4662a8b867-jdk17.json @@ -0,0 +1,665 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4146001038397236, + "scoreError" : 0.06330522138552402, + "scoreConfidence" : [ + 3.3512948824541997, + 3.4779053252252474 + ], + "scorePercentiles" : { + "0.0" : 3.406498306401554, + "50.0" : 3.4121721428099234, + "90.0" : 3.4275578233374935, + "95.0" : 3.4275578233374935, + "99.0" : 3.4275578233374935, + "99.9" : 3.4275578233374935, + "99.99" : 3.4275578233374935, + "99.999" : 3.4275578233374935, + "99.9999" : 3.4275578233374935, + "100.0" : 3.4275578233374935 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.406498306401554, + 3.4075577224157994 + ], + [ + 3.4167865632040475, + 3.4275578233374935 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.724084373375287, + "scoreError" : 0.009173345534947237, + "scoreConfidence" : [ + 1.7149110278403399, + 1.7332577189102343 + ], + "scorePercentiles" : { + "0.0" : 1.722132522557934, + "50.0" : 1.7244104377307181, + "90.0" : 1.725384095481778, + "95.0" : 1.725384095481778, + "99.0" : 1.725384095481778, + "99.9" : 1.725384095481778, + "99.99" : 1.725384095481778, + "99.999" : 1.725384095481778, + "99.9999" : 1.725384095481778, + "100.0" : 1.725384095481778 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7240017613168217, + 1.722132522557934 + ], + [ + 1.725384095481778, + 1.7248191141446145 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8685933549611762, + "scoreError" : 0.0035669294749559304, + "scoreConfidence" : [ + 0.8650264254862202, + 0.8721602844361321 + ], + "scorePercentiles" : { + "0.0" : 0.8679462300764225, + "50.0" : 0.8686644140845527, + "90.0" : 0.8690983615991764, + "95.0" : 0.8690983615991764, + "99.0" : 0.8690983615991764, + "99.9" : 0.8690983615991764, + "99.99" : 0.8690983615991764, + "99.999" : 0.8690983615991764, + "99.9999" : 0.8690983615991764, + "100.0" : 0.8690983615991764 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8679462300764225, + 0.869003652537736 + ], + [ + 0.8683251756313696, + 0.8690983615991764 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 104.03131562635369, + "scoreError" : 3.8131574268555535, + "scoreConfidence" : [ + 100.21815819949813, + 107.84447305320924 + ], + "scorePercentiles" : { + "0.0" : 101.2345222399038, + "50.0" : 104.32314641078156, + "90.0" : 107.1723185797236, + "95.0" : 107.1723185797236, + "99.0" : 107.1723185797236, + "99.9" : 107.1723185797236, + "99.99" : 107.1723185797236, + "99.999" : 107.1723185797236, + "99.9999" : 107.1723185797236, + "100.0" : 107.1723185797236 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 103.72396500224156, + 104.42774438643247, + 104.32314641078156 + ], + [ + 101.2345222399038, + 101.61710742984098, + 101.3750069855028 + ], + [ + 105.55519565109971, + 107.1723185797236, + 106.85283395165672 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18162770750824003, + "scoreError" : 0.006044886405865979, + "scoreConfidence" : [ + 0.17558282110237405, + 0.187672593914106 + ], + "scorePercentiles" : { + "0.0" : 0.17692104912957327, + "50.0" : 0.1825373323354933, + "90.0" : 0.18598964871298915, + "95.0" : 0.18598964871298915, + "99.0" : 0.18598964871298915, + "99.9" : 0.18598964871298915, + "99.99" : 0.18598964871298915, + "99.999" : 0.18598964871298915, + "99.9999" : 0.18598964871298915, + "100.0" : 0.18598964871298915 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.18334443915809545, + 0.1825373323354933, + 0.1824438548310589 + ], + [ + 0.17756069605823863, + 0.17692104912957327, + 0.17704654118938443 + ], + [ + 0.18598964871298915, + 0.1859790866266203, + 0.18282671953270685 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33103155204854806, + "scoreError" : 0.010016052614272533, + "scoreConfidence" : [ + 0.32101549943427554, + 0.3410476046628206 + ], + "scorePercentiles" : { + "0.0" : 0.32390096534300705, + "50.0" : 0.33049450798109653, + "90.0" : 0.3382305706893053, + "95.0" : 0.3382305706893053, + "99.0" : 0.3382305706893053, + "99.9" : 0.3382305706893053, + "99.99" : 0.3382305706893053, + "99.999" : 0.3382305706893053, + "99.9999" : 0.3382305706893053, + "100.0" : 0.3382305706893053 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.33280675099840257, + 0.33049450798109653, + 0.33046942586167016 + ], + [ + 0.3243713012325657, + 0.32400376565689293, + 0.32390096534300705 + ], + [ + 0.33713828767446563, + 0.3382305706893053, + 0.337868392999527 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1651612001317232, + "scoreError" : 0.006671777327387482, + "scoreConfidence" : [ + 0.1584894228043357, + 0.1718329774591107 + ], + "scorePercentiles" : { + "0.0" : 0.15975479700305126, + "50.0" : 0.16664202561239794, + "90.0" : 0.16899561237008873, + "95.0" : 0.16899561237008873, + "99.0" : 0.16899561237008873, + "99.9" : 0.16899561237008873, + "99.99" : 0.16899561237008873, + "99.999" : 0.16899561237008873, + "99.9999" : 0.16899561237008873, + "100.0" : 0.16899561237008873 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1686909112378125, + 0.16899561237008873, + 0.16836642324398948 + ], + [ + 0.16008070533055868, + 0.16014325713828167, + 0.15975479700305126 + ], + [ + 0.16664202561239794, + 0.16726839185414402, + 0.16650867739518466 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39718276540797226, + "scoreError" : 0.010495068770156386, + "scoreConfidence" : [ + 0.3866876966378159, + 0.40767783417812864 + ], + "scorePercentiles" : { + "0.0" : 0.39033811225605, + "50.0" : 0.39952032495705325, + "90.0" : 0.4070250141641906, + "95.0" : 0.4070250141641906, + "99.0" : 0.4070250141641906, + "99.9" : 0.4070250141641906, + "99.99" : 0.4070250141641906, + "99.999" : 0.4070250141641906, + "99.9999" : 0.4070250141641906, + "100.0" : 0.4070250141641906 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39952032495705325, + 0.39207139022190857, + 0.39109308951896754 + ], + [ + 0.39983248678581423, + 0.39033811225605, + 0.3905832244180597 + ], + [ + 0.4070250141641906, + 0.40276224173345687, + 0.4014190046162492 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16230465175803965, + "scoreError" : 0.0039183994711270995, + "scoreConfidence" : [ + 0.15838625228691255, + 0.16622305122916675 + ], + "scorePercentiles" : { + "0.0" : 0.1597745644442314, + "50.0" : 0.16203763755975045, + "90.0" : 0.16624055238966004, + "95.0" : 0.16624055238966004, + "99.0" : 0.16624055238966004, + "99.9" : 0.16624055238966004, + "99.99" : 0.16624055238966004, + "99.999" : 0.16624055238966004, + "99.9999" : 0.16624055238966004, + "100.0" : 0.16624055238966004 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16624055238966004, + 0.16400418776547765, + 0.16484738292891996 + ], + [ + 0.15981138290051938, + 0.1598962359854178, + 0.1597745644442314 + ], + [ + 0.16191029436241175, + 0.16203763755975045, + 0.16221962748596827 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04763327336182691, + "scoreError" : 4.3904494906094033E-4, + "scoreConfidence" : [ + 0.04719422841276597, + 0.04807231831088785 + ], + "scorePercentiles" : { + "0.0" : 0.04727598728767486, + "50.0" : 0.04777726915010009, + "90.0" : 0.04794205962950889, + "95.0" : 0.04794205962950889, + "99.0" : 0.04794205962950889, + "99.9" : 0.04794205962950889, + "99.99" : 0.04794205962950889, + "99.999" : 0.04794205962950889, + "99.9999" : 0.04794205962950889, + "100.0" : 0.04794205962950889 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04788952776833304, + 0.047806814378185084, + 0.04777726915010009 + ], + [ + 0.04794205962950889, + 0.047515909017908475, + 0.0477935064352863 + ], + [ + 0.04729572183939576, + 0.04740266475004977, + 0.04727598728767486 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9672020.973374372, + "scoreError" : 191105.9680058244, + "scoreConfidence" : [ + 9480915.005368548, + 9863126.941380197 + ], + "scorePercentiles" : { + "0.0" : 9516544.845861085, + "50.0" : 9728260.992217898, + "90.0" : 9787208.828767123, + "95.0" : 9787208.828767123, + "99.0" : 9787208.828767123, + "99.9" : 9787208.828767123, + "99.99" : 9787208.828767123, + "99.999" : 9787208.828767123, + "99.9999" : 9787208.828767123, + "100.0" : 9787208.828767123 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9773146.44921875, + 9744554.864654332, + 9751680.31871345 + ], + [ + 9787208.828767123, + 9728260.992217898, + 9688269.999031946 + ], + [ + 9516544.845861085, + 9527939.308571428, + 9530583.153333334 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-27T00:02:35Z-c2d1a3b7a277ffb797f13873463e4c5566e6e28c-jdk17.json b/performance-results/2025-02-27T00:02:35Z-c2d1a3b7a277ffb797f13873463e4c5566e6e28c-jdk17.json new file mode 100644 index 000000000..93a667cc1 --- /dev/null +++ b/performance-results/2025-02-27T00:02:35Z-c2d1a3b7a277ffb797f13873463e4c5566e6e28c-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.417549733621442, + "scoreError" : 0.01110297891536587, + "scoreConfidence" : [ + 3.406446754706076, + 3.428652712536808 + ], + "scorePercentiles" : { + "0.0" : 3.415335793926578, + "50.0" : 3.4177333996326036, + "90.0" : 3.419396341293982, + "95.0" : 3.419396341293982, + "99.0" : 3.419396341293982, + "99.9" : 3.419396341293982, + "99.99" : 3.419396341293982, + "99.999" : 3.419396341293982, + "99.9999" : 3.419396341293982, + "100.0" : 3.419396341293982 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4172446969186234, + 3.419396341293982 + ], + [ + 3.415335793926578, + 3.4182221023465837 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7274036461599989, + "scoreError" : 0.006128573825496412, + "scoreConfidence" : [ + 1.7212750723345025, + 1.7335322199854952 + ], + "scorePercentiles" : { + "0.0" : 1.726368585774484, + "50.0" : 1.7273860309105475, + "90.0" : 1.728473937044416, + "95.0" : 1.728473937044416, + "99.0" : 1.728473937044416, + "99.9" : 1.728473937044416, + "99.99" : 1.728473937044416, + "99.999" : 1.728473937044416, + "99.9999" : 1.728473937044416, + "100.0" : 1.728473937044416 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.727876395518843, + 1.728473937044416 + ], + [ + 1.726895666302252, + 1.726368585774484 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8696277675660219, + "scoreError" : 0.003731430116841793, + "scoreConfidence" : [ + 0.8658963374491802, + 0.8733591976828636 + ], + "scorePercentiles" : { + "0.0" : 0.8687745341041557, + "50.0" : 0.8698516605045905, + "90.0" : 0.8700332151507507, + "95.0" : 0.8700332151507507, + "99.0" : 0.8700332151507507, + "99.9" : 0.8700332151507507, + "99.99" : 0.8700332151507507, + "99.999" : 0.8700332151507507, + "99.9999" : 0.8700332151507507, + "100.0" : 0.8700332151507507 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8687745341041557, + 0.8697897336521034 + ], + [ + 0.8699135873570777, + 0.8700332151507507 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 68564.59072017718, + "scoreError" : 3342.4151922036704, + "scoreConfidence" : [ + 65222.17552797351, + 71907.00591238085 + ], + "scorePercentiles" : { + "0.0" : 66365.38880921605, + "50.0" : 68390.3393489677, + "90.0" : 70982.41269147139, + "95.0" : 70982.41269147139, + "99.0" : 70982.41269147139, + "99.9" : 70982.41269147139, + "99.99" : 70982.41269147139, + "99.999" : 70982.41269147139, + "99.9999" : 70982.41269147139, + "100.0" : 70982.41269147139 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70921.10080429926, + 70971.54880272943, + 70982.41269147139 + ], + [ + 66391.38054980467, + 66403.4487675499, + 66365.38880921605 + ], + [ + 68121.9882924485, + 68390.3393489677, + 68533.7084151077 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 352.6073517068847, + "scoreError" : 14.226277593346195, + "scoreConfidence" : [ + 338.3810741135385, + 366.8336293002309 + ], + "scorePercentiles" : { + "0.0" : 340.9222360811488, + "50.0" : 357.0779004844468, + "90.0" : 360.2449960648248, + "95.0" : 360.2449960648248, + "99.0" : 360.2449960648248, + "99.9" : 360.2449960648248, + "99.99" : 360.2449960648248, + "99.999" : 360.2449960648248, + "99.9999" : 360.2449960648248, + "100.0" : 360.2449960648248 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 360.2449960648248, + 357.0779004844468, + 355.97632825052636 + ], + [ + 341.52235438044806, + 341.8721856208501, + 340.9222360811488 + ], + [ + 359.11797705900995, + 357.9689783725373, + 358.76320904817004 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 43.22957453296144, + "scoreError" : 1.0524067752181139, + "scoreConfidence" : [ + 42.17716775774333, + 44.28198130817956 + ], + "scorePercentiles" : { + "0.0" : 42.491759424373676, + "50.0" : 43.16580648696909, + "90.0" : 43.99113632712106, + "95.0" : 43.99113632712106, + "99.0" : 43.99113632712106, + "99.9" : 43.99113632712106, + "99.99" : 43.99113632712106, + "99.999" : 43.99113632712106, + "99.9999" : 43.99113632712106, + "100.0" : 43.99113632712106 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 42.491759424373676, + 42.55520495290065, + 42.53175908126641 + ], + [ + 43.95321369840156, + 43.96024421025855, + 43.99113632712106 + ], + [ + 43.16580648696909, + 43.14083248198754, + 43.27621413337447 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014312895471575268, + "scoreError" : 3.590636914352757E-4, + "scoreConfidence" : [ + 0.013953831780139992, + 0.014671959163010543 + ], + "scorePercentiles" : { + "0.0" : 0.014156584854911, + "50.0" : 0.014173242913814926, + "90.0" : 0.014606530733984486, + "95.0" : 0.014606530733984486, + "99.0" : 0.014606530733984486, + "99.9" : 0.014606530733984486, + "99.99" : 0.014606530733984486, + "99.999" : 0.014606530733984486, + "99.9999" : 0.014606530733984486, + "100.0" : 0.014606530733984486 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014172841730880705, + 0.014173242913814926, + 0.01419092347350018 + ], + [ + 0.014597928211176914, + 0.014606530733984486, + 0.014587914766734694 + ], + [ + 0.014156584854911, + 0.014164157074343924, + 0.014165935484830585 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.051780842346681, + "scoreError" : 0.010553840560371822, + "scoreConfidence" : [ + 1.0412270017863092, + 1.0623346829070528 + ], + "scorePercentiles" : { + "0.0" : 1.0440643342728886, + "50.0" : 1.0495260304334137, + "90.0" : 1.061504448100191, + "95.0" : 1.061504448100191, + "99.0" : 1.061504448100191, + "99.9" : 1.061504448100191, + "99.99" : 1.061504448100191, + "99.999" : 1.061504448100191, + "99.9999" : 1.061504448100191, + "100.0" : 1.061504448100191 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0475535410076464, + 1.0495260304334137, + 1.0485825257418475 + ], + [ + 1.0462639663109436, + 1.0440643342728886, + 1.051101247950389 + ], + [ + 1.061504448100191, + 1.0594869623900838, + 1.0579445249127262 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013025928893002378, + "scoreError" : 2.9233162577219546E-4, + "scoreConfidence" : [ + 0.012733597267230182, + 0.013318260518774574 + ], + "scorePercentiles" : { + "0.0" : 0.012845165675472241, + "50.0" : 0.013048059291336388, + "90.0" : 0.013116028007302832, + "95.0" : 0.013116028007302832, + "99.0" : 0.013116028007302832, + "99.9" : 0.013116028007302832, + "99.99" : 0.013116028007302832, + "99.999" : 0.013116028007302832, + "99.9999" : 0.013116028007302832, + "100.0" : 0.013116028007302832 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012845165675472241, + 0.012994237794150132, + 0.012995796729287742 + ], + [ + 0.013104023298416284, + 0.013100321853385034, + 0.013116028007302832 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6386671189948117, + "scoreError" : 0.23283007966411665, + "scoreConfidence" : [ + 3.405837039330695, + 3.871497198658928 + ], + "scorePercentiles" : { + "0.0" : 3.5593792142348755, + "50.0" : 3.638552702472288, + "90.0" : 3.717080251857355, + "95.0" : 3.717080251857355, + "99.0" : 3.717080251857355, + "99.9" : 3.717080251857355, + "99.99" : 3.717080251857355, + "99.999" : 3.717080251857355, + "99.9999" : 3.717080251857355, + "100.0" : 3.717080251857355 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.714684306607275, + 3.717080251857355, + 3.711503275222552 + ], + [ + 3.5593792142348755, + 3.5656021297220244, + 3.5637535363247865 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.892068432953975, + "scoreError" : 0.009267708162824911, + "scoreConfidence" : [ + 2.8828007247911502, + 2.9013361411167997 + ], + "scorePercentiles" : { + "0.0" : 2.8829103447679447, + "50.0" : 2.8941400842013887, + "90.0" : 2.900774136600928, + "95.0" : 2.900774136600928, + "99.0" : 2.900774136600928, + "99.9" : 2.900774136600928, + "99.99" : 2.900774136600928, + "99.999" : 2.900774136600928, + "99.9999" : 2.900774136600928, + "100.0" : 2.900774136600928 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8909567751445087, + 2.900774136600928, + 2.895437655761436 + ], + [ + 2.8829103447679447, + 2.8853761220427003, + 2.8949296243125904 + ], + [ + 2.894673690593343, + 2.889417463160936, + 2.8941400842013887 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33691360853923774, + "scoreError" : 0.019185202933204835, + "scoreConfidence" : [ + 0.3177284056060329, + 0.3560988114724426 + ], + "scorePercentiles" : { + "0.0" : 0.3215903219063545, + "50.0" : 0.34066744595469256, + "90.0" : 0.3475835746411317, + "95.0" : 0.3475835746411317, + "99.0" : 0.3475835746411317, + "99.9" : 0.3475835746411317, + "99.99" : 0.3475835746411317, + "99.999" : 0.3475835746411317, + "99.9999" : 0.3475835746411317, + "100.0" : 0.3475835746411317 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3230329570048777, + 0.32178376835703715, + 0.3215903219063545 + ], + [ + 0.3474673598554602, + 0.3475835746411317, + 0.34700911492418196 + ], + [ + 0.34260209705711053, + 0.34066744595469256, + 0.3404858371522931 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.5147195619121575, + "scoreError" : 0.005365502061905538, + "scoreConfidence" : [ + 0.509354059850252, + 0.5200850639740631 + ], + "scorePercentiles" : { + "0.0" : 0.5095666566114649, + "50.0" : 0.5141572140359897, + "90.0" : 0.5199076203275279, + "95.0" : 0.5199076203275279, + "99.0" : 0.5199076203275279, + "99.9" : 0.5199076203275279, + "99.99" : 0.5199076203275279, + "99.999" : 0.5199076203275279, + "99.9999" : 0.5199076203275279, + "100.0" : 0.5199076203275279 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.5095666566114649, + 0.5120266715989965, + 0.5134771368864243 + ], + [ + 0.5141572140359897, + 0.5143587923053183, + 0.5136087965692568 + ], + [ + 0.5199076203275279, + 0.5176240380434782, + 0.5177491308309604 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.2364564205155297, + "scoreError" : 0.005615719741969599, + "scoreConfidence" : [ + 0.23084070077356011, + 0.2420721402574993 + ], + "scorePercentiles" : { + "0.0" : 0.23106783016775267, + "50.0" : 0.23710881167014417, + "90.0" : 0.2401375854624916, + "95.0" : 0.2401375854624916, + "99.0" : 0.2401375854624916, + "99.9" : 0.2401375854624916, + "99.99" : 0.2401375854624916, + "99.999" : 0.2401375854624916, + "99.9999" : 0.2401375854624916, + "100.0" : 0.2401375854624916 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.2401375854624916, + 0.23965306583109663, + 0.2394539756961904 + ], + [ + 0.23547254910640703, + 0.23145445165023376, + 0.23106783016775267 + ], + [ + 0.23750379399610508, + 0.23710881167014417, + 0.23625572105934606 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 1.039934086864828, + "scoreError" : 0.014696474985303161, + "scoreConfidence" : [ + 1.0252376118795248, + 1.054630561850131 + ], + "scorePercentiles" : { + "0.0" : 1.0283595919794344, + "50.0" : 1.043634660857769, + "90.0" : 1.0487148862206377, + "95.0" : 1.0487148862206377, + "99.0" : 1.0487148862206377, + "99.9" : 1.0487148862206377, + "99.99" : 1.0487148862206377, + "99.999" : 1.0487148862206377, + "99.9999" : 1.0487148862206377, + "100.0" : 1.0487148862206377 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0287253541816685, + 1.0284066072603866, + 1.0283595919794344 + ], + [ + 1.0434719802796326, + 1.043634660857769, + 1.0443083778195488 + ], + [ + 1.0487148862206377, + 1.046657566509681, + 1.0471277566746937 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.44161499542324184, + "scoreError" : 0.004366581579714742, + "scoreConfidence" : [ + 0.4372484138435271, + 0.4459815770029566 + ], + "scorePercentiles" : { + "0.0" : 0.43823696555501995, + "50.0" : 0.44111343381412377, + "90.0" : 0.44522993410800943, + "95.0" : 0.44522993410800943, + "99.0" : 0.44522993410800943, + "99.9" : 0.44522993410800943, + "99.99" : 0.44522993410800943, + "99.999" : 0.44522993410800943, + "99.9999" : 0.44522993410800943, + "100.0" : 0.44522993410800943 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.4385348860726188, + 0.43823696555501995, + 0.4400182119065429 + ], + [ + 0.44461083727547573, + 0.4443986759098787, + 0.44522993410800943 + ], + [ + 0.44149149507748003, + 0.44111343381412377, + 0.4409005190900273 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.07051290382076661, + "scoreError" : 0.0015072824781688767, + "scoreConfidence" : [ + 0.06900562134259773, + 0.07202018629893549 + ], + "scorePercentiles" : { + "0.0" : 0.06945675739875119, + "50.0" : 0.07009593459457186, + "90.0" : 0.07172936275867016, + "95.0" : 0.07172936275867016, + "99.0" : 0.07172936275867016, + "99.9" : 0.07172936275867016, + "99.99" : 0.07172936275867016, + "99.999" : 0.07172936275867016, + "99.9999" : 0.07172936275867016, + "100.0" : 0.07172936275867016 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.07009593459457186, + 0.07000790423051882, + 0.06975306674571898 + ], + [ + 0.07172936275867016, + 0.0716311333968454, + 0.07164192272864041 + ], + [ + 0.07030226510597912, + 0.0699977874272035, + 0.06945675739875119 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 2.2916434512089096E7, + "scoreError" : 334761.1993547782, + "scoreConfidence" : [ + 2.2581673312734317E7, + 2.3251195711443875E7 + ], + "scorePercentiles" : { + "0.0" : 2.2709041746031746E7, + "50.0" : 2.286806340410959E7, + "90.0" : 2.321051393039443E7, + "95.0" : 2.321051393039443E7, + "99.0" : 2.321051393039443E7, + "99.9" : 2.321051393039443E7, + "99.99" : 2.321051393039443E7, + "99.999" : 2.321051393039443E7, + "99.9999" : 2.321051393039443E7, + "100.0" : 2.321051393039443E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 2.321051393039443E7, + 2.3181100655092593E7, + 2.310629179907621E7 + ], + [ + 2.2853278180365298E7, + 2.286806340410959E7, + 2.2868454625570778E7 + ], + [ + 2.2739949259090908E7, + 2.2709041746031746E7, + 2.2711217009070296E7 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-27T01:25:55Z-31804cdc79dd4fa2c8b6ddd9fac1a4168e510fc2-jdk17.json b/performance-results/2025-02-27T01:25:55Z-31804cdc79dd4fa2c8b6ddd9fac1a4168e510fc2-jdk17.json new file mode 100644 index 000000000..e07aecac3 --- /dev/null +++ b/performance-results/2025-02-27T01:25:55Z-31804cdc79dd4fa2c8b6ddd9fac1a4168e510fc2-jdk17.json @@ -0,0 +1,413 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70219.54876920363, + "scoreError" : 877.051607001723, + "scoreConfidence" : [ + 69342.49716220191, + 71096.60037620534 + ], + "scorePercentiles" : { + "0.0" : 69373.1799451383, + "50.0" : 70346.02467738034, + "90.0" : 70806.15426297102, + "95.0" : 70806.15426297102, + "99.0" : 70806.15426297102, + "99.9" : 70806.15426297102, + "99.99" : 70806.15426297102, + "99.999" : 70806.15426297102, + "99.9999" : 70806.15426297102, + "100.0" : 70806.15426297102 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69518.78115218057, + 69373.1799451383, + 69976.66849523893 + ], + [ + 70806.15426297102, + 70725.87117127908, + 70610.372758707 + ], + [ + 70561.85379402456, + 70057.03266591279, + 70346.02467738034 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 346.9107894426578, + "scoreError" : 9.426249005233789, + "scoreConfidence" : [ + 337.484540437424, + 356.3370384478916 + ], + "scorePercentiles" : { + "0.0" : 338.26005679797504, + "50.0" : 347.03501349459947, + "90.0" : 354.57859781312527, + "95.0" : 354.57859781312527, + "99.0" : 354.57859781312527, + "99.9" : 354.57859781312527, + "99.99" : 354.57859781312527, + "99.999" : 354.57859781312527, + "99.9999" : 354.57859781312527, + "100.0" : 354.57859781312527 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 338.26005679797504, + 340.50631789283403, + 343.88528415142383 + ], + [ + 353.56875541193926, + 351.6138386462634, + 354.57859781312527 + ], + [ + 347.03976687575766, + 345.7094739000024, + 347.03501349459947 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014352362665403752, + "scoreError" : 2.98599213348489E-4, + "scoreConfidence" : [ + 0.014053763452055263, + 0.01465096187875224 + ], + "scorePercentiles" : { + "0.0" : 0.014157780336214879, + "50.0" : 0.014331860724752957, + "90.0" : 0.014639790268461288, + "95.0" : 0.014639790268461288, + "99.0" : 0.014639790268461288, + "99.9" : 0.014639790268461288, + "99.99" : 0.014639790268461288, + "99.999" : 0.014639790268461288, + "99.9999" : 0.014639790268461288, + "100.0" : 0.014639790268461288 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014339939093238652, + 0.014331860724752957, + 0.014260492186764702 + ], + [ + 0.014538310723621276, + 0.014639790268461288, + 0.014531535512455552 + ], + [ + 0.014157780336214879, + 0.01420724729817084, + 0.014164307844953598 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.056255119077973, + "scoreError" : 0.07030724285344893, + "scoreConfidence" : [ + 0.9859478762245241, + 1.126562361931422 + ], + "scorePercentiles" : { + "0.0" : 1.0189330812022415, + "50.0" : 1.0329520149762446, + "90.0" : 1.1164261720250055, + "95.0" : 1.1164261720250055, + "99.0" : 1.1164261720250055, + "99.9" : 1.1164261720250055, + "99.99" : 1.1164261720250055, + "99.999" : 1.1164261720250055, + "99.9999" : 1.1164261720250055, + "100.0" : 1.1164261720250055 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0477812422210582, + 1.0329520149762446, + 1.0309344408823833 + ], + [ + 1.1030785476505625, + 1.1164261720250055, + 1.1125569858716209 + ], + [ + 1.0189330812022415, + 1.0217059660878447, + 1.0219276207847947 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013035694974636735, + "scoreError" : 3.80344969049074E-4, + "scoreConfidence" : [ + 0.01265535000558766, + 0.01341603994368581 + ], + "scorePercentiles" : { + "0.0" : 0.012849147604975074, + "50.0" : 0.013023318203321078, + "90.0" : 0.013215352230829614, + "95.0" : 0.013215352230829614, + "99.0" : 0.013215352230829614, + "99.9" : 0.013215352230829614, + "99.99" : 0.013215352230829614, + "99.999" : 0.013215352230829614, + "99.9999" : 0.013215352230829614, + "100.0" : 0.013215352230829614 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012849147604975074, + 0.012976139697715217, + 0.012952399375191043 + ], + [ + 0.013150634230182525, + 0.013215352230829614, + 0.013070496708926937 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6779970045280823, + "scoreError" : 0.14690336575784563, + "scoreConfidence" : [ + 3.5310936387702365, + 3.824900370285928 + ], + "scorePercentiles" : { + "0.0" : 3.5989308258992807, + "50.0" : 3.6785783035306947, + "90.0" : 3.754549879129129, + "95.0" : 3.754549879129129, + "99.0" : 3.754549879129129, + "99.9" : 3.754549879129129, + "99.99" : 3.754549879129129, + "99.999" : 3.754549879129129, + "99.9999" : 3.754549879129129, + "100.0" : 3.754549879129129 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.5989308258992807, + 3.658934260424287, + 3.6582162809070957 + ], + [ + 3.698222346637103, + 3.754549879129129, + 3.6991284341715978 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.884272532819487, + "scoreError" : 0.12828739230038708, + "scoreConfidence" : [ + 2.7559851405191, + 3.012559925119874 + ], + "scorePercentiles" : { + "0.0" : 2.7761082681099083, + "50.0" : 2.9086586077348064, + "90.0" : 3.0072171803968732, + "95.0" : 3.0072171803968732, + "99.0" : 3.0072171803968732, + "99.9" : 3.0072171803968732, + "99.99" : 3.0072171803968732, + "99.999" : 3.0072171803968732, + "99.9999" : 3.0072171803968732, + "100.0" : 3.0072171803968732 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.9186964487890283, + 2.923129876972531, + 2.9086586077348064 + ], + [ + 2.897631711761298, + 2.927875331967213, + 3.0072171803968732 + ], + [ + 2.7761082681099083, + 2.8062966290684623, + 2.792838740575258 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-27T19:41:06Z-11211e11a54c35e1e9ffe9900e7ec7baad92d55c-jdk17.json b/performance-results/2025-02-27T19:41:06Z-11211e11a54c35e1e9ffe9900e7ec7baad92d55c-jdk17.json new file mode 100644 index 000000000..34f194c1b --- /dev/null +++ b/performance-results/2025-02-27T19:41:06Z-11211e11a54c35e1e9ffe9900e7ec7baad92d55c-jdk17.json @@ -0,0 +1,665 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.424204324807343, + "scoreError" : 0.05799769532538598, + "scoreConfidence" : [ + 3.366206629481957, + 3.482202020132729 + ], + "scorePercentiles" : { + "0.0" : 3.4159836041695884, + "50.0" : 3.4237277918290836, + "90.0" : 3.433378111401614, + "95.0" : 3.433378111401614, + "99.0" : 3.433378111401614, + "99.9" : 3.433378111401614, + "99.99" : 3.433378111401614, + "99.999" : 3.433378111401614, + "99.9999" : 3.433378111401614, + "100.0" : 3.433378111401614 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4159836041695884, + 3.417039358674823 + ], + [ + 3.430416224983344, + 3.433378111401614 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.728024357619412, + "scoreError" : 0.005667731146331268, + "scoreConfidence" : [ + 1.7223566264730807, + 1.7336920887657434 + ], + "scorePercentiles" : { + "0.0" : 1.7270563159253658, + "50.0" : 1.728063700679468, + "90.0" : 1.7289137131933463, + "95.0" : 1.7289137131933463, + "99.0" : 1.7289137131933463, + "99.9" : 1.7289137131933463, + "99.99" : 1.7289137131933463, + "99.999" : 1.7289137131933463, + "99.9999" : 1.7289137131933463, + "100.0" : 1.7289137131933463 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7286006804391694, + 1.7275267209197662 + ], + [ + 1.7270563159253658, + 1.7289137131933463 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8687373037199976, + "scoreError" : 0.007828251353031416, + "scoreConfidence" : [ + 0.8609090523669661, + 0.876565555073029 + ], + "scorePercentiles" : { + "0.0" : 0.8677172931089318, + "50.0" : 0.8683724801432033, + "90.0" : 0.8704869614846519, + "95.0" : 0.8704869614846519, + "99.0" : 0.8704869614846519, + "99.9" : 0.8704869614846519, + "99.99" : 0.8704869614846519, + "99.999" : 0.8704869614846519, + "99.9999" : 0.8704869614846519, + "100.0" : 0.8704869614846519 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8677172931089318, + 0.8685043429446764 + ], + [ + 0.8682406173417304, + 0.8704869614846519 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.1436562038279, + "scoreError" : 5.6105425024585065, + "scoreConfidence" : [ + 101.5331137013694, + 112.7541987062864 + ], + "scorePercentiles" : { + "0.0" : 102.50973848385428, + "50.0" : 109.21468173090412, + "90.0" : 109.90699541456834, + "95.0" : 109.90699541456834, + "99.0" : 109.90699541456834, + "99.9" : 109.90699541456834, + "99.99" : 109.90699541456834, + "99.999" : 109.90699541456834, + "99.9999" : 109.90699541456834, + "100.0" : 109.90699541456834 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 109.21468173090412, + 109.27836917733696, + 109.90699541456834 + ], + [ + 102.50973848385428, + 102.60092263928637, + 103.01205226543857 + ], + [ + 108.97543715441627, + 109.36582665700297, + 109.4288823116432 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18715525560681903, + "scoreError" : 0.020286238893373214, + "scoreConfidence" : [ + 0.1668690167134458, + 0.20744149450019225 + ], + "scorePercentiles" : { + "0.0" : 0.17607753671162446, + "50.0" : 0.18194778879953422, + "90.0" : 0.20298734608748603, + "95.0" : 0.20298734608748603, + "99.0" : 0.20298734608748603, + "99.9" : 0.20298734608748603, + "99.99" : 0.20298734608748603, + "99.999" : 0.20298734608748603, + "99.9999" : 0.20298734608748603, + "100.0" : 0.20298734608748603 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.18297718427167767, + 0.18194778879953422, + 0.18188762704619862 + ], + [ + 0.20298734608748603, + 0.2028440355780933, + 0.20278723644401184 + ], + [ + 0.1767823894427945, + 0.17607753671162446, + 0.1761061560799507 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33746284165580004, + "scoreError" : 0.009801170575544799, + "scoreConfidence" : [ + 0.32766167108025523, + 0.34726401223134484 + ], + "scorePercentiles" : { + "0.0" : 0.33322743102299235, + "50.0" : 0.3339327810131232, + "90.0" : 0.3462359468891736, + "95.0" : 0.3462359468891736, + "99.0" : 0.3462359468891736, + "99.9" : 0.3462359468891736, + "99.99" : 0.3462359468891736, + "99.999" : 0.3462359468891736, + "99.9999" : 0.3462359468891736, + "100.0" : 0.3462359468891736 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3339327810131232, + 0.333327132728909, + 0.33331685544297046 + ], + [ + 0.3462359468891736, + 0.3447156930368838, + 0.34466495712562467 + ], + [ + 0.3342104271439075, + 0.3335343504986159, + 0.33322743102299235 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1626035761133484, + "scoreError" : 0.009923728597793184, + "scoreConfidence" : [ + 0.15267984751555522, + 0.1725273047111416 + ], + "scorePercentiles" : { + "0.0" : 0.15574798043857463, + "50.0" : 0.16241545803287208, + "90.0" : 0.16958445535789993, + "95.0" : 0.16958445535789993, + "99.0" : 0.16958445535789993, + "99.9" : 0.16958445535789993, + "99.99" : 0.16958445535789993, + "99.999" : 0.16958445535789993, + "99.9999" : 0.16958445535789993, + "100.0" : 0.16958445535789993 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16958445535789993, + 0.16957912419663904, + 0.16929908774632627 + ], + [ + 0.16241545803287208, + 0.16258103080849956, + 0.1624111286765303 + ], + [ + 0.15574798043857463, + 0.15582760495520062, + 0.1559863148075933 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3948568791221134, + "scoreError" : 0.005118335017259271, + "scoreConfidence" : [ + 0.38973854410485415, + 0.3999752141393727 + ], + "scorePercentiles" : { + "0.0" : 0.39062994046875, + "50.0" : 0.3952583020829216, + "90.0" : 0.3990008796680498, + "95.0" : 0.3990008796680498, + "99.0" : 0.3990008796680498, + "99.9" : 0.3990008796680498, + "99.99" : 0.3990008796680498, + "99.999" : 0.3990008796680498, + "99.9999" : 0.3990008796680498, + "100.0" : 0.3990008796680498 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3913463903889802, + 0.39134656312123345, + 0.39062994046875 + ], + [ + 0.3974219333147876, + 0.3969439823363633, + 0.3966984339719941 + ], + [ + 0.3990008796680498, + 0.39506548674594083, + 0.3952583020829216 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1610574826858421, + "scoreError" : 0.003752410557245631, + "scoreConfidence" : [ + 0.15730507212859648, + 0.16480989324308773 + ], + "scorePercentiles" : { + "0.0" : 0.15879246556679422, + "50.0" : 0.1602639839738453, + "90.0" : 0.16460379410070283, + "95.0" : 0.16460379410070283, + "99.0" : 0.16460379410070283, + "99.9" : 0.16460379410070283, + "99.99" : 0.16460379410070283, + "99.999" : 0.16460379410070283, + "99.9999" : 0.16460379410070283, + "100.0" : 0.16460379410070283 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15879246556679422, + 0.15922639871029376, + 0.1590539176116934 + ], + [ + 0.16016096425311105, + 0.1602639839738453, + 0.1603011353231598 + ], + [ + 0.16460379410070283, + 0.16316207262196117, + 0.1639526120110175 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04835155109742807, + "scoreError" : 0.0014775111568661589, + "scoreConfidence" : [ + 0.04687403994056191, + 0.04982906225429423 + ], + "scorePercentiles" : { + "0.0" : 0.047276101358698225, + "50.0" : 0.048217913343684, + "90.0" : 0.04951674853308905, + "95.0" : 0.04951674853308905, + "99.0" : 0.04951674853308905, + "99.9" : 0.04951674853308905, + "99.99" : 0.04951674853308905, + "99.999" : 0.04951674853308905, + "99.9999" : 0.04951674853308905, + "100.0" : 0.04951674853308905 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04951674853308905, + 0.04938211956247994, + 0.04941198198959399 + ], + [ + 0.04821848832645425, + 0.0481013592933039, + 0.048217913343684 + ], + [ + 0.04749393822546021, + 0.04754530924408902, + 0.047276101358698225 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9625059.040573487, + "scoreError" : 219935.77309763603, + "scoreConfidence" : [ + 9405123.26747585, + 9844994.813671123 + ], + "scorePercentiles" : { + "0.0" : 9448406.368271954, + "50.0" : 9683659.49177154, + "90.0" : 9762830.43609756, + "95.0" : 9762830.43609756, + "99.0" : 9762830.43609756, + "99.9" : 9762830.43609756, + "99.99" : 9762830.43609756, + "99.999" : 9762830.43609756, + "99.9999" : 9762830.43609756, + "100.0" : 9762830.43609756 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9687952.249757987, + 9683659.49177154, + 9676237.632495165 + ], + [ + 9762830.43609756, + 9739261.683544304, + 9712223.050485438 + ], + [ + 9461725.996215705, + 9453234.456521738, + 9448406.368271954 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-28T00:03:05Z-c0366ce7f430d3ea6827a80a5dca1b7c43c3950e-jdk17.json b/performance-results/2025-02-28T00:03:05Z-c0366ce7f430d3ea6827a80a5dca1b7c43c3950e-jdk17.json new file mode 100644 index 000000000..93b65412a --- /dev/null +++ b/performance-results/2025-02-28T00:03:05Z-c0366ce7f430d3ea6827a80a5dca1b7c43c3950e-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4093139013067724, + "scoreError" : 0.021893836129409316, + "scoreConfidence" : [ + 3.387420065177363, + 3.4312077374361816 + ], + "scorePercentiles" : { + "0.0" : 3.404731404003703, + "50.0" : 3.409860333857129, + "90.0" : 3.412803533509129, + "95.0" : 3.412803533509129, + "99.0" : 3.412803533509129, + "99.9" : 3.412803533509129, + "99.99" : 3.412803533509129, + "99.999" : 3.412803533509129, + "99.9999" : 3.412803533509129, + "100.0" : 3.412803533509129 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.409284321996756, + 3.4104363457175024 + ], + [ + 3.404731404003703, + 3.412803533509129 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7182419922433345, + "scoreError" : 0.009837862041857262, + "scoreConfidence" : [ + 1.7084041302014772, + 1.7280798542851918 + ], + "scorePercentiles" : { + "0.0" : 1.7161595064751782, + "50.0" : 1.7186904440757775, + "90.0" : 1.719427574346604, + "95.0" : 1.719427574346604, + "99.0" : 1.719427574346604, + "99.9" : 1.719427574346604, + "99.99" : 1.719427574346604, + "99.999" : 1.719427574346604, + "99.9999" : 1.719427574346604, + "100.0" : 1.719427574346604 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.719427574346604, + 1.7193263365006115 + ], + [ + 1.7161595064751782, + 1.7180545516509436 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8656415344042727, + "scoreError" : 0.00216935852863811, + "scoreConfidence" : [ + 0.8634721758756346, + 0.8678108929329108 + ], + "scorePercentiles" : { + "0.0" : 0.8652472998061675, + "50.0" : 0.8656445886938953, + "90.0" : 0.8660296604231326, + "95.0" : 0.8660296604231326, + "99.0" : 0.8660296604231326, + "99.9" : 0.8660296604231326, + "99.99" : 0.8660296604231326, + "99.999" : 0.8660296604231326, + "99.9999" : 0.8660296604231326, + "100.0" : 0.8660296604231326 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8657711262503519, + 0.8655180511374387 + ], + [ + 0.8652472998061675, + 0.8660296604231326 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70249.89615163156, + "scoreError" : 184.9343928170246, + "scoreConfidence" : [ + 70064.96175881453, + 70434.83054444859 + ], + "scorePercentiles" : { + "0.0" : 70120.69035144885, + "50.0" : 70222.45600654616, + "90.0" : 70403.71718522921, + "95.0" : 70403.71718522921, + "99.0" : 70403.71718522921, + "99.9" : 70403.71718522921, + "99.99" : 70403.71718522921, + "99.999" : 70403.71718522921, + "99.9999" : 70403.71718522921, + "100.0" : 70403.71718522921 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70401.49822549731, + 70353.74617990099, + 70403.71718522921 + ], + [ + 70144.53735546515, + 70197.23574567295, + 70120.69035144885 + ], + [ + 70245.4038793827, + 70222.45600654616, + 70159.78043554082 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 324.1235870149517, + "scoreError" : 12.518422380833014, + "scoreConfidence" : [ + 311.6051646341187, + 336.64200939578467 + ], + "scorePercentiles" : { + "0.0" : 314.0885905749031, + "50.0" : 326.2222939474484, + "90.0" : 331.6432472176766, + "95.0" : 331.6432472176766, + "99.0" : 331.6432472176766, + "99.9" : 331.6432472176766, + "99.99" : 331.6432472176766, + "99.999" : 331.6432472176766, + "99.9999" : 331.6432472176766, + "100.0" : 331.6432472176766 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 325.97687376627675, + 327.32026111840463, + 331.126243086308 + ], + [ + 331.6432472176766, + 331.0286050083805, + 326.2222939474484 + ], + [ + 314.0885905749031, + 315.02124216928775, + 314.6849262458794 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 104.08364604746585, + "scoreError" : 1.343132091816652, + "scoreConfidence" : [ + 102.74051395564919, + 105.4267781392825 + ], + "scorePercentiles" : { + "0.0" : 103.10488102505084, + "50.0" : 103.9406500655117, + "90.0" : 105.49964296877762, + "95.0" : 105.49964296877762, + "99.0" : 105.49964296877762, + "99.9" : 105.49964296877762, + "99.99" : 105.49964296877762, + "99.999" : 105.49964296877762, + "99.9999" : 105.49964296877762, + "100.0" : 105.49964296877762 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 103.10488102505084, + 103.9406500655117, + 103.92876928971134 + ], + [ + 104.72044867134093, + 105.49964296877762, + 104.86104107178554 + ], + [ + 103.94586724796258, + 103.56578526150736, + 103.18572882554477 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.01420008079255139, + "scoreError" : 3.534476823480423E-5, + "scoreConfidence" : [ + 0.014164736024316586, + 0.014235425560786193 + ], + "scorePercentiles" : { + "0.0" : 0.01417365751768496, + "50.0" : 0.014199791465741986, + "90.0" : 0.014234270268654507, + "95.0" : 0.014234270268654507, + "99.0" : 0.014234270268654507, + "99.9" : 0.014234270268654507, + "99.99" : 0.014234270268654507, + "99.999" : 0.014234270268654507, + "99.9999" : 0.014234270268654507, + "100.0" : 0.014234270268654507 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014199791465741986, + 0.014212377463151328, + 0.014190600920106542 + ], + [ + 0.01422226798704651, + 0.014209003600516065, + 0.014234270268654507 + ], + [ + 0.01417841923080195, + 0.01418033867925866, + 0.01417365751768496 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.0020239600224718, + "scoreError" : 0.020447026162184023, + "scoreConfidence" : [ + 0.9815769338602878, + 1.022470986184656 + ], + "scorePercentiles" : { + "0.0" : 0.9786403171543204, + "50.0" : 1.0060794966800806, + "90.0" : 1.017381385757884, + "95.0" : 1.017381385757884, + "99.0" : 1.017381385757884, + "99.9" : 1.017381385757884, + "99.99" : 1.017381385757884, + "99.999" : 1.017381385757884, + "99.9999" : 1.017381385757884, + "100.0" : 1.017381385757884 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0114736057449176, + 1.017381385757884, + 1.0080577986090111 + ], + [ + 0.9922600353209644, + 0.9939197001590141, + 0.9989399211866946 + ], + [ + 1.0114633795893597, + 0.9786403171543204, + 1.0060794966800806 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013369104906817872, + "scoreError" : 5.803541797248806E-4, + "scoreConfidence" : [ + 0.012788750727092991, + 0.013949459086542753 + ], + "scorePercentiles" : { + "0.0" : 0.013171773939042702, + "50.0" : 0.013363062333361295, + "90.0" : 0.01359549083414451, + "95.0" : 0.01359549083414451, + "99.0" : 0.01359549083414451, + "99.9" : 0.01359549083414451, + "99.99" : 0.01359549083414451, + "99.999" : 0.01359549083414451, + "99.9999" : 0.01359549083414451, + "100.0" : 0.01359549083414451 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013539637246645636, + 0.01359549083414451, + 0.0135357767250224 + ], + [ + 0.013181602754351786, + 0.013171773939042702, + 0.013190347941700192 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.8901509541468826, + "scoreError" : 0.03736323494833567, + "scoreConfidence" : [ + 3.852787719198547, + 3.927514189095218 + ], + "scorePercentiles" : { + "0.0" : 3.8659979497681607, + "50.0" : 3.8930672909390642, + "90.0" : 3.9019652425897036, + "95.0" : 3.9019652425897036, + "99.0" : 3.9019652425897036, + "99.9" : 3.9019652425897036, + "99.99" : 3.9019652425897036, + "99.999" : 3.9019652425897036, + "99.9999" : 3.9019652425897036, + "100.0" : 3.9019652425897036 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8659979497681607, + 3.9019652425897036, + 3.901129496099844 + ], + [ + 3.89117386848249, + 3.8949607133956388, + 3.8856784545454546 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.9819383742313637, + "scoreError" : 0.05841787458508158, + "scoreConfidence" : [ + 2.923520499646282, + 3.0403562488164453 + ], + "scorePercentiles" : { + "0.0" : 2.9387547916544228, + "50.0" : 2.9656987298339264, + "90.0" : 3.033763831058538, + "95.0" : 3.033763831058538, + "99.0" : 3.033763831058538, + "99.9" : 3.033763831058538, + "99.99" : 3.033763831058538, + "99.999" : 3.033763831058538, + "99.9999" : 3.033763831058538, + "100.0" : 3.033763831058538 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.033763831058538, + 3.01548591046126, + 3.0099463171832683 + ], + [ + 3.007374973541792, + 2.9656987298339264, + 2.9656569952550416 + ], + [ + 2.9459099366715757, + 2.954853882422452, + 2.9387547916544228 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18768522962156822, + "scoreError" : 0.00834799006050313, + "scoreConfidence" : [ + 0.1793372395610651, + 0.19603321968207135 + ], + "scorePercentiles" : { + "0.0" : 0.18104723394586766, + "50.0" : 0.18936799948871383, + "90.0" : 0.19284200376034094, + "95.0" : 0.19284200376034094, + "99.0" : 0.19284200376034094, + "99.9" : 0.19284200376034094, + "99.99" : 0.19284200376034094, + "99.999" : 0.19284200376034094, + "99.9999" : 0.19284200376034094, + "100.0" : 0.19284200376034094 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.19284200376034094, + 0.1923480044623966, + 0.19192666618685705 + ], + [ + 0.18179211868966896, + 0.18107432534810872, + 0.18104723394586766 + ], + [ + 0.18942655156084257, + 0.18934216315131777, + 0.18936799948871383 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.34058191618212075, + "scoreError" : 0.003858026612173194, + "scoreConfidence" : [ + 0.33672388956994753, + 0.34443994279429396 + ], + "scorePercentiles" : { + "0.0" : 0.33769021212939826, + "50.0" : 0.3407948157374591, + "90.0" : 0.3438218884686791, + "95.0" : 0.3438218884686791, + "99.0" : 0.3438218884686791, + "99.9" : 0.3438218884686791, + "99.99" : 0.3438218884686791, + "99.999" : 0.3438218884686791, + "99.9999" : 0.3438218884686791, + "100.0" : 0.3438218884686791 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.33851800196337295, + 0.33776987850846085, + 0.33769021212939826 + ], + [ + 0.3438218884686791, + 0.34235571417322835, + 0.34216245375851095 + ], + [ + 0.3407948157374591, + 0.3426416534982526, + 0.33948262740172447 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16430571049586792, + "scoreError" : 0.006062912563558703, + "scoreConfidence" : [ + 0.15824279793230922, + 0.17036862305942663 + ], + "scorePercentiles" : { + "0.0" : 0.16106335164038718, + "50.0" : 0.16263530021629885, + "90.0" : 0.16930342624477288, + "95.0" : 0.16930342624477288, + "99.0" : 0.16930342624477288, + "99.9" : 0.16930342624477288, + "99.99" : 0.16930342624477288, + "99.999" : 0.16930342624477288, + "99.9999" : 0.16930342624477288, + "100.0" : 0.16930342624477288 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16297191605553926, + 0.16218497714851035, + 0.16263530021629885 + ], + [ + 0.16139171223149298, + 0.16106335164038718, + 0.16137712693648334 + ], + [ + 0.16871034478279207, + 0.16911323920653443, + 0.16930342624477288 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.4014406332579484, + "scoreError" : 0.0064106096443937105, + "scoreConfidence" : [ + 0.39503002361355466, + 0.4078512429023421 + ], + "scorePercentiles" : { + "0.0" : 0.39696473793267706, + "50.0" : 0.4002436985511887, + "90.0" : 0.40840316928040515, + "95.0" : 0.40840316928040515, + "99.0" : 0.40840316928040515, + "99.9" : 0.40840316928040515, + "99.99" : 0.40840316928040515, + "99.999" : 0.40840316928040515, + "99.9999" : 0.40840316928040515, + "100.0" : 0.40840316928040515 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39874033963317385, + 0.39796666401368935, + 0.39696473793267706 + ], + [ + 0.40840316928040515, + 0.4047517820860485, + 0.40437363024666395 + ], + [ + 0.40258169533011273, + 0.4002436985511887, + 0.3989399822475765 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1622603517749877, + "scoreError" : 0.0022710755266089396, + "scoreConfidence" : [ + 0.15998927624837878, + 0.16453142730159664 + ], + "scorePercentiles" : { + "0.0" : 0.16080216116998183, + "50.0" : 0.16173225106740846, + "90.0" : 0.1650935754874284, + "95.0" : 0.1650935754874284, + "99.0" : 0.1650935754874284, + "99.9" : 0.1650935754874284, + "99.99" : 0.1650935754874284, + "99.999" : 0.1650935754874284, + "99.9999" : 0.1650935754874284, + "100.0" : 0.1650935754874284 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16263024725569594, + 0.16173225106740846, + 0.16164135474485591 + ], + [ + 0.1650935754874284, + 0.1630933295387827, + 0.163012935448114 + ], + [ + 0.16125758538394555, + 0.16080216116998183, + 0.16107972587867658 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.048687190219174316, + "scoreError" : 0.0012339357980707558, + "scoreConfidence" : [ + 0.04745325442110356, + 0.04992112601724507 + ], + "scorePercentiles" : { + "0.0" : 0.04793252728754254, + "50.0" : 0.048637015865141436, + "90.0" : 0.05031688491166984, + "95.0" : 0.05031688491166984, + "99.0" : 0.05031688491166984, + "99.9" : 0.05031688491166984, + "99.99" : 0.05031688491166984, + "99.999" : 0.05031688491166984, + "99.9999" : 0.05031688491166984, + "100.0" : 0.05031688491166984 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04793252728754254, + 0.04806552263605908, + 0.04803455098325536 + ], + [ + 0.05031688491166984, + 0.04888433324860193, + 0.048948174551274835 + ], + [ + 0.0489710829950295, + 0.048637015865141436, + 0.04839461949399433 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9679679.952722099, + "scoreError" : 352471.94224217994, + "scoreConfidence" : [ + 9327208.01047992, + 1.0032151894964278E7 + ], + "scorePercentiles" : { + "0.0" : 9410322.933207903, + "50.0" : 9733389.864785992, + "90.0" : 9917231.136769079, + "95.0" : 9917231.136769079, + "99.0" : 9917231.136769079, + "99.9" : 9917231.136769079, + "99.99" : 9917231.136769079, + "99.999" : 9917231.136769079, + "99.9999" : 9917231.136769079, + "100.0" : 9917231.136769079 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9412682.519285042, + 9417082.15913371, + 9410322.933207903 + ], + [ + 9917231.136769079, + 9867065.872781064, + 9860209.638423646 + ], + [ + 9784028.08797654, + 9715107.362135923, + 9733389.864785992 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-28T01:21:28Z-233fcc4f8943e346ae4ff21e5561b85f426f535b-jdk17.json b/performance-results/2025-02-28T01:21:28Z-233fcc4f8943e346ae4ff21e5561b85f426f535b-jdk17.json new file mode 100644 index 000000000..e6aa8705d --- /dev/null +++ b/performance-results/2025-02-28T01:21:28Z-233fcc4f8943e346ae4ff21e5561b85f426f535b-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.425004188960926, + "scoreError" : 0.0174529961835408, + "scoreConfidence" : [ + 3.407551192777385, + 3.442457185144467 + ], + "scorePercentiles" : { + "0.0" : 3.4215569792394542, + "50.0" : 3.4251662860439884, + "90.0" : 3.4281272045162727, + "95.0" : 3.4281272045162727, + "99.0" : 3.4281272045162727, + "99.9" : 3.4281272045162727, + "99.99" : 3.4281272045162727, + "99.999" : 3.4281272045162727, + "99.9999" : 3.4281272045162727, + "100.0" : 3.4281272045162727 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4215569792394542, + 3.4281272045162727 + ], + [ + 3.4248539784419494, + 3.425478593646028 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7291184118820688, + "scoreError" : 0.004159502908174387, + "scoreConfidence" : [ + 1.7249589089738944, + 1.7332779147902433 + ], + "scorePercentiles" : { + "0.0" : 1.7284478976539939, + "50.0" : 1.7290384028345496, + "90.0" : 1.7299489442051819, + "95.0" : 1.7299489442051819, + "99.0" : 1.7299489442051819, + "99.9" : 1.7299489442051819, + "99.99" : 1.7299489442051819, + "99.999" : 1.7299489442051819, + "99.9999" : 1.7299489442051819, + "100.0" : 1.7299489442051819 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7288253003704586, + 1.7284478976539939 + ], + [ + 1.7292515052986406, + 1.7299489442051819 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8678256118833285, + "scoreError" : 0.006561550956313254, + "scoreConfidence" : [ + 0.8612640609270152, + 0.8743871628396418 + ], + "scorePercentiles" : { + "0.0" : 0.8668878985260587, + "50.0" : 0.8676384753786253, + "90.0" : 0.8691375982500048, + "95.0" : 0.8691375982500048, + "99.0" : 0.8691375982500048, + "99.9" : 0.8691375982500048, + "99.99" : 0.8691375982500048, + "99.999" : 0.8691375982500048, + "99.9999" : 0.8691375982500048, + "100.0" : 0.8691375982500048 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8691375982500048, + 0.8680980953764585 + ], + [ + 0.8671788553807921, + 0.8668878985260587 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69300.6801932766, + "scoreError" : 2948.965995832353, + "scoreConfidence" : [ + 66351.71419744425, + 72249.64618910894 + ], + "scorePercentiles" : { + "0.0" : 66905.52137361391, + "50.0" : 70369.64562102163, + "90.0" : 70576.55566451224, + "95.0" : 70576.55566451224, + "99.0" : 70576.55566451224, + "99.9" : 70576.55566451224, + "99.99" : 70576.55566451224, + "99.999" : 70576.55566451224, + "99.9999" : 70576.55566451224, + "100.0" : 70576.55566451224 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70569.49827302896, + 70524.63925300592, + 70576.55566451224 + ], + [ + 70423.57707233248, + 70351.35599478213, + 70369.64562102163 + ], + [ + 66905.52137361391, + 67030.73245789492, + 66954.59602929726 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 349.52049772404257, + "scoreError" : 7.200395101991134, + "scoreConfidence" : [ + 342.3201026220514, + 356.7208928260337 + ], + "scorePercentiles" : { + "0.0" : 344.4032078203839, + "50.0" : 350.22761457137, + "90.0" : 356.6250203740414, + "95.0" : 356.6250203740414, + "99.0" : 356.6250203740414, + "99.9" : 356.6250203740414, + "99.99" : 356.6250203740414, + "99.999" : 356.6250203740414, + "99.9999" : 356.6250203740414, + "100.0" : 356.6250203740414 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 347.53019390364983, + 350.22761457137, + 351.764415757937 + ], + [ + 356.6250203740414, + 353.5611755887331, + 351.5199872665624 + ], + [ + 344.98688408164884, + 345.0659801520564, + 344.4032078203839 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 104.37242796876829, + "scoreError" : 6.922906797014581, + "scoreConfidence" : [ + 97.44952117175372, + 111.29533476578287 + ], + "scorePercentiles" : { + "0.0" : 99.71513007956918, + "50.0" : 103.72256768038186, + "90.0" : 109.56034934265045, + "95.0" : 109.56034934265045, + "99.0" : 109.56034934265045, + "99.9" : 109.56034934265045, + "99.99" : 109.56034934265045, + "99.999" : 109.56034934265045, + "99.9999" : 109.56034934265045, + "100.0" : 109.56034934265045 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 99.71513007956918, + 100.2024660758994, + 100.0292213935468 + ], + [ + 109.56034934265045, + 109.26460933508037, + 109.43978481861957 + ], + [ + 103.66061563143764, + 103.75710736172933, + 103.72256768038186 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014193070731641019, + "scoreError" : 1.3985027221844092E-4, + "scoreConfidence" : [ + 0.014053220459422578, + 0.01433292100385946 + ], + "scorePercentiles" : { + "0.0" : 0.014072886206629656, + "50.0" : 0.014221143006056711, + "90.0" : 0.014279952131259906, + "95.0" : 0.014279952131259906, + "99.0" : 0.014279952131259906, + "99.9" : 0.014279952131259906, + "99.99" : 0.014279952131259906, + "99.999" : 0.014279952131259906, + "99.9999" : 0.014279952131259906, + "100.0" : 0.014279952131259906 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014221143006056711, + 0.014226597827339501, + 0.01421779372490588 + ], + [ + 0.014279952131259906, + 0.014266136113009278, + 0.014266727080777242 + ], + [ + 0.014102687160922474, + 0.014083713333868507, + 0.014072886206629656 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.0134086142929557, + "scoreError" : 0.016656611892461523, + "scoreConfidence" : [ + 0.9967520024004942, + 1.0300652261854173 + ], + "scorePercentiles" : { + "0.0" : 0.9993761009293495, + "50.0" : 1.0191509573015387, + "90.0" : 1.0243929557467732, + "95.0" : 1.0243929557467732, + "99.0" : 1.0243929557467732, + "99.9" : 1.0243929557467732, + "99.99" : 1.0243929557467732, + "99.999" : 1.0243929557467732, + "99.9999" : 1.0243929557467732, + "100.0" : 1.0243929557467732 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.020094274479804, + 1.0235628798362333, + 1.0243929557467732 + ], + [ + 1.0194230865443425, + 1.0093312450545013, + 1.0191509573015387 + ], + [ + 1.0041463041470027, + 0.9993761009293495, + 1.0011997245970568 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012999582896411559, + "scoreError" : 6.992813461278419E-4, + "scoreConfidence" : [ + 0.012300301550283717, + 0.0136988642425394 + ], + "scorePercentiles" : { + "0.0" : 0.01269426261526119, + "50.0" : 0.012976330358043518, + "90.0" : 0.013273546866330943, + "95.0" : 0.013273546866330943, + "99.0" : 0.013273546866330943, + "99.9" : 0.013273546866330943, + "99.99" : 0.013273546866330943, + "99.999" : 0.013273546866330943, + "99.9999" : 0.013273546866330943, + "100.0" : 0.013273546866330943 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013119807961963936, + 0.013259157202067318, + 0.013273546866330943 + ], + [ + 0.01269426261526119, + 0.012817869978722859, + 0.0128328527541231 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.709114407689517, + "scoreError" : 0.05197450643726689, + "scoreConfidence" : [ + 3.65713990125225, + 3.7610889141267836 + ], + "scorePercentiles" : { + "0.0" : 3.6743841410727405, + "50.0" : 3.712563719022545, + "90.0" : 3.7299658426547353, + "95.0" : 3.7299658426547353, + "99.0" : 3.7299658426547353, + "99.9" : 3.7299658426547353, + "99.99" : 3.7299658426547353, + "99.999" : 3.7299658426547353, + "99.9999" : 3.7299658426547353, + "100.0" : 3.7299658426547353 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6743841410727405, + 3.7137454847809948, + 3.716191622585438 + ], + [ + 3.711381953264095, + 3.7299658426547353, + 3.7090174017790956 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.908876032349584, + "scoreError" : 0.06653523093807073, + "scoreConfidence" : [ + 2.8423408014115132, + 2.975411263287655 + ], + "scorePercentiles" : { + "0.0" : 2.859286373927959, + "50.0" : 2.9278416536885246, + "90.0" : 2.9591043917159765, + "95.0" : 2.9591043917159765, + "99.0" : 2.9591043917159765, + "99.9" : 2.9591043917159765, + "99.99" : 2.9591043917159765, + "99.999" : 2.9591043917159765, + "99.9999" : 2.9591043917159765, + "100.0" : 2.9591043917159765 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.885501371609925, + 2.9278416536885246, + 2.932055654353562 + ], + [ + 2.859286373927959, + 2.8695159586800574, + 2.862702666571265 + ], + [ + 2.930786301201289, + 2.9591043917159765, + 2.953089919397697 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18940902420611713, + "scoreError" : 0.012623487496932687, + "scoreConfidence" : [ + 0.17678553670918445, + 0.2020325117030498 + ], + "scorePercentiles" : { + "0.0" : 0.17928718473233174, + "50.0" : 0.19351137820736097, + "90.0" : 0.19568663671408723, + "95.0" : 0.19568663671408723, + "99.0" : 0.19568663671408723, + "99.9" : 0.19568663671408723, + "99.99" : 0.19568663671408723, + "99.999" : 0.19568663671408723, + "99.9999" : 0.19568663671408723, + "100.0" : 0.19568663671408723 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.19346425306635712, + 0.19351137820736097, + 0.19361049129736113 + ], + [ + 0.17968087045189113, + 0.1793736514501982, + 0.17928718473233174 + ], + [ + 0.19568663671408723, + 0.19518574770660108, + 0.19488100422886542 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3257654980395767, + "scoreError" : 0.003647712937679187, + "scoreConfidence" : [ + 0.32211778510189754, + 0.3294132109772559 + ], + "scorePercentiles" : { + "0.0" : 0.32280374912037185, + "50.0" : 0.32625077087955107, + "90.0" : 0.3281728269943885, + "95.0" : 0.3281728269943885, + "99.0" : 0.3281728269943885, + "99.9" : 0.3281728269943885, + "99.99" : 0.3281728269943885, + "99.999" : 0.3281728269943885, + "99.9999" : 0.3281728269943885, + "100.0" : 0.3281728269943885 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32630149026005806, + 0.32592821641353237, + 0.32625077087955107 + ], + [ + 0.32797510793348855, + 0.3279792810665442, + 0.3281728269943885 + ], + [ + 0.32311754786907493, + 0.32280374912037185, + 0.32336049181918125 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1664925346902736, + "scoreError" : 0.009505190969284327, + "scoreConfidence" : [ + 0.1569873437209893, + 0.17599772565955793 + ], + "scorePercentiles" : { + "0.0" : 0.1592184539071456, + "50.0" : 0.16805786182673724, + "90.0" : 0.1724910860888314, + "95.0" : 0.1724910860888314, + "99.0" : 0.1724910860888314, + "99.9" : 0.1724910860888314, + "99.99" : 0.1724910860888314, + "99.999" : 0.1724910860888314, + "99.9999" : 0.1724910860888314, + "100.0" : 0.1724910860888314 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15938114037995665, + 0.1594989847523047, + 0.1592184539071456 + ], + [ + 0.1676237910793007, + 0.1681097820327472, + 0.16805786182673724 + ], + [ + 0.1724910860888314, + 0.172039499939787, + 0.17201221220565216 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38993431325865663, + "scoreError" : 0.009461256488847478, + "scoreConfidence" : [ + 0.38047305676980914, + 0.3993955697475041 + ], + "scorePercentiles" : { + "0.0" : 0.3824617474280032, + "50.0" : 0.39044726392847384, + "90.0" : 0.3966692765856174, + "95.0" : 0.3966692765856174, + "99.0" : 0.3966692765856174, + "99.9" : 0.3966692765856174, + "99.99" : 0.3966692765856174, + "99.999" : 0.3966692765856174, + "99.9999" : 0.3966692765856174, + "100.0" : 0.3966692765856174 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3966692765856174, + 0.39627204069583133, + 0.39586610612778084 + ], + [ + 0.3852658757945833, + 0.38265304564934566, + 0.3824617474280032 + ], + [ + 0.39087826020168853, + 0.39044726392847384, + 0.38889520291658564 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1580856687466588, + "scoreError" : 0.00260313401060033, + "scoreConfidence" : [ + 0.15548253473605847, + 0.16068880275725914 + ], + "scorePercentiles" : { + "0.0" : 0.1561233264484099, + "50.0" : 0.15758299941695555, + "90.0" : 0.16031973716273626, + "95.0" : 0.16031973716273626, + "99.0" : 0.16031973716273626, + "99.9" : 0.16031973716273626, + "99.99" : 0.16031973716273626, + "99.999" : 0.16031973716273626, + "99.9999" : 0.16031973716273626, + "100.0" : 0.16031973716273626 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1595882914159871, + 0.16031973716273626, + 0.1598122411666001 + ], + [ + 0.15758299941695555, + 0.15727130698581449, + 0.15731520293229298 + ], + [ + 0.15852091390980425, + 0.1561233264484099, + 0.15623699928132861 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04749293708460388, + "scoreError" : 8.250305964143997E-4, + "scoreConfidence" : [ + 0.04666790648818948, + 0.04831796768101828 + ], + "scorePercentiles" : { + "0.0" : 0.046976803193438374, + "50.0" : 0.0473359307863807, + "90.0" : 0.048134309229621426, + "95.0" : 0.048134309229621426, + "99.0" : 0.048134309229621426, + "99.9" : 0.048134309229621426, + "99.99" : 0.048134309229621426, + "99.999" : 0.048134309229621426, + "99.9999" : 0.048134309229621426, + "100.0" : 0.048134309229621426 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04756417431092297, + 0.04726491346844633, + 0.0473359307863807 + ], + [ + 0.04698740704143291, + 0.046976803193438374, + 0.04701674583554701 + ], + [ + 0.04810798255151081, + 0.048134309229621426, + 0.048048167344134377 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9524975.016775662, + "scoreError" : 289751.35326766694, + "scoreConfidence" : [ + 9235223.663507994, + 9814726.37004333 + ], + "scorePercentiles" : { + "0.0" : 9370765.244382022, + "50.0" : 9429927.322337417, + "90.0" : 9768079.684570312, + "95.0" : 9768079.684570312, + "99.0" : 9768079.684570312, + "99.9" : 9768079.684570312, + "99.99" : 9768079.684570312, + "99.999" : 9768079.684570312, + "99.9999" : 9768079.684570312, + "100.0" : 9768079.684570312 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9742250.733203506, + 9768079.684570312, + 9749335.159844054 + ], + [ + 9435293.098113207, + 9427336.44674835, + 9429927.322337417 + ], + [ + 9397928.663849765, + 9370765.244382022, + 9403858.79793233 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-02-28T05:10:58Z-77adc96ca0deeb4098d1ff1450312cf30d18e6a4-jdk17.json b/performance-results/2025-02-28T05:10:58Z-77adc96ca0deeb4098d1ff1450312cf30d18e6a4-jdk17.json new file mode 100644 index 000000000..d7a328257 --- /dev/null +++ b/performance-results/2025-02-28T05:10:58Z-77adc96ca0deeb4098d1ff1450312cf30d18e6a4-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4155242671178643, + "scoreError" : 0.021366874756141404, + "scoreConfidence" : [ + 3.394157392361723, + 3.4368911418740056 + ], + "scorePercentiles" : { + "0.0" : 3.4126757505658514, + "50.0" : 3.414666030565734, + "90.0" : 3.420089256774136, + "95.0" : 3.420089256774136, + "99.0" : 3.420089256774136, + "99.9" : 3.420089256774136, + "99.99" : 3.420089256774136, + "99.999" : 3.420089256774136, + "99.9999" : 3.420089256774136, + "100.0" : 3.420089256774136 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4157554002096697, + 3.413576660921798 + ], + [ + 3.4126757505658514, + 3.420089256774136 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7256630448941475, + "scoreError" : 0.011635721260581646, + "scoreConfidence" : [ + 1.714027323633566, + 1.737298766154729 + ], + "scorePercentiles" : { + "0.0" : 1.723193635282295, + "50.0" : 1.725973087245099, + "90.0" : 1.7275123698040975, + "95.0" : 1.7275123698040975, + "99.0" : 1.7275123698040975, + "99.9" : 1.7275123698040975, + "99.99" : 1.7275123698040975, + "99.999" : 1.7275123698040975, + "99.9999" : 1.7275123698040975, + "100.0" : 1.7275123698040975 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7260644171569068, + 1.7275123698040975 + ], + [ + 1.723193635282295, + 1.7258817573332907 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8674451074711825, + "scoreError" : 0.004249137348369588, + "scoreConfidence" : [ + 0.8631959701228129, + 0.8716942448195522 + ], + "scorePercentiles" : { + "0.0" : 0.8665786884079261, + "50.0" : 0.8675735756317964, + "90.0" : 0.8680545902132113, + "95.0" : 0.8680545902132113, + "99.0" : 0.8680545902132113, + "99.9" : 0.8680545902132113, + "99.99" : 0.8680545902132113, + "99.999" : 0.8680545902132113, + "99.9999" : 0.8680545902132113, + "100.0" : 0.8680545902132113 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8673071258039897, + 0.8680545902132113 + ], + [ + 0.8665786884079261, + 0.8678400254596029 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70504.76307379914, + "scoreError" : 624.3060851188214, + "scoreConfidence" : [ + 69880.45698868032, + 71129.06915891796 + ], + "scorePercentiles" : { + "0.0" : 69782.18803539468, + "50.0" : 70549.373916216, + "90.0" : 70890.4395602008, + "95.0" : 70890.4395602008, + "99.0" : 70890.4395602008, + "99.9" : 70890.4395602008, + "99.99" : 70890.4395602008, + "99.999" : 70890.4395602008, + "99.9999" : 70890.4395602008, + "100.0" : 70890.4395602008 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70810.01885219604, + 70549.373916216, + 70502.1469169721 + ], + [ + 70244.23636788203, + 69782.18803539468, + 70180.44548991376 + ], + [ + 70797.86184337315, + 70786.15668204376, + 70890.4395602008 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 344.1163493384629, + "scoreError" : 4.629038164553738, + "scoreConfidence" : [ + 339.4873111739092, + 348.7453875030166 + ], + "scorePercentiles" : { + "0.0" : 339.99341521153025, + "50.0" : 344.63463159856883, + "90.0" : 347.6493297625378, + "95.0" : 347.6493297625378, + "99.0" : 347.6493297625378, + "99.9" : 347.6493297625378, + "99.99" : 347.6493297625378, + "99.999" : 347.6493297625378, + "99.9999" : 347.6493297625378, + "100.0" : 347.6493297625378 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 342.65194830682475, + 343.2995607102032, + 339.99341521153025 + ], + [ + 345.1038421289899, + 347.6493297625378, + 346.38617001258297 + ], + [ + 344.63463159856883, + 340.37714261970393, + 346.9511036952247 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 105.35398262068469, + "scoreError" : 3.698496186029317, + "scoreConfidence" : [ + 101.65548643465537, + 109.052478806714 + ], + "scorePercentiles" : { + "0.0" : 102.45147063371301, + "50.0" : 106.25917608524738, + "90.0" : 108.11542107904748, + "95.0" : 108.11542107904748, + "99.0" : 108.11542107904748, + "99.9" : 108.11542107904748, + "99.99" : 108.11542107904748, + "99.999" : 108.11542107904748, + "99.9999" : 108.11542107904748, + "100.0" : 108.11542107904748 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 102.66020454166096, + 102.45147063371301, + 102.92241228943182 + ], + [ + 106.7842668012313, + 107.62840877904392, + 108.11542107904748 + ], + [ + 104.88238605208642, + 106.25917608524738, + 106.48209732469995 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014213492598747074, + "scoreError" : 7.099203275016753E-5, + "scoreConfidence" : [ + 0.014142500565996906, + 0.014284484631497242 + ], + "scorePercentiles" : { + "0.0" : 0.014149042191943632, + "50.0" : 0.01422631078726077, + "90.0" : 0.014281189885095554, + "95.0" : 0.014281189885095554, + "99.0" : 0.014281189885095554, + "99.9" : 0.014281189885095554, + "99.99" : 0.014281189885095554, + "99.999" : 0.014281189885095554, + "99.9999" : 0.014281189885095554, + "100.0" : 0.014281189885095554 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014203040847456905, + 0.014155791548526187, + 0.014197787038719717 + ], + [ + 0.014244770724807378, + 0.014281189885095554, + 0.014236574419438972 + ], + [ + 0.014149042191943632, + 0.01422692594547454, + 0.01422631078726077 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.0081913559861528, + "scoreError" : 0.016135465762877176, + "scoreConfidence" : [ + 0.9920558902232757, + 1.02432682174903 + ], + "scorePercentiles" : { + "0.0" : 0.9921777786486755, + "50.0" : 1.006073398390342, + "90.0" : 1.0239972782101168, + "95.0" : 1.0239972782101168, + "99.0" : 1.0239972782101168, + "99.9" : 1.0239972782101168, + "99.99" : 1.0239972782101168, + "99.999" : 1.0239972782101168, + "99.9999" : 1.0239972782101168, + "100.0" : 1.0239972782101168 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0142654561866127, + 1.01110784774037, + 1.0239972782101168 + ], + [ + 1.0051798572720876, + 1.004683809121961, + 1.0170640514593714 + ], + [ + 1.006073398390342, + 0.9921777786486755, + 0.9991727268458388 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01318987517952846, + "scoreError" : 8.277840973854652E-4, + "scoreConfidence" : [ + 0.012362091082142994, + 0.014017659276913926 + ], + "scorePercentiles" : { + "0.0" : 0.012867848170490049, + "50.0" : 0.013192078718330464, + "90.0" : 0.013497093532112692, + "95.0" : 0.013497093532112692, + "99.0" : 0.013497093532112692, + "99.9" : 0.013497093532112692, + "99.99" : 0.013497093532112692, + "99.999" : 0.013497093532112692, + "99.9999" : 0.013497093532112692, + "100.0" : 0.013497093532112692 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013497093532112692, + 0.01340318480504372, + 0.013467493731061882 + ], + [ + 0.012867848170490049, + 0.012922658206845218, + 0.012980972631617207 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6633665231890657, + "scoreError" : 0.06570786988662425, + "scoreConfidence" : [ + 3.5976586533024415, + 3.72907439307569 + ], + "scorePercentiles" : { + "0.0" : 3.635598972383721, + "50.0" : 3.6661064322808183, + "90.0" : 3.691381441328413, + "95.0" : 3.691381441328413, + "99.0" : 3.691381441328413, + "99.9" : 3.691381441328413, + "99.99" : 3.691381441328413, + "99.999" : 3.691381441328413, + "99.9999" : 3.691381441328413, + "100.0" : 3.691381441328413 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6367515265454546, + 3.6622488674963396, + 3.669963997065297 + ], + [ + 3.635598972383721, + 3.691381441328413, + 3.6842543343151695 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8219502049935965, + "scoreError" : 0.04334966840170217, + "scoreConfidence" : [ + 2.7786005365918944, + 2.8652998733952986 + ], + "scorePercentiles" : { + "0.0" : 2.784729027561247, + "50.0" : 2.8237416016374928, + "90.0" : 2.8593693684962838, + "95.0" : 2.8593693684962838, + "99.0" : 2.8593693684962838, + "99.9" : 2.8593693684962838, + "99.99" : 2.8593693684962838, + "99.999" : 2.8593693684962838, + "99.9999" : 2.8593693684962838, + "100.0" : 2.8593693684962838 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.787435985785953, + 2.784729027561247, + 2.8094674806179776 + ], + [ + 2.82518856299435, + 2.815962915259009, + 2.8237416016374928 + ], + [ + 2.8466063020210646, + 2.84505060056899, + 2.8593693684962838 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.181212277502675, + "scoreError" : 0.015454213970487527, + "scoreConfidence" : [ + 0.16575806353218747, + 0.1966664914731625 + ], + "scorePercentiles" : { + "0.0" : 0.17226614054882775, + "50.0" : 0.17801267326485928, + "90.0" : 0.19332841403908985, + "95.0" : 0.19332841403908985, + "99.0" : 0.19332841403908985, + "99.9" : 0.19332841403908985, + "99.99" : 0.19332841403908985, + "99.999" : 0.19332841403908985, + "99.9999" : 0.19332841403908985, + "100.0" : 0.19332841403908985 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.19299061562807573, + 0.1928803875248327, + 0.19332841403908985 + ], + [ + 0.1729473925495486, + 0.17255121123285308, + 0.17226614054882775 + ], + [ + 0.1783403926418661, + 0.17801267326485928, + 0.17759327009412182 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33635890077558334, + "scoreError" : 0.020346260493578534, + "scoreConfidence" : [ + 0.3160126402820048, + 0.35670516126916185 + ], + "scorePercentiles" : { + "0.0" : 0.3262282423501011, + "50.0" : 0.329679224705766, + "90.0" : 0.3527149473405756, + "95.0" : 0.3527149473405756, + "99.0" : 0.3527149473405756, + "99.9" : 0.3527149473405756, + "99.99" : 0.3527149473405756, + "99.999" : 0.3527149473405756, + "99.9999" : 0.3527149473405756, + "100.0" : 0.3527149473405756 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3524606698269482, + 0.3519048874305018, + 0.3527149473405756 + ], + [ + 0.3262282423501011, + 0.3267454162255767, + 0.32682386309562717 + ], + [ + 0.3311071462437506, + 0.3295657097614026, + 0.329679224705766 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17155921178043101, + "scoreError" : 0.005706412048826315, + "scoreConfidence" : [ + 0.1658527997316047, + 0.17726562382925734 + ], + "scorePercentiles" : { + "0.0" : 0.16605277506932567, + "50.0" : 0.17356418499748338, + "90.0" : 0.17465667584183317, + "95.0" : 0.17465667584183317, + "99.0" : 0.17465667584183317, + "99.9" : 0.17465667584183317, + "99.99" : 0.17465667584183317, + "99.999" : 0.17465667584183317, + "99.9999" : 0.17465667584183317, + "100.0" : 0.17465667584183317 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16605277506932567, + 0.16713794880665864, + 0.16820257048424805 + ], + [ + 0.17374464774050072, + 0.1729026097653751, + 0.17465667584183317 + ], + [ + 0.17356418499748338, + 0.17366743593484074, + 0.17410405738361365 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.40108385604350244, + "scoreError" : 0.004093280443088559, + "scoreConfidence" : [ + 0.3969905756004139, + 0.405177136486591 + ], + "scorePercentiles" : { + "0.0" : 0.39789512596984045, + "50.0" : 0.40023563443528376, + "90.0" : 0.40471912991217773, + "95.0" : 0.40471912991217773, + "99.0" : 0.40471912991217773, + "99.9" : 0.40471912991217773, + "99.99" : 0.40471912991217773, + "99.999" : 0.40471912991217773, + "99.9999" : 0.40471912991217773, + "100.0" : 0.40471912991217773 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3998197200143931, + 0.40023563443528376, + 0.39970199716215676 + ], + [ + 0.40471912991217773, + 0.4044219175799733, + 0.40312262095376306 + ], + [ + 0.4008796912531067, + 0.3989588671108274, + 0.39789512596984045 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16044247923562138, + "scoreError" : 0.0020666140587943618, + "scoreConfidence" : [ + 0.15837586517682703, + 0.16250909329441574 + ], + "scorePercentiles" : { + "0.0" : 0.15859480142732535, + "50.0" : 0.16041678557564285, + "90.0" : 0.16204565700350013, + "95.0" : 0.16204565700350013, + "99.0" : 0.16204565700350013, + "99.9" : 0.16204565700350013, + "99.99" : 0.16204565700350013, + "99.999" : 0.16204565700350013, + "99.9999" : 0.16204565700350013, + "100.0" : 0.16204565700350013 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16193803345532273, + 0.16144244192241253, + 0.16204565700350013 + ], + [ + 0.1603984048695987, + 0.16059771067465353, + 0.15952169556062468 + ], + [ + 0.16041678557564285, + 0.159026782631512, + 0.15859480142732535 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04701046030973298, + "scoreError" : 3.8555797178145215E-4, + "scoreConfidence" : [ + 0.046624902337951524, + 0.047396018281514435 + ], + "scorePercentiles" : { + "0.0" : 0.046712751198161415, + "50.0" : 0.04703237564786335, + "90.0" : 0.047322644024645324, + "95.0" : 0.047322644024645324, + "99.0" : 0.047322644024645324, + "99.9" : 0.047322644024645324, + "99.99" : 0.047322644024645324, + "99.999" : 0.047322644024645324, + "99.9999" : 0.047322644024645324, + "100.0" : 0.047322644024645324 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047322644024645324, + 0.047222791438623, + 0.04703237564786335 + ], + [ + 0.04725773195720389, + 0.04681896056968426, + 0.046712751198161415 + ], + [ + 0.04707274059969874, + 0.046928389102410685, + 0.04672575824930613 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9430758.342778, + "scoreError" : 263280.67197279376, + "scoreConfidence" : [ + 9167477.670805205, + 9694039.014750794 + ], + "scorePercentiles" : { + "0.0" : 9210703.829650093, + "50.0" : 9476646.130681818, + "90.0" : 9617267.366346154, + "95.0" : 9617267.366346154, + "99.0" : 9617267.366346154, + "99.9" : 9617267.366346154, + "99.99" : 9617267.366346154, + "99.999" : 9617267.366346154, + "99.9999" : 9617267.366346154, + "100.0" : 9617267.366346154 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9476646.130681818, + 9423476.688323917, + 9498627.851851853 + ], + [ + 9242939.773567468, + 9210703.829650093, + 9258214.512488436 + ], + [ + 9569795.895693779, + 9579153.036398467, + 9617267.366346154 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-02T21:33:18Z-c046e6fc09f17d3c382657e747c6023ba7f252a9-jdk17.json b/performance-results/2025-03-02T21:33:18Z-c046e6fc09f17d3c382657e747c6023ba7f252a9-jdk17.json new file mode 100644 index 000000000..f52aae027 --- /dev/null +++ b/performance-results/2025-03-02T21:33:18Z-c046e6fc09f17d3c382657e747c6023ba7f252a9-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.41828965785467, + "scoreError" : 0.03630562611823795, + "scoreConfidence" : [ + 3.3819840317364323, + 3.4545952839729077 + ], + "scorePercentiles" : { + "0.0" : 3.4122457287978434, + "50.0" : 3.417858050147738, + "90.0" : 3.4251968023253596, + "95.0" : 3.4251968023253596, + "99.0" : 3.4251968023253596, + "99.9" : 3.4251968023253596, + "99.99" : 3.4251968023253596, + "99.999" : 3.4251968023253596, + "99.9999" : 3.4251968023253596, + "100.0" : 3.4251968023253596 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4201038015672776, + 3.4251968023253596 + ], + [ + 3.4122457287978434, + 3.415612298728198 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7263085250284311, + "scoreError" : 0.007038612914019544, + "scoreConfidence" : [ + 1.7192699121144115, + 1.7333471379424508 + ], + "scorePercentiles" : { + "0.0" : 1.72514416466237, + "50.0" : 1.7262999109653892, + "90.0" : 1.727490113520576, + "95.0" : 1.727490113520576, + "99.0" : 1.727490113520576, + "99.9" : 1.727490113520576, + "99.99" : 1.727490113520576, + "99.999" : 1.727490113520576, + "99.9999" : 1.727490113520576, + "100.0" : 1.727490113520576 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.72514416466237, + 1.7256645954268708 + ], + [ + 1.727490113520576, + 1.7269352265039075 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.86899198118607, + "scoreError" : 0.0011975356626304622, + "scoreConfidence" : [ + 0.8677944455234395, + 0.8701895168487005 + ], + "scorePercentiles" : { + "0.0" : 0.8688009019274694, + "50.0" : 0.8689987999936732, + "90.0" : 0.8691694228294644, + "95.0" : 0.8691694228294644, + "99.0" : 0.8691694228294644, + "99.9" : 0.8691694228294644, + "99.99" : 0.8691694228294644, + "99.999" : 0.8691694228294644, + "99.9999" : 0.8691694228294644, + "100.0" : 0.8691694228294644 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8688666246158518, + 0.8691694228294644 + ], + [ + 0.8688009019274694, + 0.8691309753714946 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70232.01481354213, + "scoreError" : 1538.188912414745, + "scoreConfidence" : [ + 68693.82590112739, + 71770.20372595688 + ], + "scorePercentiles" : { + "0.0" : 68834.11719335812, + "50.0" : 70335.7912615769, + "90.0" : 71248.55268371207, + "95.0" : 71248.55268371207, + "99.0" : 71248.55268371207, + "99.9" : 71248.55268371207, + "99.99" : 71248.55268371207, + "99.999" : 71248.55268371207, + "99.9999" : 71248.55268371207, + "100.0" : 71248.55268371207 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70335.7912615769, + 70318.29869520647, + 70615.3482588539 + ], + [ + 68834.11719335812, + 69184.4699954476, + 69310.74272699936 + ], + [ + 71248.55268371207, + 71233.87557474103, + 71006.93693198367 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 348.7358560146452, + "scoreError" : 9.45323495910323, + "scoreConfidence" : [ + 339.282621055542, + 358.1890909737484 + ], + "scorePercentiles" : { + "0.0" : 339.467589297965, + "50.0" : 351.0502196395492, + "90.0" : 355.2367532576896, + "95.0" : 355.2367532576896, + "99.0" : 355.2367532576896, + "99.9" : 355.2367532576896, + "99.99" : 355.2367532576896, + "99.999" : 355.2367532576896, + "99.9999" : 355.2367532576896, + "100.0" : 355.2367532576896 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 348.6266856905834, + 353.7210730850551, + 355.2367532576896 + ], + [ + 352.2086936648004, + 352.1941358313394, + 351.0502196395492 + ], + [ + 341.2831938162754, + 344.83435984855004, + 339.467589297965 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 108.8976425616819, + "scoreError" : 4.5235077479722525, + "scoreConfidence" : [ + 104.37413481370966, + 113.42115030965415 + ], + "scorePercentiles" : { + "0.0" : 105.13588070683821, + "50.0" : 109.84674602291123, + "90.0" : 111.53991107410427, + "95.0" : 111.53991107410427, + "99.0" : 111.53991107410427, + "99.9" : 111.53991107410427, + "99.99" : 111.53991107410427, + "99.999" : 111.53991107410427, + "99.9999" : 111.53991107410427, + "100.0" : 111.53991107410427 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 109.9271038747169, + 109.84674602291123, + 109.28821350660738 + ], + [ + 111.47146048588766, + 111.53978992907797, + 111.53991107410427 + ], + [ + 105.33613831237075, + 105.13588070683821, + 105.99353914262285 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014151886837748762, + "scoreError" : 1.8201815515134884E-4, + "scoreConfidence" : [ + 0.013969868682597412, + 0.01433390499290011 + ], + "scorePercentiles" : { + "0.0" : 0.014046185393534612, + "50.0" : 0.014093099466441932, + "90.0" : 0.014298931872192083, + "95.0" : 0.014298931872192083, + "99.0" : 0.014298931872192083, + "99.9" : 0.014298931872192083, + "99.99" : 0.014298931872192083, + "99.999" : 0.014298931872192083, + "99.9999" : 0.014298931872192083, + "100.0" : 0.014298931872192083 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014065132065705843, + 0.014167577229310642, + 0.014048452400921006 + ], + [ + 0.014294062328473413, + 0.014270803594771241, + 0.014298931872192083 + ], + [ + 0.014093099466441932, + 0.01408273718838808, + 0.014046185393534612 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9825431540425588, + "scoreError" : 0.010821959248908594, + "scoreConfidence" : [ + 0.9717211947936502, + 0.9933651132914674 + ], + "scorePercentiles" : { + "0.0" : 0.9743582786438035, + "50.0" : 0.9813524897458542, + "90.0" : 0.993766748981417, + "95.0" : 0.993766748981417, + "99.0" : 0.993766748981417, + "99.9" : 0.993766748981417, + "99.99" : 0.993766748981417, + "99.999" : 0.993766748981417, + "99.9999" : 0.993766748981417, + "100.0" : 0.993766748981417 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9828495155773955, + 0.978821331604189, + 0.9806014058638949 + ], + [ + 0.9832963547689282, + 0.9763275131309187, + 0.9813524897458542 + ], + [ + 0.9743582786438035, + 0.993766748981417, + 0.991514748066627 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01300260075448132, + "scoreError" : 8.023467513972726E-4, + "scoreConfidence" : [ + 0.012200254003084048, + 0.013804947505878594 + ], + "scorePercentiles" : { + "0.0" : 0.012720992199664173, + "50.0" : 0.012971484214673937, + "90.0" : 0.013335832962161846, + "95.0" : 0.013335832962161846, + "99.0" : 0.013335832962161846, + "99.9" : 0.013335832962161846, + "99.99" : 0.013335832962161846, + "99.999" : 0.013335832962161846, + "99.9999" : 0.013335832962161846, + "100.0" : 0.013335832962161846 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012720992199664173, + 0.012732649700408199, + 0.012790562874435309 + ], + [ + 0.013152405554912565, + 0.013283161235305837, + 0.013335832962161846 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.7915260479825292, + "scoreError" : 0.1983707891453185, + "scoreConfidence" : [ + 3.5931552588372107, + 3.989896837127848 + ], + "scorePercentiles" : { + "0.0" : 3.6699134086573735, + "50.0" : 3.7937304046584868, + "90.0" : 3.8893684937791604, + "95.0" : 3.8893684937791604, + "99.0" : 3.8893684937791604, + "99.9" : 3.8893684937791604, + "99.99" : 3.8893684937791604, + "99.999" : 3.8893684937791604, + "99.9999" : 3.8893684937791604, + "100.0" : 3.8893684937791604 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6699134086573735, + 3.7899163765151513, + 3.797544432801822 + ], + [ + 3.8893684937791604, + 3.7865034678274037, + 3.815910108314264 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8929701553211618, + "scoreError" : 0.11108803922461892, + "scoreConfidence" : [ + 2.781882116096543, + 3.0040581945457805 + ], + "scorePercentiles" : { + "0.0" : 2.7998811998880178, + "50.0" : 2.9051692349695033, + "90.0" : 2.975505501636418, + "95.0" : 2.975505501636418, + "99.0" : 2.975505501636418, + "99.9" : 2.975505501636418, + "99.99" : 2.975505501636418, + "99.999" : 2.975505501636418, + "99.9999" : 2.975505501636418, + "100.0" : 2.975505501636418 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.975505501636418, + 2.9466927030053034, + 2.966848873331356 + ], + [ + 2.827787556969183, + 2.7998811998880178, + 2.8193454034395264 + ], + [ + 2.9229998939216832, + 2.9051692349695033, + 2.872501030729466 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17544947039487774, + "scoreError" : 0.0052488607290020655, + "scoreConfidence" : [ + 0.17020060966587566, + 0.1806983311238798 + ], + "scorePercentiles" : { + "0.0" : 0.17165985189508376, + "50.0" : 0.17549794610578778, + "90.0" : 0.179824128751506, + "95.0" : 0.179824128751506, + "99.0" : 0.179824128751506, + "99.9" : 0.179824128751506, + "99.99" : 0.179824128751506, + "99.999" : 0.179824128751506, + "99.9999" : 0.179824128751506, + "100.0" : 0.179824128751506 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17227370679942808, + 0.17183004900512044, + 0.17165985189508376 + ], + [ + 0.178551218915155, + 0.179824128751506, + 0.17882252447114783 + ], + [ + 0.17549794610578778, + 0.17569065722066057, + 0.17489515039001013 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3358209039887323, + "scoreError" : 0.015562757724852853, + "scoreConfidence" : [ + 0.3202581462638795, + 0.35138366171358515 + ], + "scorePercentiles" : { + "0.0" : 0.32385241021406136, + "50.0" : 0.3377909938186117, + "90.0" : 0.34700695846490165, + "95.0" : 0.34700695846490165, + "99.0" : 0.34700695846490165, + "99.9" : 0.34700695846490165, + "99.99" : 0.34700695846490165, + "99.999" : 0.34700695846490165, + "99.9999" : 0.34700695846490165, + "100.0" : 0.34700695846490165 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32521056380487806, + 0.32385241021406136, + 0.32386125089060175 + ], + [ + 0.34700695846490165, + 0.34364055864059656, + 0.3447147407790417 + ], + [ + 0.3377909938186117, + 0.3400444924342888, + 0.336266166851609 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16134176687262286, + "scoreError" : 0.004812602207946651, + "scoreConfidence" : [ + 0.1565291646646762, + 0.16615436908056952 + ], + "scorePercentiles" : { + "0.0" : 0.1572061005313463, + "50.0" : 0.16288815610900265, + "90.0" : 0.16382506316962092, + "95.0" : 0.16382506316962092, + "99.0" : 0.16382506316962092, + "99.9" : 0.16382506316962092, + "99.99" : 0.16382506316962092, + "99.999" : 0.16382506316962092, + "99.9999" : 0.16382506316962092, + "100.0" : 0.16382506316962092 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15762173064859328, + 0.1578787331270425, + 0.1572061005313463 + ], + [ + 0.16345162815860875, + 0.16382506316962092, + 0.16329059359589823 + ], + [ + 0.1623845217751364, + 0.16352937473835688, + 0.16288815610900265 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39310674445864563, + "scoreError" : 0.010868598898243683, + "scoreConfidence" : [ + 0.3822381455604019, + 0.40397534335688934 + ], + "scorePercentiles" : { + "0.0" : 0.3862654843182696, + "50.0" : 0.3901732209129926, + "90.0" : 0.40193320541778865, + "95.0" : 0.40193320541778865, + "99.0" : 0.40193320541778865, + "99.9" : 0.40193320541778865, + "99.99" : 0.40193320541778865, + "99.999" : 0.40193320541778865, + "99.9999" : 0.40193320541778865, + "100.0" : 0.40193320541778865 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3939431058893047, + 0.3866839318304849, + 0.3862654843182696 + ], + [ + 0.40193320541778865, + 0.4007557186022281, + 0.4009131120109044 + ], + [ + 0.3901732209129926, + 0.3883718215853043, + 0.38892109956053356 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15737170175876328, + "scoreError" : 8.129918877386329E-4, + "scoreConfidence" : [ + 0.15655870987102463, + 0.15818469364650192 + ], + "scorePercentiles" : { + "0.0" : 0.15657145389071553, + "50.0" : 0.157625196081522, + "90.0" : 0.1578368545250797, + "95.0" : 0.1578368545250797, + "99.0" : 0.1578368545250797, + "99.9" : 0.1578368545250797, + "99.99" : 0.1578368545250797, + "99.999" : 0.1578368545250797, + "99.9999" : 0.1578368545250797, + "100.0" : 0.1578368545250797 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.156874781762279, + 0.15678063731284786, + 0.15657145389071553 + ], + [ + 0.1575724023540905, + 0.157625196081522, + 0.1578368545250797 + ], + [ + 0.15765837165379157, + 0.15771490363839955, + 0.15771071461014383 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04741806749151767, + "scoreError" : 0.0014343819370443356, + "scoreConfidence" : [ + 0.04598368555447333, + 0.048852449428562005 + ], + "scorePercentiles" : { + "0.0" : 0.04673769655968555, + "50.0" : 0.04698499036351762, + "90.0" : 0.04928052339557369, + "95.0" : 0.04928052339557369, + "99.0" : 0.04928052339557369, + "99.9" : 0.04928052339557369, + "99.99" : 0.04928052339557369, + "99.999" : 0.04928052339557369, + "99.9999" : 0.04928052339557369, + "100.0" : 0.04928052339557369 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04682732774065455, + 0.046959641036477706, + 0.04698499036351762 + ], + [ + 0.04928052339557369, + 0.04791430007809917, + 0.048122328429744905 + ], + [ + 0.04700595427325117, + 0.04673769655968555, + 0.04692984554665465 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9288801.490699522, + "scoreError" : 154527.26504390594, + "scoreConfidence" : [ + 9134274.225655615, + 9443328.755743429 + ], + "scorePercentiles" : { + "0.0" : 9205640.332106715, + "50.0" : 9236812.06278855, + "90.0" : 9426756.017907634, + "95.0" : 9426756.017907634, + "99.0" : 9426756.017907634, + "99.9" : 9426756.017907634, + "99.99" : 9426756.017907634, + "99.999" : 9426756.017907634, + "99.9999" : 9426756.017907634, + "100.0" : 9426756.017907634 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9376145.139643861, + 9426756.017907634, + 9423155.61299435 + ], + [ + 9205640.332106715, + 9212345.915285451, + 9249796.383548982 + ], + [ + 9236065.98984303, + 9236812.06278855, + 9232495.962177122 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-06T06:12:18Z-2e1e0ebf65b788790763a974ce9e8aea4e4e558d-jdk17.json b/performance-results/2025-03-06T06:12:18Z-2e1e0ebf65b788790763a974ce9e8aea4e4e558d-jdk17.json new file mode 100644 index 000000000..206936aac --- /dev/null +++ b/performance-results/2025-03-06T06:12:18Z-2e1e0ebf65b788790763a974ce9e8aea4e4e558d-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4115082119150353, + "scoreError" : 0.02941825923097294, + "scoreConfidence" : [ + 3.3820899526840624, + 3.440926471146008 + ], + "scorePercentiles" : { + "0.0" : 3.4064825548916207, + "50.0" : 3.4113171297808074, + "90.0" : 3.4169160332069057, + "95.0" : 3.4169160332069057, + "99.0" : 3.4169160332069057, + "99.9" : 3.4169160332069057, + "99.99" : 3.4169160332069057, + "99.999" : 3.4169160332069057, + "99.9999" : 3.4169160332069057, + "100.0" : 3.4169160332069057 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4064825548916207, + 3.4093676160232755 + ], + [ + 3.413266643538339, + 3.4169160332069057 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7317113411285598, + "scoreError" : 0.012064473875984218, + "scoreConfidence" : [ + 1.7196468672525755, + 1.7437758150045441 + ], + "scorePercentiles" : { + "0.0" : 1.7292424938779714, + "50.0" : 1.7319358983574031, + "90.0" : 1.7337310739214618, + "95.0" : 1.7337310739214618, + "99.0" : 1.7337310739214618, + "99.9" : 1.7337310739214618, + "99.99" : 1.7337310739214618, + "99.999" : 1.7337310739214618, + "99.9999" : 1.7337310739214618, + "100.0" : 1.7337310739214618 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7292424938779714, + 1.731634581684259 + ], + [ + 1.7322372150305472, + 1.7337310739214618 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8690424200353214, + "scoreError" : 0.0036514138591921194, + "scoreConfidence" : [ + 0.8653910061761293, + 0.8726938338945135 + ], + "scorePercentiles" : { + "0.0" : 0.8685279670834416, + "50.0" : 0.8689007639611597, + "90.0" : 0.8698401851355247, + "95.0" : 0.8698401851355247, + "99.0" : 0.8698401851355247, + "99.9" : 0.8698401851355247, + "99.99" : 0.8698401851355247, + "99.999" : 0.8698401851355247, + "99.9999" : 0.8698401851355247, + "100.0" : 0.8698401851355247 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8688095069876479, + 0.8698401851355247 + ], + [ + 0.8685279670834416, + 0.8689920209346713 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 71003.00198373497, + "scoreError" : 226.15950652706366, + "scoreConfidence" : [ + 70776.8424772079, + 71229.16149026203 + ], + "scorePercentiles" : { + "0.0" : 70857.99060334494, + "50.0" : 70923.80077840707, + "90.0" : 71184.9506282876, + "95.0" : 71184.9506282876, + "99.0" : 71184.9506282876, + "99.9" : 71184.9506282876, + "99.99" : 71184.9506282876, + "99.999" : 71184.9506282876, + "99.9999" : 71184.9506282876, + "100.0" : 71184.9506282876 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70973.6692035204, + 70923.80077840707, + 70903.17863630773 + ], + [ + 71184.9506282876, + 71184.3262835792, + 71164.54289466105 + ], + [ + 70857.99060334494, + 70916.85608232094, + 70917.70274318576 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 352.38226824513544, + "scoreError" : 7.476513158615815, + "scoreConfidence" : [ + 344.9057550865196, + 359.85878140375127 + ], + "scorePercentiles" : { + "0.0" : 346.3626408752838, + "50.0" : 353.1910462537864, + "90.0" : 360.13309044096724, + "95.0" : 360.13309044096724, + "99.0" : 360.13309044096724, + "99.9" : 360.13309044096724, + "99.99" : 360.13309044096724, + "99.999" : 360.13309044096724, + "99.9999" : 360.13309044096724, + "100.0" : 360.13309044096724 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 360.13309044096724, + 354.0114902596122, + 354.8992054315646 + ], + [ + 348.1853851621876, + 346.3626408752838, + 346.95881248467407 + ], + [ + 354.5816970955848, + 353.11704620255824, + 353.1910462537864 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 109.10022468858686, + "scoreError" : 2.3501641962858777, + "scoreConfidence" : [ + 106.75006049230099, + 111.45038888487274 + ], + "scorePercentiles" : { + "0.0" : 107.70994138070586, + "50.0" : 108.52727320445477, + "90.0" : 111.38642304206356, + "95.0" : 111.38642304206356, + "99.0" : 111.38642304206356, + "99.9" : 111.38642304206356, + "99.99" : 111.38642304206356, + "99.999" : 111.38642304206356, + "99.9999" : 111.38642304206356, + "100.0" : 111.38642304206356 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 108.52727320445477, + 108.48393073097333, + 108.75781417072851 + ], + [ + 111.38642304206356, + 110.86333689582654, + 110.38348521770283 + ], + [ + 107.70994138070586, + 107.92321928833897, + 107.86659826648732 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014221039915220942, + "scoreError" : 2.626663013411908E-4, + "scoreConfidence" : [ + 0.01395837361387975, + 0.014483706216562134 + ], + "scorePercentiles" : { + "0.0" : 0.014024734535800536, + "50.0" : 0.014236648604823324, + "90.0" : 0.014412459617527056, + "95.0" : 0.014412459617527056, + "99.0" : 0.014412459617527056, + "99.9" : 0.014412459617527056, + "99.99" : 0.014412459617527056, + "99.999" : 0.014412459617527056, + "99.9999" : 0.014412459617527056, + "100.0" : 0.014412459617527056 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014412459617527056, + 0.014401516950372995, + 0.01437941576137362 + ], + [ + 0.014047371501014911, + 0.014042817105640093, + 0.014024734535800536 + ], + [ + 0.014236648604823324, + 0.014207094412131579, + 0.014237300748304356 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9942440211101774, + "scoreError" : 0.02390461473886758, + "scoreConfidence" : [ + 0.9703394063713098, + 1.018148635849045 + ], + "scorePercentiles" : { + "0.0" : 0.9743954687713144, + "50.0" : 0.9901732647524752, + "90.0" : 1.0120957015484262, + "95.0" : 1.0120957015484262, + "99.0" : 1.0120957015484262, + "99.9" : 1.0120957015484262, + "99.99" : 1.0120957015484262, + "99.999" : 1.0120957015484262, + "99.9999" : 1.0120957015484262, + "100.0" : 1.0120957015484262 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.010028034036966, + 1.0106066732012935, + 1.0120957015484262 + ], + [ + 0.9972798716593538, + 0.9773831014464426, + 0.9743954687713144 + ], + [ + 0.9866703780584056, + 0.9901732647524752, + 0.9895636965169207 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012955598848475294, + "scoreError" : 2.3999670936960022E-4, + "scoreConfidence" : [ + 0.012715602139105693, + 0.013195595557844894 + ], + "scorePercentiles" : { + "0.0" : 0.012822485927646949, + "50.0" : 0.012942355418299141, + "90.0" : 0.013063587491149645, + "95.0" : 0.013063587491149645, + "99.0" : 0.013063587491149645, + "99.9" : 0.013063587491149645, + "99.99" : 0.013063587491149645, + "99.999" : 0.013063587491149645, + "99.9999" : 0.013063587491149645, + "100.0" : 0.013063587491149645 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012822485927646949, + 0.012943171870550899, + 0.012941538966047385 + ], + [ + 0.012928680997347095, + 0.013034127838109786, + 0.013063587491149645 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.638930492890097, + "scoreError" : 0.1003970316328303, + "scoreConfidence" : [ + 3.5385334612572668, + 3.739327524522927 + ], + "scorePercentiles" : { + "0.0" : 3.5787822303290415, + "50.0" : 3.6449954462283793, + "90.0" : 3.6791761544117647, + "95.0" : 3.6791761544117647, + "99.0" : 3.6791761544117647, + "99.9" : 3.6791761544117647, + "99.99" : 3.6791761544117647, + "99.999" : 3.6791761544117647, + "99.9999" : 3.6791761544117647, + "100.0" : 3.6791761544117647 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.5787822303290415, + 3.63090818287373, + 3.6245014231884056 + ], + [ + 3.661132256954612, + 3.6590827095830285, + 3.6791761544117647 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.847417907792545, + "scoreError" : 0.116819409513867, + "scoreConfidence" : [ + 2.7305984982786784, + 2.964237317306412 + ], + "scorePercentiles" : { + "0.0" : 2.7529092496559318, + "50.0" : 2.8777063679516686, + "90.0" : 2.921575672801636, + "95.0" : 2.921575672801636, + "99.0" : 2.921575672801636, + "99.9" : 2.921575672801636, + "99.99" : 2.921575672801636, + "99.999" : 2.921575672801636, + "99.9999" : 2.921575672801636, + "100.0" : 2.921575672801636 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8777063679516686, + 2.877371197065593, + 2.882502662536023 + ], + [ + 2.921575672801636, + 2.903710849303136, + 2.8941062572337963 + ], + [ + 2.7529092496559318, + 2.757577626964433, + 2.7593012866206896 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1784711380749599, + "scoreError" : 0.006343286936357945, + "scoreConfidence" : [ + 0.17212785113860196, + 0.18481442501131784 + ], + "scorePercentiles" : { + "0.0" : 0.1745021115919521, + "50.0" : 0.17718292266123317, + "90.0" : 0.18330034890114927, + "95.0" : 0.18330034890114927, + "99.0" : 0.18330034890114927, + "99.9" : 0.18330034890114927, + "99.99" : 0.18330034890114927, + "99.999" : 0.18330034890114927, + "99.9999" : 0.18330034890114927, + "100.0" : 0.18330034890114927 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17538364753853977, + 0.17455278001396404, + 0.1745021115919521 + ], + [ + 0.17718292266123317, + 0.17657819980930184, + 0.17833551557735175 + ], + [ + 0.18330034890114927, + 0.18323100183227367, + 0.1831737147488735 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33533802084093994, + "scoreError" : 0.01194928814488877, + "scoreConfidence" : [ + 0.3233887326960512, + 0.3472873089858287 + ], + "scorePercentiles" : { + "0.0" : 0.32534111988418246, + "50.0" : 0.3390308479845408, + "90.0" : 0.3412313907732205, + "95.0" : 0.3412313907732205, + "99.0" : 0.3412313907732205, + "99.9" : 0.3412313907732205, + "99.99" : 0.3412313907732205, + "99.999" : 0.3412313907732205, + "99.9999" : 0.3412313907732205, + "100.0" : 0.3412313907732205 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.326667493417829, + 0.3258572763205057, + 0.32534111988418246 + ], + [ + 0.3390515225631463, + 0.3386837247942561, + 0.3390308479845408 + ], + [ + 0.3412313907732205, + 0.34111317256199475, + 0.34106563926878347 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16927030043181046, + "scoreError" : 0.012463968221868946, + "scoreConfidence" : [ + 0.1568063322099415, + 0.18173426865367942 + ], + "scorePercentiles" : { + "0.0" : 0.1597120899798767, + "50.0" : 0.17153760280975008, + "90.0" : 0.17657531521700745, + "95.0" : 0.17657531521700745, + "99.0" : 0.17657531521700745, + "99.9" : 0.17657531521700745, + "99.99" : 0.17657531521700745, + "99.999" : 0.17657531521700745, + "99.9999" : 0.17657531521700745, + "100.0" : 0.17657531521700745 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15983509142345684, + 0.15978003380893796, + 0.1597120899798767 + ], + [ + 0.17657531521700745, + 0.17646659101095838, + 0.17618008565740562 + ], + [ + 0.17187182930015124, + 0.17147406467874965, + 0.17153760280975008 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3963000690307283, + "scoreError" : 0.005716787708106384, + "scoreConfidence" : [ + 0.3905832813226219, + 0.4020168567388347 + ], + "scorePercentiles" : { + "0.0" : 0.3926168154764242, + "50.0" : 0.3953295221378874, + "90.0" : 0.40172962820873337, + "95.0" : 0.40172962820873337, + "99.0" : 0.40172962820873337, + "99.9" : 0.40172962820873337, + "99.99" : 0.40172962820873337, + "99.999" : 0.40172962820873337, + "99.9999" : 0.40172962820873337, + "100.0" : 0.40172962820873337 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39757093607378546, + 0.39651309218508385, + 0.3953295221378874 + ], + [ + 0.40152707986027464, + 0.3943262865817594, + 0.39405590286862635 + ], + [ + 0.40172962820873337, + 0.3930313578839805, + 0.3926168154764242 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15831173145313004, + "scoreError" : 0.0030272423283522493, + "scoreConfidence" : [ + 0.1552844891247778, + 0.1613389737814823 + ], + "scorePercentiles" : { + "0.0" : 0.15655079634615987, + "50.0" : 0.1574761917074784, + "90.0" : 0.16100002611369602, + "95.0" : 0.16100002611369602, + "99.0" : 0.16100002611369602, + "99.9" : 0.16100002611369602, + "99.99" : 0.16100002611369602, + "99.999" : 0.16100002611369602, + "99.9999" : 0.16100002611369602, + "100.0" : 0.16100002611369602 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16100002611369602, + 0.16037180656231959, + 0.16022089158054956 + ], + [ + 0.15656058518982388, + 0.15671883595047797, + 0.15655079634615987 + ], + [ + 0.1587234615262523, + 0.1574761917074784, + 0.15718298810141307 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04721208488681848, + "scoreError" : 7.293969171730858E-4, + "scoreConfidence" : [ + 0.04648268796964539, + 0.04794148180399157 + ], + "scorePercentiles" : { + "0.0" : 0.04670943996973264, + "50.0" : 0.046960116708147454, + "90.0" : 0.0477835956565367, + "95.0" : 0.0477835956565367, + "99.0" : 0.0477835956565367, + "99.9" : 0.0477835956565367, + "99.99" : 0.0477835956565367, + "99.999" : 0.0477835956565367, + "99.9999" : 0.0477835956565367, + "100.0" : 0.0477835956565367 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047395170383184436, + 0.046960116708147454, + 0.04689423038326088 + ], + [ + 0.0477835956565367, + 0.04766173785477683, + 0.047752969949478065 + ], + [ + 0.04694250115242526, + 0.046809001923824055, + 0.04670943996973264 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9630622.948722191, + "scoreError" : 363748.3480624857, + "scoreConfidence" : [ + 9266874.600659706, + 9994371.296784677 + ], + "scorePercentiles" : { + "0.0" : 9355448.681308411, + "50.0" : 9637481.202312138, + "90.0" : 9925310.231150793, + "95.0" : 9925310.231150793, + "99.0" : 9925310.231150793, + "99.9" : 9925310.231150793, + "99.99" : 9925310.231150793, + "99.999" : 9925310.231150793, + "99.9999" : 9925310.231150793, + "100.0" : 9925310.231150793 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9925310.231150793, + 9853500.939901479, + 9846036.579724409 + ], + [ + 9630494.096246392, + 9637481.202312138, + 9645752.631629702 + ], + [ + 9411868.841956725, + 9369713.334269663, + 9355448.681308411 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-12T01:40:12Z-11a2be59907cdbd3bb9943a941861930807555de-jdk17.json b/performance-results/2025-03-12T01:40:12Z-11a2be59907cdbd3bb9943a941861930807555de-jdk17.json new file mode 100644 index 000000000..5dedbbda1 --- /dev/null +++ b/performance-results/2025-03-12T01:40:12Z-11a2be59907cdbd3bb9943a941861930807555de-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4076702946979935, + "scoreError" : 0.03121695051498341, + "scoreConfidence" : [ + 3.3764533441830102, + 3.438887245212977 + ], + "scorePercentiles" : { + "0.0" : 3.4023668922631765, + "50.0" : 3.407716749267827, + "90.0" : 3.4128807879931413, + "95.0" : 3.4128807879931413, + "99.0" : 3.4128807879931413, + "99.9" : 3.4128807879931413, + "99.99" : 3.4128807879931413, + "99.999" : 3.4128807879931413, + "99.9999" : 3.4128807879931413, + "100.0" : 3.4128807879931413 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4023668922631765, + 3.410430779758213 + ], + [ + 3.4050027187774417, + 3.4128807879931413 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7203584625512023, + "scoreError" : 0.016926372222672525, + "scoreConfidence" : [ + 1.7034320903285298, + 1.7372848347738747 + ], + "scorePercentiles" : { + "0.0" : 1.7179994830077605, + "50.0" : 1.7197199204007574, + "90.0" : 1.7239945263955332, + "95.0" : 1.7239945263955332, + "99.0" : 1.7239945263955332, + "99.9" : 1.7239945263955332, + "99.99" : 1.7239945263955332, + "99.999" : 1.7239945263955332, + "99.9999" : 1.7239945263955332, + "100.0" : 1.7239945263955332 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.720420690227677, + 1.7239945263955332 + ], + [ + 1.7179994830077605, + 1.7190191505738377 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8648697545079026, + "scoreError" : 0.0075160983778016855, + "scoreConfidence" : [ + 0.857353656130101, + 0.8723858528857042 + ], + "scorePercentiles" : { + "0.0" : 0.863427883815053, + "50.0" : 0.8649943438233192, + "90.0" : 0.8660624465699193, + "95.0" : 0.8660624465699193, + "99.0" : 0.8660624465699193, + "99.9" : 0.8660624465699193, + "99.99" : 0.8660624465699193, + "99.999" : 0.8660624465699193, + "99.9999" : 0.8660624465699193, + "100.0" : 0.8660624465699193 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8644814960543413, + 0.8655071915922969 + ], + [ + 0.863427883815053, + 0.8660624465699193 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69389.95500863831, + "scoreError" : 1755.8886125589615, + "scoreConfidence" : [ + 67634.06639607935, + 71145.84362119727 + ], + "scorePercentiles" : { + "0.0" : 68185.71876777064, + "50.0" : 69278.7096608454, + "90.0" : 70722.78777504961, + "95.0" : 70722.78777504961, + "99.0" : 70722.78777504961, + "99.9" : 70722.78777504961, + "99.99" : 70722.78777504961, + "99.999" : 70722.78777504961, + "99.9999" : 70722.78777504961, + "100.0" : 70722.78777504961 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69364.0209108631, + 69204.40314517489, + 69278.7096608454 + ], + [ + 70609.4285342994, + 70601.79215979534, + 70722.78777504961 + ], + [ + 68185.71876777064, + 68237.46553567571, + 68305.26858827074 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 340.8338008020541, + "scoreError" : 2.893493166734086, + "scoreConfidence" : [ + 337.94030763532004, + 343.72729396878816 + ], + "scorePercentiles" : { + "0.0" : 337.51858191131913, + "50.0" : 341.0045137233911, + "90.0" : 343.1466067997579, + "95.0" : 343.1466067997579, + "99.0" : 343.1466067997579, + "99.9" : 343.1466067997579, + "99.99" : 343.1466067997579, + "99.999" : 343.1466067997579, + "99.9999" : 343.1466067997579, + "100.0" : 343.1466067997579 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 341.79525643351167, + 340.68463968792423, + 339.4671920234933 + ], + [ + 339.7021322573094, + 341.88583929366797, + 342.2994450881126 + ], + [ + 343.1466067997579, + 341.0045137233911, + 337.51858191131913 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 101.9505095823736, + "scoreError" : 3.70236669542828, + "scoreConfidence" : [ + 98.24814288694532, + 105.65287627780188 + ], + "scorePercentiles" : { + "0.0" : 98.95005773885293, + "50.0" : 101.69121875987764, + "90.0" : 104.79007731231022, + "95.0" : 104.79007731231022, + "99.0" : 104.79007731231022, + "99.9" : 104.79007731231022, + "99.99" : 104.79007731231022, + "99.999" : 104.79007731231022, + "99.9999" : 104.79007731231022, + "100.0" : 104.79007731231022 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 101.69121875987764, + 100.87319417929982, + 102.02589744799347 + ], + [ + 100.31006870314435, + 98.95005773885293, + 99.839171786519 + ], + [ + 104.51878795064138, + 104.79007731231022, + 104.55611236272352 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014207907244656271, + "scoreError" : 1.406139052230887E-4, + "scoreConfidence" : [ + 0.014067293339433183, + 0.01434852114987936 + ], + "scorePercentiles" : { + "0.0" : 0.014080431946664038, + "50.0" : 0.014222649451795088, + "90.0" : 0.01430348100952599, + "95.0" : 0.01430348100952599, + "99.0" : 0.01430348100952599, + "99.9" : 0.01430348100952599, + "99.99" : 0.01430348100952599, + "99.999" : 0.01430348100952599, + "99.9999" : 0.01430348100952599, + "100.0" : 0.01430348100952599 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01410771311237201, + 0.014080431946664038, + 0.014127782222950578 + ], + [ + 0.014288505505292396, + 0.01430348100952599, + 0.014290552535683052 + ], + [ + 0.014220443325151943, + 0.014229606092471352, + 0.014222649451795088 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9899931875389658, + "scoreError" : 0.019138091109985326, + "scoreConfidence" : [ + 0.9708550964289805, + 1.0091312786489512 + ], + "scorePercentiles" : { + "0.0" : 0.9765089769553754, + "50.0" : 0.9884470899476129, + "90.0" : 1.0120053324225866, + "95.0" : 1.0120053324225866, + "99.0" : 1.0120053324225866, + "99.9" : 1.0120053324225866, + "99.99" : 1.0120053324225866, + "99.999" : 1.0120053324225866, + "99.9999" : 1.0120053324225866, + "100.0" : 1.0120053324225866 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9765089769553754, + 0.9884470899476129, + 0.9902420496088722 + ], + [ + 0.98586842636041, + 0.9818955948944527, + 0.9790268553108175 + ], + [ + 1.0120053324225866, + 1.0023681029367546, + 0.9935762594138102 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013177577224591489, + "scoreError" : 4.270440246067902E-4, + "scoreConfidence" : [ + 0.012750533199984699, + 0.013604621249198279 + ], + "scorePercentiles" : { + "0.0" : 0.012983986930667359, + "50.0" : 0.013193273216565243, + "90.0" : 0.013348885971492874, + "95.0" : 0.013348885971492874, + "99.0" : 0.013348885971492874, + "99.9" : 0.013348885971492874, + "99.99" : 0.013348885971492874, + "99.999" : 0.013348885971492874, + "99.9999" : 0.013348885971492874, + "100.0" : 0.013348885971492874 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013293016413664762, + 0.013348885971492874, + 0.013292778899067935 + ], + [ + 0.012983986930667359, + 0.01309376753406255, + 0.013053027598593442 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.8965855004740657, + "scoreError" : 0.13698940967062448, + "scoreConfidence" : [ + 3.7595960908034414, + 4.03357491014469 + ], + "scorePercentiles" : { + "0.0" : 3.8204210718105425, + "50.0" : 3.8998276071221425, + "90.0" : 3.9658294631245044, + "95.0" : 3.9658294631245044, + "99.0" : 3.9658294631245044, + "99.9" : 3.9658294631245044, + "99.99" : 3.9658294631245044, + "99.999" : 3.9658294631245044, + "99.9999" : 3.9658294631245044, + "100.0" : 3.9658294631245044 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.9658294631245044, + 3.885656021756022, + 3.9181803915426783 + ], + [ + 3.8204210718105425, + 3.913999192488263, + 3.875426862122386 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.953343152087654, + "scoreError" : 0.1008413095317884, + "scoreConfidence" : [ + 2.8525018425558653, + 3.0541844616194425 + ], + "scorePercentiles" : { + "0.0" : 2.8928908501590973, + "50.0" : 2.9422236131215063, + "90.0" : 3.05081770347773, + "95.0" : 3.05081770347773, + "99.0" : 3.05081770347773, + "99.9" : 3.05081770347773, + "99.99" : 3.05081770347773, + "99.999" : 3.05081770347773, + "99.9999" : 3.05081770347773, + "100.0" : 3.05081770347773 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.9494852205838984, + 2.9129140305765873, + 2.8928908501590973 + ], + [ + 3.033292042462845, + 2.997000550494456, + 3.05081770347773 + ], + [ + 2.9422236131215063, + 2.895923255356109, + 2.9055411025566533 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1740608663647572, + "scoreError" : 0.0031797824390332624, + "scoreConfidence" : [ + 0.17088108392572393, + 0.17724064880379048 + ], + "scorePercentiles" : { + "0.0" : 0.1714743284349869, + "50.0" : 0.17423779480433496, + "90.0" : 0.17657913986544949, + "95.0" : 0.17657913986544949, + "99.0" : 0.17657913986544949, + "99.9" : 0.17657913986544949, + "99.99" : 0.17657913986544949, + "99.999" : 0.17657913986544949, + "99.9999" : 0.17657913986544949, + "100.0" : 0.17657913986544949 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17490636216878006, + 0.17413062688490336, + 0.17423779480433496 + ], + [ + 0.17180489303691995, + 0.17198642027689398, + 0.1714743284349869 + ], + [ + 0.17657913986544949, + 0.17574860689618813, + 0.17567962491435798 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3220899653280465, + "scoreError" : 0.011797543311675193, + "scoreConfidence" : [ + 0.3102924220163713, + 0.3338875086397217 + ], + "scorePercentiles" : { + "0.0" : 0.3133007488329835, + "50.0" : 0.32191402085948817, + "90.0" : 0.33121310459378, + "95.0" : 0.33121310459378, + "99.0" : 0.33121310459378, + "99.9" : 0.33121310459378, + "99.99" : 0.33121310459378, + "99.999" : 0.33121310459378, + "99.9999" : 0.33121310459378, + "100.0" : 0.33121310459378 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32191402085948817, + 0.32146066157703557, + 0.32222403992266796 + ], + [ + 0.33121310459378, + 0.3296149954843601, + 0.33000252455121437 + ], + [ + 0.3147955884852682, + 0.3133007488329835, + 0.31428400364562054 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16434010627076526, + "scoreError" : 0.006922172642315291, + "scoreConfidence" : [ + 0.15741793362844997, + 0.17126227891308055 + ], + "scorePercentiles" : { + "0.0" : 0.158946975888103, + "50.0" : 0.16548735592182562, + "90.0" : 0.16844729587144372, + "95.0" : 0.16844729587144372, + "99.0" : 0.16844729587144372, + "99.9" : 0.16844729587144372, + "99.99" : 0.16844729587144372, + "99.999" : 0.16844729587144372, + "99.9999" : 0.16844729587144372, + "100.0" : 0.16844729587144372 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16844729587144372, + 0.16825600417262557, + 0.16784994932693276 + ], + [ + 0.16515502999124704, + 0.16548735592182562, + 0.1666896035204107 + ], + [ + 0.15900905450700417, + 0.1592196872372946, + 0.158946975888103 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38842922644034866, + "scoreError" : 0.0067031864482287465, + "scoreConfidence" : [ + 0.3817260399921199, + 0.3951324128885774 + ], + "scorePercentiles" : { + "0.0" : 0.3846055533633322, + "50.0" : 0.38798181970902035, + "90.0" : 0.3976954414618627, + "95.0" : 0.3976954414618627, + "99.0" : 0.3976954414618627, + "99.9" : 0.3976954414618627, + "99.99" : 0.3976954414618627, + "99.999" : 0.3976954414618627, + "99.9999" : 0.3976954414618627, + "100.0" : 0.3976954414618627 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3976954414618627, + 0.3865560140316969, + 0.3859009754572818 + ], + [ + 0.39057186982502734, + 0.38881781959564543, + 0.38798181970902035 + ], + [ + 0.3887489937801275, + 0.38498455073914384, + 0.3846055533633322 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15897312984427683, + "scoreError" : 0.007362010999413564, + "scoreConfidence" : [ + 0.15161111884486328, + 0.1663351408436904 + ], + "scorePercentiles" : { + "0.0" : 0.15367977617101058, + "50.0" : 0.15898293027137883, + "90.0" : 0.1647780857321755, + "95.0" : 0.1647780857321755, + "99.0" : 0.1647780857321755, + "99.9" : 0.1647780857321755, + "99.99" : 0.1647780857321755, + "99.999" : 0.1647780857321755, + "99.9999" : 0.1647780857321755, + "100.0" : 0.1647780857321755 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15948752983955855, + 0.15898293027137883, + 0.15867462969074783 + ], + [ + 0.1647780857321755, + 0.16382083167878908, + 0.163306469478738 + ], + [ + 0.15408670708782743, + 0.15394120864826588, + 0.15367977617101058 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.047710108860097446, + "scoreError" : 6.500947272283788E-4, + "scoreConfidence" : [ + 0.04706001413286907, + 0.048360203587325824 + ], + "scorePercentiles" : { + "0.0" : 0.0472659968237763, + "50.0" : 0.04773794186079817, + "90.0" : 0.04823766706864117, + "95.0" : 0.04823766706864117, + "99.0" : 0.04823766706864117, + "99.9" : 0.04823766706864117, + "99.99" : 0.04823766706864117, + "99.999" : 0.04823766706864117, + "99.9999" : 0.04823766706864117, + "100.0" : 0.04823766706864117 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04823766706864117, + 0.04728105270822301, + 0.0472659968237763 + ], + [ + 0.047403124687144485, + 0.04773794186079817, + 0.04735863134240711 + ], + [ + 0.04801767788341496, + 0.0480227627954552, + 0.04806612457101658 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9545103.75383263, + "scoreError" : 383788.9358783984, + "scoreConfidence" : [ + 9161314.817954233, + 9928892.689711029 + ], + "scorePercentiles" : { + "0.0" : 9173861.760769935, + "50.0" : 9645109.1195757, + "90.0" : 9782659.88172043, + "95.0" : 9782659.88172043, + "99.0" : 9782659.88172043, + "99.9" : 9782659.88172043, + "99.99" : 9782659.88172043, + "99.999" : 9782659.88172043, + "99.9999" : 9782659.88172043, + "100.0" : 9782659.88172043 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9722427.170068027, + 9638300.232177263, + 9645109.1195757 + ], + [ + 9782659.88172043, + 9661711.056949807, + 9705344.597478177 + ], + [ + 9317311.997206705, + 9173861.760769935, + 9259207.96854764 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-13T01:14:36Z-753555fd9ff1dae369f13fde1198ecf0ccdbe3f3-jdk17.json b/performance-results/2025-03-13T01:14:36Z-753555fd9ff1dae369f13fde1198ecf0ccdbe3f3-jdk17.json new file mode 100644 index 000000000..9a95fb387 --- /dev/null +++ b/performance-results/2025-03-13T01:14:36Z-753555fd9ff1dae369f13fde1198ecf0ccdbe3f3-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4235289471012904, + "scoreError" : 0.025315012152433914, + "scoreConfidence" : [ + 3.3982139349488567, + 3.448843959253724 + ], + "scorePercentiles" : { + "0.0" : 3.418973543921273, + "50.0" : 3.423959070120495, + "90.0" : 3.4272241042428986, + "95.0" : 3.4272241042428986, + "99.0" : 3.4272241042428986, + "99.9" : 3.4272241042428986, + "99.99" : 3.4272241042428986, + "99.999" : 3.4272241042428986, + "99.9999" : 3.4272241042428986, + "100.0" : 3.4272241042428986 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4215857667884384, + 3.4272241042428986 + ], + [ + 3.418973543921273, + 3.4263323734525515 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.731466065401667, + "scoreError" : 0.01621103250787632, + "scoreConfidence" : [ + 1.7152550328937906, + 1.7476770979095433 + ], + "scorePercentiles" : { + "0.0" : 1.7288700515575068, + "50.0" : 1.7310567913839625, + "90.0" : 1.7348806272812356, + "95.0" : 1.7348806272812356, + "99.0" : 1.7348806272812356, + "99.9" : 1.7348806272812356, + "99.99" : 1.7348806272812356, + "99.999" : 1.7348806272812356, + "99.9999" : 1.7348806272812356, + "100.0" : 1.7348806272812356 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7288700515575068, + 1.7313277369538398 + ], + [ + 1.7307858458140855, + 1.7348806272812356 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8697984954948363, + "scoreError" : 0.008861407151655697, + "scoreConfidence" : [ + 0.8609370883431806, + 0.8786599026464921 + ], + "scorePercentiles" : { + "0.0" : 0.8679124538019363, + "50.0" : 0.8700474146575718, + "90.0" : 0.8711866988622655, + "95.0" : 0.8711866988622655, + "99.0" : 0.8711866988622655, + "99.9" : 0.8711866988622655, + "99.99" : 0.8711866988622655, + "99.999" : 0.8711866988622655, + "99.9999" : 0.8711866988622655, + "100.0" : 0.8711866988622655 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8679124538019363, + 0.8699183582693664 + ], + [ + 0.8711866988622655, + 0.8701764710457774 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70820.79388702071, + "scoreError" : 231.68668855776454, + "scoreConfidence" : [ + 70589.10719846295, + 71052.48057557848 + ], + "scorePercentiles" : { + "0.0" : 70629.0793607269, + "50.0" : 70911.01076174284, + "90.0" : 70941.7424562172, + "95.0" : 70941.7424562172, + "99.0" : 70941.7424562172, + "99.9" : 70941.7424562172, + "99.99" : 70941.7424562172, + "99.999" : 70941.7424562172, + "99.9999" : 70941.7424562172, + "100.0" : 70941.7424562172 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70643.28992633008, + 70629.0793607269, + 70657.4130445598 + ], + [ + 70920.59943604424, + 70921.67177006771, + 70939.99468918028 + ], + [ + 70911.01076174284, + 70822.34353831736, + 70941.7424562172 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 350.2295935097646, + "scoreError" : 11.639809665349746, + "scoreConfidence" : [ + 338.58978384441485, + 361.8694031751143 + ], + "scorePercentiles" : { + "0.0" : 340.89493260237515, + "50.0" : 353.68886615744447, + "90.0" : 355.99957632871315, + "95.0" : 355.99957632871315, + "99.0" : 355.99957632871315, + "99.9" : 355.99957632871315, + "99.99" : 355.99957632871315, + "99.999" : 355.99957632871315, + "99.9999" : 355.99957632871315, + "100.0" : 355.99957632871315 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 340.89493260237515, + 341.42435224510996, + 341.26510021738767 + ], + [ + 355.6708203390944, + 355.8300028298273, + 355.99957632871315 + ], + [ + 351.49926625063017, + 353.68886615744447, + 355.79342461729897 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 108.65109974016178, + "scoreError" : 2.5522442534017724, + "scoreConfidence" : [ + 106.09885548676002, + 111.20334399356355 + ], + "scorePercentiles" : { + "0.0" : 107.03049434345812, + "50.0" : 108.17258660022053, + "90.0" : 110.61737269420547, + "95.0" : 110.61737269420547, + "99.0" : 110.61737269420547, + "99.9" : 110.61737269420547, + "99.99" : 110.61737269420547, + "99.999" : 110.61737269420547, + "99.9999" : 110.61737269420547, + "100.0" : 110.61737269420547 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 107.82145896771539, + 108.17258660022053, + 108.24703418493814 + ], + [ + 110.58815235947327, + 110.61737269420547, + 110.60165244657608 + ], + [ + 107.66093902870458, + 107.03049434345812, + 107.12020703616446 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014279243473265146, + "scoreError" : 4.394936204422015E-4, + "scoreConfidence" : [ + 0.013839749852822944, + 0.014718737093707348 + ], + "scorePercentiles" : { + "0.0" : 0.014042465096456565, + "50.0" : 0.014159224540681671, + "90.0" : 0.014676226498498639, + "95.0" : 0.014676226498498639, + "99.0" : 0.014676226498498639, + "99.9" : 0.014676226498498639, + "99.99" : 0.014676226498498639, + "99.999" : 0.014676226498498639, + "99.9999" : 0.014676226498498639, + "100.0" : 0.014676226498498639 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014202651352641087, + 0.014158744326676936, + 0.014159224540681671 + ], + [ + 0.014591742794315707, + 0.014676226498498639, + 0.01458607336714348 + ], + [ + 0.014043656603105857, + 0.014052406679866392, + 0.014042465096456565 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9710502426780204, + "scoreError" : 0.014764440975773075, + "scoreConfidence" : [ + 0.9562858017022473, + 0.9858146836537935 + ], + "scorePercentiles" : { + "0.0" : 0.9562935803212851, + "50.0" : 0.9705228318128882, + "90.0" : 0.984122220035426, + "95.0" : 0.984122220035426, + "99.0" : 0.984122220035426, + "99.9" : 0.984122220035426, + "99.99" : 0.984122220035426, + "99.999" : 0.984122220035426, + "99.9999" : 0.984122220035426, + "100.0" : 0.984122220035426 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9703851923151562, + 0.9705228318128882, + 0.984122220035426 + ], + [ + 0.9797588517683943, + 0.9756658378536586, + 0.9748855913433417 + ], + [ + 0.9665884706166634, + 0.9562935803212851, + 0.961229608035371 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01294115826408152, + "scoreError" : 0.001014437164646088, + "scoreConfidence" : [ + 0.011926721099435432, + 0.013955595428727608 + ], + "scorePercentiles" : { + "0.0" : 0.012536907865737619, + "50.0" : 0.012912209069093654, + "90.0" : 0.013316694295522761, + "95.0" : 0.013316694295522761, + "99.0" : 0.013316694295522761, + "99.9" : 0.013316694295522761, + "99.99" : 0.013316694295522761, + "99.999" : 0.013316694295522761, + "99.9999" : 0.013316694295522761, + "100.0" : 0.013316694295522761 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013166219852067968, + 0.013316694295522761, + 0.013312663393594078 + ], + [ + 0.012536907865737619, + 0.01265626589144736, + 0.012658198286119339 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.659688428674198, + "scoreError" : 0.35262658295588856, + "scoreConfidence" : [ + 3.3070618457183096, + 4.012315011630086 + ], + "scorePercentiles" : { + "0.0" : 3.5062078731604767, + "50.0" : 3.6768514411668174, + "90.0" : 3.774024763773585, + "95.0" : 3.774024763773585, + "99.0" : 3.774024763773585, + "99.9" : 3.774024763773585, + "99.99" : 3.774024763773585, + "99.999" : 3.774024763773585, + "99.9999" : 3.774024763773585, + "100.0" : 3.774024763773585 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.5062078731604767, + 3.551304622159091, + 3.5838853209169055 + ], + [ + 3.774024763773585, + 3.7698175614167293, + 3.7728904306184012 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8300064842002626, + "scoreError" : 0.045503109266854615, + "scoreConfidence" : [ + 2.784503374933408, + 2.8755095934671173 + ], + "scorePercentiles" : { + "0.0" : 2.8048665698261357, + "50.0" : 2.817010330140845, + "90.0" : 2.8728336325768455, + "95.0" : 2.8728336325768455, + "99.0" : 2.8728336325768455, + "99.9" : 2.8728336325768455, + "99.99" : 2.8728336325768455, + "99.999" : 2.8728336325768455, + "99.9999" : 2.8728336325768455, + "100.0" : 2.8728336325768455 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.817010330140845, + 2.8212701472496473, + 2.807157726915521 + ], + [ + 2.8048665698261357, + 2.809550511516854, + 2.8145303981429377 + ], + [ + 2.862065851788269, + 2.860773189645309, + 2.8728336325768455 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1831706552485558, + "scoreError" : 0.01373850570445273, + "scoreConfidence" : [ + 0.16943214954410307, + 0.19690916095300853 + ], + "scorePercentiles" : { + "0.0" : 0.1770023762257071, + "50.0" : 0.17780909203250297, + "90.0" : 0.19403957457748802, + "95.0" : 0.19403957457748802, + "99.0" : 0.19403957457748802, + "99.9" : 0.19403957457748802, + "99.99" : 0.19403957457748802, + "99.999" : 0.19403957457748802, + "99.9999" : 0.19403957457748802, + "100.0" : 0.19403957457748802 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17979130297909063, + 0.17780909203250297, + 0.17764850200739005 + ], + [ + 0.1771452058563027, + 0.1770023762257071, + 0.17709491752851172 + ], + [ + 0.1940173466232078, + 0.19403957457748802, + 0.19398757940680103 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3325174605480197, + "scoreError" : 0.01808023901793655, + "scoreConfidence" : [ + 0.3144372215300832, + 0.35059769956595627 + ], + "scorePercentiles" : { + "0.0" : 0.3243598086990367, + "50.0" : 0.32611440247839557, + "90.0" : 0.34748987869627157, + "95.0" : 0.34748987869627157, + "99.0" : 0.34748987869627157, + "99.9" : 0.34748987869627157, + "99.99" : 0.34748987869627157, + "99.999" : 0.34748987869627157, + "99.9999" : 0.34748987869627157, + "100.0" : 0.34748987869627157 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32611440247839557, + 0.32569432595101616, + 0.3270104821621268 + ], + [ + 0.34748987869627157, + 0.34672240551972816, + 0.34622278749480684 + ], + [ + 0.324573349680309, + 0.3243598086990367, + 0.3244697042504867 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1563755353557113, + "scoreError" : 0.008218591647864093, + "scoreConfidence" : [ + 0.1481569437078472, + 0.1645941270035754 + ], + "scorePercentiles" : { + "0.0" : 0.15114627648801426, + "50.0" : 0.15527347374386685, + "90.0" : 0.1627050920731509, + "95.0" : 0.1627050920731509, + "99.0" : 0.1627050920731509, + "99.9" : 0.1627050920731509, + "99.99" : 0.1627050920731509, + "99.999" : 0.1627050920731509, + "99.9999" : 0.1627050920731509, + "100.0" : 0.1627050920731509 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1627050920731509, + 0.16256147183705316, + 0.16222034130357202 + ], + [ + 0.1551279640884835, + 0.15535810315524554, + 0.15527347374386685 + ], + [ + 0.15164503142012284, + 0.1513420640918928, + 0.15114627648801426 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3909588769316857, + "scoreError" : 0.007017556895511356, + "scoreConfidence" : [ + 0.3839413200361743, + 0.39797643382719705 + ], + "scorePercentiles" : { + "0.0" : 0.38759703340955776, + "50.0" : 0.3903544967797338, + "90.0" : 0.39986755376064614, + "95.0" : 0.39986755376064614, + "99.0" : 0.39986755376064614, + "99.9" : 0.39986755376064614, + "99.99" : 0.39986755376064614, + "99.999" : 0.39986755376064614, + "99.9999" : 0.39986755376064614, + "100.0" : 0.39986755376064614 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.390763948382307, + 0.39082237861497576, + 0.3903544967797338 + ], + [ + 0.39986755376064614, + 0.3884779611918266, + 0.38759703340955776 + ], + [ + 0.3954614829167985, + 0.3876213509050738, + 0.3876636864242518 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15722552517859067, + "scoreError" : 0.0011511582869311112, + "scoreConfidence" : [ + 0.15607436689165957, + 0.15837668346552178 + ], + "scorePercentiles" : { + "0.0" : 0.1562580664864527, + "50.0" : 0.15734629136509534, + "90.0" : 0.15837414240691763, + "95.0" : 0.15837414240691763, + "99.0" : 0.15837414240691763, + "99.9" : 0.15837414240691763, + "99.99" : 0.15837414240691763, + "99.999" : 0.15837414240691763, + "99.9999" : 0.15837414240691763, + "100.0" : 0.15837414240691763 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15734629136509534, + 0.15751020181448755, + 0.15674231195924765 + ], + [ + 0.15837414240691763, + 0.15780906814057347, + 0.156918052864473 + ], + [ + 0.15761143390754778, + 0.15646015766252053, + 0.1562580664864527 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04698808880000418, + "scoreError" : 8.233100908406212E-4, + "scoreConfidence" : [ + 0.04616477870916356, + 0.0478113988908448 + ], + "scorePercentiles" : { + "0.0" : 0.04632947766947111, + "50.0" : 0.046950707557091347, + "90.0" : 0.04777402328470013, + "95.0" : 0.04777402328470013, + "99.0" : 0.04777402328470013, + "99.9" : 0.04777402328470013, + "99.99" : 0.04777402328470013, + "99.999" : 0.04777402328470013, + "99.9999" : 0.04777402328470013, + "100.0" : 0.04777402328470013 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04702555390236677, + 0.04694176933151202, + 0.046950707557091347 + ], + [ + 0.0475525959219386, + 0.04777402328470013, + 0.04725548325284239 + ], + [ + 0.04670036606984412, + 0.046362822210271076, + 0.04632947766947111 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9317046.219681531, + "scoreError" : 207195.67907354757, + "scoreConfidence" : [ + 9109850.540607983, + 9524241.89875508 + ], + "scorePercentiles" : { + "0.0" : 9157390.381518755, + "50.0" : 9319772.534948742, + "90.0" : 9506483.568441065, + "95.0" : 9506483.568441065, + "99.0" : 9506483.568441065, + "99.9" : 9506483.568441065, + "99.99" : 9506483.568441065, + "99.999" : 9506483.568441065, + "99.9999" : 9506483.568441065, + "100.0" : 9506483.568441065 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9304948.350697674, + 9321557.7166822, + 9319772.534948742 + ], + [ + 9210019.607734807, + 9168707.978001833, + 9157390.381518755 + ], + [ + 9506483.568441065, + 9437706.294339623, + 9426829.544769086 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-15T11:47:41Z-2d799ff19a93b0033f4386c5f73692f03905ad99-jdk17.json b/performance-results/2025-03-15T11:47:41Z-2d799ff19a93b0033f4386c5f73692f03905ad99-jdk17.json new file mode 100644 index 000000000..e193b1af7 --- /dev/null +++ b/performance-results/2025-03-15T11:47:41Z-2d799ff19a93b0033f4386c5f73692f03905ad99-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4231252386576827, + "scoreError" : 0.018002418557553388, + "scoreConfidence" : [ + 3.405122820100129, + 3.4411276572152363 + ], + "scorePercentiles" : { + "0.0" : 3.4206360868600725, + "50.0" : 3.4227234889032605, + "90.0" : 3.426417889964138, + "95.0" : 3.426417889964138, + "99.0" : 3.426417889964138, + "99.9" : 3.426417889964138, + "99.99" : 3.426417889964138, + "99.999" : 3.426417889964138, + "99.9999" : 3.426417889964138, + "100.0" : 3.426417889964138 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4206360868600725, + 3.426417889964138 + ], + [ + 3.4210025321286244, + 3.4244444456778966 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7292023782063795, + "scoreError" : 0.008901727040554206, + "scoreConfidence" : [ + 1.7203006511658252, + 1.7381041052469337 + ], + "scorePercentiles" : { + "0.0" : 1.727258983952786, + "50.0" : 1.7295273432478537, + "90.0" : 1.7304958423770247, + "95.0" : 1.7304958423770247, + "99.0" : 1.7304958423770247, + "99.9" : 1.7304958423770247, + "99.99" : 1.7304958423770247, + "99.999" : 1.7304958423770247, + "99.9999" : 1.7304958423770247, + "100.0" : 1.7304958423770247 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.727258983952786, + 1.729653664527176 + ], + [ + 1.7294010219685314, + 1.7304958423770247 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.869712827685915, + "scoreError" : 0.004324516237681346, + "scoreConfidence" : [ + 0.8653883114482336, + 0.8740373439235963 + ], + "scorePercentiles" : { + "0.0" : 0.8688162079164902, + "50.0" : 0.8698652531758249, + "90.0" : 0.8703045964755199, + "95.0" : 0.8703045964755199, + "99.0" : 0.8703045964755199, + "99.9" : 0.8703045964755199, + "99.99" : 0.8703045964755199, + "99.999" : 0.8703045964755199, + "99.9999" : 0.8703045964755199, + "100.0" : 0.8703045964755199 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8695978615068914, + 0.8703045964755199 + ], + [ + 0.8688162079164902, + 0.8701326448447583 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69653.97322970562, + "scoreError" : 1241.7114519240731, + "scoreConfidence" : [ + 68412.26177778155, + 70895.68468162969 + ], + "scorePercentiles" : { + "0.0" : 68917.9239635008, + "50.0" : 69422.69087159562, + "90.0" : 70623.12588344632, + "95.0" : 70623.12588344632, + "99.0" : 70623.12588344632, + "99.9" : 70623.12588344632, + "99.99" : 70623.12588344632, + "99.999" : 70623.12588344632, + "99.9999" : 70623.12588344632, + "100.0" : 70623.12588344632 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69422.69087159562, + 69447.65361598988, + 69400.19164738775 + ], + [ + 68940.63600147932, + 68961.39448861738, + 68917.9239635008 + ], + [ + 70600.79825836433, + 70571.34433696925, + 70623.12588344632 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 354.88093484304494, + "scoreError" : 7.331351454553499, + "scoreConfidence" : [ + 347.54958338849144, + 362.21228629759844 + ], + "scorePercentiles" : { + "0.0" : 350.8325447951137, + "50.0" : 353.1650809438877, + "90.0" : 361.5314151767399, + "95.0" : 361.5314151767399, + "99.0" : 361.5314151767399, + "99.9" : 361.5314151767399, + "99.99" : 361.5314151767399, + "99.999" : 361.5314151767399, + "99.9999" : 361.5314151767399, + "100.0" : 361.5314151767399 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 351.55160168006574, + 350.8325447951137, + 351.18421384816645 + ], + [ + 361.5314151767399, + 360.32258091010436, + 359.8482269083232 + ], + [ + 353.1650809438877, + 353.2751303140137, + 352.217619010989 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 105.31040747128041, + "scoreError" : 1.5707935883293318, + "scoreConfidence" : [ + 103.73961388295108, + 106.88120105960975 + ], + "scorePercentiles" : { + "0.0" : 103.84489219491039, + "50.0" : 105.45124511244312, + "90.0" : 106.35534837676299, + "95.0" : 106.35534837676299, + "99.0" : 106.35534837676299, + "99.9" : 106.35534837676299, + "99.99" : 106.35534837676299, + "99.999" : 106.35534837676299, + "99.9999" : 106.35534837676299, + "100.0" : 106.35534837676299 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 106.26255275762055, + 106.35534837676299, + 106.22838730121315 + ], + [ + 104.56216360600726, + 103.84489219491039, + 104.14140128934277 + ], + [ + 105.44628502972814, + 105.45124511244312, + 105.50139157349538 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014266009260685645, + "scoreError" : 2.4840351995337605E-4, + "scoreConfidence" : [ + 0.014017605740732268, + 0.014514412780639021 + ], + "scorePercentiles" : { + "0.0" : 0.01415508872730258, + "50.0" : 0.014178914767305513, + "90.0" : 0.014487416443321521, + "95.0" : 0.014487416443321521, + "99.0" : 0.014487416443321521, + "99.9" : 0.014487416443321521, + "99.99" : 0.014487416443321521, + "99.999" : 0.014487416443321521, + "99.9999" : 0.014487416443321521, + "100.0" : 0.014487416443321521 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014487416443321521, + 0.014444846733189272, + 0.014454177195923972 + ], + [ + 0.01415580208738833, + 0.01415508872730258, + 0.014162183566676203 + ], + [ + 0.014173912294303573, + 0.014178914767305513, + 0.014181741530759849 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9737795573950387, + "scoreError" : 0.023019476479558414, + "scoreConfidence" : [ + 0.9507600809154804, + 0.9967990338745971 + ], + "scorePercentiles" : { + "0.0" : 0.9530193546788641, + "50.0" : 0.9795748023312764, + "90.0" : 0.9933472102701629, + "95.0" : 0.9933472102701629, + "99.0" : 0.9933472102701629, + "99.9" : 0.9933472102701629, + "99.99" : 0.9933472102701629, + "99.999" : 0.9933472102701629, + "99.9999" : 0.9933472102701629, + "100.0" : 0.9933472102701629 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9583253188003066, + 0.9530193546788641, + 0.9583518679444178 + ], + [ + 0.9933472102701629, + 0.9791489124730761, + 0.9805528812628689 + ], + [ + 0.9819098810996564, + 0.9797857876947194, + 0.9795748023312764 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013001308170039402, + "scoreError" : 2.976310973814306E-4, + "scoreConfidence" : [ + 0.012703677072657972, + 0.013298939267420833 + ], + "scorePercentiles" : { + "0.0" : 0.01288314263629407, + "50.0" : 0.013002860792589627, + "90.0" : 0.013110911374780397, + "95.0" : 0.013110911374780397, + "99.0" : 0.013110911374780397, + "99.9" : 0.013110911374780397, + "99.99" : 0.013110911374780397, + "99.999" : 0.013110911374780397, + "99.9999" : 0.013110911374780397, + "100.0" : 0.013110911374780397 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01288314263629407, + 0.012924590065370965, + 0.01290896248228287 + ], + [ + 0.013081131519808288, + 0.013099110941699807, + 0.013110911374780397 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6469265221099043, + "scoreError" : 0.233983938982243, + "scoreConfidence" : [ + 3.4129425831276614, + 3.880910461092147 + ], + "scorePercentiles" : { + "0.0" : 3.550249164655784, + "50.0" : 3.6518308336198055, + "90.0" : 3.725429276247208, + "95.0" : 3.725429276247208, + "99.0" : 3.725429276247208, + "99.9" : 3.725429276247208, + "99.99" : 3.725429276247208, + "99.999" : 3.725429276247208, + "99.9999" : 3.725429276247208, + "100.0" : 3.725429276247208 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.71911931598513, + 3.72239825, + 3.725429276247208 + ], + [ + 3.550249164655784, + 3.5798207745168216, + 3.5845423512544805 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8297739018441317, + "scoreError" : 0.055082385306873205, + "scoreConfidence" : [ + 2.7746915165372585, + 2.884856287151005 + ], + "scorePercentiles" : { + "0.0" : 2.776723303442532, + "50.0" : 2.849999239954403, + "90.0" : 2.857089768637532, + "95.0" : 2.857089768637532, + "99.0" : 2.857089768637532, + "99.9" : 2.857089768637532, + "99.99" : 2.857089768637532, + "99.999" : 2.857089768637532, + "99.9999" : 2.857089768637532, + "100.0" : 2.857089768637532 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.857089768637532, + 2.846963235980643, + 2.8502645807922486 + ], + [ + 2.849999239954403, + 2.8532497991440797, + 2.850531029353092 + ], + [ + 2.7937917039106144, + 2.7893524553820415, + 2.776723303442532 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17399340825190943, + "scoreError" : 0.002415189799166387, + "scoreConfidence" : [ + 0.17157821845274304, + 0.1764085980510758 + ], + "scorePercentiles" : { + "0.0" : 0.17195098658802896, + "50.0" : 0.17425089607945635, + "90.0" : 0.17574364637446838, + "95.0" : 0.17574364637446838, + "99.0" : 0.17574364637446838, + "99.9" : 0.17574364637446838, + "99.99" : 0.17574364637446838, + "99.999" : 0.17574364637446838, + "99.9999" : 0.17574364637446838, + "100.0" : 0.17574364637446838 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17527287233371308, + 0.1742294504242382, + 0.17425089607945635 + ], + [ + 0.17256591154443485, + 0.17195098658802896, + 0.17207340420882372 + ], + [ + 0.17574364637446838, + 0.17510702307867412, + 0.17474648363534695 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3288146853420742, + "scoreError" : 0.00961866055753691, + "scoreConfidence" : [ + 0.3191960247845373, + 0.3384333458996111 + ], + "scorePercentiles" : { + "0.0" : 0.3229496437267883, + "50.0" : 0.32701093767371897, + "90.0" : 0.33675235816271554, + "95.0" : 0.33675235816271554, + "99.0" : 0.33675235816271554, + "99.9" : 0.33675235816271554, + "99.99" : 0.33675235816271554, + "99.999" : 0.33675235816271554, + "99.9999" : 0.33675235816271554, + "100.0" : 0.33675235816271554 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3237096521865795, + 0.3234401143633365, + 0.3229496437267883 + ], + [ + 0.3271919762792828, + 0.32659347181580667, + 0.32701093767371897 + ], + [ + 0.33675235816271554, + 0.33555434001073753, + 0.3361296738597022 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16611211253103553, + "scoreError" : 0.012610331553940314, + "scoreConfidence" : [ + 0.15350178097709521, + 0.17872244408497584 + ], + "scorePercentiles" : { + "0.0" : 0.15637186147206455, + "50.0" : 0.16811454968479447, + "90.0" : 0.17377661910471623, + "95.0" : 0.17377661910471623, + "99.0" : 0.17377661910471623, + "99.9" : 0.17377661910471623, + "99.99" : 0.17377661910471623, + "99.999" : 0.17377661910471623, + "99.9999" : 0.17377661910471623, + "100.0" : 0.17377661910471623 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16811454968479447, + 0.16761891483405966, + 0.168381385940394 + ], + [ + 0.1568560021488848, + 0.15637186147206455, + 0.1567233963923019 + ], + [ + 0.1736130055380983, + 0.17377661910471623, + 0.17355327766400555 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3944184633266344, + "scoreError" : 0.009038540290119374, + "scoreConfidence" : [ + 0.385379923036515, + 0.40345700361675374 + ], + "scorePercentiles" : { + "0.0" : 0.3866889062294575, + "50.0" : 0.3934567140103081, + "90.0" : 0.4031605217899617, + "95.0" : 0.4031605217899617, + "99.0" : 0.4031605217899617, + "99.9" : 0.4031605217899617, + "99.99" : 0.4031605217899617, + "99.999" : 0.4031605217899617, + "99.9999" : 0.4031605217899617, + "100.0" : 0.4031605217899617 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3925430768566494, + 0.3866889062294575, + 0.38754908797085724 + ], + [ + 0.4031605217899617, + 0.3982964957384101, + 0.39914906773369524 + ], + [ + 0.39622482324973257, + 0.3934567140103081, + 0.39269747636063773 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15571468225916585, + "scoreError" : 0.0021395399956352862, + "scoreConfidence" : [ + 0.15357514226353056, + 0.15785422225480114 + ], + "scorePercentiles" : { + "0.0" : 0.15414635183044317, + "50.0" : 0.15539449561798802, + "90.0" : 0.15795597009951035, + "95.0" : 0.15795597009951035, + "99.0" : 0.15795597009951035, + "99.9" : 0.15795597009951035, + "99.99" : 0.15795597009951035, + "99.999" : 0.15795597009951035, + "99.9999" : 0.15795597009951035, + "100.0" : 0.15795597009951035 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1554432936860758, + 0.1543657783489241, + 0.15414635183044317 + ], + [ + 0.15795597009951035, + 0.15723632378930819, + 0.1565063382214849 + ], + [ + 0.15517247261273004, + 0.15539449561798802, + 0.15521111612602825 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.048346727576037835, + "scoreError" : 7.806057457140025E-4, + "scoreConfidence" : [ + 0.04756612183032383, + 0.049127333321751836 + ], + "scorePercentiles" : { + "0.0" : 0.04790786884931756, + "50.0" : 0.04807760585096154, + "90.0" : 0.0491959880701133, + "95.0" : 0.0491959880701133, + "99.0" : 0.0491959880701133, + "99.9" : 0.0491959880701133, + "99.99" : 0.0491959880701133, + "99.999" : 0.0491959880701133, + "99.9999" : 0.0491959880701133, + "100.0" : 0.0491959880701133 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04790786884931756, + 0.048031901780996936, + 0.04796132565802095 + ], + [ + 0.04867936401871206, + 0.04863606014726767, + 0.048699932351881255 + ], + [ + 0.0491959880701133, + 0.04793050145706918, + 0.04807760585096154 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9389509.542990893, + "scoreError" : 168809.23465839543, + "scoreConfidence" : [ + 9220700.308332497, + 9558318.777649289 + ], + "scorePercentiles" : { + "0.0" : 9245023.112754159, + "50.0" : 9440439.841509433, + "90.0" : 9504771.950617284, + "95.0" : 9504771.950617284, + "99.0" : 9504771.950617284, + "99.9" : 9504771.950617284, + "99.99" : 9504771.950617284, + "99.999" : 9504771.950617284, + "99.9999" : 9504771.950617284, + "100.0" : 9504771.950617284 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9447608.750708215, + 9440439.841509433, + 9409778.511759171 + ], + [ + 9458990.512287335, + 9504771.950617284, + 9461597.62630085 + ], + [ + 9290695.124419684, + 9245023.112754159, + 9246680.456561923 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-15T21:51:58Z-2d799ff19a93b0033f4386c5f73692f03905ad99-jdk17.json b/performance-results/2025-03-15T21:51:58Z-2d799ff19a93b0033f4386c5f73692f03905ad99-jdk17.json new file mode 100644 index 000000000..44fbbec31 --- /dev/null +++ b/performance-results/2025-03-15T21:51:58Z-2d799ff19a93b0033f4386c5f73692f03905ad99-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.419081479349856, + "scoreError" : 0.02181667824030549, + "scoreConfidence" : [ + 3.3972648011095505, + 3.4408981575901616 + ], + "scorePercentiles" : { + "0.0" : 3.4151876582998333, + "50.0" : 3.418878719276705, + "90.0" : 3.4233808205461798, + "95.0" : 3.4233808205461798, + "99.0" : 3.4233808205461798, + "99.9" : 3.4233808205461798, + "99.99" : 3.4233808205461798, + "99.999" : 3.4233808205461798, + "99.9999" : 3.4233808205461798, + "100.0" : 3.4233808205461798 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4183955684003458, + 3.4233808205461798 + ], + [ + 3.4151876582998333, + 3.4193618701530646 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7278052370461388, + "scoreError" : 0.015468518360417289, + "scoreConfidence" : [ + 1.7123367186857215, + 1.743273755406556 + ], + "scorePercentiles" : { + "0.0" : 1.725058425680371, + "50.0" : 1.7276601761908168, + "90.0" : 1.7308421701225511, + "95.0" : 1.7308421701225511, + "99.0" : 1.7308421701225511, + "99.9" : 1.7308421701225511, + "99.99" : 1.7308421701225511, + "99.999" : 1.7308421701225511, + "99.9999" : 1.7308421701225511, + "100.0" : 1.7308421701225511 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.725058425680371, + 1.7272240633541005 + ], + [ + 1.7280962890275329, + 1.7308421701225511 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8685942360123592, + "scoreError" : 0.0032093629192022875, + "scoreConfidence" : [ + 0.8653848730931569, + 0.8718035989315615 + ], + "scorePercentiles" : { + "0.0" : 0.8680596600008403, + "50.0" : 0.8685323243645763, + "90.0" : 0.8692526353194442, + "95.0" : 0.8692526353194442, + "99.0" : 0.8692526353194442, + "99.9" : 0.8692526353194442, + "99.99" : 0.8692526353194442, + "99.999" : 0.8692526353194442, + "99.9999" : 0.8692526353194442, + "100.0" : 0.8692526353194442 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8684515043579376, + 0.8692526353194442 + ], + [ + 0.8680596600008403, + 0.868613144371215 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70219.63258531665, + "scoreError" : 2456.2624530759686, + "scoreConfidence" : [ + 67763.37013224069, + 72675.89503839261 + ], + "scorePercentiles" : { + "0.0" : 68262.69827508756, + "50.0" : 71070.91574665892, + "90.0" : 71360.62796599019, + "95.0" : 71360.62796599019, + "99.0" : 71360.62796599019, + "99.9" : 71360.62796599019, + "99.99" : 71360.62796599019, + "99.999" : 71360.62796599019, + "99.9999" : 71360.62796599019, + "100.0" : 71360.62796599019 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 71090.84115154805, + 71070.91574665892, + 71068.11668011114 + ], + [ + 71326.00567174528, + 71360.62796599019, + 71232.73593615185 + ], + [ + 68263.9148079727, + 68262.69827508756, + 68300.83703258426 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 352.62506314566724, + "scoreError" : 5.912882195955713, + "scoreConfidence" : [ + 346.7121809497115, + 358.53794534162296 + ], + "scorePercentiles" : { + "0.0" : 348.5994939203698, + "50.0" : 351.2596406536745, + "90.0" : 357.8709892240457, + "95.0" : 357.8709892240457, + "99.0" : 357.8709892240457, + "99.9" : 357.8709892240457, + "99.99" : 357.8709892240457, + "99.999" : 357.8709892240457, + "99.9999" : 357.8709892240457, + "100.0" : 357.8709892240457 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 355.6002990284403, + 357.8709892240457, + 355.992835288197 + ], + [ + 355.0809382965137, + 351.2596406536745, + 350.96968106293775 + ], + [ + 348.5994939203698, + 349.08160018811935, + 349.1700906487072 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.6838769084973, + "scoreError" : 2.183117097066455, + "scoreConfidence" : [ + 105.50075981143084, + 109.86699400556375 + ], + "scorePercentiles" : { + "0.0" : 106.1920201263132, + "50.0" : 107.28988932269989, + "90.0" : 109.68039857724867, + "95.0" : 109.68039857724867, + "99.0" : 109.68039857724867, + "99.9" : 109.68039857724867, + "99.99" : 109.68039857724867, + "99.999" : 109.68039857724867, + "99.9999" : 109.68039857724867, + "100.0" : 109.68039857724867 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 106.1920201263132, + 106.3107103466616, + 106.51494550464022 + ], + [ + 109.68039857724867, + 108.93303271007677, + 109.1345679005366 + ], + [ + 107.85149666900807, + 107.24783101929074, + 107.28988932269989 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.01424904469711514, + "scoreError" : 2.8712049885863054E-4, + "scoreConfidence" : [ + 0.01396192419825651, + 0.01453616519597377 + ], + "scorePercentiles" : { + "0.0" : 0.014081548691345716, + "50.0" : 0.014197285943467211, + "90.0" : 0.014469735555761344, + "95.0" : 0.014469735555761344, + "99.0" : 0.014469735555761344, + "99.9" : 0.014469735555761344, + "99.99" : 0.014469735555761344, + "99.999" : 0.014469735555761344, + "99.9999" : 0.014469735555761344, + "100.0" : 0.014469735555761344 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014469735555761344, + 0.014466371526486872, + 0.014465053651656951 + ], + [ + 0.014084542436261102, + 0.014081548691345716, + 0.014082558140615627 + ], + [ + 0.014202345880946092, + 0.014197285943467211, + 0.014191960447495364 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9605920681254805, + "scoreError" : 0.0156261620457851, + "scoreConfidence" : [ + 0.9449659060796953, + 0.9762182301712656 + ], + "scorePercentiles" : { + "0.0" : 0.9515725629876308, + "50.0" : 0.9594482724743356, + "90.0" : 0.9813261324698264, + "95.0" : 0.9813261324698264, + "99.0" : 0.9813261324698264, + "99.9" : 0.9813261324698264, + "99.99" : 0.9813261324698264, + "99.999" : 0.9813261324698264, + "99.9999" : 0.9813261324698264, + "100.0" : 0.9813261324698264 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9632121626697486, + 0.9640522833317265, + 0.9634844487475915 + ], + [ + 0.9523479509570517, + 0.9517655204149614, + 0.9515725629876308 + ], + [ + 0.9581192790764514, + 0.9594482724743356, + 0.9813261324698264 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012935286805918217, + "scoreError" : 2.0065649442416766E-4, + "scoreConfidence" : [ + 0.01273463031149405, + 0.013135943300342384 + ], + "scorePercentiles" : { + "0.0" : 0.01282056484627199, + "50.0" : 0.012957244368985167, + "90.0" : 0.01300262296676349, + "95.0" : 0.01300262296676349, + "99.0" : 0.01300262296676349, + "99.9" : 0.01300262296676349, + "99.99" : 0.01300262296676349, + "99.999" : 0.01300262296676349, + "99.9999" : 0.01300262296676349, + "100.0" : 0.01300262296676349 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012886497260394009, + 0.012987495216820997, + 0.012987547024109466 + ], + [ + 0.01282056484627199, + 0.012926993521149337, + 0.01300262296676349 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6640448498751206, + "scoreError" : 0.10001425229743845, + "scoreConfidence" : [ + 3.5640305975776823, + 3.764059102172559 + ], + "scorePercentiles" : { + "0.0" : 3.6288989746008706, + "50.0" : 3.664207595317245, + "90.0" : 3.697876677014043, + "95.0" : 3.697876677014043, + "99.0" : 3.697876677014043, + "99.9" : 3.697876677014043, + "99.99" : 3.697876677014043, + "99.999" : 3.697876677014043, + "99.9999" : 3.697876677014043, + "100.0" : 3.697876677014043 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.697876677014043, + 3.6976350059127863, + 3.6941182392909897 + ], + [ + 3.6288989746008706, + 3.6342969513435004, + 3.631443251088534 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.796145889648464, + "scoreError" : 0.10606264859186876, + "scoreConfidence" : [ + 2.690083241056595, + 2.9022085382403326 + ], + "scorePercentiles" : { + "0.0" : 2.735265740153173, + "50.0" : 2.7747582746947836, + "90.0" : 2.8826144273775216, + "95.0" : 2.8826144273775216, + "99.0" : 2.8826144273775216, + "99.9" : 2.8826144273775216, + "99.99" : 2.8826144273775216, + "99.999" : 2.8826144273775216, + "99.9999" : 2.8826144273775216, + "100.0" : 2.8826144273775216 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.77613158340272, + 2.7747582746947836, + 2.759658219646799 + ], + [ + 2.7483473440505635, + 2.735265740153173, + 2.7371980117679255 + ], + [ + 2.86899744205393, + 2.8823419636887606, + 2.8826144273775216 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18386029216491354, + "scoreError" : 0.015936383371688425, + "scoreConfidence" : [ + 0.1679239087932251, + 0.19979667553660196 + ], + "scorePercentiles" : { + "0.0" : 0.17637173245149912, + "50.0" : 0.1786052278401886, + "90.0" : 0.1967785992325856, + "95.0" : 0.1967785992325856, + "99.0" : 0.1967785992325856, + "99.9" : 0.1967785992325856, + "99.99" : 0.1967785992325856, + "99.999" : 0.1967785992325856, + "99.9999" : 0.1967785992325856, + "100.0" : 0.1967785992325856 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17676752035423257, + 0.17639937312800974, + 0.17637173245149912 + ], + [ + 0.1965152944112561, + 0.19603218908905573, + 0.1967785992325856 + ], + [ + 0.17880823137303986, + 0.17846446160435442, + 0.1786052278401886 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3268686979876325, + "scoreError" : 0.009509582095350317, + "scoreConfidence" : [ + 0.3173591158922822, + 0.3363782800829828 + ], + "scorePercentiles" : { + "0.0" : 0.32142813943173054, + "50.0" : 0.3239967884011016, + "90.0" : 0.3350558973766208, + "95.0" : 0.3350558973766208, + "99.0" : 0.3350558973766208, + "99.9" : 0.3350558973766208, + "99.99" : 0.3350558973766208, + "99.999" : 0.3350558973766208, + "99.9999" : 0.3350558973766208, + "100.0" : 0.3350558973766208 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32486509677419356, + 0.3239967884011016, + 0.32357341784766713 + ], + [ + 0.33470154652252493, + 0.33304827188863356, + 0.3350558973766208 + ], + [ + 0.3226825007905521, + 0.32142813943173054, + 0.3224666228556688 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16040518763688932, + "scoreError" : 0.005985603649017898, + "scoreConfidence" : [ + 0.15441958398787142, + 0.16639079128590722 + ], + "scorePercentiles" : { + "0.0" : 0.15520278784163394, + "50.0" : 0.16224452822168503, + "90.0" : 0.1633454222407344, + "95.0" : 0.1633454222407344, + "99.0" : 0.1633454222407344, + "99.9" : 0.1633454222407344, + "99.99" : 0.1633454222407344, + "99.999" : 0.1633454222407344, + "99.9999" : 0.1633454222407344, + "100.0" : 0.1633454222407344 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16206104194013646, + 0.16235918097835794, + 0.16224452822168503 + ], + [ + 0.15520278784163394, + 0.15584427127228526, + 0.15607415878763287 + ], + [ + 0.1633454222407344, + 0.16317626146691686, + 0.1633390359826212 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39186170392434727, + "scoreError" : 0.008382766232144253, + "scoreConfidence" : [ + 0.38347893769220304, + 0.4002444701564915 + ], + "scorePercentiles" : { + "0.0" : 0.3852108789723046, + "50.0" : 0.39403914370148546, + "90.0" : 0.39714948530579824, + "95.0" : 0.39714948530579824, + "99.0" : 0.39714948530579824, + "99.9" : 0.39714948530579824, + "99.99" : 0.39714948530579824, + "99.999" : 0.39714948530579824, + "99.9999" : 0.39714948530579824, + "100.0" : 0.39714948530579824 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.38585839105606357, + 0.38531843093284013, + 0.3852108789723046 + ], + [ + 0.3969191444334193, + 0.39403914370148546, + 0.3927082935794227 + ], + [ + 0.39714948530579824, + 0.394844230031192, + 0.3947073373065993 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15617891534733674, + "scoreError" : 0.0027246898703879286, + "scoreConfidence" : [ + 0.1534542254769488, + 0.15890360521772467 + ], + "scorePercentiles" : { + "0.0" : 0.15406912377709647, + "50.0" : 0.1558871378020265, + "90.0" : 0.15838028224133288, + "95.0" : 0.15838028224133288, + "99.0" : 0.15838028224133288, + "99.9" : 0.15838028224133288, + "99.99" : 0.15838028224133288, + "99.999" : 0.15838028224133288, + "99.9999" : 0.15838028224133288, + "100.0" : 0.15838028224133288 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15838028224133288, + 0.15824253888757023, + 0.1577863723847392 + ], + [ + 0.15528550955760181, + 0.15422730028839776, + 0.15406912377709647 + ], + [ + 0.1558871378020265, + 0.155819362336003, + 0.15591261085126287 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.046892479422411135, + "scoreError" : 7.27228595279716E-4, + "scoreConfidence" : [ + 0.04616525082713142, + 0.04761970801769085 + ], + "scorePercentiles" : { + "0.0" : 0.04646620786848378, + "50.0" : 0.04681246217834389, + "90.0" : 0.04745806077877702, + "95.0" : 0.04745806077877702, + "99.0" : 0.04745806077877702, + "99.9" : 0.04745806077877702, + "99.99" : 0.04745806077877702, + "99.999" : 0.04745806077877702, + "99.9999" : 0.04745806077877702, + "100.0" : 0.04745806077877702 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04697078824430134, + 0.04647115450996794, + 0.04646620786848378 + ], + [ + 0.04681246217834389, + 0.04654221015349387, + 0.04649830915304675 + ], + [ + 0.04740479233190489, + 0.04740832958338074, + 0.04745806077877702 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9153374.794718103, + "scoreError" : 35141.224373571386, + "scoreConfidence" : [ + 9118233.570344532, + 9188516.019091675 + ], + "scorePercentiles" : { + "0.0" : 9121060.185050137, + "50.0" : 9156568.882891126, + "90.0" : 9189768.824609734, + "95.0" : 9189768.824609734, + "99.0" : 9189768.824609734, + "99.9" : 9189768.824609734, + "99.99" : 9189768.824609734, + "99.999" : 9189768.824609734, + "99.9999" : 9189768.824609734, + "100.0" : 9189768.824609734 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9138728.467579909, + 9135038.461187216, + 9121060.185050137 + ], + [ + 9144502.108775137, + 9156568.882891126, + 9157744.234432235 + ], + [ + 9189768.824609734, + 9171180.827681027, + 9165781.16025641 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-15T22:05:06Z-2d799ff19a93b0033f4386c5f73692f03905ad99-jdk17.json b/performance-results/2025-03-15T22:05:06Z-2d799ff19a93b0033f4386c5f73692f03905ad99-jdk17.json new file mode 100644 index 000000000..662bfc4c3 --- /dev/null +++ b/performance-results/2025-03-15T22:05:06Z-2d799ff19a93b0033f4386c5f73692f03905ad99-jdk17.json @@ -0,0 +1,1074 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.419640407240273, + "scoreError" : 0.033845851587922124, + "scoreConfidence" : [ + 3.3857945556523505, + 3.453486258828195 + ], + "scorePercentiles" : { + "0.0" : 3.4146699284177893, + "50.0" : 3.4184445363788676, + "90.0" : 3.427002627785568, + "95.0" : 3.427002627785568, + "99.0" : 3.427002627785568, + "99.9" : 3.427002627785568, + "99.99" : 3.427002627785568, + "99.999" : 3.427002627785568, + "99.9999" : 3.427002627785568, + "100.0" : 3.427002627785568 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.418960193365409, + 3.427002627785568 + ], + [ + 3.4146699284177893, + 3.417928879392327 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.728259570626513, + "scoreError" : 0.009225737494153523, + "scoreConfidence" : [ + 1.7190338331323594, + 1.7374853081206665 + ], + "scorePercentiles" : { + "0.0" : 1.726468041428064, + "50.0" : 1.7283038272179163, + "90.0" : 1.7299625866421546, + "95.0" : 1.7299625866421546, + "99.0" : 1.7299625866421546, + "99.9" : 1.7299625866421546, + "99.99" : 1.7299625866421546, + "99.999" : 1.7299625866421546, + "99.9999" : 1.7299625866421546, + "100.0" : 1.7299625866421546 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7282796925630504, + 1.7299625866421546 + ], + [ + 1.726468041428064, + 1.7283279618727825 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8681979109233867, + "scoreError" : 0.006028616842983343, + "scoreConfidence" : [ + 0.8621692940804033, + 0.8742265277663701 + ], + "scorePercentiles" : { + "0.0" : 0.8668273030701195, + "50.0" : 0.8685266393427444, + "90.0" : 0.8689110619379388, + "95.0" : 0.8689110619379388, + "99.0" : 0.8689110619379388, + "99.9" : 0.8689110619379388, + "99.99" : 0.8689110619379388, + "99.999" : 0.8689110619379388, + "99.9999" : 0.8689110619379388, + "100.0" : 0.8689110619379388 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8685892047662458, + 0.8689110619379388 + ], + [ + 0.8668273030701195, + 0.8684640739192432 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69648.01861478564, + "scoreError" : 2087.607519878574, + "scoreConfidence" : [ + 67560.41109490707, + 71735.62613466421 + ], + "scorePercentiles" : { + "0.0" : 68001.28467819697, + "50.0" : 69992.90089804973, + "90.0" : 71029.82538555992, + "95.0" : 71029.82538555992, + "99.0" : 71029.82538555992, + "99.9" : 71029.82538555992, + "99.99" : 71029.82538555992, + "99.999" : 71029.82538555992, + "99.9999" : 71029.82538555992, + "100.0" : 71029.82538555992 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 68001.28467819697, + 70138.72785998843, + 69992.90089804973 + ], + [ + 71001.67829047698, + 71024.5754757033, + 71029.82538555992 + ], + [ + 68613.0120961982, + 68517.5283816697, + 68512.63446722752 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 346.553845841135, + "scoreError" : 7.0370841367788906, + "scoreConfidence" : [ + 339.5167617043561, + 353.5909299779139 + ], + "scorePercentiles" : { + "0.0" : 338.8824915344101, + "50.0" : 345.86361663474355, + "90.0" : 352.82648521467127, + "95.0" : 352.82648521467127, + "99.0" : 352.82648521467127, + "99.9" : 352.82648521467127, + "99.99" : 352.82648521467127, + "99.999" : 352.82648521467127, + "99.9999" : 352.82648521467127, + "100.0" : 352.82648521467127 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 346.78276083942797, + 343.2203107307122, + 338.8824915344101 + ], + [ + 349.6999294135891, + 350.7825466039242, + 352.82648521467127 + ], + [ + 345.07844612419234, + 345.84802547454444, + 345.86361663474355 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.93576515773535, + "scoreError" : 4.531444666535601, + "scoreConfidence" : [ + 103.40432049119974, + 112.46720982427095 + ], + "scorePercentiles" : { + "0.0" : 104.48158965432441, + "50.0" : 107.8583918780271, + "90.0" : 111.14908882675743, + "95.0" : 111.14908882675743, + "99.0" : 111.14908882675743, + "99.9" : 111.14908882675743, + "99.99" : 111.14908882675743, + "99.999" : 111.14908882675743, + "99.9999" : 111.14908882675743, + "100.0" : 111.14908882675743 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 111.14908882675743, + 110.92489527140685, + 111.13665039776886 + ], + [ + 107.64938815573633, + 107.8583918780271, + 108.09974628464035 + ], + [ + 105.27645600496199, + 104.48158965432441, + 104.84567994599468 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014182477074290387, + "scoreError" : 4.544045452456582E-5, + "scoreConfidence" : [ + 0.01413703661976582, + 0.014227917528814953 + ], + "scorePercentiles" : { + "0.0" : 0.014150026652705457, + "50.0" : 0.01417108860798957, + "90.0" : 0.014222776878592986, + "95.0" : 0.014222776878592986, + "99.0" : 0.014222776878592986, + "99.9" : 0.014222776878592986, + "99.99" : 0.014222776878592986, + "99.999" : 0.014222776878592986, + "99.9999" : 0.014222776878592986, + "100.0" : 0.014222776878592986 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014193744343859291, + 0.014196946813177453, + 0.01417108860798957 + ], + [ + 0.014150026652705457, + 0.014220712166243843, + 0.014222776878592986 + ], + [ + 0.01416372353148631, + 0.014158148562610167, + 0.014165126111948418 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9717049067434507, + "scoreError" : 0.006816987246318855, + "scoreConfidence" : [ + 0.9648879194971318, + 0.9785218939897695 + ], + "scorePercentiles" : { + "0.0" : 0.9666643270178831, + "50.0" : 0.9739816991624465, + "90.0" : 0.9758728205503513, + "95.0" : 0.9758728205503513, + "99.0" : 0.9758728205503513, + "99.9" : 0.9758728205503513, + "99.99" : 0.9758728205503513, + "99.999" : 0.9758728205503513, + "99.9999" : 0.9758728205503513, + "100.0" : 0.9758728205503513 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9676304501209483, + 0.9666643270178831, + 0.9755419225441421 + ], + [ + 0.9683314082106894, + 0.9673373230798994, + 0.9753787322734809 + ], + [ + 0.9739816991624465, + 0.9758728205503513, + 0.9746054777312153 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013071837844191544, + "scoreError" : 2.2574804378363924E-4, + "scoreConfidence" : [ + 0.012846089800407905, + 0.013297585887975184 + ], + "scorePercentiles" : { + "0.0" : 0.012941054920453339, + "50.0" : 0.013066141899765456, + "90.0" : 0.013166056665429086, + "95.0" : 0.013166056665429086, + "99.0" : 0.013166056665429086, + "99.9" : 0.013166056665429086, + "99.99" : 0.013166056665429086, + "99.999" : 0.013166056665429086, + "99.9999" : 0.013166056665429086, + "100.0" : 0.013166056665429086 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012941054920453339, + 0.013062482853298849, + 0.013044916436211845 + ], + [ + 0.013069800946232063, + 0.01314671524352408, + 0.013166056665429086 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.714277948000932, + "scoreError" : 0.21064436555544172, + "scoreConfidence" : [ + 3.5036335824454903, + 3.9249223135563738 + ], + "scorePercentiles" : { + "0.0" : 3.6397042852983987, + "50.0" : 3.7140892108414008, + "90.0" : 3.7856188084784255, + "95.0" : 3.7856188084784255, + "99.0" : 3.7856188084784255, + "99.9" : 3.7856188084784255, + "99.99" : 3.7856188084784255, + "99.999" : 3.7856188084784255, + "99.9999" : 3.7856188084784255, + "100.0" : 3.7856188084784255 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.650553775912409, + 3.6397042852983987, + 3.647226038657914 + ], + [ + 3.7776246457703926, + 3.7856188084784255, + 3.7849401338880484 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8470397521263693, + "scoreError" : 0.025566746262419202, + "scoreConfidence" : [ + 2.82147300586395, + 2.8726064983887887 + ], + "scorePercentiles" : { + "0.0" : 2.8274614687588353, + "50.0" : 2.8499350316329437, + "90.0" : 2.8701827578192254, + "95.0" : 2.8701827578192254, + "99.0" : 2.8701827578192254, + "99.9" : 2.8701827578192254, + "99.99" : 2.8701827578192254, + "99.999" : 2.8701827578192254, + "99.9999" : 2.8701827578192254, + "100.0" : 2.8701827578192254 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8701827578192254, + 2.8599932299113524, + 2.8499350316329437 + ], + [ + 2.860579891590389, + 2.8513845940706957, + 2.841021331534091 + ], + [ + 2.835212614512472, + 2.8274614687588353, + 2.8275868493073224 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1745005195505932, + "scoreError" : 0.0020275178639915406, + "scoreConfidence" : [ + 0.17247300168660165, + 0.17652803741458475 + ], + "scorePercentiles" : { + "0.0" : 0.17309754439867064, + "50.0" : 0.1741435452329125, + "90.0" : 0.1760333223960992, + "95.0" : 0.1760333223960992, + "99.0" : 0.1760333223960992, + "99.9" : 0.1760333223960992, + "99.99" : 0.1760333223960992, + "99.999" : 0.1760333223960992, + "99.9999" : 0.1760333223960992, + "100.0" : 0.1760333223960992 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17357218840906724, + 0.1732631288875028, + 0.17309754439867064 + ], + [ + 0.17473068384819682, + 0.1737637954162395, + 0.1741435452329125 + ], + [ + 0.1760333223960992, + 0.17601621082831698, + 0.175884256538333 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3228836238631105, + "scoreError" : 0.0025800955935671417, + "scoreConfidence" : [ + 0.32030352826954334, + 0.3254637194566776 + ], + "scorePercentiles" : { + "0.0" : 0.3206341434800731, + "50.0" : 0.32319999993536086, + "90.0" : 0.3249434223883022, + "95.0" : 0.3249434223883022, + "99.0" : 0.3249434223883022, + "99.9" : 0.3249434223883022, + "99.99" : 0.3249434223883022, + "99.999" : 0.3249434223883022, + "99.9999" : 0.3249434223883022, + "100.0" : 0.3249434223883022 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3206341434800731, + 0.32145425224211643, + 0.3210235518923951 + ], + [ + 0.3242084933700762, + 0.32319999993536086, + 0.32265440853068333 + ], + [ + 0.3249434223883022, + 0.3239831920173648, + 0.3238511509116228 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16591044519258213, + "scoreError" : 0.0067544336253027755, + "scoreConfidence" : [ + 0.15915601156727935, + 0.17266487881788492 + ], + "scorePercentiles" : { + "0.0" : 0.1618345934814623, + "50.0" : 0.16472899033060437, + "90.0" : 0.17116194415062044, + "95.0" : 0.17116194415062044, + "99.0" : 0.17116194415062044, + "99.9" : 0.17116194415062044, + "99.99" : 0.17116194415062044, + "99.999" : 0.17116194415062044, + "99.9999" : 0.17116194415062044, + "100.0" : 0.17116194415062044 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16472899033060437, + 0.16473938853104458, + 0.1646474898167509 + ], + [ + 0.17080365469358474, + 0.17116194415062044, + 0.17112831592997588 + ], + [ + 0.16229985615749157, + 0.1618345934814623, + 0.16184977364170455 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3956644356033628, + "scoreError" : 0.008307636951365563, + "scoreConfidence" : [ + 0.38735679865199724, + 0.40397207255472833 + ], + "scorePercentiles" : { + "0.0" : 0.390096359625512, + "50.0" : 0.3933824678808859, + "90.0" : 0.405691865030426, + "95.0" : 0.405691865030426, + "99.0" : 0.405691865030426, + "99.9" : 0.405691865030426, + "99.99" : 0.405691865030426, + "99.999" : 0.405691865030426, + "99.9999" : 0.405691865030426, + "100.0" : 0.405691865030426 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39496456504739336, + 0.3915411707842293, + 0.390096359625512 + ], + [ + 0.405691865030426, + 0.39975288051646946, + 0.3991692626831118 + ], + [ + 0.39332322076696163, + 0.3930581280952755, + 0.3933824678808859 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1572647709808916, + "scoreError" : 0.0037341884184379057, + "scoreConfidence" : [ + 0.1535305825624537, + 0.16099895939932948 + ], + "scorePercentiles" : { + "0.0" : 0.15498375, + "50.0" : 0.15638225283437848, + "90.0" : 0.16048965336778417, + "95.0" : 0.16048965336778417, + "99.0" : 0.16048965336778417, + "99.9" : 0.16048965336778417, + "99.99" : 0.16048965336778417, + "99.999" : 0.16048965336778417, + "99.9999" : 0.16048965336778417, + "100.0" : 0.16048965336778417 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1560176270184252, + 0.15642328273111217, + 0.15638225283437848 + ], + [ + 0.1554366101715991, + 0.15567427536660544, + 0.15498375 + ], + [ + 0.16048965336778417, + 0.16026842540506755, + 0.15970706193305226 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.0472223516947196, + "scoreError" : 0.0011805643716068521, + "scoreConfidence" : [ + 0.046041787323112746, + 0.04840291606632645 + ], + "scorePercentiles" : { + "0.0" : 0.04637169603342422, + "50.0" : 0.0471845359800318, + "90.0" : 0.04845031826065892, + "95.0" : 0.04845031826065892, + "99.0" : 0.04845031826065892, + "99.9" : 0.04845031826065892, + "99.99" : 0.04845031826065892, + "99.999" : 0.04845031826065892, + "99.9999" : 0.04845031826065892, + "100.0" : 0.04845031826065892 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.046576301418225004, + 0.04637169603342422, + 0.046407148343055496 + ], + [ + 0.04845031826065892, + 0.047919916816813936, + 0.04754857862529361 + ], + [ + 0.047405010376817366, + 0.04713765939815601, + 0.0471845359800318 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9322508.960505482, + "scoreError" : 254291.34908198053, + "scoreConfidence" : [ + 9068217.611423502, + 9576800.309587462 + ], + "scorePercentiles" : { + "0.0" : 9170753.268560953, + "50.0" : 9282116.878478665, + "90.0" : 9531735.557142857, + "95.0" : 9531735.557142857, + "99.0" : 9531735.557142857, + "99.9" : 9531735.557142857, + "99.99" : 9531735.557142857, + "99.999" : 9531735.557142857, + "99.9999" : 9531735.557142857, + "100.0" : 9531735.557142857 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9250168.812384473, + 9284957.720779222, + 9282116.878478665 + ], + [ + 9193211.326286765, + 9170753.268560953, + 9173660.361136572 + ], + [ + 9493256.503795067, + 9522720.215984777, + 9531735.557142857 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-18T23:42:07Z-3d7dce5e49dfbe92d656629ae4fdbab979bba8be-jdk17.json b/performance-results/2025-03-18T23:42:07Z-3d7dce5e49dfbe92d656629ae4fdbab979bba8be-jdk17.json new file mode 100644 index 000000000..01af99efd --- /dev/null +++ b/performance-results/2025-03-18T23:42:07Z-3d7dce5e49dfbe92d656629ae4fdbab979bba8be-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4030341962375994, + "scoreError" : 0.02905720653413424, + "scoreConfidence" : [ + 3.3739769897034653, + 3.4320914027717335 + ], + "scorePercentiles" : { + "0.0" : 3.3984726801583083, + "50.0" : 3.40222251416189, + "90.0" : 3.40921907646831, + "95.0" : 3.40921907646831, + "99.0" : 3.40921907646831, + "99.9" : 3.40921907646831, + "99.99" : 3.40921907646831, + "99.999" : 3.40921907646831, + "99.9999" : 3.40921907646831, + "100.0" : 3.40921907646831 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.3984726801583083, + 3.40921907646831 + ], + [ + 3.401847449089267, + 3.402597579234513 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7177090587738857, + "scoreError" : 0.011729170580772197, + "scoreConfidence" : [ + 1.7059798881931134, + 1.729438229354658 + ], + "scorePercentiles" : { + "0.0" : 1.7161540986078148, + "50.0" : 1.7174972498814143, + "90.0" : 1.7196876367249, + "95.0" : 1.7196876367249, + "99.0" : 1.7196876367249, + "99.9" : 1.7196876367249, + "99.99" : 1.7196876367249, + "99.999" : 1.7196876367249, + "99.9999" : 1.7196876367249, + "100.0" : 1.7196876367249 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7161816911797099, + 1.7188128085831187 + ], + [ + 1.7161540986078148, + 1.7196876367249 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8648592999960828, + "scoreError" : 0.005526498918160724, + "scoreConfidence" : [ + 0.8593328010779221, + 0.8703857989142435 + ], + "scorePercentiles" : { + "0.0" : 0.8639429699495912, + "50.0" : 0.8649398593777518, + "90.0" : 0.8656145112792367, + "95.0" : 0.8656145112792367, + "99.0" : 0.8656145112792367, + "99.9" : 0.8656145112792367, + "99.99" : 0.8656145112792367, + "99.999" : 0.8656145112792367, + "99.9999" : 0.8656145112792367, + "100.0" : 0.8656145112792367 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.864318860199225, + 0.8639429699495912 + ], + [ + 0.8655608585562785, + 0.8656145112792367 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.894285209058118, + "scoreError" : 0.22100514707279106, + "scoreConfidence" : [ + 15.673280061985327, + 16.11529035613091 + ], + "scorePercentiles" : { + "0.0" : 15.675229525482061, + "50.0" : 15.907164710763897, + "90.0" : 16.06855890412849, + "95.0" : 16.06855890412849, + "99.0" : 16.06855890412849, + "99.9" : 16.06855890412849, + "99.99" : 16.06855890412849, + "99.999" : 16.06855890412849, + "99.9999" : 16.06855890412849, + "100.0" : 16.06855890412849 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.06855890412849, + 15.954200891572873, + 15.889569229430252 + ], + [ + 15.907164710763897, + 16.00879970270076, + 15.99190467327713 + ], + [ + 15.830796895625069, + 15.675229525482061, + 15.72234234854253 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 23.84258595407435, + "scoreError" : 0.16971826450224373, + "scoreConfidence" : [ + 23.672867689572108, + 24.012304218576595 + ], + "scorePercentiles" : { + "0.0" : 23.73385673723001, + "50.0" : 23.823719230321753, + "90.0" : 24.079442391385157, + "95.0" : 24.079442391385157, + "99.0" : 24.079442391385157, + "99.9" : 24.079442391385157, + "99.99" : 24.079442391385157, + "99.999" : 24.079442391385157, + "99.9999" : 24.079442391385157, + "100.0" : 24.079442391385157 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 23.899958603431326, + 23.796039927842227, + 23.790688365773097 + ], + [ + 23.849380733110003, + 24.079442391385157, + 23.823719230321753 + ], + [ + 23.839112614729608, + 23.73385673723001, + 23.771074982845974 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70190.75403769573, + "scoreError" : 401.50400495191934, + "scoreConfidence" : [ + 69789.25003274382, + 70592.25804264765 + ], + "scorePercentiles" : { + "0.0" : 69854.4041312379, + "50.0" : 70190.65239873884, + "90.0" : 70493.13169380104, + "95.0" : 70493.13169380104, + "99.0" : 70493.13169380104, + "99.9" : 70493.13169380104, + "99.99" : 70493.13169380104, + "99.999" : 70493.13169380104, + "99.9999" : 70493.13169380104, + "100.0" : 70493.13169380104 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70482.36880103988, + 70493.13169380104, + 70329.6963337318 + ], + [ + 69983.17063049234, + 70365.16553246543, + 70190.65239873884 + ], + [ + 70073.43951918474, + 69854.4041312379, + 69944.75729856959 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 324.33117298479885, + "scoreError" : 16.396151264190877, + "scoreConfidence" : [ + 307.935021720608, + 340.7273242489897 + ], + "scorePercentiles" : { + "0.0" : 311.7536298897916, + "50.0" : 320.7394310847248, + "90.0" : 341.3502382353502, + "95.0" : 341.3502382353502, + "99.0" : 341.3502382353502, + "99.9" : 341.3502382353502, + "99.99" : 341.3502382353502, + "99.999" : 341.3502382353502, + "99.9999" : 341.3502382353502, + "100.0" : 341.3502382353502 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 320.6566368654864, + 323.2717383562003, + 320.0584633567249 + ], + [ + 334.0350009976469, + 341.3502382353502, + 332.8480453159042 + ], + [ + 314.2673727613599, + 311.7536298897916, + 320.7394310847248 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 98.82877677960663, + "scoreError" : 2.213364397678412, + "scoreConfidence" : [ + 96.61541238192821, + 101.04214117728505 + ], + "scorePercentiles" : { + "0.0" : 96.7095691352346, + "50.0" : 98.54617145982048, + "90.0" : 100.73049767909293, + "95.0" : 100.73049767909293, + "99.0" : 100.73049767909293, + "99.9" : 100.73049767909293, + "99.99" : 100.73049767909293, + "99.999" : 100.73049767909293, + "99.9999" : 100.73049767909293, + "100.0" : 100.73049767909293 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 98.54617145982048, + 98.33512677300635, + 97.41535629373469 + ], + [ + 100.49777592353054, + 98.52742877499989, + 99.21958486804665 + ], + [ + 99.47748010899346, + 100.73049767909293, + 96.7095691352346 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06274013284017438, + "scoreError" : 7.00780518209212E-4, + "scoreConfidence" : [ + 0.06203935232196517, + 0.06344091335838359 + ], + "scorePercentiles" : { + "0.0" : 0.06218591576394503, + "50.0" : 0.06281513064070351, + "90.0" : 0.06342166454841226, + "95.0" : 0.06342166454841226, + "99.0" : 0.06342166454841226, + "99.9" : 0.06342166454841226, + "99.99" : 0.06342166454841226, + "99.999" : 0.06342166454841226, + "99.9999" : 0.06342166454841226, + "100.0" : 0.06342166454841226 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06298900028974552, + 0.06281513064070351, + 0.06218591576394503 + ], + [ + 0.06310182017466368, + 0.06285766694114098, + 0.06342166454841226 + ], + [ + 0.06224469643779682, + 0.062339103487828444, + 0.06270619727733327 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.041783924753189074, + "scoreError" : 3.37840812015335E-4, + "scoreConfidence" : [ + 0.04144608394117374, + 0.04212176556520441 + ], + "scorePercentiles" : { + "0.0" : 0.04141958317973782, + "50.0" : 0.04176708066375415, + "90.0" : 0.04209846797618948, + "95.0" : 0.04209846797618948, + "99.0" : 0.04209846797618948, + "99.9" : 0.04209846797618948, + "99.99" : 0.04209846797618948, + "99.999" : 0.04209846797618948, + "99.9999" : 0.04209846797618948, + "100.0" : 0.04209846797618948 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04191370691440092, + 0.04174531906358145, + 0.04141958317973782 + ], + [ + 0.04176708066375415, + 0.04170001375666671, + 0.04209846797618948 + ], + [ + 0.04160955372753638, + 0.041965154257729884, + 0.041836443239104876 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014174588031238746, + "scoreError" : 1.2015869779662313E-4, + "scoreConfidence" : [ + 0.014054429333442123, + 0.014294746729035369 + ], + "scorePercentiles" : { + "0.0" : 0.0140440420136085, + "50.0" : 0.01417231512733663, + "90.0" : 0.014274561368398815, + "95.0" : 0.014274561368398815, + "99.0" : 0.014274561368398815, + "99.9" : 0.014274561368398815, + "99.99" : 0.014274561368398815, + "99.999" : 0.014274561368398815, + "99.9999" : 0.014274561368398815, + "100.0" : 0.014274561368398815 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014137954149789701, + 0.014109782593543162, + 0.0140440420136085 + ], + [ + 0.014237063277154677, + 0.014236445661644117, + 0.014274561368398815 + ], + [ + 0.014163128768233044, + 0.01417231512733663, + 0.01419599932144008 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.983950143153562, + "scoreError" : 0.01789666233502451, + "scoreConfidence" : [ + 0.9660534808185375, + 1.0018468054885865 + ], + "scorePercentiles" : { + "0.0" : 0.9690377924418605, + "50.0" : 0.9826584856047951, + "90.0" : 1.0008194397518015, + "95.0" : 1.0008194397518015, + "99.0" : 1.0008194397518015, + "99.9" : 1.0008194397518015, + "99.99" : 1.0008194397518015, + "99.999" : 1.0008194397518015, + "99.9999" : 1.0008194397518015, + "100.0" : 1.0008194397518015 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9766162767578125, + 0.9759815764614034, + 0.977302323463305 + ], + [ + 0.9921559711309523, + 1.0008194397518015, + 0.9969865728242449 + ], + [ + 0.9690377924418605, + 0.9826584856047951, + 0.9839928499458821 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013046854808199082, + "scoreError" : 7.155498045868686E-4, + "scoreConfidence" : [ + 0.012331305003612214, + 0.013762404612785951 + ], + "scorePercentiles" : { + "0.0" : 0.012759913740041137, + "50.0" : 0.013023311519173332, + "90.0" : 0.013313933373629036, + "95.0" : 0.013313933373629036, + "99.0" : 0.013313933373629036, + "99.9" : 0.013313933373629036, + "99.99" : 0.013313933373629036, + "99.999" : 0.013313933373629036, + "99.9999" : 0.013313933373629036, + "100.0" : 0.013313933373629036 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013197641879604188, + 0.013312456124516436, + 0.013313933373629036 + ], + [ + 0.012759913740041137, + 0.012848981158742476, + 0.012848202572661234 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.9100372274851996, + "scoreError" : 0.09267811388781177, + "scoreConfidence" : [ + 3.8173591135973877, + 4.002715341373011 + ], + "scorePercentiles" : { + "0.0" : 3.8678984586233565, + "50.0" : 3.906645754355439, + "90.0" : 3.9560345450949366, + "95.0" : 3.9560345450949366, + "99.0" : 3.9560345450949366, + "99.9" : 3.9560345450949366, + "99.99" : 3.9560345450949366, + "99.999" : 3.9560345450949366, + "99.9999" : 3.9560345450949366, + "100.0" : 3.9560345450949366 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8678984586233565, + 3.8990089734996105, + 3.914282535211268 + ], + [ + 3.8847961304347827, + 3.938202722047244, + 3.9560345450949366 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.074877921242732, + "scoreError" : 0.14285652352037062, + "scoreConfidence" : [ + 2.9320213977223615, + 3.217734444763103 + ], + "scorePercentiles" : { + "0.0" : 2.9614455812851643, + "50.0" : 3.079247117302956, + "90.0" : 3.1787071652892562, + "95.0" : 3.1787071652892562, + "99.0" : 3.1787071652892562, + "99.9" : 3.1787071652892562, + "99.99" : 3.1787071652892562, + "99.999" : 3.1787071652892562, + "99.9999" : 3.1787071652892562, + "100.0" : 3.1787071652892562 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.079247117302956, + 3.1787071652892562, + 3.1742028940019043 + ], + [ + 2.9614455812851643, + 3.001099893189319, + 2.99687381810009 + ], + [ + 3.162621833649589, + 3.011864800361337, + 3.107838188004972 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1792216150867655, + "scoreError" : 0.0028134776583006605, + "scoreConfidence" : [ + 0.17640813742846484, + 0.18203509274506618 + ], + "scorePercentiles" : { + "0.0" : 0.1767819975958139, + "50.0" : 0.1795381048653501, + "90.0" : 0.1817618339270784, + "95.0" : 0.1817618339270784, + "99.0" : 0.1817618339270784, + "99.9" : 0.1817618339270784, + "99.99" : 0.1817618339270784, + "99.999" : 0.1817618339270784, + "99.9999" : 0.1817618339270784, + "100.0" : 0.1817618339270784 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.18049263225340673, + 0.1804214153210529, + 0.1795381048653501 + ], + [ + 0.1817618339270784, + 0.17952781720912697, + 0.17965059216743015 + ], + [ + 0.1772999119373083, + 0.1775202305043225, + 0.1767819975958139 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33466733956572775, + "scoreError" : 0.004866797587081008, + "scoreConfidence" : [ + 0.3298005419786467, + 0.3395341371528088 + ], + "scorePercentiles" : { + "0.0" : 0.3300852951544758, + "50.0" : 0.3358559937533584, + "90.0" : 0.33746668143623665, + "95.0" : 0.33746668143623665, + "99.0" : 0.33746668143623665, + "99.9" : 0.33746668143623665, + "99.99" : 0.33746668143623665, + "99.999" : 0.33746668143623665, + "99.9999" : 0.33746668143623665, + "100.0" : 0.33746668143623665 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3300852951544758, + 0.3314083194034797, + 0.33132537756352914 + ], + [ + 0.33537929941645983, + 0.33673772668193147, + 0.3358559937533584 + ], + [ + 0.337392372537112, + 0.33746668143623665, + 0.33635499014496656 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17101508461082024, + "scoreError" : 0.010519194639942204, + "scoreConfidence" : [ + 0.16049588997087805, + 0.18153427925076243 + ], + "scorePercentiles" : { + "0.0" : 0.16516208604743343, + "50.0" : 0.16813719979487524, + "90.0" : 0.17961573141030246, + "95.0" : 0.17961573141030246, + "99.0" : 0.17961573141030246, + "99.9" : 0.17961573141030246, + "99.99" : 0.17961573141030246, + "99.999" : 0.17961573141030246, + "99.9999" : 0.17961573141030246, + "100.0" : 0.17961573141030246 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17919520307852202, + 0.17888246420649684, + 0.17961573141030246 + ], + [ + 0.16516208604743343, + 0.16615715744786907, + 0.16587774737505598 + ], + [ + 0.16861689849598704, + 0.16749127364084013, + 0.16813719979487524 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39043772821823275, + "scoreError" : 0.0047876565689028575, + "scoreConfidence" : [ + 0.3856500716493299, + 0.3952253847871356 + ], + "scorePercentiles" : { + "0.0" : 0.38742203788788593, + "50.0" : 0.38943609887456676, + "90.0" : 0.39498915905679755, + "95.0" : 0.39498915905679755, + "99.0" : 0.39498915905679755, + "99.9" : 0.39498915905679755, + "99.99" : 0.39498915905679755, + "99.999" : 0.39498915905679755, + "99.9999" : 0.39498915905679755, + "100.0" : 0.39498915905679755 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39472534043812907, + 0.39137307032717594, + 0.38897682500291725 + ], + [ + 0.39498915905679755, + 0.3910808260529506, + 0.38943609887456676 + ], + [ + 0.388212455628882, + 0.38742203788788593, + 0.3877237406947891 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15861643109426515, + "scoreError" : 0.003487971523721404, + "scoreConfidence" : [ + 0.15512845957054375, + 0.16210440261798656 + ], + "scorePercentiles" : { + "0.0" : 0.15579235488946705, + "50.0" : 0.1587464442257322, + "90.0" : 0.1619693449677691, + "95.0" : 0.1619693449677691, + "99.0" : 0.1619693449677691, + "99.9" : 0.1619693449677691, + "99.99" : 0.1619693449677691, + "99.999" : 0.1619693449677691, + "99.9999" : 0.1619693449677691, + "100.0" : 0.1619693449677691 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.158881436433542, + 0.1587464442257322, + 0.1579010665382429 + ], + [ + 0.1573456464535213, + 0.1560672353767401, + 0.15579235488946705 + ], + [ + 0.1619693449677691, + 0.16050901377140747, + 0.16033533719196422 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04797686652872106, + "scoreError" : 0.0022187213778125004, + "scoreConfidence" : [ + 0.04575814515090856, + 0.05019558790653356 + ], + "scorePercentiles" : { + "0.0" : 0.04637634170569958, + "50.0" : 0.04768700323789723, + "90.0" : 0.04974361433389377, + "95.0" : 0.04974361433389377, + "99.0" : 0.04974361433389377, + "99.9" : 0.04974361433389377, + "99.99" : 0.04974361433389377, + "99.999" : 0.04974361433389377, + "99.9999" : 0.04974361433389377, + "100.0" : 0.04974361433389377 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04974361433389377, + 0.049498889757855345, + 0.04956484810095212 + ], + [ + 0.04768409821807484, + 0.047797690581116346, + 0.04768700323789723 + ], + [ + 0.04654392197026818, + 0.04637634170569958, + 0.04689539085273208 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 1.0102506343115807E7, + "scoreError" : 414058.2334989545, + "scoreConfidence" : [ + 9688448.109616851, + 1.0516564576614762E7 + ], + "scorePercentiles" : { + "0.0" : 9719042.463556852, + "50.0" : 1.0038881575727182E7, + "90.0" : 1.0483148298742138E7, + "95.0" : 1.0483148298742138E7, + "99.0" : 1.0483148298742138E7, + "99.9" : 1.0483148298742138E7, + "99.99" : 1.0483148298742138E7, + "99.999" : 1.0483148298742138E7, + "99.9999" : 1.0483148298742138E7, + "100.0" : 1.0483148298742138E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9950572.298507463, + 9989488.596806386, + 9719042.463556852 + ], + [ + 1.014154786828774E7, + 1.0462304284518829E7, + 1.0483148298742138E7 + ], + [ + 1.0038881575727182E7, + 9967271.066733068, + 1.0170300635162601E7 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-20T04:24:26Z-9a931ba6ad8e2ee49ea48c98ca86c2901f2343b1-jdk17.json b/performance-results/2025-03-20T04:24:26Z-9a931ba6ad8e2ee49ea48c98ca86c2901f2343b1-jdk17.json new file mode 100644 index 000000000..f2de5b21a --- /dev/null +++ b/performance-results/2025-03-20T04:24:26Z-9a931ba6ad8e2ee49ea48c98ca86c2901f2343b1-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.424254609168787, + "scoreError" : 0.02613921724586001, + "scoreConfidence" : [ + 3.3981153919229268, + 3.450393826414647 + ], + "scorePercentiles" : { + "0.0" : 3.419489493150746, + "50.0" : 3.424232606853354, + "90.0" : 3.429063729817694, + "95.0" : 3.429063729817694, + "99.0" : 3.429063729817694, + "99.9" : 3.429063729817694, + "99.99" : 3.429063729817694, + "99.999" : 3.429063729817694, + "99.9999" : 3.429063729817694, + "100.0" : 3.429063729817694 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.422957283038915, + 3.4255079306677936 + ], + [ + 3.419489493150746, + 3.429063729817694 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7283881755988588, + "scoreError" : 0.0075711935811060855, + "scoreConfidence" : [ + 1.7208169820177528, + 1.7359593691799649 + ], + "scorePercentiles" : { + "0.0" : 1.7272608832354859, + "50.0" : 1.7281327281107284, + "90.0" : 1.7300263629384918, + "95.0" : 1.7300263629384918, + "99.0" : 1.7300263629384918, + "99.9" : 1.7300263629384918, + "99.99" : 1.7300263629384918, + "99.999" : 1.7300263629384918, + "99.9999" : 1.7300263629384918, + "100.0" : 1.7300263629384918 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7282618455510002, + 1.7272608832354859 + ], + [ + 1.7280036106704566, + 1.7300263629384918 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8682027175699097, + "scoreError" : 0.004935973252822849, + "scoreConfidence" : [ + 0.8632667443170869, + 0.8731386908227325 + ], + "scorePercentiles" : { + "0.0" : 0.8675676336105674, + "50.0" : 0.8679655469663551, + "90.0" : 0.8693121427363618, + "95.0" : 0.8693121427363618, + "99.0" : 0.8693121427363618, + "99.9" : 0.8693121427363618, + "99.99" : 0.8693121427363618, + "99.999" : 0.8693121427363618, + "99.9999" : 0.8693121427363618, + "100.0" : 0.8693121427363618 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8675676336105674, + 0.867922346385138 + ], + [ + 0.8680087475475722, + 0.8693121427363618 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.36869394908749, + "scoreError" : 0.04032602783381367, + "scoreConfidence" : [ + 16.328367921253676, + 16.409019976921304 + ], + "scorePercentiles" : { + "0.0" : 16.330608886150326, + "50.0" : 16.36573210114837, + "90.0" : 16.3997056798874, + "95.0" : 16.3997056798874, + "99.0" : 16.3997056798874, + "99.9" : 16.3997056798874, + "99.99" : 16.3997056798874, + "99.999" : 16.3997056798874, + "99.9999" : 16.3997056798874, + "100.0" : 16.3997056798874 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.36573210114837, + 16.39567738769027, + 16.3997056798874 + ], + [ + 16.354154879020427, + 16.35331486739305, + 16.330608886150326 + ], + [ + 16.38900046883599, + 16.348132670430132, + 16.38191860123142 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2755.2645435237955, + "scoreError" : 142.15005863441795, + "scoreConfidence" : [ + 2613.1144848893778, + 2897.4146021582133 + ], + "scorePercentiles" : { + "0.0" : 2645.769653967194, + "50.0" : 2777.358790668434, + "90.0" : 2844.082898480718, + "95.0" : 2844.082898480718, + "99.0" : 2844.082898480718, + "99.9" : 2844.082898480718, + "99.99" : 2844.082898480718, + "99.999" : 2844.082898480718, + "99.9999" : 2844.082898480718, + "100.0" : 2844.082898480718 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2645.769653967194, + 2650.136785283063, + 2651.473877519024 + ], + [ + 2780.1082222295813, + 2769.131638137327, + 2777.358790668434 + ], + [ + 2844.082898480718, + 2840.1765737310034, + 2839.1424516978195 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69686.99595380232, + "scoreError" : 1940.033884888202, + "scoreConfidence" : [ + 67746.96206891412, + 71627.02983869053 + ], + "scorePercentiles" : { + "0.0" : 68658.18447808478, + "50.0" : 69182.69094993896, + "90.0" : 71219.67727831232, + "95.0" : 71219.67727831232, + "99.0" : 71219.67727831232, + "99.9" : 71219.67727831232, + "99.99" : 71219.67727831232, + "99.999" : 71219.67727831232, + "99.9999" : 71219.67727831232, + "100.0" : 71219.67727831232 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 71197.47410218067, + 71180.94216999353, + 71219.67727831232 + ], + [ + 69167.24550293588, + 69182.69094993896, + 69185.52767427432 + ], + [ + 68700.10055066991, + 68658.18447808478, + 68691.12087783056 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 353.88994514661977, + "scoreError" : 8.60461783150149, + "scoreConfidence" : [ + 345.28532731511825, + 362.4945629781213 + ], + "scorePercentiles" : { + "0.0" : 347.80532224376645, + "50.0" : 353.0663168731576, + "90.0" : 360.1943821922987, + "95.0" : 360.1943821922987, + "99.0" : 360.1943821922987, + "99.9" : 360.1943821922987, + "99.99" : 360.1943821922987, + "99.999" : 360.1943821922987, + "99.9999" : 360.1943821922987, + "100.0" : 360.1943821922987 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 359.3096151632722, + 360.1943821922987, + 359.9042966967716 + ], + [ + 348.9299003319532, + 348.06675704900783, + 347.80532224376645 + ], + [ + 353.0663168731576, + 351.83558769978185, + 355.8973280695685 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.22422695181898, + "scoreError" : 2.300054928270859, + "scoreConfidence" : [ + 104.92417202354812, + 109.52428188008983 + ], + "scorePercentiles" : { + "0.0" : 105.11702222043792, + "50.0" : 107.60099849482508, + "90.0" : 108.64394817524074, + "95.0" : 108.64394817524074, + "99.0" : 108.64394817524074, + "99.9" : 108.64394817524074, + "99.99" : 108.64394817524074, + "99.999" : 108.64394817524074, + "99.9999" : 108.64394817524074, + "100.0" : 108.64394817524074 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 106.10524767429007, + 105.47579180802381, + 105.11702222043792 + ], + [ + 108.61995646598682, + 108.56537197809733, + 108.64394817524074 + ], + [ + 107.10120847440774, + 107.60099849482508, + 107.78849727506135 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.0612988109620845, + "scoreError" : 8.652535687359045E-4, + "scoreConfidence" : [ + 0.060433557393348596, + 0.0621640645308204 + ], + "scorePercentiles" : { + "0.0" : 0.06061360878156405, + "50.0" : 0.06131260160268791, + "90.0" : 0.061910864993035136, + "95.0" : 0.061910864993035136, + "99.0" : 0.061910864993035136, + "99.9" : 0.061910864993035136, + "99.99" : 0.061910864993035136, + "99.999" : 0.061910864993035136, + "99.9999" : 0.061910864993035136, + "100.0" : 0.061910864993035136 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.061816245462750045, + 0.061910864993035136, + 0.061907721375817945 + ], + [ + 0.06070640137194196, + 0.06061360878156405, + 0.06077460113646723 + ], + [ + 0.06124887921308744, + 0.06131260160268791, + 0.0613983747214087 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.83704055702058E-4, + "scoreError" : 1.8341314884139816E-5, + "scoreConfidence" : [ + 3.653627408179182E-4, + 4.020453705861978E-4 + ], + "scorePercentiles" : { + "0.0" : 3.7188639856197784E-4, + "50.0" : 3.7950586013066773E-4, + "90.0" : 3.981731629629329E-4, + "95.0" : 3.981731629629329E-4, + "99.0" : 3.981731629629329E-4, + "99.9" : 3.981731629629329E-4, + "99.99" : 3.981731629629329E-4, + "99.999" : 3.981731629629329E-4, + "99.9999" : 3.981731629629329E-4, + "100.0" : 3.981731629629329E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.974309778124687E-4, + 3.981731629629329E-4, + 3.978541673612461E-4 + ], + [ + 3.7925996341091464E-4, + 3.7981703252567807E-4, + 3.7950586013066773E-4 + ], + [ + 3.7188639856197784E-4, + 3.7403482801825057E-4, + 3.7537411053438545E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014271994702376285, + "scoreError" : 5.216322474734358E-4, + "scoreConfidence" : [ + 0.01375036245490285, + 0.01479362694984972 + ], + "scorePercentiles" : { + "0.0" : 0.01395132297181729, + "50.0" : 0.014194895541158969, + "90.0" : 0.014695156501421738, + "95.0" : 0.014695156501421738, + "99.0" : 0.014695156501421738, + "99.9" : 0.014695156501421738, + "99.99" : 0.014695156501421738, + "99.999" : 0.014695156501421738, + "99.9999" : 0.014695156501421738, + "100.0" : 0.014695156501421738 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014645885331614907, + 0.014695156501421738, + 0.01464714127276136 + ], + [ + 0.013970092754773178, + 0.013957995058929938, + 0.01395132297181729 + ], + [ + 0.014183137027334836, + 0.014194895541158969, + 0.014202325861574338 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9710519168134688, + "scoreError" : 0.011208694685730868, + "scoreConfidence" : [ + 0.959843222127738, + 0.9822606114991996 + ], + "scorePercentiles" : { + "0.0" : 0.9630646993451464, + "50.0" : 0.9684868110594615, + "90.0" : 0.9809538926924963, + "95.0" : 0.9809538926924963, + "99.0" : 0.9809538926924963, + "99.9" : 0.9809538926924963, + "99.99" : 0.9809538926924963, + "99.999" : 0.9809538926924963, + "99.9999" : 0.9809538926924963, + "100.0" : 0.9809538926924963 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9668159646171693, + 0.9671069353060633, + 0.9724057801439129 + ], + [ + 0.9751261756045242, + 0.9808086011180855, + 0.9809538926924963 + ], + [ + 0.964698391434359, + 0.9684868110594615, + 0.9630646993451464 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013268263113495505, + "scoreError" : 4.465237350273874E-4, + "scoreConfidence" : [ + 0.012821739378468118, + 0.013714786848522892 + ], + "scorePercentiles" : { + "0.0" : 0.013099557043340206, + "50.0" : 0.013270168813548271, + "90.0" : 0.01348281547845361, + "95.0" : 0.01348281547845361, + "99.0" : 0.01348281547845361, + "99.9" : 0.01348281547845361, + "99.99" : 0.01348281547845361, + "99.999" : 0.01348281547845361, + "99.9999" : 0.01348281547845361, + "100.0" : 0.01348281547845361 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013351823428725543, + 0.013380745552344251, + 0.01348281547845361 + ], + [ + 0.013099557043340206, + 0.013188514198370999, + 0.013106122979738408 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.8236215956341684, + "scoreError" : 0.11204404869949024, + "scoreConfidence" : [ + 3.711577546934678, + 3.9356656443336586 + ], + "scorePercentiles" : { + "0.0" : 3.7785576442598185, + "50.0" : 3.8263314364495367, + "90.0" : 3.8664696870170014, + "95.0" : 3.8664696870170014, + "99.0" : 3.8664696870170014, + "99.9" : 3.8664696870170014, + "99.99" : 3.8664696870170014, + "99.999" : 3.8664696870170014, + "99.9999" : 3.8664696870170014, + "100.0" : 3.8664696870170014 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.784792498487141, + 3.800600712006079, + 3.7785576442598185 + ], + [ + 3.859246871141975, + 3.8520621608929946, + 3.8664696870170014 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8760393545398433, + "scoreError" : 0.03561405209144057, + "scoreConfidence" : [ + 2.8404253024484025, + 2.911653406631284 + ], + "scorePercentiles" : { + "0.0" : 2.8550628495575223, + "50.0" : 2.867487625860092, + "90.0" : 2.9119395694323145, + "95.0" : 2.9119395694323145, + "99.0" : 2.9119395694323145, + "99.9" : 2.9119395694323145, + "99.99" : 2.9119395694323145, + "99.999" : 2.9119395694323145, + "99.9999" : 2.9119395694323145, + "100.0" : 2.9119395694323145 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.9119395694323145, + 2.896368578048074, + 2.9009854074825987 + ], + [ + 2.8569692313624677, + 2.8603496425507577, + 2.8550628495575223 + ], + [ + 2.868876608146873, + 2.867487625860092, + 2.8663146784178846 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17666360171690498, + "scoreError" : 0.007018650315553071, + "scoreConfidence" : [ + 0.1696449514013519, + 0.18368225203245805 + ], + "scorePercentiles" : { + "0.0" : 0.171930377965752, + "50.0" : 0.17588338716428936, + "90.0" : 0.18198961034777703, + "95.0" : 0.18198961034777703, + "99.0" : 0.18198961034777703, + "99.9" : 0.18198961034777703, + "99.99" : 0.18198961034777703, + "99.999" : 0.18198961034777703, + "99.9999" : 0.18198961034777703, + "100.0" : 0.18198961034777703 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17230693078553336, + 0.171930377965752, + 0.17222718737944337 + ], + [ + 0.18198961034777703, + 0.18161404623794564, + 0.18156196546778264 + ], + [ + 0.17679468235980483, + 0.17588338716428936, + 0.17566422774381676 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.328427280265929, + "scoreError" : 0.009007381611096744, + "scoreConfidence" : [ + 0.3194198986548322, + 0.33743466187702575 + ], + "scorePercentiles" : { + "0.0" : 0.32402172724621714, + "50.0" : 0.32554089566717664, + "90.0" : 0.3365099610000673, + "95.0" : 0.3365099610000673, + "99.0" : 0.3365099610000673, + "99.9" : 0.3365099610000673, + "99.99" : 0.3365099610000673, + "99.999" : 0.3365099610000673, + "99.9999" : 0.3365099610000673, + "100.0" : 0.3365099610000673 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32554089566717664, + 0.3255366924379049, + 0.3257196699889258 + ], + [ + 0.32449776503991173, + 0.32402172724621714, + 0.3240274855161688 + ], + [ + 0.3365099610000673, + 0.33505243635876303, + 0.33493888913822556 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1671680197141367, + "scoreError" : 0.0031650202498782714, + "scoreConfidence" : [ + 0.16400299946425842, + 0.17033303996401497 + ], + "scorePercentiles" : { + "0.0" : 0.16575822910658047, + "50.0" : 0.1660215798718332, + "90.0" : 0.16990446979170207, + "95.0" : 0.16990446979170207, + "99.0" : 0.16990446979170207, + "99.9" : 0.16990446979170207, + "99.99" : 0.16990446979170207, + "99.999" : 0.16990446979170207, + "99.9999" : 0.16990446979170207, + "100.0" : 0.16990446979170207 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16575822910658047, + 0.16582184809391945, + 0.16580947611546815 + ], + [ + 0.16954085197680727, + 0.16956868575982637, + 0.16990446979170207 + ], + [ + 0.16597716160727624, + 0.1660215798718332, + 0.16610987510381714 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3920398294957659, + "scoreError" : 0.008199953086242167, + "scoreConfidence" : [ + 0.3838398764095237, + 0.40023978258200804 + ], + "scorePercentiles" : { + "0.0" : 0.3855065223777033, + "50.0" : 0.39384232234562067, + "90.0" : 0.3974420058421429, + "95.0" : 0.3974420058421429, + "99.0" : 0.3974420058421429, + "99.9" : 0.3974420058421429, + "99.99" : 0.3974420058421429, + "99.999" : 0.3974420058421429, + "99.9999" : 0.3974420058421429, + "100.0" : 0.3974420058421429 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3960158337161413, + 0.39384232234562067, + 0.3934183516660766 + ], + [ + 0.3974420058421429, + 0.3958316693714376, + 0.3945936228149785 + ], + [ + 0.38551056595990746, + 0.3855065223777033, + 0.38619757136788446 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15782436732750707, + "scoreError" : 0.002616382192165471, + "scoreConfidence" : [ + 0.1552079851353416, + 0.16044074951967255 + ], + "scorePercentiles" : { + "0.0" : 0.15603131695557879, + "50.0" : 0.15772105887548302, + "90.0" : 0.1594922870972887, + "95.0" : 0.1594922870972887, + "99.0" : 0.1594922870972887, + "99.9" : 0.1594922870972887, + "99.99" : 0.1594922870972887, + "99.999" : 0.1594922870972887, + "99.9999" : 0.1594922870972887, + "100.0" : 0.1594922870972887 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15940837378455064, + 0.15939634857662022, + 0.15924676244088093 + ], + [ + 0.1594922870972887, + 0.15603131695557879, + 0.15647512279960568 + ], + [ + 0.15772105887548302, + 0.15649656486697966, + 0.15615147055057618 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.047281600662263244, + "scoreError" : 6.838695510515516E-4, + "scoreConfidence" : [ + 0.046597731111211696, + 0.04796547021331479 + ], + "scorePercentiles" : { + "0.0" : 0.04668713239804851, + "50.0" : 0.04720676570665181, + "90.0" : 0.04785155874401267, + "95.0" : 0.04785155874401267, + "99.0" : 0.04785155874401267, + "99.9" : 0.04785155874401267, + "99.99" : 0.04785155874401267, + "99.999" : 0.04785155874401267, + "99.9999" : 0.04785155874401267, + "100.0" : 0.04785155874401267 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04781449074800138, + 0.047079504446610076, + 0.046953820972119184 + ], + [ + 0.046992236287851735, + 0.04668713239804851, + 0.04720676570665181 + ], + [ + 0.04785155874401267, + 0.047633694671760235, + 0.0473152019853136 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9135012.469143517, + "scoreError" : 253053.52971484294, + "scoreConfidence" : [ + 8881958.939428674, + 9388065.99885836 + ], + "scorePercentiles" : { + "0.0" : 8947247.978533095, + "50.0" : 9055753.752941176, + "90.0" : 9349670.872897197, + "95.0" : 9349670.872897197, + "99.0" : 9349670.872897197, + "99.9" : 9349670.872897197, + "99.99" : 9349670.872897197, + "99.999" : 9349670.872897197, + "99.9999" : 9349670.872897197, + "100.0" : 9349670.872897197 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9320103.47530289, + 9349670.872897197, + 9313670.555865921 + ], + [ + 8947247.978533095, + 9036093.97289973, + 9037422.124661246 + ], + [ + 9106851.006369427, + 9048298.482820977, + 9055753.752941176 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T00:22:41Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json b/performance-results/2025-03-24T00:22:41Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json new file mode 100644 index 000000000..a51d44b83 --- /dev/null +++ b/performance-results/2025-03-24T00:22:41Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4176518241718075, + "scoreError" : 0.03280658276993444, + "scoreConfidence" : [ + 3.384845241401873, + 3.450458406941742 + ], + "scorePercentiles" : { + "0.0" : 3.4124960763887926, + "50.0" : 3.4167311543305194, + "90.0" : 3.424648911637398, + "95.0" : 3.424648911637398, + "99.0" : 3.424648911637398, + "99.9" : 3.424648911637398, + "99.99" : 3.424648911637398, + "99.999" : 3.424648911637398, + "99.9999" : 3.424648911637398, + "100.0" : 3.424648911637398 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4124960763887926, + 3.4169398837072293 + ], + [ + 3.416522424953809, + 3.424648911637398 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7270621320703794, + "scoreError" : 0.008373270312183335, + "scoreConfidence" : [ + 1.7186888617581961, + 1.7354354023825627 + ], + "scorePercentiles" : { + "0.0" : 1.7254785768184715, + "50.0" : 1.7272053680709314, + "90.0" : 1.728359215321183, + "95.0" : 1.728359215321183, + "99.0" : 1.728359215321183, + "99.9" : 1.728359215321183, + "99.99" : 1.728359215321183, + "99.999" : 1.728359215321183, + "99.9999" : 1.728359215321183, + "100.0" : 1.728359215321183 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7278401816392681, + 1.728359215321183 + ], + [ + 1.7254785768184715, + 1.7265705545025947 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.868071044762071, + "scoreError" : 0.004228217601595203, + "scoreConfidence" : [ + 0.8638428271604758, + 0.8722992623636662 + ], + "scorePercentiles" : { + "0.0" : 0.8675660430469083, + "50.0" : 0.8678863787909559, + "90.0" : 0.8689453784194636, + "95.0" : 0.8689453784194636, + "99.0" : 0.8689453784194636, + "99.9" : 0.8689453784194636, + "99.99" : 0.8689453784194636, + "99.999" : 0.8689453784194636, + "99.9999" : 0.8689453784194636, + "100.0" : 0.8689453784194636 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8675727546647017, + 0.8682000029172099 + ], + [ + 0.8675660430469083, + 0.8689453784194636 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.21024972688744, + "scoreError" : 0.07558240245151955, + "scoreConfidence" : [ + 16.13466732443592, + 16.28583212933896 + ], + "scorePercentiles" : { + "0.0" : 16.13359353840349, + "50.0" : 16.236806302152885, + "90.0" : 16.25798250721321, + "95.0" : 16.25798250721321, + "99.0" : 16.25798250721321, + "99.9" : 16.25798250721321, + "99.99" : 16.25798250721321, + "99.999" : 16.25798250721321, + "99.9999" : 16.25798250721321, + "100.0" : 16.25798250721321 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.203181117707555, + 16.16988292740664, + 16.13359353840349 + ], + [ + 16.245425626132974, + 16.161443650413105, + 16.244571346287103 + ], + [ + 16.239360526269998, + 16.236806302152885, + 16.25798250721321 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2669.028993204871, + "scoreError" : 137.4498966451194, + "scoreConfidence" : [ + 2531.5790965597516, + 2806.47888984999 + ], + "scorePercentiles" : { + "0.0" : 2556.6799422908157, + "50.0" : 2698.057835761459, + "90.0" : 2749.80392247701, + "95.0" : 2749.80392247701, + "99.0" : 2749.80392247701, + "99.9" : 2749.80392247701, + "99.99" : 2749.80392247701, + "99.999" : 2749.80392247701, + "99.9999" : 2749.80392247701, + "100.0" : 2749.80392247701 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2698.057835761459, + 2700.513649170286, + 2691.3840174449533 + ], + [ + 2745.679025287743, + 2743.8605837566774, + 2749.80392247701 + ], + [ + 2556.6799422908157, + 2569.604626828068, + 2565.6773358268297 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69622.25476604533, + "scoreError" : 3039.3046996421267, + "scoreConfidence" : [ + 66582.9500664032, + 72661.55946568746 + ], + "scorePercentiles" : { + "0.0" : 67945.86095422869, + "50.0" : 68858.10770484112, + "90.0" : 71994.01572630244, + "95.0" : 71994.01572630244, + "99.0" : 71994.01572630244, + "99.9" : 71994.01572630244, + "99.99" : 71994.01572630244, + "99.999" : 71994.01572630244, + "99.9999" : 71994.01572630244, + "100.0" : 71994.01572630244 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 71985.8498471133, + 71984.38163765594, + 71994.01572630244 + ], + [ + 68131.5306860081, + 67945.86095422869, + 68039.64569420867 + ], + [ + 68858.10770484112, + 68791.96960924863, + 68868.93103480102 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 345.54602006775417, + "scoreError" : 10.379158594558005, + "scoreConfidence" : [ + 335.16686147319615, + 355.9251786623122 + ], + "scorePercentiles" : { + "0.0" : 337.0649979908811, + "50.0" : 347.4970106082307, + "90.0" : 354.3317645250134, + "95.0" : 354.3317645250134, + "99.0" : 354.3317645250134, + "99.9" : 354.3317645250134, + "99.99" : 354.3317645250134, + "99.999" : 354.3317645250134, + "99.9999" : 354.3317645250134, + "100.0" : 354.3317645250134 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 349.88831901345856, + 350.18456102805493, + 354.3317645250134 + ], + [ + 347.4970106082307, + 348.05296895971105, + 346.12872413474 + ], + [ + 337.23163930227275, + 337.0649979908811, + 339.53419504742493 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.35371713199402, + "scoreError" : 1.314903125074696, + "scoreConfidence" : [ + 106.03881400691932, + 108.66862025706871 + ], + "scorePercentiles" : { + "0.0" : 106.50530219512214, + "50.0" : 107.18568194367174, + "90.0" : 108.41755405532847, + "95.0" : 108.41755405532847, + "99.0" : 108.41755405532847, + "99.9" : 108.41755405532847, + "99.99" : 108.41755405532847, + "99.999" : 108.41755405532847, + "99.9999" : 108.41755405532847, + "100.0" : 108.41755405532847 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 108.24981127400055, + 108.32662146400149, + 108.41755405532847 + ], + [ + 107.18568194367174, + 107.13477003105366, + 107.19828019655115 + ], + [ + 106.51999139644225, + 106.50530219512214, + 106.64544163177464 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06214532710612761, + "scoreError" : 0.0011852883013128773, + "scoreConfidence" : [ + 0.06096003880481473, + 0.06333061540744049 + ], + "scorePercentiles" : { + "0.0" : 0.06138486032693099, + "50.0" : 0.061953984499293735, + "90.0" : 0.06306548163563896, + "95.0" : 0.06306548163563896, + "99.0" : 0.06306548163563896, + "99.9" : 0.06306548163563896, + "99.99" : 0.06306548163563896, + "99.999" : 0.06306548163563896, + "99.9999" : 0.06306548163563896, + "100.0" : 0.06306548163563896 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06296859688814448, + 0.06306548163563896, + 0.06306126613401607 + ], + [ + 0.06203823581048805, + 0.061953984499293735, + 0.06191340799787021 + ], + [ + 0.06145513012296971, + 0.06138486032693099, + 0.0614669805397963 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.6512152469115493E-4, + "scoreError" : 1.1829384828379278E-5, + "scoreConfidence" : [ + 3.5329213986277566E-4, + 3.769509095195342E-4 + ], + "scorePercentiles" : { + "0.0" : 3.567600496961329E-4, + "50.0" : 3.644490447931634E-4, + "90.0" : 3.741745325947859E-4, + "95.0" : 3.741745325947859E-4, + "99.0" : 3.741745325947859E-4, + "99.9" : 3.741745325947859E-4, + "99.99" : 3.741745325947859E-4, + "99.999" : 3.741745325947859E-4, + "99.9999" : 3.741745325947859E-4, + "100.0" : 3.741745325947859E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6447179445013437E-4, + 3.644490447931634E-4, + 3.638343372007972E-4 + ], + [ + 3.574252590678668E-4, + 3.582691317531037E-4, + 3.567600496961329E-4 + ], + [ + 3.7298703933026005E-4, + 3.741745325947859E-4, + 3.7372253333415055E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014286522855636308, + "scoreError" : 3.422176757491122E-4, + "scoreConfidence" : [ + 0.013944305179887196, + 0.01462874053138542 + ], + "scorePercentiles" : { + "0.0" : 0.014121189797843438, + "50.0" : 0.014170198734616665, + "90.0" : 0.014574590904983574, + "95.0" : 0.014574590904983574, + "99.0" : 0.014574590904983574, + "99.9" : 0.014574590904983574, + "99.99" : 0.014574590904983574, + "99.999" : 0.014574590904983574, + "99.9999" : 0.014574590904983574, + "100.0" : 0.014574590904983574 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014548139487416732, + 0.014546160303777877, + 0.014574590904983574 + ], + [ + 0.01416057589840752, + 0.014192353136610967, + 0.014170198734616665 + ], + [ + 0.014127603557568556, + 0.014121189797843438, + 0.014137893879501448 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9921077492196557, + "scoreError" : 0.01930856406398767, + "scoreConfidence" : [ + 0.9727991851556681, + 1.0114163132836433 + ], + "scorePercentiles" : { + "0.0" : 0.9776878349789814, + "50.0" : 0.9924878263199682, + "90.0" : 1.0144587190099412, + "95.0" : 1.0144587190099412, + "99.0" : 1.0144587190099412, + "99.9" : 1.0144587190099412, + "99.99" : 1.0144587190099412, + "99.999" : 1.0144587190099412, + "99.9999" : 1.0144587190099412, + "100.0" : 1.0144587190099412 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9970329595214357, + 0.9986729526662672, + 0.9964110701404802 + ], + [ + 0.9829197303911933, + 0.9788613039052559, + 0.9776878349789814 + ], + [ + 1.0144587190099412, + 0.9904373460433792, + 0.9924878263199682 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012921779722266246, + "scoreError" : 2.2252345704252554E-4, + "scoreConfidence" : [ + 0.01269925626522372, + 0.013144303179308772 + ], + "scorePercentiles" : { + "0.0" : 0.012807454812541783, + "50.0" : 0.012926500284236968, + "90.0" : 0.013009797126978096, + "95.0" : 0.013009797126978096, + "99.0" : 0.013009797126978096, + "99.9" : 0.013009797126978096, + "99.99" : 0.013009797126978096, + "99.999" : 0.013009797126978096, + "99.9999" : 0.013009797126978096, + "100.0" : 0.013009797126978096 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012807454812541783, + 0.012876620666477814, + 0.012877833138453773 + ], + [ + 0.012975167430020163, + 0.012983805159125847, + 0.013009797126978096 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6740661339279614, + "scoreError" : 0.1367137587039101, + "scoreConfidence" : [ + 3.537352375224051, + 3.8107798926318717 + ], + "scorePercentiles" : { + "0.0" : 3.6163268293564714, + "50.0" : 3.665471940654629, + "90.0" : 3.7335179947761192, + "95.0" : 3.7335179947761192, + "99.0" : 3.7335179947761192, + "99.9" : 3.7335179947761192, + "99.99" : 3.7335179947761192, + "99.999" : 3.7335179947761192, + "99.9999" : 3.7335179947761192, + "100.0" : 3.7335179947761192 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6163268293564714, + 3.639242845705968, + 3.641746879096868 + ], + [ + 3.6891970022123894, + 3.7335179947761192, + 3.7243652524199553 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.912590076892591, + "scoreError" : 0.0803534341024097, + "scoreConfidence" : [ + 2.8322366427901815, + 2.992943510995001 + ], + "scorePercentiles" : { + "0.0" : 2.875525743243243, + "50.0" : 2.884065987600923, + "90.0" : 2.9793437852249034, + "95.0" : 2.9793437852249034, + "99.0" : 2.9793437852249034, + "99.9" : 2.9793437852249034, + "99.99" : 2.9793437852249034, + "99.999" : 2.9793437852249034, + "99.9999" : 2.9793437852249034, + "100.0" : 2.9793437852249034 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8792008750719633, + 2.875525743243243, + 2.879239616292458 + ], + [ + 2.977670115212861, + 2.9793437852249034, + 2.971356167260844 + ], + [ + 2.887610698614319, + 2.884065987600923, + 2.879297703511802 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18040665676819445, + "scoreError" : 0.016040685065821514, + "scoreConfidence" : [ + 0.16436597170237294, + 0.19644734183401596 + ], + "scorePercentiles" : { + "0.0" : 0.17271579670120898, + "50.0" : 0.17492238903270946, + "90.0" : 0.19332436052041446, + "95.0" : 0.19332436052041446, + "99.0" : 0.19332436052041446, + "99.9" : 0.19332436052041446, + "99.99" : 0.19332436052041446, + "99.999" : 0.19332436052041446, + "99.9999" : 0.19332436052041446, + "100.0" : 0.19332436052041446 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17597227153867812, + 0.17492238903270946, + 0.1748560182371352 + ], + [ + 0.19332436052041446, + 0.19294238105344394, + 0.19289537515190094 + ], + [ + 0.17271579670120898, + 0.17295336802144587, + 0.17307795065681303 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3337584233657038, + "scoreError" : 0.00641428915227004, + "scoreConfidence" : [ + 0.3273441342134338, + 0.3401727125179739 + ], + "scorePercentiles" : { + "0.0" : 0.330027413253688, + "50.0" : 0.3320781430563857, + "90.0" : 0.33920266566040297, + "95.0" : 0.33920266566040297, + "99.0" : 0.33920266566040297, + "99.9" : 0.33920266566040297, + "99.99" : 0.33920266566040297, + "99.999" : 0.33920266566040297, + "99.9999" : 0.33920266566040297, + "100.0" : 0.33920266566040297 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.33920266566040297, + 0.33819932622002774, + 0.33880499762840494 + ], + [ + 0.330027413253688, + 0.3304519575705505, + 0.3308180865394158 + ], + [ + 0.3322776499534822, + 0.3320781430563857, + 0.33196557040897623 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1661026225633705, + "scoreError" : 0.008337119359901021, + "scoreConfidence" : [ + 0.15776550320346946, + 0.17443974192327152 + ], + "scorePercentiles" : { + "0.0" : 0.15952054031807814, + "50.0" : 0.167699954084285, + "90.0" : 0.17118456085453113, + "95.0" : 0.17118456085453113, + "99.0" : 0.17118456085453113, + "99.9" : 0.17118456085453113, + "99.99" : 0.17118456085453113, + "99.999" : 0.17118456085453113, + "99.9999" : 0.17118456085453113, + "100.0" : 0.17118456085453113 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17118456085453113, + 0.17085764863571903, + 0.17079298237464136 + ], + [ + 0.15952054031807814, + 0.15996125433489028, + 0.159874185931255 + ], + [ + 0.16773681192237375, + 0.167699954084285, + 0.16729566461456102 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38635613779325884, + "scoreError" : 0.0060439134029958005, + "scoreConfidence" : [ + 0.380312224390263, + 0.39240005119625465 + ], + "scorePercentiles" : { + "0.0" : 0.38195458276678634, + "50.0" : 0.38560133064702706, + "90.0" : 0.39093867740422206, + "95.0" : 0.39093867740422206, + "99.0" : 0.39093867740422206, + "99.9" : 0.39093867740422206, + "99.99" : 0.39093867740422206, + "99.999" : 0.39093867740422206, + "99.9999" : 0.39093867740422206, + "100.0" : 0.39093867740422206 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3823639669649002, + 0.38230232548359966, + 0.38195458276678634 + ], + [ + 0.38974632624030553, + 0.3855979278195489, + 0.38560133064702706 + ], + [ + 0.38964763343074227, + 0.39093867740422206, + 0.38905246938219734 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15826757739724495, + "scoreError" : 0.004627573086720224, + "scoreConfidence" : [ + 0.1536400043105247, + 0.1628951504839652 + ], + "scorePercentiles" : { + "0.0" : 0.15448236841536134, + "50.0" : 0.1591381985041375, + "90.0" : 0.16089253403587805, + "95.0" : 0.16089253403587805, + "99.0" : 0.16089253403587805, + "99.9" : 0.16089253403587805, + "99.99" : 0.16089253403587805, + "99.999" : 0.16089253403587805, + "99.9999" : 0.16089253403587805, + "100.0" : 0.16089253403587805 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15521114455998758, + 0.15448236841536134, + 0.15455100908739663 + ], + [ + 0.1608481260535289, + 0.16089253403587805, + 0.16086269677959014 + ], + [ + 0.1591381985041375, + 0.15963652022540067, + 0.1587855989139237 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.047272604046442124, + "scoreError" : 0.001440391145386556, + "scoreConfidence" : [ + 0.04583221290105557, + 0.04871299519182868 + ], + "scorePercentiles" : { + "0.0" : 0.04625750033304962, + "50.0" : 0.04723635614652465, + "90.0" : 0.04837972442320066, + "95.0" : 0.04837972442320066, + "99.0" : 0.04837972442320066, + "99.9" : 0.04837972442320066, + "99.99" : 0.04837972442320066, + "99.999" : 0.04837972442320066, + "99.9999" : 0.04837972442320066, + "100.0" : 0.04837972442320066 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04741171134216128, + 0.04722703777166983, + 0.04723635614652465 + ], + [ + 0.04837972442320066, + 0.048154765152864924, + 0.04821053368912287 + ], + [ + 0.046259463596623106, + 0.04625750033304962, + 0.04631634396276226 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9628501.02926758, + "scoreError" : 641376.5173927421, + "scoreConfidence" : [ + 8987124.511874838, + 1.026987754666032E7 + ], + "scorePercentiles" : { + "0.0" : 9113710.301457195, + "50.0" : 9821262.300294407, + "90.0" : 9976360.238285145, + "95.0" : 9976360.238285145, + "99.0" : 9976360.238285145, + "99.9" : 9976360.238285145, + "99.99" : 9976360.238285145, + "99.999" : 9976360.238285145, + "99.9999" : 9976360.238285145, + "100.0" : 9976360.238285145 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9976360.238285145, + 9899911.798219584, + 9908957.99009901 + ], + [ + 9126353.703467153, + 9131182.38229927, + 9113710.301457195 + ], + [ + 9866579.378698224, + 9812191.170588234, + 9821262.300294407 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T00:22:42Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json b/performance-results/2025-03-24T00:22:42Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json new file mode 100644 index 000000000..71f139c13 --- /dev/null +++ b/performance-results/2025-03-24T00:22:42Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.420161184183998, + "scoreError" : 0.01312921616822022, + "scoreConfidence" : [ + 3.4070319680157777, + 3.4332904003522184 + ], + "scorePercentiles" : { + "0.0" : 3.4181212856651784, + "50.0" : 3.4200665558935337, + "90.0" : 3.422390339283747, + "95.0" : 3.422390339283747, + "99.0" : 3.422390339283747, + "99.9" : 3.422390339283747, + "99.99" : 3.422390339283747, + "99.999" : 3.422390339283747, + "99.9999" : 3.422390339283747, + "100.0" : 3.422390339283747 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4213385479537735, + 3.422390339283747 + ], + [ + 3.418794563833294, + 3.4181212856651784 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7276845429241154, + "scoreError" : 0.01306208372096958, + "scoreConfidence" : [ + 1.7146224592031458, + 1.740746626645085 + ], + "scorePercentiles" : { + "0.0" : 1.7256505716963815, + "50.0" : 1.727679262588992, + "90.0" : 1.7297290748220968, + "95.0" : 1.7297290748220968, + "99.0" : 1.7297290748220968, + "99.9" : 1.7297290748220968, + "99.99" : 1.7297290748220968, + "99.999" : 1.7297290748220968, + "99.9999" : 1.7297290748220968, + "100.0" : 1.7297290748220968 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7290829413006634, + 1.7297290748220968 + ], + [ + 1.7256505716963815, + 1.7262755838773205 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8687410304418786, + "scoreError" : 0.0024592742022505935, + "scoreConfidence" : [ + 0.866281756239628, + 0.8712003046441291 + ], + "scorePercentiles" : { + "0.0" : 0.8684148887674343, + "50.0" : 0.8686953515573114, + "90.0" : 0.8691585298854573, + "95.0" : 0.8691585298854573, + "99.0" : 0.8691585298854573, + "99.9" : 0.8691585298854573, + "99.99" : 0.8691585298854573, + "99.999" : 0.8691585298854573, + "99.9999" : 0.8691585298854573, + "100.0" : 0.8691585298854573 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.868968907418696, + 0.8691585298854573 + ], + [ + 0.8684217956959267, + 0.8684148887674343 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.224821826130235, + "scoreError" : 0.10048051732951685, + "scoreConfidence" : [ + 16.12434130880072, + 16.32530234345975 + ], + "scorePercentiles" : { + "0.0" : 16.16446628444778, + "50.0" : 16.216501795428456, + "90.0" : 16.31885112609713, + "95.0" : 16.31885112609713, + "99.0" : 16.31885112609713, + "99.9" : 16.31885112609713, + "99.99" : 16.31885112609713, + "99.999" : 16.31885112609713, + "99.9999" : 16.31885112609713, + "100.0" : 16.31885112609713 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.167966195040854, + 16.171702268596363, + 16.186333278362973 + ], + [ + 16.216501795428456, + 16.219076817393454, + 16.16446628444778 + ], + [ + 16.27979011280597, + 16.31885112609713, + 16.29870855699916 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2737.5909349527656, + "scoreError" : 119.9485903655442, + "scoreConfidence" : [ + 2617.6423445872215, + 2857.5395253183096 + ], + "scorePercentiles" : { + "0.0" : 2657.620468169439, + "50.0" : 2728.8335513951547, + "90.0" : 2828.7526106375753, + "95.0" : 2828.7526106375753, + "99.0" : 2828.7526106375753, + "99.9" : 2828.7526106375753, + "99.99" : 2828.7526106375753, + "99.999" : 2828.7526106375753, + "99.9999" : 2828.7526106375753, + "100.0" : 2828.7526106375753 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2657.620468169439, + 2662.884293462235, + 2659.29952062177 + ], + [ + 2824.7339008494246, + 2828.7526106375753, + 2818.3510215124497 + ], + [ + 2728.2922326958756, + 2729.550815230966, + 2728.8335513951547 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69862.82581904189, + "scoreError" : 1728.1188838150238, + "scoreConfidence" : [ + 68134.70693522686, + 71590.94470285691 + ], + "scorePercentiles" : { + "0.0" : 68958.28296516981, + "50.0" : 69417.52869894679, + "90.0" : 71216.90369253689, + "95.0" : 71216.90369253689, + "99.0" : 71216.90369253689, + "99.9" : 71216.90369253689, + "99.99" : 71216.90369253689, + "99.999" : 71216.90369253689, + "99.9999" : 71216.90369253689, + "100.0" : 71216.90369253689 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69002.86496078158, + 68958.28296516981, + 68978.58832205336 + ], + [ + 69353.2210103416, + 69417.52869894679, + 69417.55557708694 + ], + [ + 71210.03441354769, + 71216.90369253689, + 71210.45273091237 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 356.6851162543681, + "scoreError" : 2.9786665796925273, + "scoreConfidence" : [ + 353.7064496746756, + 359.6637828340606 + ], + "scorePercentiles" : { + "0.0" : 355.03951802399394, + "50.0" : 355.77587736376466, + "90.0" : 359.56820737462897, + "95.0" : 359.56820737462897, + "99.0" : 359.56820737462897, + "99.9" : 359.56820737462897, + "99.99" : 359.56820737462897, + "99.999" : 359.56820737462897, + "99.9999" : 359.56820737462897, + "100.0" : 359.56820737462897 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 355.77587736376466, + 355.1195495481835, + 355.03951802399394 + ], + [ + 355.53794376732657, + 355.6143610562547, + 356.1276712534493 + ], + [ + 358.60885342768995, + 359.56820737462897, + 358.77406447402103 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 106.63031003241571, + "scoreError" : 5.9928407989608665, + "scoreConfidence" : [ + 100.63746923345484, + 112.62315083137658 + ], + "scorePercentiles" : { + "0.0" : 101.8237778560693, + "50.0" : 108.37566141662414, + "90.0" : 109.67987437919469, + "95.0" : 109.67987437919469, + "99.0" : 109.67987437919469, + "99.9" : 109.67987437919469, + "99.99" : 109.67987437919469, + "99.999" : 109.67987437919469, + "99.9999" : 109.67987437919469, + "100.0" : 109.67987437919469 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 101.96717304519494, + 101.8237778560693, + 102.04935047858294 + ], + [ + 107.95691746021808, + 108.37566141662414, + 108.5213479810202 + ], + [ + 109.67987437919469, + 109.62918120434263, + 109.66950647049454 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06115860988012198, + "scoreError" : 2.5866124625998005E-4, + "scoreConfidence" : [ + 0.060899948633862, + 0.061417271126381956 + ], + "scorePercentiles" : { + "0.0" : 0.06094085120904836, + "50.0" : 0.06123712456675362, + "90.0" : 0.061325009830254865, + "95.0" : 0.061325009830254865, + "99.0" : 0.061325009830254865, + "99.9" : 0.061325009830254865, + "99.99" : 0.061325009830254865, + "99.999" : 0.061325009830254865, + "99.9999" : 0.061325009830254865, + "100.0" : 0.061325009830254865 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06121436393797861, + 0.06124506581292373, + 0.061244503631753655 + ], + [ + 0.061325009830254865, + 0.0612870807567614, + 0.06123712456675362 + ], + [ + 0.06094085120904836, + 0.06097625959597807, + 0.06095722957964548 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.660580843532509E-4, + "scoreError" : 2.1584630401834428E-5, + "scoreConfidence" : [ + 3.444734539514165E-4, + 3.876427147550853E-4 + ], + "scorePercentiles" : { + "0.0" : 3.485295668586137E-4, + "50.0" : 3.7371202020352256E-4, + "90.0" : 3.7543158886062337E-4, + "95.0" : 3.7543158886062337E-4, + "99.0" : 3.7543158886062337E-4, + "99.9" : 3.7543158886062337E-4, + "99.99" : 3.7543158886062337E-4, + "99.999" : 3.7543158886062337E-4, + "99.9999" : 3.7543158886062337E-4, + "100.0" : 3.7543158886062337E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7371202020352256E-4, + 3.743454742106291E-4, + 3.736798714136409E-4 + ], + [ + 3.485295668586137E-4, + 3.4913701701646063E-4, + 3.491975061719075E-4 + ], + [ + 3.7543158886062337E-4, + 3.753495183136453E-4, + 3.7514019613021487E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014294007118711134, + "scoreError" : 2.467831746836528E-4, + "scoreConfidence" : [ + 0.01404722394402748, + 0.014540790293394787 + ], + "scorePercentiles" : { + "0.0" : 0.01410185573973926, + "50.0" : 0.014340279476126561, + "90.0" : 0.014435574408039945, + "95.0" : 0.014435574408039945, + "99.0" : 0.014435574408039945, + "99.9" : 0.014435574408039945, + "99.99" : 0.014435574408039945, + "99.999" : 0.014435574408039945, + "99.9999" : 0.014435574408039945, + "100.0" : 0.014435574408039945 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014340279476126561, + 0.014339337843476616, + 0.014350159556011566 + ], + [ + 0.014435574408039945, + 0.014430580636409946, + 0.014434201299929129 + ], + [ + 0.014106480124135986, + 0.01410185573973926, + 0.014107594984531218 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9827271961215186, + "scoreError" : 0.01661406289183188, + "scoreConfidence" : [ + 0.9661131332296867, + 0.9993412590133505 + ], + "scorePercentiles" : { + "0.0" : 0.9650379618836245, + "50.0" : 0.9843077026574804, + "90.0" : 0.9982393412856858, + "95.0" : 0.9982393412856858, + "99.0" : 0.9982393412856858, + "99.9" : 0.9982393412856858, + "99.99" : 0.9982393412856858, + "99.999" : 0.9982393412856858, + "99.9999" : 0.9982393412856858, + "100.0" : 0.9982393412856858 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9900924386694386, + 0.9982393412856858, + 0.98929232505688 + ], + [ + 0.9650379618836245, + 0.9769195255445932, + 0.9732962304622871 + ], + [ + 0.9851143342198582, + 0.9822449053138199, + 0.9843077026574804 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012964384898346287, + "scoreError" : 2.577701313091225E-4, + "scoreConfidence" : [ + 0.012706614767037164, + 0.01322215502965541 + ], + "scorePercentiles" : { + "0.0" : 0.012813191806904116, + "50.0" : 0.01298516114747426, + "90.0" : 0.013039108015990779, + "95.0" : 0.013039108015990779, + "99.0" : 0.013039108015990779, + "99.9" : 0.013039108015990779, + "99.99" : 0.013039108015990779, + "99.999" : 0.013039108015990779, + "99.9999" : 0.013039108015990779, + "100.0" : 0.013039108015990779 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012813191806904116, + 0.012931354416990374, + 0.012924645154536313 + ], + [ + 0.013038967877958146, + 0.013039042117697986, + 0.013039108015990779 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.673469200929784, + "scoreError" : 0.14943802892508878, + "scoreConfidence" : [ + 3.524031172004695, + 3.8229072298548727 + ], + "scorePercentiles" : { + "0.0" : 3.6237315644927537, + "50.0" : 3.67061608442467, + "90.0" : 3.7256586865227104, + "95.0" : 3.7256586865227104, + "99.0" : 3.7256586865227104, + "99.9" : 3.7256586865227104, + "99.99" : 3.7256586865227104, + "99.999" : 3.7256586865227104, + "99.9999" : 3.7256586865227104, + "100.0" : 3.7256586865227104 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6248462644927537, + 3.6237315644927537, + 3.626285658448151 + ], + [ + 3.7253465212211467, + 3.7149465104011887, + 3.7256586865227104 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.845002438442127, + "scoreError" : 0.04287871366742935, + "scoreConfidence" : [ + 2.802123724774698, + 2.887881152109556 + ], + "scorePercentiles" : { + "0.0" : 2.7989082118667787, + "50.0" : 2.8569832750642674, + "90.0" : 2.8689466262191625, + "95.0" : 2.8689466262191625, + "99.0" : 2.8689466262191625, + "99.9" : 2.8689466262191625, + "99.99" : 2.8689466262191625, + "99.999" : 2.8689466262191625, + "99.9999" : 2.8689466262191625, + "100.0" : 2.8689466262191625 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8689466262191625, + 2.8678104997133027, + 2.8603603591649986 + ], + [ + 2.8197480668170285, + 2.8194921466027627, + 2.7989082118667787 + ], + [ + 2.862014226323319, + 2.8569832750642674, + 2.8507585342075257 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17667398738573184, + "scoreError" : 0.004522962845580232, + "scoreConfidence" : [ + 0.1721510245401516, + 0.18119695023131208 + ], + "scorePercentiles" : { + "0.0" : 0.17274437678355503, + "50.0" : 0.17773538823424864, + "90.0" : 0.17929800475131782, + "95.0" : 0.17929800475131782, + "99.0" : 0.17929800475131782, + "99.9" : 0.17929800475131782, + "99.99" : 0.17929800475131782, + "99.999" : 0.17929800475131782, + "99.9999" : 0.17929800475131782, + "100.0" : 0.17929800475131782 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17929800475131782, + 0.17875492422779923, + 0.1786768472698685 + ], + [ + 0.17354256814868804, + 0.17317766123473893, + 0.17274437678355503 + ], + [ + 0.17841636940231936, + 0.177719746419051, + 0.17773538823424864 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3278785338826535, + "scoreError" : 0.02325834532732937, + "scoreConfidence" : [ + 0.30462018855532413, + 0.3511368792099828 + ], + "scorePercentiles" : { + "0.0" : 0.3089522779288186, + "50.0" : 0.33629414826646936, + "90.0" : 0.33916132474139393, + "95.0" : 0.33916132474139393, + "99.0" : 0.33916132474139393, + "99.9" : 0.33916132474139393, + "99.99" : 0.33916132474139393, + "99.999" : 0.33916132474139393, + "99.9999" : 0.33916132474139393, + "100.0" : 0.33916132474139393 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.336947062232555, + 0.33597702281202757, + 0.33629414826646936 + ], + [ + 0.31003876372655403, + 0.3089522779288186, + 0.3094074593298475 + ], + [ + 0.33916132474139393, + 0.3373513187828903, + 0.3367774271233246 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16002382610015384, + "scoreError" : 0.0028749300894222066, + "scoreConfidence" : [ + 0.15714889601073162, + 0.16289875618957605 + ], + "scorePercentiles" : { + "0.0" : 0.157941736670036, + "50.0" : 0.16011360556863122, + "90.0" : 0.16208578819067376, + "95.0" : 0.16208578819067376, + "99.0" : 0.16208578819067376, + "99.9" : 0.16208578819067376, + "99.99" : 0.16208578819067376, + "99.999" : 0.16208578819067376, + "99.9999" : 0.16208578819067376, + "100.0" : 0.16208578819067376 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15800144895089427, + 0.15802927755566443, + 0.157941736670036 + ], + [ + 0.16208578819067376, + 0.1619398366719026, + 0.16176520781636713 + ], + [ + 0.1602269537756557, + 0.16011360556863122, + 0.16011057970155945 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3937664494679593, + "scoreError" : 0.005156686612415254, + "scoreConfidence" : [ + 0.38860976285554405, + 0.39892313608037455 + ], + "scorePercentiles" : { + "0.0" : 0.3895133925761471, + "50.0" : 0.393265371583625, + "90.0" : 0.39806655210572406, + "95.0" : 0.39806655210572406, + "99.0" : 0.39806655210572406, + "99.9" : 0.39806655210572406, + "99.99" : 0.39806655210572406, + "99.999" : 0.39806655210572406, + "99.9999" : 0.39806655210572406, + "100.0" : 0.39806655210572406 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39707056577327776, + 0.39672426091958585, + 0.39806655210572406 + ], + [ + 0.3921561219952159, + 0.39032111385191837, + 0.3895133925761471 + ], + [ + 0.39482050100675115, + 0.393265371583625, + 0.39196016539938855 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15675301344455994, + "scoreError" : 0.004658609047840728, + "scoreConfidence" : [ + 0.1520944043967192, + 0.16141162249240068 + ], + "scorePercentiles" : { + "0.0" : 0.1545591449127525, + "50.0" : 0.15518161604233263, + "90.0" : 0.16099979876998374, + "95.0" : 0.16099979876998374, + "99.0" : 0.16099979876998374, + "99.9" : 0.16099979876998374, + "99.99" : 0.16099979876998374, + "99.999" : 0.16099979876998374, + "99.9999" : 0.16099979876998374, + "100.0" : 0.16099979876998374 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15467007167272445, + 0.1545591449127525, + 0.1545636310453021 + ], + [ + 0.15573376948951942, + 0.15518161604233263, + 0.1548710712548977 + ], + [ + 0.16099979876998374, + 0.1602751452383242, + 0.1599228725752027 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.047817784078729414, + "scoreError" : 0.0011948342870446483, + "scoreConfidence" : [ + 0.04662294979168476, + 0.049012618365774065 + ], + "scorePercentiles" : { + "0.0" : 0.047114732199141585, + "50.0" : 0.047610175369687965, + "90.0" : 0.04905999008021194, + "95.0" : 0.04905999008021194, + "99.0" : 0.04905999008021194, + "99.9" : 0.04905999008021194, + "99.99" : 0.04905999008021194, + "99.999" : 0.04905999008021194, + "99.9999" : 0.04905999008021194, + "100.0" : 0.04905999008021194 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047308128061386207, + 0.04719235425810044, + 0.047269258719872184 + ], + [ + 0.04856412413314167, + 0.04905999008021194, + 0.048489256354432346 + ], + [ + 0.047610175369687965, + 0.04775203753259032, + 0.047114732199141585 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9421759.159399383, + "scoreError" : 707140.3164048794, + "scoreConfidence" : [ + 8714618.842994504, + 1.0128899475804262E7 + ], + "scorePercentiles" : { + "0.0" : 9036655.30532972, + "50.0" : 9254157.081406105, + "90.0" : 1.0006135448E7, + "95.0" : 1.0006135448E7, + "99.0" : 1.0006135448E7, + "99.9" : 1.0006135448E7, + "99.99" : 1.0006135448E7, + "99.999" : 1.0006135448E7, + "99.9999" : 1.0006135448E7, + "100.0" : 1.0006135448E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9206639.917203313, + 9254157.081406105, + 9259158.390379278 + ], + [ + 9036655.30532972, + 9050269.691402715, + 9074580.583484573 + ], + [ + 9935700.8897716, + 9972535.127617149, + 1.0006135448E7 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T00:23:14Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json b/performance-results/2025-03-24T00:23:14Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json new file mode 100644 index 000000000..cde7a7ef9 --- /dev/null +++ b/performance-results/2025-03-24T00:23:14Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4223396104835797, + "scoreError" : 0.043725212925550025, + "scoreConfidence" : [ + 3.37861439755803, + 3.4660648234091296 + ], + "scorePercentiles" : { + "0.0" : 3.4145587032492717, + "50.0" : 3.42227609893122, + "90.0" : 3.4302475408226076, + "95.0" : 3.4302475408226076, + "99.0" : 3.4302475408226076, + "99.9" : 3.4302475408226076, + "99.99" : 3.4302475408226076, + "99.999" : 3.4302475408226076, + "99.9999" : 3.4302475408226076, + "100.0" : 3.4302475408226076 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4145587032492717, + 3.4196048034813886 + ], + [ + 3.424947394381052, + 3.4302475408226076 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7293409537320772, + "scoreError" : 0.013098203820130744, + "scoreConfidence" : [ + 1.7162427499119464, + 1.742439157552208 + ], + "scorePercentiles" : { + "0.0" : 1.7271885468681993, + "50.0" : 1.7291572733627323, + "90.0" : 1.7318607213346457, + "95.0" : 1.7318607213346457, + "99.0" : 1.7318607213346457, + "99.9" : 1.7318607213346457, + "99.99" : 1.7318607213346457, + "99.999" : 1.7318607213346457, + "99.9999" : 1.7318607213346457, + "100.0" : 1.7318607213346457 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7271885468681993, + 1.7299560719039933 + ], + [ + 1.728358474821471, + 1.7318607213346457 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8690871927147313, + "scoreError" : 0.004974514875233495, + "scoreConfidence" : [ + 0.8641126778394979, + 0.8740617075899648 + ], + "scorePercentiles" : { + "0.0" : 0.8683436536883511, + "50.0" : 0.8689709686170206, + "90.0" : 0.8700631799365328, + "95.0" : 0.8700631799365328, + "99.0" : 0.8700631799365328, + "99.9" : 0.8700631799365328, + "99.99" : 0.8700631799365328, + "99.999" : 0.8700631799365328, + "99.9999" : 0.8700631799365328, + "100.0" : 0.8700631799365328 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8683436536883511, + 0.8686206739831588 + ], + [ + 0.8693212632508825, + 0.8700631799365328 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.176447094328555, + "scoreError" : 0.21039762953362492, + "scoreConfidence" : [ + 15.96604946479493, + 16.38684472386218 + ], + "scorePercentiles" : { + "0.0" : 16.02273460262859, + "50.0" : 16.17803229239284, + "90.0" : 16.338047338633128, + "95.0" : 16.338047338633128, + "99.0" : 16.338047338633128, + "99.9" : 16.338047338633128, + "99.99" : 16.338047338633128, + "99.999" : 16.338047338633128, + "99.9999" : 16.338047338633128, + "100.0" : 16.338047338633128 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.149948890904675, + 16.1789391938823, + 16.17803229239284 + ], + [ + 16.042872420624704, + 16.0440694515352, + 16.02273460262859 + ], + [ + 16.338047338633128, + 16.327952875347822, + 16.30542678300774 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2700.2882550030386, + "scoreError" : 96.7322058302932, + "scoreConfidence" : [ + 2603.5560491727456, + 2797.0204608333315 + ], + "scorePercentiles" : { + "0.0" : 2653.07991575285, + "50.0" : 2666.391896086423, + "90.0" : 2780.899937372966, + "95.0" : 2780.899937372966, + "99.0" : 2780.899937372966, + "99.9" : 2780.899937372966, + "99.99" : 2780.899937372966, + "99.999" : 2780.899937372966, + "99.9999" : 2780.899937372966, + "100.0" : 2780.899937372966 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2773.2417483443546, + 2780.899937372966, + 2775.7904882477383 + ], + [ + 2663.2819930577834, + 2653.07991575285, + 2654.1555989667613 + ], + [ + 2666.391896086423, + 2665.495887754995, + 2670.2568294434764 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70174.19309953183, + "scoreError" : 1564.0509467698946, + "scoreConfidence" : [ + 68610.14215276192, + 71738.24404630173 + ], + "scorePercentiles" : { + "0.0" : 68930.65160154008, + "50.0" : 70571.78206598868, + "90.0" : 71019.93901817729, + "95.0" : 71019.93901817729, + "99.0" : 71019.93901817729, + "99.9" : 71019.93901817729, + "99.99" : 71019.93901817729, + "99.999" : 71019.93901817729, + "99.9999" : 71019.93901817729, + "100.0" : 71019.93901817729 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70996.91830347097, + 71019.93901817729, + 71006.93058404124 + ], + [ + 68970.93751249161, + 68930.65160154008, + 68983.81206796458 + ], + [ + 70506.51290054324, + 70580.25384156879, + 70571.78206598868 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 351.0196860126746, + "scoreError" : 6.327176034437353, + "scoreConfidence" : [ + 344.69250997823724, + 357.3468620471119 + ], + "scorePercentiles" : { + "0.0" : 344.5603693554375, + "50.0" : 350.39200219743225, + "90.0" : 355.7240486824901, + "95.0" : 355.7240486824901, + "99.0" : 355.7240486824901, + "99.9" : 355.7240486824901, + "99.99" : 355.7240486824901, + "99.999" : 355.7240486824901, + "99.9999" : 355.7240486824901, + "100.0" : 355.7240486824901 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 355.7240486824901, + 355.236232183386, + 355.3319181912754 + ], + [ + 348.72447907602054, + 348.4251848899698, + 344.5603693554375 + ], + [ + 350.39200219743225, + 350.3541221087014, + 350.42881742935845 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 106.65909013547264, + "scoreError" : 1.4190899578645233, + "scoreConfidence" : [ + 105.24000017760811, + 108.07818009333717 + ], + "scorePercentiles" : { + "0.0" : 105.6162841290003, + "50.0" : 106.50638068901223, + "90.0" : 107.78984731739712, + "95.0" : 107.78984731739712, + "99.0" : 107.78984731739712, + "99.9" : 107.78984731739712, + "99.99" : 107.78984731739712, + "99.999" : 107.78984731739712, + "99.9999" : 107.78984731739712, + "100.0" : 107.78984731739712 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 107.5904277872302, + 107.78984731739712, + 107.70949927973304 + ], + [ + 106.506954789398, + 106.50638068901223, + 106.50478486079068 + ], + [ + 105.6162841290003, + 105.87755649908355, + 105.8300758676087 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06209317411218212, + "scoreError" : 7.538075008411679E-4, + "scoreConfidence" : [ + 0.06133936661134095, + 0.06284698161302328 + ], + "scorePercentiles" : { + "0.0" : 0.06144225748201306, + "50.0" : 0.062250828252709424, + "90.0" : 0.06256984610571628, + "95.0" : 0.06256984610571628, + "99.0" : 0.06256984610571628, + "99.9" : 0.06256984610571628, + "99.99" : 0.06256984610571628, + "99.999" : 0.06256984610571628, + "99.9999" : 0.06256984610571628, + "100.0" : 0.06256984610571628 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06239646361095166, + 0.062418272145657004, + 0.06221235583108335 + ], + [ + 0.06144225748201306, + 0.06161576037905581, + 0.06148573024188094 + ], + [ + 0.062250828252709424, + 0.06256984610571628, + 0.06244705296057151 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.7607663812243037E-4, + "scoreError" : 1.1442859251684939E-5, + "scoreConfidence" : [ + 3.646337788707454E-4, + 3.875194973741153E-4 + ], + "scorePercentiles" : { + "0.0" : 3.681143338609699E-4, + "50.0" : 3.7442910870162834E-4, + "90.0" : 3.8507081206627316E-4, + "95.0" : 3.8507081206627316E-4, + "99.0" : 3.8507081206627316E-4, + "99.9" : 3.8507081206627316E-4, + "99.99" : 3.8507081206627316E-4, + "99.999" : 3.8507081206627316E-4, + "99.9999" : 3.8507081206627316E-4, + "100.0" : 3.8507081206627316E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8409582662134395E-4, + 3.8449133940953627E-4, + 3.8507081206627316E-4 + ], + [ + 3.690260844272774E-4, + 3.681143338609699E-4, + 3.702101250850547E-4 + ], + [ + 3.7412950073089176E-4, + 3.751226121988977E-4, + 3.7442910870162834E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014130309759608764, + "scoreError" : 1.1557199490178697E-4, + "scoreConfidence" : [ + 0.014014737764706976, + 0.014245881754510551 + ], + "scorePercentiles" : { + "0.0" : 0.014047087416772018, + "50.0" : 0.014118687416612664, + "90.0" : 0.014217589361396605, + "95.0" : 0.014217589361396605, + "99.0" : 0.014217589361396605, + "99.9" : 0.014217589361396605, + "99.99" : 0.014217589361396605, + "99.999" : 0.014217589361396605, + "99.9999" : 0.014217589361396605, + "100.0" : 0.014217589361396605 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014077196809581392, + 0.01405035927748288, + 0.014047087416772018 + ], + [ + 0.01421129386050927, + 0.014217589361396605, + 0.014214491057772673 + ], + [ + 0.014119107481913626, + 0.014116975154437756, + 0.014118687416612664 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9773896294313688, + "scoreError" : 0.010852659511471296, + "scoreConfidence" : [ + 0.9665369699198975, + 0.98824228894284 + ], + "scorePercentiles" : { + "0.0" : 0.968145494482091, + "50.0" : 0.9763926268306972, + "90.0" : 0.9898854295753736, + "95.0" : 0.9898854295753736, + "99.0" : 0.9898854295753736, + "99.9" : 0.9898854295753736, + "99.99" : 0.9898854295753736, + "99.999" : 0.9898854295753736, + "99.9999" : 0.9898854295753736, + "100.0" : 0.9898854295753736 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.980458675490196, + 0.9763926268306972, + 0.9734553186021611 + ], + [ + 0.9725973313557673, + 0.9735463582554517, + 0.968145494482091 + ], + [ + 0.9898854295753736, + 0.9820591416085633, + 0.9799662886820186 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012999210482276655, + "scoreError" : 2.1611055986766895E-4, + "scoreConfidence" : [ + 0.012783099922408987, + 0.013215321042144323 + ], + "scorePercentiles" : { + "0.0" : 0.012919324624185454, + "50.0" : 0.013001931921219387, + "90.0" : 0.01307385693106586, + "95.0" : 0.01307385693106586, + "99.0" : 0.01307385693106586, + "99.9" : 0.01307385693106586, + "99.99" : 0.01307385693106586, + "99.999" : 0.01307385693106586, + "99.9999" : 0.01307385693106586, + "100.0" : 0.01307385693106586 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012919324624185454, + 0.012938083570310377, + 0.012929917723875773 + ], + [ + 0.01306829977209407, + 0.01307385693106586, + 0.013065780272128397 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.700450900560987, + "scoreError" : 0.040650582191514045, + "scoreConfidence" : [ + 3.659800318369473, + 3.741101482752501 + ], + "scorePercentiles" : { + "0.0" : 3.6858584502579217, + "50.0" : 3.6987097385567482, + "90.0" : 3.7201648074349443, + "95.0" : 3.7201648074349443, + "99.0" : 3.7201648074349443, + "99.9" : 3.7201648074349443, + "99.99" : 3.7201648074349443, + "99.999" : 3.7201648074349443, + "99.9999" : 3.7201648074349443, + "100.0" : 3.7201648074349443 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7083377094143812, + 3.7201648074349443, + 3.7109526958456973 + ], + [ + 3.689081767699115, + 3.6858584502579217, + 3.6883099727138644 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.840180921798341, + "scoreError" : 0.044513227628576325, + "scoreConfidence" : [ + 2.7956676941697647, + 2.884694149426917 + ], + "scorePercentiles" : { + "0.0" : 2.801557466946779, + "50.0" : 2.8510196391106044, + "90.0" : 2.872490500861574, + "95.0" : 2.872490500861574, + "99.0" : 2.872490500861574, + "99.9" : 2.872490500861574, + "99.99" : 2.872490500861574, + "99.999" : 2.872490500861574, + "99.9999" : 2.872490500861574, + "100.0" : 2.872490500861574 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8067425004209934, + 2.801557466946779, + 2.8109157793704327 + ], + [ + 2.8510196391106044, + 2.8517295494724837, + 2.846561409220262 + ], + [ + 2.861186417620137, + 2.859425033161807, + 2.872490500861574 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17907202947603687, + "scoreError" : 0.00670484560821617, + "scoreConfidence" : [ + 0.1723671838678207, + 0.18577687508425303 + ], + "scorePercentiles" : { + "0.0" : 0.1755640429592177, + "50.0" : 0.1774438194722927, + "90.0" : 0.18523565140962472, + "95.0" : 0.18523565140962472, + "99.0" : 0.18523565140962472, + "99.9" : 0.18523565140962472, + "99.99" : 0.18523565140962472, + "99.999" : 0.18523565140962472, + "99.9999" : 0.18523565140962472, + "100.0" : 0.18523565140962472 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17574525320726864, + 0.1755640429592177, + 0.17574461892376367 + ], + [ + 0.18321511113553918, + 0.18432324685737458, + 0.18523565140962472 + ], + [ + 0.17765377328524987, + 0.1774438194722927, + 0.17672274803400073 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33467355980546004, + "scoreError" : 0.015732504644345665, + "scoreConfidence" : [ + 0.3189410551611144, + 0.3504060644498057 + ], + "scorePercentiles" : { + "0.0" : 0.3225942608387097, + "50.0" : 0.33705844103272775, + "90.0" : 0.3445825397815375, + "95.0" : 0.3445825397815375, + "99.0" : 0.3445825397815375, + "99.9" : 0.3445825397815375, + "99.99" : 0.3445825397815375, + "99.999" : 0.3445825397815375, + "99.9999" : 0.3445825397815375, + "100.0" : 0.3445825397815375 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3225942608387097, + 0.3227770372151572, + 0.32293328559434237 + ], + [ + 0.3445825397815375, + 0.34353106176571624, + 0.3433423331731099 + ], + [ + 0.3383529962444174, + 0.33705844103272775, + 0.33689008260342274 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16641165219979803, + "scoreError" : 0.008301354539846898, + "scoreConfidence" : [ + 0.15811029765995113, + 0.17471300673964493 + ], + "scorePercentiles" : { + "0.0" : 0.1613107943638798, + "50.0" : 0.16515381480074648, + "90.0" : 0.17292260472756826, + "95.0" : 0.17292260472756826, + "99.0" : 0.17292260472756826, + "99.9" : 0.17292260472756826, + "99.99" : 0.17292260472756826, + "99.999" : 0.17292260472756826, + "99.9999" : 0.17292260472756826, + "100.0" : 0.17292260472756826 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17292260472756826, + 0.17262155191520948, + 0.17226494201650272 + ], + [ + 0.16135854223477208, + 0.1614882046669358, + 0.1613107943638798 + ], + [ + 0.16554833105434802, + 0.16515381480074648, + 0.16503608401821962 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38875197801253086, + "scoreError" : 0.010133028661687969, + "scoreConfidence" : [ + 0.3786189493508429, + 0.39888500667421883 + ], + "scorePercentiles" : { + "0.0" : 0.37941510911712256, + "50.0" : 0.3914092459882583, + "90.0" : 0.3958145895111815, + "95.0" : 0.3958145895111815, + "99.0" : 0.3958145895111815, + "99.9" : 0.3958145895111815, + "99.99" : 0.3958145895111815, + "99.999" : 0.3958145895111815, + "99.9999" : 0.3958145895111815, + "100.0" : 0.3958145895111815 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.38415878153810695, + 0.37941510911712256, + 0.3798788741880342 + ], + [ + 0.3958145895111815, + 0.39277299945013944, + 0.3931043139274343 + ], + [ + 0.3917136562475519, + 0.3914092459882583, + 0.39050023214494906 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1567575782526978, + "scoreError" : 0.001756730125437472, + "scoreConfidence" : [ + 0.1550008481272603, + 0.15851430837813527 + ], + "scorePercentiles" : { + "0.0" : 0.1552836069099379, + "50.0" : 0.1568126810826068, + "90.0" : 0.15808412828214166, + "95.0" : 0.15808412828214166, + "99.0" : 0.15808412828214166, + "99.9" : 0.15808412828214166, + "99.99" : 0.15808412828214166, + "99.999" : 0.15808412828214166, + "99.9999" : 0.15808412828214166, + "100.0" : 0.15808412828214166 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1560860536296805, + 0.1552836069099379, + 0.15552143758261924 + ], + [ + 0.1580676237157399, + 0.15808412828214166, + 0.15766376098506946 + ], + [ + 0.1570153811744387, + 0.1568126810826068, + 0.156283530912046 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.048592658466308974, + "scoreError" : 0.0017968188521679121, + "scoreConfidence" : [ + 0.04679583961414106, + 0.050389477318476886 + ], + "scorePercentiles" : { + "0.0" : 0.047535836964220354, + "50.0" : 0.048176836740199735, + "90.0" : 0.05068937412245353, + "95.0" : 0.05068937412245353, + "99.0" : 0.05068937412245353, + "99.9" : 0.05068937412245353, + "99.99" : 0.05068937412245353, + "99.999" : 0.05068937412245353, + "99.9999" : 0.05068937412245353, + "100.0" : 0.05068937412245353 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04894306757471051, + 0.048111777384870005, + 0.048176836740199735 + ], + [ + 0.047619933290158525, + 0.047535836964220354, + 0.047573736302526606 + ], + [ + 0.05068937412245353, + 0.049340145975389535, + 0.04934321784225199 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9118731.258717624, + "scoreError" : 64258.13778346629, + "scoreConfidence" : [ + 9054473.120934159, + 9182989.39650109 + ], + "scorePercentiles" : { + "0.0" : 9080304.523593467, + "50.0" : 9100486.565059144, + "90.0" : 9171500.41796517, + "95.0" : 9171500.41796517, + "99.0" : 9171500.41796517, + "99.9" : 9171500.41796517, + "99.99" : 9171500.41796517, + "99.999" : 9171500.41796517, + "99.9999" : 9171500.41796517, + "100.0" : 9171500.41796517 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9169333.384051329, + 9171500.41796517, + 9156587.633119853 + ], + [ + 9100486.565059144, + 9087986.72479564, + 9093709.6 + ], + [ + 9128045.636861313, + 9080304.523593467, + 9080626.843012704 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T00:23:52Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json b/performance-results/2025-03-24T00:23:52Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json new file mode 100644 index 000000000..43a8f0b97 --- /dev/null +++ b/performance-results/2025-03-24T00:23:52Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4139790279787423, + "scoreError" : 0.01733409931536483, + "scoreConfidence" : [ + 3.3966449286633775, + 3.431313127294107 + ], + "scorePercentiles" : { + "0.0" : 3.410359353387592, + "50.0" : 3.4147105177822104, + "90.0" : 3.4161357229629568, + "95.0" : 3.4161357229629568, + "99.0" : 3.4161357229629568, + "99.9" : 3.4161357229629568, + "99.99" : 3.4161357229629568, + "99.999" : 3.4161357229629568, + "99.9999" : 3.4161357229629568, + "100.0" : 3.4161357229629568 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.410359353387592, + 3.4161357229629568 + ], + [ + 3.4135350559911077, + 3.415885979573313 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7232104134744857, + "scoreError" : 0.007629890942061581, + "scoreConfidence" : [ + 1.715580522532424, + 1.7308403044165472 + ], + "scorePercentiles" : { + "0.0" : 1.7220037289307688, + "50.0" : 1.7232692487178383, + "90.0" : 1.724299427531498, + "95.0" : 1.724299427531498, + "99.0" : 1.724299427531498, + "99.9" : 1.724299427531498, + "99.99" : 1.724299427531498, + "99.999" : 1.724299427531498, + "99.9999" : 1.724299427531498, + "100.0" : 1.724299427531498 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7220037289307688, + 1.724144873194817 + ], + [ + 1.7223936242408595, + 1.724299427531498 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8662626240049967, + "scoreError" : 0.012849636408795155, + "scoreConfidence" : [ + 0.8534129875962015, + 0.8791122604137918 + ], + "scorePercentiles" : { + "0.0" : 0.8648472759593716, + "50.0" : 0.8655491554294797, + "90.0" : 0.8691049092016552, + "95.0" : 0.8691049092016552, + "99.0" : 0.8691049092016552, + "99.9" : 0.8691049092016552, + "99.99" : 0.8691049092016552, + "99.999" : 0.8691049092016552, + "99.9999" : 0.8691049092016552, + "100.0" : 0.8691049092016552 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8649317121070363, + 0.8648472759593716 + ], + [ + 0.8661665987519231, + 0.8691049092016552 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.747041994645217, + "scoreError" : 0.14758109112545448, + "scoreConfidence" : [ + 15.599460903519763, + 15.894623085770672 + ], + "scorePercentiles" : { + "0.0" : 15.609608788536184, + "50.0" : 15.753115594028856, + "90.0" : 15.892679137848754, + "95.0" : 15.892679137848754, + "99.0" : 15.892679137848754, + "99.9" : 15.892679137848754, + "99.99" : 15.892679137848754, + "99.999" : 15.892679137848754, + "99.9999" : 15.892679137848754, + "100.0" : 15.892679137848754 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.892679137848754, + 15.840820211442846, + 15.760137568493265 + ], + [ + 15.716608944186692, + 15.750055674111344, + 15.639867067639829 + ], + [ + 15.76048496551918, + 15.753115594028856, + 15.609608788536184 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2545.4144779507083, + "scoreError" : 133.1445397106979, + "scoreConfidence" : [ + 2412.2699382400106, + 2678.559017661406 + ], + "scorePercentiles" : { + "0.0" : 2423.101821634822, + "50.0" : 2562.1716441581257, + "90.0" : 2649.288918606347, + "95.0" : 2649.288918606347, + "99.0" : 2649.288918606347, + "99.9" : 2649.288918606347, + "99.99" : 2649.288918606347, + "99.999" : 2649.288918606347, + "99.9999" : 2649.288918606347, + "100.0" : 2649.288918606347 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2637.4876233069353, + 2609.3290298838847, + 2649.288918606347 + ], + [ + 2564.6887466700787, + 2562.1716441581257, + 2515.2897354670463 + ], + [ + 2479.1384646149886, + 2468.2343172141473, + 2423.101821634822 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70197.89601850326, + "scoreError" : 653.3580011482312, + "scoreConfidence" : [ + 69544.53801735504, + 70851.25401965149 + ], + "scorePercentiles" : { + "0.0" : 69486.97210441956, + "50.0" : 70326.68061681147, + "90.0" : 70559.23822474394, + "95.0" : 70559.23822474394, + "99.0" : 70559.23822474394, + "99.9" : 70559.23822474394, + "99.99" : 70559.23822474394, + "99.999" : 70559.23822474394, + "99.9999" : 70559.23822474394, + "100.0" : 70559.23822474394 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70326.68061681147, + 70503.0313110003, + 70559.23822474394 + ], + [ + 70280.42396857131, + 70461.33770627339, + 70492.21472352139 + ], + [ + 69486.97210441956, + 69697.21793988864, + 69973.94757129939 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 344.5101901407003, + "scoreError" : 2.383199551240554, + "scoreConfidence" : [ + 342.1269905894597, + 346.89338969194085 + ], + "scorePercentiles" : { + "0.0" : 342.6941923456472, + "50.0" : 344.34952393825296, + "90.0" : 347.15351826154125, + "95.0" : 347.15351826154125, + "99.0" : 347.15351826154125, + "99.9" : 347.15351826154125, + "99.99" : 347.15351826154125, + "99.999" : 347.15351826154125, + "99.9999" : 347.15351826154125, + "100.0" : 347.15351826154125 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 344.34952393825296, + 342.75642153725806, + 347.15351826154125 + ], + [ + 344.46026237521187, + 345.8795032843992, + 342.6941923456472 + ], + [ + 344.2612697809226, + 343.90034476443435, + 345.13667497863463 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 106.19980969284724, + "scoreError" : 4.314449187306226, + "scoreConfidence" : [ + 101.88536050554102, + 110.51425888015346 + ], + "scorePercentiles" : { + "0.0" : 102.98445685458186, + "50.0" : 106.25756148437183, + "90.0" : 109.45660740565823, + "95.0" : 109.45660740565823, + "99.0" : 109.45660740565823, + "99.9" : 109.45660740565823, + "99.99" : 109.45660740565823, + "99.999" : 109.45660740565823, + "99.9999" : 109.45660740565823, + "100.0" : 109.45660740565823 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 109.4167165580331, + 109.45660740565823, + 108.58405853540157 + ], + [ + 103.46395059370718, + 102.98445685458186, + 103.48652507131372 + ], + [ + 106.73553070412007, + 106.25756148437183, + 105.4128800284376 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06275639899463895, + "scoreError" : 9.54564950141199E-4, + "scoreConfidence" : [ + 0.061801834044497746, + 0.06371096394478014 + ], + "scorePercentiles" : { + "0.0" : 0.06206886380451109, + "50.0" : 0.06277109492125466, + "90.0" : 0.06384064171167375, + "95.0" : 0.06384064171167375, + "99.0" : 0.06384064171167375, + "99.9" : 0.06384064171167375, + "99.99" : 0.06384064171167375, + "99.999" : 0.06384064171167375, + "99.9999" : 0.06384064171167375, + "100.0" : 0.06384064171167375 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06277109492125466, + 0.06384064171167375, + 0.0628098215095501 + ], + [ + 0.06311703809060958, + 0.062423528202599284, + 0.062465097437723306 + ], + [ + 0.06319615820904954, + 0.06206886380451109, + 0.06211534706477921 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.7162303018110915E-4, + "scoreError" : 1.3300625207700327E-5, + "scoreConfidence" : [ + 3.583224049734088E-4, + 3.849236553888095E-4 + ], + "scorePercentiles" : { + "0.0" : 3.6245800606610196E-4, + "50.0" : 3.6733737068606417E-4, + "90.0" : 3.8197260089267476E-4, + "95.0" : 3.8197260089267476E-4, + "99.0" : 3.8197260089267476E-4, + "99.9" : 3.8197260089267476E-4, + "99.99" : 3.8197260089267476E-4, + "99.999" : 3.8197260089267476E-4, + "99.9999" : 3.8197260089267476E-4, + "100.0" : 3.8197260089267476E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7946744438874773E-4, + 3.8197260089267476E-4, + 3.801795977685541E-4 + ], + [ + 3.774281412412418E-4, + 3.6596905308952E-4, + 3.6733737068606417E-4 + ], + [ + 3.655366763432819E-4, + 3.64258381153796E-4, + 3.6245800606610196E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014576655465828222, + "scoreError" : 4.4815463271461934E-4, + "scoreConfidence" : [ + 0.014128500833113603, + 0.015024810098542842 + ], + "scorePercentiles" : { + "0.0" : 0.014191622172709856, + "50.0" : 0.014660958410302422, + "90.0" : 0.01486787987493291, + "95.0" : 0.01486787987493291, + "99.0" : 0.01486787987493291, + "99.9" : 0.01486787987493291, + "99.99" : 0.01486787987493291, + "99.999" : 0.01486787987493291, + "99.9999" : 0.01486787987493291, + "100.0" : 0.01486787987493291 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014191622172709856, + 0.014290993181850661, + 0.014229220261302128 + ], + [ + 0.014660958410302422, + 0.014729058729871167, + 0.014615897812608705 + ], + [ + 0.01486787987493291, + 0.014796878423028379, + 0.014807390325847788 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9886220481891734, + "scoreError" : 0.02202937493183751, + "scoreConfidence" : [ + 0.9665926732573359, + 1.0106514231210109 + ], + "scorePercentiles" : { + "0.0" : 0.9708414966508107, + "50.0" : 0.9914381361157926, + "90.0" : 1.0050596295477388, + "95.0" : 1.0050596295477388, + "99.0" : 1.0050596295477388, + "99.9" : 1.0050596295477388, + "99.99" : 1.0050596295477388, + "99.999" : 1.0050596295477388, + "99.9999" : 1.0050596295477388, + "100.0" : 1.0050596295477388 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9988275476428286, + 0.9798739526748971, + 1.0050596295477388 + ], + [ + 0.9914381361157926, + 0.9749231319945408, + 0.9770868427943332 + ], + [ + 0.9708414966508107, + 1.00367483410277, + 0.9958728621788488 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013247707048733286, + "scoreError" : 5.193704451363999E-4, + "scoreConfidence" : [ + 0.012728336603596886, + 0.013767077493869686 + ], + "scorePercentiles" : { + "0.0" : 0.013023179856227536, + "50.0" : 0.013218959993194505, + "90.0" : 0.013476428963390805, + "95.0" : 0.013476428963390805, + "99.0" : 0.013476428963390805, + "99.9" : 0.013476428963390805, + "99.99" : 0.013476428963390805, + "99.999" : 0.013476428963390805, + "99.9999" : 0.013476428963390805, + "100.0" : 0.013476428963390805 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013431655164077107, + 0.013476428963390805, + 0.013309052718435748 + ], + [ + 0.013023179856227536, + 0.013117058322315264, + 0.013128867267953263 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.8007924550689083, + "scoreError" : 0.1575107709395715, + "scoreConfidence" : [ + 3.6432816841293367, + 3.95830322600848 + ], + "scorePercentiles" : { + "0.0" : 3.7105204391691395, + "50.0" : 3.810032759650752, + "90.0" : 3.8690372513534417, + "95.0" : 3.8690372513534417, + "99.0" : 3.8690372513534417, + "99.9" : 3.8690372513534417, + "99.99" : 3.8690372513534417, + "99.999" : 3.8690372513534417, + "99.9999" : 3.8690372513534417, + "100.0" : 3.8690372513534417 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7105204391691395, + 3.7916760227445034, + 3.7700243978899772 + ], + [ + 3.828389496557001, + 3.8351071226993865, + 3.8690372513534417 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.9027731564072075, + "scoreError" : 0.07612377795801785, + "scoreConfidence" : [ + 2.8266493784491895, + 2.9788969343652254 + ], + "scorePercentiles" : { + "0.0" : 2.825844649901102, + "50.0" : 2.915686231778426, + "90.0" : 2.9708684835164836, + "95.0" : 2.9708684835164836, + "99.0" : 2.9708684835164836, + "99.9" : 2.9708684835164836, + "99.99" : 2.9708684835164836, + "99.999" : 2.9708684835164836, + "99.9999" : 2.9708684835164836, + "100.0" : 2.9708684835164836 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.915686231778426, + 2.8977852381918283, + 2.9708684835164836 + ], + [ + 2.851340196123147, + 2.876133754385965, + 2.825844649901102 + ], + [ + 2.9407795983534255, + 2.9272113388937666, + 2.9193089165207238 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17689930835873036, + "scoreError" : 0.002842059148974742, + "scoreConfidence" : [ + 0.17405724920975563, + 0.17974136750770509 + ], + "scorePercentiles" : { + "0.0" : 0.1749956751596815, + "50.0" : 0.17624560317236518, + "90.0" : 0.1805695294680582, + "95.0" : 0.1805695294680582, + "99.0" : 0.1805695294680582, + "99.9" : 0.1805695294680582, + "99.99" : 0.1805695294680582, + "99.999" : 0.1805695294680582, + "99.9999" : 0.1805695294680582, + "100.0" : 0.1805695294680582 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1756597641623777, + 0.17624560317236518, + 0.1749956751596815 + ], + [ + 0.1805695294680582, + 0.17602795509672423, + 0.1759503923462655 + ], + [ + 0.17831782509539604, + 0.17724520107761293, + 0.1770818296500921 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3354327846464433, + "scoreError" : 0.011347978196975963, + "scoreConfidence" : [ + 0.32408480644946736, + 0.3467807628434193 + ], + "scorePercentiles" : { + "0.0" : 0.3264376331320385, + "50.0" : 0.3361444103865546, + "90.0" : 0.3443870391555892, + "95.0" : 0.3443870391555892, + "99.0" : 0.3443870391555892, + "99.9" : 0.3443870391555892, + "99.99" : 0.3443870391555892, + "99.999" : 0.3443870391555892, + "99.9999" : 0.3443870391555892, + "100.0" : 0.3443870391555892 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3373253261148216, + 0.3342318498328877, + 0.3361444103865546 + ], + [ + 0.3443870391555892, + 0.34167287751546005, + 0.342488746600911 + ], + [ + 0.3264376331320385, + 0.32709297160893597, + 0.3291142074707915 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16110332563434188, + "scoreError" : 0.0020874150798940866, + "scoreConfidence" : [ + 0.1590159105544478, + 0.16319074071423595 + ], + "scorePercentiles" : { + "0.0" : 0.15933203478163888, + "50.0" : 0.1610831870298481, + "90.0" : 0.16265270313262417, + "95.0" : 0.16265270313262417, + "99.0" : 0.16265270313262417, + "99.9" : 0.16265270313262417, + "99.99" : 0.16265270313262417, + "99.999" : 0.16265270313262417, + "99.9999" : 0.16265270313262417, + "100.0" : 0.16265270313262417 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16261264577133844, + 0.15933203478163888, + 0.1594406899872449 + ], + [ + 0.1620065954120563, + 0.1610831870298481, + 0.16164427368829407 + ], + [ + 0.16265270313262417, + 0.16080782867801952, + 0.1603499722280125 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39241547184985115, + "scoreError" : 0.004628031957858871, + "scoreConfidence" : [ + 0.38778743989199227, + 0.39704350380771003 + ], + "scorePercentiles" : { + "0.0" : 0.38753200643286184, + "50.0" : 0.3934960783032974, + "90.0" : 0.3954240305654409, + "95.0" : 0.3954240305654409, + "99.0" : 0.3954240305654409, + "99.9" : 0.3954240305654409, + "99.99" : 0.3954240305654409, + "99.999" : 0.3954240305654409, + "99.9999" : 0.3954240305654409, + "100.0" : 0.3954240305654409 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39394333220405753, + 0.3947797881252221, + 0.3938365002756774 + ], + [ + 0.3954240305654409, + 0.3930255630011005, + 0.3934960783032974 + ], + [ + 0.39110447979975754, + 0.38859746794124506, + 0.38753200643286184 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15713051585289387, + "scoreError" : 0.0032836281079149463, + "scoreConfidence" : [ + 0.15384688774497893, + 0.1604141439608088 + ], + "scorePercentiles" : { + "0.0" : 0.15493549551475716, + "50.0" : 0.15686275267838937, + "90.0" : 0.1600880574863528, + "95.0" : 0.1600880574863528, + "99.0" : 0.1600880574863528, + "99.9" : 0.1600880574863528, + "99.99" : 0.1600880574863528, + "99.999" : 0.1600880574863528, + "99.9999" : 0.1600880574863528, + "100.0" : 0.1600880574863528 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1577168077626723, + 0.15493549551475716, + 0.1556498461275059 + ], + [ + 0.1600880574863528, + 0.15967283248974118, + 0.15846983966405198 + ], + [ + 0.15555324712232454, + 0.1552257638302496, + 0.15686275267838937 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04705066768023394, + "scoreError" : 0.001354979886918993, + "scoreConfidence" : [ + 0.04569568779331495, + 0.04840564756715294 + ], + "scorePercentiles" : { + "0.0" : 0.046198589189688624, + "50.0" : 0.04695832817738709, + "90.0" : 0.04813244350534022, + "95.0" : 0.04813244350534022, + "99.0" : 0.04813244350534022, + "99.9" : 0.04813244350534022, + "99.99" : 0.04813244350534022, + "99.999" : 0.04813244350534022, + "99.9999" : 0.04813244350534022, + "100.0" : 0.04813244350534022 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.046199114461003984, + 0.046198589189688624, + 0.04623714843789734 + ], + [ + 0.04695832817738709, + 0.04697174483905363, + 0.04676409584646608 + ], + [ + 0.04811783464051659, + 0.047876710024751884, + 0.04813244350534022 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9532333.788803102, + "scoreError" : 184675.12319489112, + "scoreConfidence" : [ + 9347658.66560821, + 9717008.911997994 + ], + "scorePercentiles" : { + "0.0" : 9399325.62781955, + "50.0" : 9531696.442857143, + "90.0" : 9684418.71732817, + "95.0" : 9684418.71732817, + "99.0" : 9684418.71732817, + "99.9" : 9684418.71732817, + "99.99" : 9684418.71732817, + "99.999" : 9684418.71732817, + "99.9999" : 9684418.71732817, + "100.0" : 9684418.71732817 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9399325.62781955, + 9531696.442857143, + 9439758.283018868 + ], + [ + 9542497.550572518, + 9446944.228517469, + 9435623.42264151 + ], + [ + 9665474.026086956, + 9645265.800385728, + 9684418.71732817 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T00:24:07Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json b/performance-results/2025-03-24T00:24:07Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json new file mode 100644 index 000000000..31b6567ef --- /dev/null +++ b/performance-results/2025-03-24T00:24:07Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.418727796332958, + "scoreError" : 0.019260305937663362, + "scoreConfidence" : [ + 3.3994674903952946, + 3.437988102270621 + ], + "scorePercentiles" : { + "0.0" : 3.4152823316089855, + "50.0" : 3.418559195614442, + "90.0" : 3.4225104624939626, + "95.0" : 3.4225104624939626, + "99.0" : 3.4225104624939626, + "99.9" : 3.4225104624939626, + "99.99" : 3.4225104624939626, + "99.999" : 3.4225104624939626, + "99.9999" : 3.4225104624939626, + "100.0" : 3.4225104624939626 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4152823316089855, + 3.418103971728598 + ], + [ + 3.4190144195002863, + 3.4225104624939626 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7267000534572148, + "scoreError" : 0.009745745154939877, + "scoreConfidence" : [ + 1.716954308302275, + 1.7364457986121546 + ], + "scorePercentiles" : { + "0.0" : 1.725070583670842, + "50.0" : 1.7265046397066905, + "90.0" : 1.7287203507446358, + "95.0" : 1.7287203507446358, + "99.0" : 1.7287203507446358, + "99.9" : 1.7287203507446358, + "99.99" : 1.7287203507446358, + "99.999" : 1.7287203507446358, + "99.9999" : 1.7287203507446358, + "100.0" : 1.7287203507446358 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7287203507446358, + 1.7265772264402828 + ], + [ + 1.725070583670842, + 1.7264320529730983 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8679407914173365, + "scoreError" : 0.006622606573662276, + "scoreConfidence" : [ + 0.8613181848436742, + 0.8745633979909988 + ], + "scorePercentiles" : { + "0.0" : 0.8669313223112551, + "50.0" : 0.8677987709768098, + "90.0" : 0.8692343014044714, + "95.0" : 0.8692343014044714, + "99.0" : 0.8692343014044714, + "99.9" : 0.8692343014044714, + "99.99" : 0.8692343014044714, + "99.999" : 0.8692343014044714, + "99.9999" : 0.8692343014044714, + "100.0" : 0.8692343014044714 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8669313223112551, + 0.8692343014044714 + ], + [ + 0.8673413586729263, + 0.8682561832806932 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.235936579563116, + "scoreError" : 0.10012301905339593, + "scoreConfidence" : [ + 16.13581356050972, + 16.33605959861651 + ], + "scorePercentiles" : { + "0.0" : 16.137368925786877, + "50.0" : 16.23306955047474, + "90.0" : 16.320767303396018, + "95.0" : 16.320767303396018, + "99.0" : 16.320767303396018, + "99.9" : 16.320767303396018, + "99.99" : 16.320767303396018, + "99.999" : 16.320767303396018, + "99.9999" : 16.320767303396018, + "100.0" : 16.320767303396018 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.137368925786877, + 16.156522429329012, + 16.224274005597668 + ], + [ + 16.23306955047474, + 16.270260500138413, + 16.229219191891904 + ], + [ + 16.29340742332964, + 16.258539886123778, + 16.320767303396018 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2693.999980775219, + "scoreError" : 143.563391004748, + "scoreConfidence" : [ + 2550.4365897704706, + 2837.563371779967 + ], + "scorePercentiles" : { + "0.0" : 2587.0134717566575, + "50.0" : 2705.156115027511, + "90.0" : 2786.233952324298, + "95.0" : 2786.233952324298, + "99.0" : 2786.233952324298, + "99.9" : 2786.233952324298, + "99.99" : 2786.233952324298, + "99.999" : 2786.233952324298, + "99.9999" : 2786.233952324298, + "100.0" : 2786.233952324298 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2785.8671292365375, + 2786.233952324298, + 2785.9989424675027 + ], + [ + 2705.156115027511, + 2701.0886255987457, + 2711.748006185997 + ], + [ + 2589.3528046902547, + 2593.5407796894633, + 2587.0134717566575 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70073.68564851678, + "scoreError" : 1632.0955447784556, + "scoreConfidence" : [ + 68441.59010373833, + 71705.78119329523 + ], + "scorePercentiles" : { + "0.0" : 68765.72725889308, + "50.0" : 70559.97147775891, + "90.0" : 70873.8723885834, + "95.0" : 70873.8723885834, + "99.0" : 70873.8723885834, + "99.9" : 70873.8723885834, + "99.99" : 70873.8723885834, + "99.999" : 70873.8723885834, + "99.9999" : 70873.8723885834, + "100.0" : 70873.8723885834 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70652.15947951954, + 70559.97147775891, + 70557.58478472116 + ], + [ + 70873.8723885834, + 70794.07496145777, + 70861.8622002032 + ], + [ + 68800.60238606091, + 68765.72725889308, + 68797.31589945283 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 346.4769662363869, + "scoreError" : 5.749983693062291, + "scoreConfidence" : [ + 340.7269825433246, + 352.2269499294492 + ], + "scorePercentiles" : { + "0.0" : 342.6456839432396, + "50.0" : 345.21547181686816, + "90.0" : 350.95338261651966, + "95.0" : 350.95338261651966, + "99.0" : 350.95338261651966, + "99.9" : 350.95338261651966, + "99.99" : 350.95338261651966, + "99.999" : 350.95338261651966, + "99.9999" : 350.95338261651966, + "100.0" : 350.95338261651966 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 350.81948717326736, + 350.8788328484417, + 350.95338261651966 + ], + [ + 343.53993221462224, + 342.6456839432396, + 345.7400937176836 + ], + [ + 345.21547181686816, + 344.3811516063152, + 344.1186601905246 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 108.48660478045684, + "scoreError" : 3.6159200713995125, + "scoreConfidence" : [ + 104.87068470905733, + 112.10252485185636 + ], + "scorePercentiles" : { + "0.0" : 106.35313512940456, + "50.0" : 107.62571485891694, + "90.0" : 111.58741620896292, + "95.0" : 111.58741620896292, + "99.0" : 111.58741620896292, + "99.9" : 111.58741620896292, + "99.99" : 111.58741620896292, + "99.999" : 111.58741620896292, + "99.9999" : 111.58741620896292, + "100.0" : 111.58741620896292 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 106.993872610707, + 107.63913033013222, + 107.62571485891694 + ], + [ + 106.35313512940456, + 107.01793018601509, + 106.84737908686986 + ], + [ + 110.96237137270401, + 111.35249324039887, + 111.58741620896292 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.0622361102645904, + "scoreError" : 0.0014092667087201524, + "scoreConfidence" : [ + 0.06082684355587025, + 0.06364537697331056 + ], + "scorePercentiles" : { + "0.0" : 0.06113559449297867, + "50.0" : 0.06233768628404366, + "90.0" : 0.06329307029247391, + "95.0" : 0.06329307029247391, + "99.0" : 0.06329307029247391, + "99.9" : 0.06329307029247391, + "99.99" : 0.06329307029247391, + "99.999" : 0.06329307029247391, + "99.9999" : 0.06329307029247391, + "100.0" : 0.06329307029247391 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06113559449297867, + 0.06127452007328341, + 0.061268865124343666 + ], + [ + 0.06329307029247391, + 0.06295227893083542, + 0.06318084146249005 + ], + [ + 0.06233768628404366, + 0.062332511154188974, + 0.06234962456667581 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.665468543083284E-4, + "scoreError" : 1.005729578916367E-5, + "scoreConfidence" : [ + 3.564895585191647E-4, + 3.7660415009749205E-4 + ], + "scorePercentiles" : { + "0.0" : 3.5904002448909427E-4, + "50.0" : 3.674106865832467E-4, + "90.0" : 3.7315715283631613E-4, + "95.0" : 3.7315715283631613E-4, + "99.0" : 3.7315715283631613E-4, + "99.9" : 3.7315715283631613E-4, + "99.99" : 3.7315715283631613E-4, + "99.999" : 3.7315715283631613E-4, + "99.9999" : 3.7315715283631613E-4, + "100.0" : 3.7315715283631613E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.5904002448909427E-4, + 3.593027288419463E-4, + 3.59669568734919E-4 + ], + [ + 3.6629329073931805E-4, + 3.68010703875466E-4, + 3.674106865832467E-4 + ], + [ + 3.7315715283631613E-4, + 3.7295545675339195E-4, + 3.7308207592125686E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014168876622290247, + "scoreError" : 2.180404606342525E-4, + "scoreConfidence" : [ + 0.013950836161655995, + 0.0143869170829245 + ], + "scorePercentiles" : { + "0.0" : 0.014005904332395416, + "50.0" : 0.014214103812740216, + "90.0" : 0.014365163314117767, + "95.0" : 0.014365163314117767, + "99.0" : 0.014365163314117767, + "99.9" : 0.014365163314117767, + "99.99" : 0.014365163314117767, + "99.999" : 0.014365163314117767, + "99.9999" : 0.014365163314117767, + "100.0" : 0.014365163314117767 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014248717006779458, + 0.014241400673894561, + 0.014247215099016953 + ], + [ + 0.014015916791290052, + 0.01400655825116253, + 0.014005904332395416 + ], + [ + 0.014365163314117767, + 0.014214103812740216, + 0.014174910319215287 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9883874619998374, + "scoreError" : 0.012262246983570126, + "scoreConfidence" : [ + 0.9761252150162673, + 1.0006497089834074 + ], + "scorePercentiles" : { + "0.0" : 0.9782718871172845, + "50.0" : 0.9889908523536393, + "90.0" : 1.0001254258425842, + "95.0" : 1.0001254258425842, + "99.0" : 1.0001254258425842, + "99.9" : 1.0001254258425842, + "99.99" : 1.0001254258425842, + "99.999" : 1.0001254258425842, + "99.9999" : 1.0001254258425842, + "100.0" : 1.0001254258425842 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9902935940192098, + 0.9942343288597276, + 1.0001254258425842 + ], + [ + 0.9818900094256259, + 0.9782718871172845, + 0.9801009946099569 + ], + [ + 0.9872359937808489, + 0.9889908523536393, + 0.9943440719896589 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013229909001656678, + "scoreError" : 9.406588269167901E-4, + "scoreConfidence" : [ + 0.012289250174739887, + 0.014170567828573469 + ], + "scorePercentiles" : { + "0.0" : 0.012873240898839377, + "50.0" : 0.013235218525888437, + "90.0" : 0.013595976207632591, + "95.0" : 0.013595976207632591, + "99.0" : 0.013595976207632591, + "99.9" : 0.013595976207632591, + "99.99" : 0.013595976207632591, + "99.999" : 0.013595976207632591, + "99.9999" : 0.013595976207632591, + "100.0" : 0.013595976207632591 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012873240898839377, + 0.012927177535904031, + 0.012980483442625505 + ], + [ + 0.013489953609151367, + 0.013512622315787199, + 0.013595976207632591 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.8953529355881122, + "scoreError" : 0.16813129815441916, + "scoreConfidence" : [ + 3.727221637433693, + 4.063484233742531 + ], + "scorePercentiles" : { + "0.0" : 3.8246030955657493, + "50.0" : 3.8941909112009157, + "90.0" : 3.9681537279936556, + "95.0" : 3.9681537279936556, + "99.0" : 3.9681537279936556, + "99.9" : 3.9681537279936556, + "99.99" : 3.9681537279936556, + "99.999" : 3.9681537279936556, + "99.9999" : 3.9681537279936556, + "100.0" : 3.9681537279936556 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8246030955657493, + 3.8482302953846155, + 3.8541955454545453 + ], + [ + 3.9681537279936556, + 3.9341862769472855, + 3.9427486721828213 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.860606839688258, + "scoreError" : 0.04294079178434248, + "scoreConfidence" : [ + 2.8176660479039155, + 2.9035476314726 + ], + "scorePercentiles" : { + "0.0" : 2.832584204474653, + "50.0" : 2.848960992309883, + "90.0" : 2.8993197460869564, + "95.0" : 2.8993197460869564, + "99.0" : 2.8993197460869564, + "99.9" : 2.8993197460869564, + "99.99" : 2.8993197460869564, + "99.999" : 2.8993197460869564, + "99.9999" : 2.8993197460869564, + "100.0" : 2.8993197460869564 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.841267359375, + 2.853678905278174, + 2.846926069740962 + ], + [ + 2.841372784375, + 2.832584204474653, + 2.848960992309883 + ], + [ + 2.8877761952064684, + 2.8935753003472224, + 2.8993197460869564 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17612873481401406, + "scoreError" : 0.002273465359969216, + "scoreConfidence" : [ + 0.17385526945404484, + 0.17840220017398328 + ], + "scorePercentiles" : { + "0.0" : 0.17405524113203608, + "50.0" : 0.17676613815777845, + "90.0" : 0.17724810159697973, + "95.0" : 0.17724810159697973, + "99.0" : 0.17724810159697973, + "99.9" : 0.17724810159697973, + "99.99" : 0.17724810159697973, + "99.999" : 0.17724810159697973, + "99.9999" : 0.17724810159697973, + "100.0" : 0.17724810159697973 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17460966817991339, + 0.17438350551041049, + 0.17405524113203608 + ], + [ + 0.17709970664281793, + 0.17698738675822523, + 0.1767625913493831 + ], + [ + 0.17724810159697973, + 0.17724627399858206, + 0.17676613815777845 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3286495142725523, + "scoreError" : 0.00669510717019289, + "scoreConfidence" : [ + 0.3219544071023594, + 0.3353446214427452 + ], + "scorePercentiles" : { + "0.0" : 0.3232384157993406, + "50.0" : 0.3294961234596376, + "90.0" : 0.3335745540545048, + "95.0" : 0.3335745540545048, + "99.0" : 0.3335745540545048, + "99.9" : 0.3335745540545048, + "99.99" : 0.3335745540545048, + "99.999" : 0.3335745540545048, + "99.9999" : 0.3335745540545048, + "100.0" : 0.3335745540545048 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3335745540545048, + 0.33236815833554906, + 0.33235919395792485 + ], + [ + 0.3243569388278032, + 0.3236054946445329, + 0.3232384157993406 + ], + [ + 0.32962189515145524, + 0.3294961234596376, + 0.3292248542222222 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1617962695319054, + "scoreError" : 0.009564736250000632, + "scoreConfidence" : [ + 0.15223153328190478, + 0.17136100578190602 + ], + "scorePercentiles" : { + "0.0" : 0.15489851643432465, + "50.0" : 0.16205769522590263, + "90.0" : 0.16841606593351072, + "95.0" : 0.16841606593351072, + "99.0" : 0.16841606593351072, + "99.9" : 0.16841606593351072, + "99.99" : 0.16841606593351072, + "99.999" : 0.16841606593351072, + "99.9999" : 0.16841606593351072, + "100.0" : 0.16841606593351072 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16201351245038478, + 0.16205769522590263, + 0.16216430718212335 + ], + [ + 0.1681184438747205, + 0.16812965105331293, + 0.16841606593351072 + ], + [ + 0.1551939337802815, + 0.1551742998525875, + 0.15489851643432465 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3925601761045857, + "scoreError" : 0.002854200782560512, + "scoreConfidence" : [ + 0.3897059753220252, + 0.3954143768871462 + ], + "scorePercentiles" : { + "0.0" : 0.3902284047684083, + "50.0" : 0.3928132682457381, + "90.0" : 0.39562102373605507, + "95.0" : 0.39562102373605507, + "99.0" : 0.39562102373605507, + "99.9" : 0.39562102373605507, + "99.99" : 0.39562102373605507, + "99.999" : 0.39562102373605507, + "99.9999" : 0.39562102373605507, + "100.0" : 0.39562102373605507 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3928132682457381, + 0.3921554295517823, + 0.3917012223179664 + ], + [ + 0.39295643506621086, + 0.3903483630118272, + 0.3902284047684083 + ], + [ + 0.39562102373605507, + 0.39343656243606895, + 0.3937808758072137 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1590055963300603, + "scoreError" : 0.0038154826825017377, + "scoreConfidence" : [ + 0.15519011364755858, + 0.16282107901256204 + ], + "scorePercentiles" : { + "0.0" : 0.15701236564035734, + "50.0" : 0.15821260119923425, + "90.0" : 0.16385100081922893, + "95.0" : 0.16385100081922893, + "99.0" : 0.16385100081922893, + "99.9" : 0.16385100081922893, + "99.99" : 0.16385100081922893, + "99.999" : 0.16385100081922893, + "99.9999" : 0.16385100081922893, + "100.0" : 0.16385100081922893 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16385100081922893, + 0.16060318779108984, + 0.16053085958744684 + ], + [ + 0.1570874410706712, + 0.15701236564035734, + 0.1571129542340927 + ], + [ + 0.15852308593304165, + 0.15811687069537994, + 0.15821260119923425 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04709400613370748, + "scoreError" : 8.959832103309933E-4, + "scoreConfidence" : [ + 0.04619802292337649, + 0.047989989344038475 + ], + "scorePercentiles" : { + "0.0" : 0.046410384114873394, + "50.0" : 0.04702598648019525, + "90.0" : 0.0478789975917228, + "95.0" : 0.0478789975917228, + "99.0" : 0.0478789975917228, + "99.9" : 0.0478789975917228, + "99.99" : 0.0478789975917228, + "99.999" : 0.0478789975917228, + "99.9999" : 0.0478789975917228, + "100.0" : 0.0478789975917228 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04702598648019525, + 0.046662754487720885, + 0.046708876802354096 + ], + [ + 0.047046067618236646, + 0.04673500164037855, + 0.046410384114873394 + ], + [ + 0.0477683986367067, + 0.04760958783117903, + 0.0478789975917228 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9327352.777649432, + "scoreError" : 192657.07108017706, + "scoreConfidence" : [ + 9134695.706569256, + 9520009.848729609 + ], + "scorePercentiles" : { + "0.0" : 9175624.649541285, + "50.0" : 9338098.31372549, + "90.0" : 9463799.421948912, + "95.0" : 9463799.421948912, + "99.0" : 9463799.421948912, + "99.9" : 9463799.421948912, + "99.99" : 9463799.421948912, + "99.999" : 9463799.421948912, + "99.9999" : 9463799.421948912, + "100.0" : 9463799.421948912 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9368004.88857678, + 9338098.31372549, + 9322472.486486487 + ], + [ + 9198349.157169119, + 9175624.649541285, + 9193192.830882354 + ], + [ + 9433707.31856739, + 9463799.421948912, + 9452925.93194707 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T00:24:36Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json b/performance-results/2025-03-24T00:24:36Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json new file mode 100644 index 000000000..fbe88ad5a --- /dev/null +++ b/performance-results/2025-03-24T00:24:36Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.420038635731748, + "scoreError" : 0.03572612124681014, + "scoreConfidence" : [ + 3.3843125144849378, + 3.4557647569785583 + ], + "scorePercentiles" : { + "0.0" : 3.412757503952283, + "50.0" : 3.4206086449711632, + "90.0" : 3.4261797490323804, + "95.0" : 3.4261797490323804, + "99.0" : 3.4261797490323804, + "99.9" : 3.4261797490323804, + "99.99" : 3.4261797490323804, + "99.999" : 3.4261797490323804, + "99.9999" : 3.4261797490323804, + "100.0" : 3.4261797490323804 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.420208542034723, + 3.4261797490323804 + ], + [ + 3.412757503952283, + 3.421008747907604 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7269594749383836, + "scoreError" : 0.009130618232612993, + "scoreConfidence" : [ + 1.7178288567057707, + 1.7360900931709966 + ], + "scorePercentiles" : { + "0.0" : 1.7252408089036402, + "50.0" : 1.7270218836065996, + "90.0" : 1.7285533236366952, + "95.0" : 1.7285533236366952, + "99.0" : 1.7285533236366952, + "99.9" : 1.7285533236366952, + "99.99" : 1.7285533236366952, + "99.999" : 1.7285533236366952, + "99.9999" : 1.7285533236366952, + "100.0" : 1.7285533236366952 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7265281609307856, + 1.7275156062824133 + ], + [ + 1.7252408089036402, + 1.7285533236366952 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8683627355847058, + "scoreError" : 0.004424765135251617, + "scoreConfidence" : [ + 0.8639379704494542, + 0.8727875007199574 + ], + "scorePercentiles" : { + "0.0" : 0.8676182677477435, + "50.0" : 0.8683318351838458, + "90.0" : 0.8691690042233875, + "95.0" : 0.8691690042233875, + "99.0" : 0.8691690042233875, + "99.9" : 0.8691690042233875, + "99.99" : 0.8691690042233875, + "99.999" : 0.8691690042233875, + "99.9999" : 0.8691690042233875, + "100.0" : 0.8691690042233875 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8680153036900241, + 0.8691690042233875 + ], + [ + 0.8676182677477435, + 0.8686483666776675 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.055543045735995, + "scoreError" : 0.2069643928273129, + "scoreConfidence" : [ + 15.848578652908682, + 16.262507438563308 + ], + "scorePercentiles" : { + "0.0" : 15.853454930952296, + "50.0" : 16.095843976286545, + "90.0" : 16.17934655862583, + "95.0" : 16.17934655862583, + "99.0" : 16.17934655862583, + "99.9" : 16.17934655862583, + "99.99" : 16.17934655862583, + "99.999" : 16.17934655862583, + "99.9999" : 16.17934655862583, + "100.0" : 16.17934655862583 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.853454930952296, + 15.919691762471901, + 15.92626644855112 + ], + [ + 16.101053864799674, + 16.16745467342604, + 16.088498782754574 + ], + [ + 16.17934655862583, + 16.095843976286545, + 16.168276413755958 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2633.4585624258307, + "scoreError" : 107.03761392892255, + "scoreConfidence" : [ + 2526.4209484969083, + 2740.496176354753 + ], + "scorePercentiles" : { + "0.0" : 2549.5553016703866, + "50.0" : 2651.5276426160167, + "90.0" : 2695.661966615178, + "95.0" : 2695.661966615178, + "99.0" : 2695.661966615178, + "99.9" : 2695.661966615178, + "99.99" : 2695.661966615178, + "99.999" : 2695.661966615178, + "99.9999" : 2695.661966615178, + "100.0" : 2695.661966615178 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2552.6745350860156, + 2552.7855568633254, + 2549.5553016703866 + ], + [ + 2665.1315269714228, + 2651.5276426160167, + 2649.0604733029927 + ], + [ + 2691.478381856197, + 2693.251676850942, + 2695.661966615178 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69931.37941176901, + "scoreError" : 1465.4758812930647, + "scoreConfidence" : [ + 68465.90353047595, + 71396.85529306208 + ], + "scorePercentiles" : { + "0.0" : 68845.18560964587, + "50.0" : 70023.56910032906, + "90.0" : 70921.12070454148, + "95.0" : 70921.12070454148, + "99.0" : 70921.12070454148, + "99.9" : 70921.12070454148, + "99.99" : 70921.12070454148, + "99.999" : 70921.12070454148, + "99.9999" : 70921.12070454148, + "100.0" : 70921.12070454148 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 68875.69735017336, + 68845.18560964587, + 68901.2495725469 + ], + [ + 70094.01325465711, + 70012.04067921391, + 70023.56910032906 + ], + [ + 70889.52196622957, + 70921.12070454148, + 70820.0164685838 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 349.19467879376697, + "scoreError" : 7.823959503486677, + "scoreConfidence" : [ + 341.3707192902803, + 357.01863829725363 + ], + "scorePercentiles" : { + "0.0" : 342.85429652799536, + "50.0" : 351.3516869295316, + "90.0" : 353.85345733628844, + "95.0" : 353.85345733628844, + "99.0" : 353.85345733628844, + "99.9" : 353.85345733628844, + "99.99" : 353.85345733628844, + "99.999" : 353.85345733628844, + "99.9999" : 353.85345733628844, + "100.0" : 353.85345733628844 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 351.3459819255283, + 351.6033818518908, + 351.3516869295316 + ], + [ + 342.85429652799536, + 343.0360144184278, + 343.3701754846237 + ], + [ + 352.1977931513615, + 353.85345733628844, + 353.13932151825475 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.23185794008825, + "scoreError" : 2.631478358621384, + "scoreConfidence" : [ + 104.60037958146687, + 109.86333629870963 + ], + "scorePercentiles" : { + "0.0" : 105.6072203712119, + "50.0" : 107.10883582462246, + "90.0" : 109.34753566473427, + "95.0" : 109.34753566473427, + "99.0" : 109.34753566473427, + "99.9" : 109.34753566473427, + "99.99" : 109.34753566473427, + "99.999" : 109.34753566473427, + "99.9999" : 109.34753566473427, + "100.0" : 109.34753566473427 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 105.90448525309176, + 107.10883582462246, + 107.37865546414842 + ], + [ + 108.80366786552064, + 109.29181493925394, + 109.34753566473427 + ], + [ + 105.6072203712119, + 105.91024847813217, + 105.73425760007858 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06181778714684108, + "scoreError" : 8.67739054633523E-4, + "scoreConfidence" : [ + 0.060950048092207554, + 0.0626855262014746 + ], + "scorePercentiles" : { + "0.0" : 0.061366941830923685, + "50.0" : 0.06172266934334052, + "90.0" : 0.06312104011285884, + "95.0" : 0.06312104011285884, + "99.0" : 0.06312104011285884, + "99.9" : 0.06312104011285884, + "99.99" : 0.06312104011285884, + "99.999" : 0.06312104011285884, + "99.9999" : 0.06312104011285884, + "100.0" : 0.06312104011285884 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06195911648151475, + 0.06172355798537173, + 0.06173098702437097 + ], + [ + 0.06153243771151503, + 0.06167637224233528, + 0.06172266934334052 + ], + [ + 0.06312104011285884, + 0.06152696158933878, + 0.061366941830923685 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.6857029118731886E-4, + "scoreError" : 1.5216564218543925E-5, + "scoreConfidence" : [ + 3.5335372696877494E-4, + 3.837868554058628E-4 + ], + "scorePercentiles" : { + "0.0" : 3.5672240780497004E-4, + "50.0" : 3.6874689627437875E-4, + "90.0" : 3.791402232827823E-4, + "95.0" : 3.791402232827823E-4, + "99.0" : 3.791402232827823E-4, + "99.9" : 3.791402232827823E-4, + "99.99" : 3.791402232827823E-4, + "99.999" : 3.791402232827823E-4, + "99.9999" : 3.791402232827823E-4, + "100.0" : 3.791402232827823E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.686687545112998E-4, + 3.6874689627437875E-4, + 3.6928144258397934E-4 + ], + [ + 3.5672240780497004E-4, + 3.591926452381613E-4, + 3.580368797876607E-4 + ], + [ + 3.782523123139139E-4, + 3.790910588887234E-4, + 3.791402232827823E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014149934787332199, + "scoreError" : 1.5484970065954965E-4, + "scoreConfidence" : [ + 0.013995085086672649, + 0.014304784487991749 + ], + "scorePercentiles" : { + "0.0" : 0.014058790354938164, + "50.0" : 0.014136459809273935, + "90.0" : 0.014363401301596329, + "95.0" : 0.014363401301596329, + "99.0" : 0.014363401301596329, + "99.9" : 0.014363401301596329, + "99.99" : 0.014363401301596329, + "99.999" : 0.014363401301596329, + "99.9999" : 0.014363401301596329, + "100.0" : 0.014363401301596329 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014151441471108086, + 0.014164649357216513, + 0.014363401301596329 + ], + [ + 0.014128270719925855, + 0.014136459809273935, + 0.014193550559501302 + ], + [ + 0.014060995313528198, + 0.014091854198901412, + 0.014058790354938164 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9848796345153955, + "scoreError" : 0.026365331267761083, + "scoreConfidence" : [ + 0.9585143032476344, + 1.0112449657831566 + ], + "scorePercentiles" : { + "0.0" : 0.9705371368400622, + "50.0" : 0.977281722759699, + "90.0" : 1.0084672936371886, + "95.0" : 1.0084672936371886, + "99.0" : 1.0084672936371886, + "99.9" : 1.0084672936371886, + "99.99" : 1.0084672936371886, + "99.999" : 1.0084672936371886, + "99.9999" : 1.0084672936371886, + "100.0" : 1.0084672936371886 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9727504306001362, + 0.972441956437184, + 0.9705371368400622 + ], + [ + 0.9843706345112708, + 0.971754894859586, + 0.977281722759699 + ], + [ + 1.0012740556668, + 1.0050385853266333, + 1.0084672936371886 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01303848291506131, + "scoreError" : 7.648798660533651E-4, + "scoreConfidence" : [ + 0.012273603049007945, + 0.013803362781114676 + ], + "scorePercentiles" : { + "0.0" : 0.012721311135196195, + "50.0" : 0.01305365903752266, + "90.0" : 0.013294264663889117, + "95.0" : 0.013294264663889117, + "99.0" : 0.013294264663889117, + "99.9" : 0.013294264663889117, + "99.99" : 0.013294264663889117, + "99.999" : 0.013294264663889117, + "99.9999" : 0.013294264663889117, + "100.0" : 0.013294264663889117 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012721311135196195, + 0.012828935289786096, + 0.012825929841347202 + ], + [ + 0.013278382785259227, + 0.013294264663889117, + 0.013282073774890027 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6859162919508712, + "scoreError" : 0.08130077546456034, + "scoreConfidence" : [ + 3.604615516486311, + 3.7672170674154315 + ], + "scorePercentiles" : { + "0.0" : 3.6448528950437318, + "50.0" : 3.680905968346083, + "90.0" : 3.722713207589286, + "95.0" : 3.722713207589286, + "99.0" : 3.722713207589286, + "99.9" : 3.722713207589286, + "99.99" : 3.722713207589286, + "99.999" : 3.722713207589286, + "99.9999" : 3.722713207589286, + "100.0" : 3.722713207589286 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6448528950437318, + 3.6821769646539027, + 3.6796349720382633 + ], + [ + 3.670619360968452, + 3.71550035141159, + 3.722713207589286 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.9123843056312286, + "scoreError" : 0.040828029372389635, + "scoreConfidence" : [ + 2.871556276258839, + 2.9532123350036183 + ], + "scorePercentiles" : { + "0.0" : 2.883016596137215, + "50.0" : 2.9039433644018584, + "90.0" : 2.9513215104750663, + "95.0" : 2.9513215104750663, + "99.0" : 2.9513215104750663, + "99.9" : 2.9513215104750663, + "99.99" : 2.9513215104750663, + "99.999" : 2.9513215104750663, + "99.9999" : 2.9513215104750663, + "100.0" : 2.9513215104750663 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.9101809997090484, + 2.9016431763852624, + 2.883016596137215 + ], + [ + 2.949388729283397, + 2.9513215104750663, + 2.923200353405437 + ], + [ + 2.891391844174617, + 2.9039433644018584, + 2.8973721767091543 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17631540626328382, + "scoreError" : 0.005322650101665493, + "scoreConfidence" : [ + 0.17099275616161833, + 0.1816380563649493 + ], + "scorePercentiles" : { + "0.0" : 0.17230167962921483, + "50.0" : 0.17607343552362842, + "90.0" : 0.18029872303254305, + "95.0" : 0.18029872303254305, + "99.0" : 0.18029872303254305, + "99.9" : 0.18029872303254305, + "99.99" : 0.18029872303254305, + "99.999" : 0.18029872303254305, + "99.9999" : 0.18029872303254305, + "100.0" : 0.18029872303254305 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17323904012126462, + 0.17264319178578827, + 0.17230167962921483 + ], + [ + 0.18029872303254305, + 0.1797842819646196, + 0.17992781205131433 + ], + [ + 0.17659479259376987, + 0.17607343552362842, + 0.1759756996674116 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3374518829803303, + "scoreError" : 0.009005641323680674, + "scoreConfidence" : [ + 0.3284462416566496, + 0.346457524304011 + ], + "scorePercentiles" : { + "0.0" : 0.33093121890201527, + "50.0" : 0.3372985680652995, + "90.0" : 0.34342195291895605, + "95.0" : 0.34342195291895605, + "99.0" : 0.34342195291895605, + "99.9" : 0.34342195291895605, + "99.99" : 0.34342195291895605, + "99.999" : 0.34342195291895605, + "99.9999" : 0.34342195291895605, + "100.0" : 0.34342195291895605 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3393818560374669, + 0.3372985680652995, + 0.33715946481912273 + ], + [ + 0.3309354022767887, + 0.331359524055666, + 0.33093121890201527 + ], + [ + 0.34341128602335164, + 0.34316767372430595, + 0.34342195291895605 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16313051381345262, + "scoreError" : 0.010396355099357468, + "scoreConfidence" : [ + 0.15273415871409515, + 0.17352686891281008 + ], + "scorePercentiles" : { + "0.0" : 0.15699070771911647, + "50.0" : 0.1611923607730621, + "90.0" : 0.1712437169081133, + "95.0" : 0.1712437169081133, + "99.0" : 0.1712437169081133, + "99.9" : 0.1712437169081133, + "99.99" : 0.1712437169081133, + "99.999" : 0.1712437169081133, + "99.9999" : 0.1712437169081133, + "100.0" : 0.1712437169081133 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15752309528385106, + 0.15699070771911647, + 0.15700094895988695 + ], + [ + 0.1712437169081133, + 0.17107739566154584, + 0.17081330198992228 + ], + [ + 0.16126023378968926, + 0.1610728632358863, + 0.1611923607730621 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38568584578686127, + "scoreError" : 0.008013563016641172, + "scoreConfidence" : [ + 0.3776722827702201, + 0.39369940880350246 + ], + "scorePercentiles" : { + "0.0" : 0.38021937287555607, + "50.0" : 0.3842808693463475, + "90.0" : 0.39188927098518694, + "95.0" : 0.39188927098518694, + "99.0" : 0.39188927098518694, + "99.9" : 0.39188927098518694, + "99.99" : 0.39188927098518694, + "99.999" : 0.39188927098518694, + "99.9999" : 0.39188927098518694, + "100.0" : 0.39188927098518694 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3802239573020037, + 0.38021937287555607, + 0.38083733512319584 + ], + [ + 0.3888499179951785, + 0.39188927098518694, + 0.38913277193665124 + ], + [ + 0.3915314130060293, + 0.3842808693463475, + 0.3842077035116029 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15686664020284957, + "scoreError" : 0.004103900306174808, + "scoreConfidence" : [ + 0.15276273989667477, + 0.16097054050902437 + ], + "scorePercentiles" : { + "0.0" : 0.15334087613469088, + "50.0" : 0.15778918079113874, + "90.0" : 0.15933047987699955, + "95.0" : 0.15933047987699955, + "99.0" : 0.15933047987699955, + "99.9" : 0.15933047987699955, + "99.99" : 0.15933047987699955, + "99.999" : 0.15933047987699955, + "99.9999" : 0.15933047987699955, + "100.0" : 0.15933047987699955 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15933047987699955, + 0.1585143294973608, + 0.15778918079113874 + ], + [ + 0.15860314175601092, + 0.15883556409726965, + 0.15759307658850227 + ], + [ + 0.15443659665189258, + 0.15334087613469088, + 0.1533565164317809 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04798045376241683, + "scoreError" : 0.0016470127208893697, + "scoreConfidence" : [ + 0.04633344104152746, + 0.0496274664833062 + ], + "scorePercentiles" : { + "0.0" : 0.04644588398890886, + "50.0" : 0.048023235478015326, + "90.0" : 0.04916658521188045, + "95.0" : 0.04916658521188045, + "99.0" : 0.04916658521188045, + "99.9" : 0.04916658521188045, + "99.99" : 0.04916658521188045, + "99.999" : 0.04916658521188045, + "99.9999" : 0.04916658521188045, + "100.0" : 0.04916658521188045 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04727092483538093, + 0.04644588398890886, + 0.046728657712005385 + ], + [ + 0.04916658521188045, + 0.048825053589563315, + 0.04881958612861809 + ], + [ + 0.04790924984789035, + 0.048023235478015326, + 0.04863490706948875 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9397966.469331594, + "scoreError" : 400921.4801179857, + "scoreConfidence" : [ + 8997044.989213608, + 9798887.94944958 + ], + "scorePercentiles" : { + "0.0" : 9164177.787545787, + "50.0" : 9301691.79739777, + "90.0" : 9721944.350826045, + "95.0" : 9721944.350826045, + "99.0" : 9721944.350826045, + "99.9" : 9721944.350826045, + "99.99" : 9721944.350826045, + "99.999" : 9721944.350826045, + "99.9999" : 9721944.350826045, + "100.0" : 9721944.350826045 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9301769.69888476, + 9301691.79739777, + 9293745.372330548 + ], + [ + 9216755.062615102, + 9177969.882568806, + 9164177.787545787 + ], + [ + 9686416.676669894, + 9721944.350826045, + 9717227.595145632 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T00:25:13Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json b/performance-results/2025-03-24T00:25:13Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json new file mode 100644 index 000000000..9ec78ec79 --- /dev/null +++ b/performance-results/2025-03-24T00:25:13Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.427192512014576, + "scoreError" : 0.012873173657204301, + "scoreConfidence" : [ + 3.414319338357372, + 3.44006568567178 + ], + "scorePercentiles" : { + "0.0" : 3.4251916231698507, + "50.0" : 3.427044764180539, + "90.0" : 3.4294888965273755, + "95.0" : 3.4294888965273755, + "99.0" : 3.4294888965273755, + "99.9" : 3.4294888965273755, + "99.99" : 3.4294888965273755, + "99.999" : 3.4294888965273755, + "99.9999" : 3.4294888965273755, + "100.0" : 3.4294888965273755 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4251916231698507, + 3.4294888965273755 + ], + [ + 3.4259078290300446, + 3.4281816993310326 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.729194618855824, + "scoreError" : 0.008041480454113865, + "scoreConfidence" : [ + 1.7211531384017102, + 1.7372360993099378 + ], + "scorePercentiles" : { + "0.0" : 1.728180199312595, + "50.0" : 1.7288913442207987, + "90.0" : 1.730815587669104, + "95.0" : 1.730815587669104, + "99.0" : 1.730815587669104, + "99.9" : 1.730815587669104, + "99.99" : 1.730815587669104, + "99.999" : 1.730815587669104, + "99.9999" : 1.730815587669104, + "100.0" : 1.730815587669104 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7282568108323697, + 1.7295258776092277 + ], + [ + 1.728180199312595, + 1.730815587669104 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8689448347025848, + "scoreError" : 0.005903307335313809, + "scoreConfidence" : [ + 0.8630415273672709, + 0.8748481420378986 + ], + "scorePercentiles" : { + "0.0" : 0.8676539255997362, + "50.0" : 0.8691740741199422, + "90.0" : 0.8697772649707182, + "95.0" : 0.8697772649707182, + "99.0" : 0.8697772649707182, + "99.9" : 0.8697772649707182, + "99.99" : 0.8697772649707182, + "99.999" : 0.8697772649707182, + "99.9999" : 0.8697772649707182, + "100.0" : 0.8697772649707182 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8676539255997362, + 0.8690340804702854 + ], + [ + 0.869314067769599, + 0.8697772649707182 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.167508035118427, + "scoreError" : 0.25972430198208885, + "scoreConfidence" : [ + 15.907783733136338, + 16.427232337100516 + ], + "scorePercentiles" : { + "0.0" : 15.92809758573588, + "50.0" : 16.183659072249025, + "90.0" : 16.343217981430513, + "95.0" : 16.343217981430513, + "99.0" : 16.343217981430513, + "99.9" : 16.343217981430513, + "99.99" : 16.343217981430513, + "99.999" : 16.343217981430513, + "99.9999" : 16.343217981430513, + "100.0" : 16.343217981430513 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.197843725815492, + 16.17705961536494, + 16.183659072249025 + ], + [ + 16.310391435762632, + 16.343217981430513, + 16.34076437108 + ], + [ + 15.92809758573588, + 15.970675179208435, + 16.05586334941892 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2687.1436345801776, + "scoreError" : 18.904649497499815, + "scoreConfidence" : [ + 2668.2389850826776, + 2706.0482840776776 + ], + "scorePercentiles" : { + "0.0" : 2670.3886255919297, + "50.0" : 2684.9111243097527, + "90.0" : 2703.5474294577257, + "95.0" : 2703.5474294577257, + "99.0" : 2703.5474294577257, + "99.9" : 2703.5474294577257, + "99.99" : 2703.5474294577257, + "99.999" : 2703.5474294577257, + "99.9999" : 2703.5474294577257, + "100.0" : 2703.5474294577257 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2703.5474294577257, + 2700.7496243988994, + 2697.685683724869 + ], + [ + 2687.329405036839, + 2684.9111243097527, + 2681.400528174645 + ], + [ + 2679.5193054018728, + 2670.3886255919297, + 2678.7609851250654 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69734.09464764553, + "scoreError" : 1969.4613868559036, + "scoreConfidence" : [ + 67764.63326078962, + 71703.55603450144 + ], + "scorePercentiles" : { + "0.0" : 68737.04196237889, + "50.0" : 69100.07053657329, + "90.0" : 71311.58539349773, + "95.0" : 71311.58539349773, + "99.0" : 71311.58539349773, + "99.9" : 71311.58539349773, + "99.99" : 71311.58539349773, + "99.999" : 71311.58539349773, + "99.9999" : 71311.58539349773, + "100.0" : 71311.58539349773 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 71238.58894866482, + 71309.06321666678, + 71311.58539349773 + ], + [ + 68737.04196237889, + 68887.45002530912, + 68811.03706522842 + ], + [ + 69073.30047654698, + 69138.71420394372, + 69100.07053657329 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 351.50220235933625, + "scoreError" : 7.756306318471352, + "scoreConfidence" : [ + 343.7458960408649, + 359.2585086778076 + ], + "scorePercentiles" : { + "0.0" : 345.4808066065005, + "50.0" : 351.31352568630047, + "90.0" : 356.91040681496656, + "95.0" : 356.91040681496656, + "99.0" : 356.91040681496656, + "99.9" : 356.91040681496656, + "99.99" : 356.91040681496656, + "99.999" : 356.91040681496656, + "99.9999" : 356.91040681496656, + "100.0" : 356.91040681496656 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 356.91040681496656, + 356.88629417444713, + 356.5931456022146 + ], + [ + 345.4808066065005, + 346.0590898633618, + 347.0960040572533 + ], + [ + 352.2717640794763, + 351.31352568630047, + 350.90878434950565 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 106.89426072041461, + "scoreError" : 3.212501268374495, + "scoreConfidence" : [ + 103.68175945204011, + 110.1067619887891 + ], + "scorePercentiles" : { + "0.0" : 104.89864582142164, + "50.0" : 106.2840255003389, + "90.0" : 109.5152093057473, + "95.0" : 109.5152093057473, + "99.0" : 109.5152093057473, + "99.9" : 109.5152093057473, + "99.99" : 109.5152093057473, + "99.999" : 109.5152093057473, + "99.9999" : 109.5152093057473, + "100.0" : 109.5152093057473 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 104.89864582142164, + 105.31981365401647, + 105.27531851739955 + ], + [ + 109.19609289827845, + 109.5152093057473, + 109.37650741372804 + ], + [ + 105.80530145136055, + 106.2840255003389, + 106.37743192144043 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06176367037071446, + "scoreError" : 0.0012202223664750805, + "scoreConfidence" : [ + 0.06054344800423938, + 0.06298389273718955 + ], + "scorePercentiles" : { + "0.0" : 0.0613146869738496, + "50.0" : 0.0613733022891862, + "90.0" : 0.06359179673142348, + "95.0" : 0.06359179673142348, + "99.0" : 0.06359179673142348, + "99.9" : 0.06359179673142348, + "99.99" : 0.06359179673142348, + "99.999" : 0.06359179673142348, + "99.9999" : 0.06359179673142348, + "100.0" : 0.06359179673142348 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06137311087516877, + 0.0613733022891862, + 0.06134540644975278 + ], + [ + 0.06186620599352887, + 0.061843810723562154, + 0.061818986511297254 + ], + [ + 0.06359179673142348, + 0.06134572678866103, + 0.0613146869738496 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.6557456403008633E-4, + "scoreError" : 1.4201606647306137E-5, + "scoreConfidence" : [ + 3.513729573827802E-4, + 3.797761706773925E-4 + ], + "scorePercentiles" : { + "0.0" : 3.552793083481791E-4, + "50.0" : 3.657273559060746E-4, + "90.0" : 3.7604188406507215E-4, + "95.0" : 3.7604188406507215E-4, + "99.0" : 3.7604188406507215E-4, + "99.9" : 3.7604188406507215E-4, + "99.99" : 3.7604188406507215E-4, + "99.999" : 3.7604188406507215E-4, + "99.9999" : 3.7604188406507215E-4, + "100.0" : 3.7604188406507215E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.655510130763393E-4, + 3.665766364791667E-4, + 3.657273559060746E-4 + ], + [ + 3.747549098404646E-4, + 3.7456665019215994E-4, + 3.7604188406507215E-4 + ], + [ + 3.5582687465080437E-4, + 3.558464437125165E-4, + 3.552793083481791E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.01478077065447956, + "scoreError" : 4.596114266672553E-4, + "scoreConfidence" : [ + 0.014321159227812304, + 0.015240382081146815 + ], + "scorePercentiles" : { + "0.0" : 0.014584980540950492, + "50.0" : 0.014609507818172522, + "90.0" : 0.015151146695958486, + "95.0" : 0.015151146695958486, + "99.0" : 0.015151146695958486, + "99.9" : 0.015151146695958486, + "99.99" : 0.015151146695958486, + "99.999" : 0.015151146695958486, + "99.9999" : 0.015151146695958486, + "100.0" : 0.015151146695958486 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.015151146695958486, + 0.015140491343534866, + 0.015144086810876953 + ], + [ + 0.014609507818172522, + 0.014589845803357664, + 0.014596098798462171 + ], + [ + 0.014597137646444033, + 0.01461364043255882, + 0.014584980540950492 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9851262027850285, + "scoreError" : 0.022089658643544983, + "scoreConfidence" : [ + 0.9630365441414835, + 1.0072158614285736 + ], + "scorePercentiles" : { + "0.0" : 0.9747190762183235, + "50.0" : 0.9791730844022325, + "90.0" : 1.01408276617319, + "95.0" : 1.01408276617319, + "99.0" : 1.01408276617319, + "99.9" : 1.01408276617319, + "99.99" : 1.01408276617319, + "99.999" : 1.01408276617319, + "99.9999" : 1.01408276617319, + "100.0" : 1.01408276617319 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9758338460187354, + 0.9761059209370425, + 0.9747190762183235 + ], + [ + 0.9823366401768173, + 0.9763997227104081, + 0.9791730844022325 + ], + [ + 0.9938331164662626, + 1.01408276617319, + 0.9936516519622454 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012908189953084093, + "scoreError" : 5.544120422241866E-4, + "scoreConfidence" : [ + 0.012353777910859906, + 0.01346260199530828 + ], + "scorePercentiles" : { + "0.0" : 0.012679037873927696, + "50.0" : 0.012885974801918061, + "90.0" : 0.013127490649506812, + "95.0" : 0.013127490649506812, + "99.0" : 0.013127490649506812, + "99.9" : 0.013127490649506812, + "99.99" : 0.013127490649506812, + "99.999" : 0.013127490649506812, + "99.9999" : 0.013127490649506812, + "100.0" : 0.013127490649506812 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012679037873927696, + 0.012766024883001891, + 0.012756999800995532 + ], + [ + 0.013005924720834233, + 0.013127490649506812, + 0.013113661790238401 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6561826880524, + "scoreError" : 0.06436677310614175, + "scoreConfidence" : [ + 3.5918159149462583, + 3.720549461158542 + ], + "scorePercentiles" : { + "0.0" : 3.6185629515195368, + "50.0" : 3.6526129974433896, + "90.0" : 3.682027943298969, + "95.0" : 3.682027943298969, + "99.0" : 3.682027943298969, + "99.9" : 3.682027943298969, + "99.99" : 3.682027943298969, + "99.999" : 3.682027943298969, + "99.9999" : 3.682027943298969, + "100.0" : 3.682027943298969 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6526484506939374, + 3.682027943298969, + 3.678807961764706 + ], + [ + 3.6185629515195368, + 3.652471276844412, + 3.6525775441928414 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8098269224905965, + "scoreError" : 0.0682573600462391, + "scoreConfidence" : [ + 2.7415695624443575, + 2.8780842825368356 + ], + "scorePercentiles" : { + "0.0" : 2.756005176357123, + "50.0" : 2.8269731232334654, + "90.0" : 2.852774981745579, + "95.0" : 2.852774981745579, + "99.0" : 2.852774981745579, + "99.9" : 2.852774981745579, + "99.99" : 2.852774981745579, + "99.999" : 2.852774981745579, + "99.9999" : 2.852774981745579, + "100.0" : 2.852774981745579 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.852774981745579, + 2.8471311010532308, + 2.841508862215909 + ], + [ + 2.760114301048565, + 2.756005176357123, + 2.756156037475889 + ], + [ + 2.8206438959390865, + 2.8271348233465234, + 2.8269731232334654 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.182257758641677, + "scoreError" : 0.009369711322852617, + "scoreConfidence" : [ + 0.1728880473188244, + 0.19162746996452962 + ], + "scorePercentiles" : { + "0.0" : 0.17512085773574992, + "50.0" : 0.18244345578603616, + "90.0" : 0.18892104490582434, + "95.0" : 0.18892104490582434, + "99.0" : 0.18892104490582434, + "99.9" : 0.18892104490582434, + "99.99" : 0.18892104490582434, + "99.999" : 0.18892104490582434, + "99.9999" : 0.18892104490582434, + "100.0" : 0.18892104490582434 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.18892104490582434, + 0.18846615911875012, + 0.18838380496948234 + ], + [ + 0.17668158256183747, + 0.17546814056358787, + 0.17512085773574992 + ], + [ + 0.18229967321715035, + 0.18253510891667427, + 0.18244345578603616 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33033853868194574, + "scoreError" : 0.010265857312702213, + "scoreConfidence" : [ + 0.32007268136924355, + 0.3406043959946479 + ], + "scorePercentiles" : { + "0.0" : 0.32237836437782075, + "50.0" : 0.3325730915893445, + "90.0" : 0.3368782656560552, + "95.0" : 0.3368782656560552, + "99.0" : 0.3368782656560552, + "99.9" : 0.3368782656560552, + "99.99" : 0.3368782656560552, + "99.999" : 0.3368782656560552, + "99.9999" : 0.3368782656560552, + "100.0" : 0.3368782656560552 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3368782656560552, + 0.3358404426906673, + 0.33497170506464796 + ], + [ + 0.33304267895560663, + 0.3325730915893445, + 0.3324330246659132 + ], + [ + 0.322414881290905, + 0.32237836437782075, + 0.3225143938465508 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16090177068882616, + "scoreError" : 0.005913352137785627, + "scoreConfidence" : [ + 0.15498841855104054, + 0.1668151228266118 + ], + "scorePercentiles" : { + "0.0" : 0.15638643631245602, + "50.0" : 0.16139914766216368, + "90.0" : 0.1650659744317713, + "95.0" : 0.1650659744317713, + "99.0" : 0.1650659744317713, + "99.9" : 0.1650659744317713, + "99.99" : 0.1650659744317713, + "99.999" : 0.1650659744317713, + "99.9999" : 0.1650659744317713, + "100.0" : 0.1650659744317713 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1650659744317713, + 0.16443675696785331, + 0.1646148937431069 + ], + [ + 0.1609050628801287, + 0.16174211627417998, + 0.16139914766216368 + ], + [ + 0.15649513283047214, + 0.15707041509730316, + 0.15638643631245602 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39215436517063057, + "scoreError" : 0.00894198906358332, + "scoreConfidence" : [ + 0.3832123761070472, + 0.4010963542342139 + ], + "scorePercentiles" : { + "0.0" : 0.3839347225016317, + "50.0" : 0.3935621432900433, + "90.0" : 0.39837528426881247, + "95.0" : 0.39837528426881247, + "99.0" : 0.39837528426881247, + "99.9" : 0.39837528426881247, + "99.99" : 0.39837528426881247, + "99.999" : 0.39837528426881247, + "99.9999" : 0.39837528426881247, + "100.0" : 0.39837528426881247 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39837528426881247, + 0.3951016906483347, + 0.3937299167683767 + ], + [ + 0.38905089678649235, + 0.3843139198339802, + 0.3839347225016317 + ], + [ + 0.3980502241372448, + 0.3935621432900433, + 0.393270488300759 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15446192003082043, + "scoreError" : 0.001081224597951432, + "scoreConfidence" : [ + 0.153380695432869, + 0.15554314462877186 + ], + "scorePercentiles" : { + "0.0" : 0.15360487676451162, + "50.0" : 0.15451793318809004, + "90.0" : 0.15524694288597377, + "95.0" : 0.15524694288597377, + "99.0" : 0.15524694288597377, + "99.9" : 0.15524694288597377, + "99.99" : 0.15524694288597377, + "99.999" : 0.15524694288597377, + "99.9999" : 0.15524694288597377, + "100.0" : 0.15524694288597377 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15498702888892332, + 0.15524694288597377, + 0.1549091697467276 + ], + [ + 0.15451793318809004, + 0.15411996120888943, + 0.15380470221012318 + ], + [ + 0.15516613101832458, + 0.15380053436582028, + 0.15360487676451162 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04748573782000606, + "scoreError" : 0.0012040196670550232, + "scoreConfidence" : [ + 0.04628171815295104, + 0.048689757487061086 + ], + "scorePercentiles" : { + "0.0" : 0.046663098938428876, + "50.0" : 0.04712490444145991, + "90.0" : 0.048372361226128514, + "95.0" : 0.048372361226128514, + "99.0" : 0.048372361226128514, + "99.9" : 0.048372361226128514, + "99.99" : 0.048372361226128514, + "99.999" : 0.048372361226128514, + "99.9999" : 0.048372361226128514, + "100.0" : 0.048372361226128514 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04778590171548717, + 0.04712490444145991, + 0.046904938836772984 + ], + [ + 0.04829784319805265, + 0.04837072604720905, + 0.048372361226128514 + ], + [ + 0.04701799494562432, + 0.04683387103089114, + 0.046663098938428876 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9317618.65213532, + "scoreError" : 293418.301524301, + "scoreConfidence" : [ + 9024200.35061102, + 9611036.95365962 + ], + "scorePercentiles" : { + "0.0" : 9093342.035454545, + "50.0" : 9337089.965485075, + "90.0" : 9534807.62726406, + "95.0" : 9534807.62726406, + "99.0" : 9534807.62726406, + "99.9" : 9534807.62726406, + "99.99" : 9534807.62726406, + "99.999" : 9534807.62726406, + "99.9999" : 9534807.62726406, + "100.0" : 9534807.62726406 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9301863.918215614, + 9338010.549953315, + 9337089.965485075 + ], + [ + 9534807.62726406, + 9507893.685361216, + 9498141.189933524 + ], + [ + 9150132.32936871, + 9097286.568181818, + 9093342.035454545 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T00:25:27Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json b/performance-results/2025-03-24T00:25:27Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json new file mode 100644 index 000000000..e7a92860f --- /dev/null +++ b/performance-results/2025-03-24T00:25:27Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.421246302583824, + "scoreError" : 0.025733017281439678, + "scoreConfidence" : [ + 3.395513285302384, + 3.4469793198652634 + ], + "scorePercentiles" : { + "0.0" : 3.417136102719499, + "50.0" : 3.4205731276212257, + "90.0" : 3.4267028523733463, + "95.0" : 3.4267028523733463, + "99.0" : 3.4267028523733463, + "99.9" : 3.4267028523733463, + "99.99" : 3.4267028523733463, + "99.999" : 3.4267028523733463, + "99.9999" : 3.4267028523733463, + "100.0" : 3.4267028523733463 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.417136102719499, + 3.4205781955314856 + ], + [ + 3.4205680597109653, + 3.4267028523733463 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7273766517476457, + "scoreError" : 0.01233951072091223, + "scoreConfidence" : [ + 1.7150371410267333, + 1.739716162468558 + ], + "scorePercentiles" : { + "0.0" : 1.7248858281468324, + "50.0" : 1.7275784917996955, + "90.0" : 1.7294637952443586, + "95.0" : 1.7294637952443586, + "99.0" : 1.7294637952443586, + "99.9" : 1.7294637952443586, + "99.99" : 1.7294637952443586, + "99.999" : 1.7294637952443586, + "99.9999" : 1.7294637952443586, + "100.0" : 1.7294637952443586 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7271929218788888, + 1.7294637952443586 + ], + [ + 1.7248858281468324, + 1.727964061720502 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8683348226608707, + "scoreError" : 0.0037602099325063747, + "scoreConfidence" : [ + 0.8645746127283643, + 0.8720950325933771 + ], + "scorePercentiles" : { + "0.0" : 0.8678619660868055, + "50.0" : 0.8681469488116227, + "90.0" : 0.8691834269334319, + "95.0" : 0.8691834269334319, + "99.0" : 0.8691834269334319, + "99.9" : 0.8691834269334319, + "99.99" : 0.8691834269334319, + "99.999" : 0.8691834269334319, + "99.9999" : 0.8691834269334319, + "100.0" : 0.8691834269334319 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8678619660868055, + 0.8691834269334319 + ], + [ + 0.8681742930439199, + 0.8681196045793255 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.341865851698003, + "scoreError" : 0.10566306717401301, + "scoreConfidence" : [ + 16.23620278452399, + 16.447528918872017 + ], + "scorePercentiles" : { + "0.0" : 16.22303246272705, + "50.0" : 16.362295927808958, + "90.0" : 16.435421636550824, + "95.0" : 16.435421636550824, + "99.0" : 16.435421636550824, + "99.9" : 16.435421636550824, + "99.99" : 16.435421636550824, + "99.999" : 16.435421636550824, + "99.9999" : 16.435421636550824, + "100.0" : 16.435421636550824 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.35107234728992, + 16.362295927808958, + 16.435421636550824 + ], + [ + 16.378925272900975, + 16.374444545565535, + 16.367253221102832 + ], + [ + 16.281324433699563, + 16.22303246272705, + 16.303022817636357 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2723.7793282226216, + "scoreError" : 34.82246156603348, + "scoreConfidence" : [ + 2688.9568666565883, + 2758.601789788655 + ], + "scorePercentiles" : { + "0.0" : 2702.465007990573, + "50.0" : 2718.2824063648923, + "90.0" : 2752.109075671271, + "95.0" : 2752.109075671271, + "99.0" : 2752.109075671271, + "99.9" : 2752.109075671271, + "99.99" : 2752.109075671271, + "99.999" : 2752.109075671271, + "99.9999" : 2752.109075671271, + "100.0" : 2752.109075671271 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2751.25254211314, + 2745.482247982233, + 2752.109075671271 + ], + [ + 2703.1017470328934, + 2702.5273149643604, + 2702.465007990573 + ], + [ + 2718.2824063648923, + 2720.945553216911, + 2717.8480586673195 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69969.63461352007, + "scoreError" : 1134.2174371916856, + "scoreConfidence" : [ + 68835.41717632838, + 71103.85205071176 + ], + "scorePercentiles" : { + "0.0" : 69043.0075343839, + "50.0" : 70280.94069877287, + "90.0" : 70603.5514723977, + "95.0" : 70603.5514723977, + "99.0" : 70603.5514723977, + "99.9" : 70603.5514723977, + "99.99" : 70603.5514723977, + "99.999" : 70603.5514723977, + "99.9999" : 70603.5514723977, + "100.0" : 70603.5514723977 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70332.83724038013, + 70280.94069877287, + 70280.81855460658 + ], + [ + 70505.14309459185, + 70478.95648670508, + 70603.5514723977 + ], + [ + 69133.77056067433, + 69043.0075343839, + 69067.68587916823 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 349.43725104505324, + "scoreError" : 4.453722696756971, + "scoreConfidence" : [ + 344.98352834829626, + 353.8909737418102 + ], + "scorePercentiles" : { + "0.0" : 345.9068962532555, + "50.0" : 350.13288831364576, + "90.0" : 352.6286330072688, + "95.0" : 352.6286330072688, + "99.0" : 352.6286330072688, + "99.9" : 352.6286330072688, + "99.99" : 352.6286330072688, + "99.999" : 352.6286330072688, + "99.9999" : 352.6286330072688, + "100.0" : 352.6286330072688 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 346.2672803390126, + 346.2982345844763, + 345.9068962532555 + ], + [ + 350.13288831364576, + 350.55161549887754, + 349.3974695571367 + ], + [ + 351.77503927442575, + 351.97720257737996, + 352.6286330072688 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 106.03740194054079, + "scoreError" : 4.341780378218412, + "scoreConfidence" : [ + 101.69562156232237, + 110.3791823187592 + ], + "scorePercentiles" : { + "0.0" : 102.61722251422017, + "50.0" : 106.99671128488392, + "90.0" : 108.66695605213567, + "95.0" : 108.66695605213567, + "99.0" : 108.66695605213567, + "99.9" : 108.66695605213567, + "99.99" : 108.66695605213567, + "99.999" : 108.66695605213567, + "99.9999" : 108.66695605213567, + "100.0" : 108.66695605213567 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 107.2477674737249, + 106.99671128488392, + 106.51128399292004 + ], + [ + 102.61722251422017, + 102.78829964896627, + 102.76383751861742 + ], + [ + 108.31343183269428, + 108.66695605213567, + 108.4311071467046 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06114094780691651, + "scoreError" : 6.931905613668829E-4, + "scoreConfidence" : [ + 0.06044775724554963, + 0.06183413836828339 + ], + "scorePercentiles" : { + "0.0" : 0.06052651748890866, + "50.0" : 0.06120342482496083, + "90.0" : 0.06171405804122439, + "95.0" : 0.06171405804122439, + "99.0" : 0.06171405804122439, + "99.9" : 0.06171405804122439, + "99.99" : 0.06171405804122439, + "99.999" : 0.06171405804122439, + "99.9999" : 0.06171405804122439, + "100.0" : 0.06171405804122439 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.060785686946479046, + 0.06061288448576832, + 0.06052651748890866 + ], + [ + 0.06120342482496083, + 0.06117210848687269, + 0.06171405804122439 + ], + [ + 0.06145645012567678, + 0.061479210661568064, + 0.06131818920078977 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.558887426986108E-4, + "scoreError" : 1.1643968365827848E-5, + "scoreConfidence" : [ + 3.4424477433278296E-4, + 3.675327110644386E-4 + ], + "scorePercentiles" : { + "0.0" : 3.4989609340297815E-4, + "50.0" : 3.527937491614633E-4, + "90.0" : 3.652218515584872E-4, + "95.0" : 3.652218515584872E-4, + "99.0" : 3.652218515584872E-4, + "99.9" : 3.652218515584872E-4, + "99.99" : 3.652218515584872E-4, + "99.999" : 3.652218515584872E-4, + "99.9999" : 3.652218515584872E-4, + "100.0" : 3.652218515584872E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6513254492621797E-4, + 3.646400005615393E-4, + 3.652218515584872E-4 + ], + [ + 3.519855166866087E-4, + 3.527937491614633E-4, + 3.530516825367461E-4 + ], + [ + 3.4989609340297815E-4, + 3.4996294116570423E-4, + 3.503143042877524E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014459886907853124, + "scoreError" : 1.751271748642364E-5, + "scoreConfidence" : [ + 0.0144423741903667, + 0.014477399625339548 + ], + "scorePercentiles" : { + "0.0" : 0.01444761801971787, + "50.0" : 0.0144585426456789, + "90.0" : 0.014479206546259053, + "95.0" : 0.014479206546259053, + "99.0" : 0.014479206546259053, + "99.9" : 0.014479206546259053, + "99.99" : 0.014479206546259053, + "99.999" : 0.014479206546259053, + "99.9999" : 0.014479206546259053, + "100.0" : 0.014479206546259053 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.0144585426456789, + 0.01444858810287856, + 0.01445240660900229 + ], + [ + 0.014471111776452883, + 0.014463550117008629, + 0.014462029081353746 + ], + [ + 0.014479206546259053, + 0.01445592927232619, + 0.01444761801971787 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9848656516090956, + "scoreError" : 0.01790359690960157, + "scoreConfidence" : [ + 0.966962054699494, + 1.0027692485186972 + ], + "scorePercentiles" : { + "0.0" : 0.9702499647812166, + "50.0" : 0.987872356910007, + "90.0" : 0.999280423361311, + "95.0" : 0.999280423361311, + "99.0" : 0.999280423361311, + "99.9" : 0.999280423361311, + "99.99" : 0.999280423361311, + "99.999" : 0.999280423361311, + "99.9999" : 0.999280423361311, + "100.0" : 0.999280423361311 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9702499647812166, + 0.9752142199902487, + 0.97071049669967 + ], + [ + 0.9902428413704327, + 0.999280423361311, + 0.9967743983853284 + ], + [ + 0.987872356910007, + 0.9849215701201497, + 0.988524592863497 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013021840921867006, + "scoreError" : 1.9749862566405114E-4, + "scoreConfidence" : [ + 0.012824342296202955, + 0.013219339547531057 + ], + "scorePercentiles" : { + "0.0" : 0.012931413966648046, + "50.0" : 0.01299823102761962, + "90.0" : 0.013108989882703329, + "95.0" : 0.013108989882703329, + "99.0" : 0.013108989882703329, + "99.9" : 0.013108989882703329, + "99.99" : 0.013108989882703329, + "99.999" : 0.013108989882703329, + "99.9999" : 0.013108989882703329, + "100.0" : 0.013108989882703329 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012931413966648046, + 0.013104382452609151, + 0.013108989882703329 + ], + [ + 0.013004359931858672, + 0.012992102123380572, + 0.012989797174002275 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.607023788037479, + "scoreError" : 0.07327604702535247, + "scoreConfidence" : [ + 3.5337477410121267, + 3.6802998350628315 + ], + "scorePercentiles" : { + "0.0" : 3.5660110042765503, + "50.0" : 3.6107640732839337, + "90.0" : 3.6383183745454546, + "95.0" : 3.6383183745454546, + "99.0" : 3.6383183745454546, + "99.9" : 3.6383183745454546, + "99.99" : 3.6383183745454546, + "99.999" : 3.6383183745454546, + "99.9999" : 3.6383183745454546, + "100.0" : 3.6383183745454546 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.589340019368723, + 3.6383183745454546, + 3.62694518346628 + ], + [ + 3.5660110042765503, + 3.6080095750360752, + 3.613518571531792 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8059151286489663, + "scoreError" : 0.05752197780891353, + "scoreConfidence" : [ + 2.748393150840053, + 2.8634371064578796 + ], + "scorePercentiles" : { + "0.0" : 2.7601151989514348, + "50.0" : 2.8134174627285513, + "90.0" : 2.844721040386803, + "95.0" : 2.844721040386803, + "99.0" : 2.844721040386803, + "99.9" : 2.844721040386803, + "99.99" : 2.844721040386803, + "99.999" : 2.844721040386803, + "99.9999" : 2.844721040386803, + "100.0" : 2.844721040386803 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.84413932044356, + 2.844721040386803, + 2.8285615141402713 + ], + [ + 2.823798961038961, + 2.8089209247402414, + 2.8134174627285513 + ], + [ + 2.76110121783545, + 2.768460517575422, + 2.7601151989514348 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.19079301512188468, + "scoreError" : 0.014774377161596323, + "scoreConfidence" : [ + 0.17601863796028835, + 0.205567392283481 + ], + "scorePercentiles" : { + "0.0" : 0.1786670587268407, + "50.0" : 0.1959693705148053, + "90.0" : 0.19811789208732863, + "95.0" : 0.19811789208732863, + "99.0" : 0.19811789208732863, + "99.9" : 0.19811789208732863, + "99.99" : 0.19811789208732863, + "99.999" : 0.19811789208732863, + "99.9999" : 0.19811789208732863, + "100.0" : 0.19811789208732863 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1972381575511331, + 0.1959693705148053, + 0.19596850636880267 + ], + [ + 0.19811789208732863, + 0.19637531048228732, + 0.1961232889642864 + ], + [ + 0.17988990216042164, + 0.1786670587268407, + 0.17878764924105625 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.31952785321151783, + "scoreError" : 0.01001783873026382, + "scoreConfidence" : [ + 0.30951001448125404, + 0.3295456919417816 + ], + "scorePercentiles" : { + "0.0" : 0.31381017921360654, + "50.0" : 0.31626577435167613, + "90.0" : 0.32794699619597295, + "95.0" : 0.32794699619597295, + "99.0" : 0.32794699619597295, + "99.9" : 0.32794699619597295, + "99.99" : 0.32794699619597295, + "99.999" : 0.32794699619597295, + "99.9999" : 0.32794699619597295, + "100.0" : 0.32794699619597295 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3189972577434687, + 0.31626577435167613, + 0.31608200075858145 + ], + [ + 0.31446555177510144, + 0.3145012565965343, + 0.31381017921360654 + ], + [ + 0.3270510261307519, + 0.32663063613796706, + 0.32794699619597295 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16863322355175633, + "scoreError" : 0.0036872991180300486, + "scoreConfidence" : [ + 0.1649459244337263, + 0.17232052266978637 + ], + "scorePercentiles" : { + "0.0" : 0.16568923645099826, + "50.0" : 0.1695653306485799, + "90.0" : 0.1706155962260288, + "95.0" : 0.1706155962260288, + "99.0" : 0.1706155962260288, + "99.9" : 0.1706155962260288, + "99.99" : 0.1706155962260288, + "99.999" : 0.1706155962260288, + "99.9999" : 0.1706155962260288, + "100.0" : 0.1706155962260288 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16583173301936854, + 0.16568923645099826, + 0.16583332192428238 + ], + [ + 0.17051351466375664, + 0.1706155962260288, + 0.17053552343110503 + ], + [ + 0.17005843134087237, + 0.16905632426081518, + 0.1695653306485799 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39274708507310296, + "scoreError" : 0.00931143808849305, + "scoreConfidence" : [ + 0.3834356469846099, + 0.402058523161596 + ], + "scorePercentiles" : { + "0.0" : 0.38599543554114557, + "50.0" : 0.39204008754116354, + "90.0" : 0.3999358855828834, + "95.0" : 0.3999358855828834, + "99.0" : 0.3999358855828834, + "99.9" : 0.3999358855828834, + "99.99" : 0.3999358855828834, + "99.999" : 0.3999358855828834, + "99.9999" : 0.3999358855828834, + "100.0" : 0.3999358855828834 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39978432941552733, + 0.3999358855828834, + 0.3985876615648292 + ], + [ + 0.38599543554114557, + 0.38682379077054, + 0.3874426654914571 + ], + [ + 0.3922239095544399, + 0.39204008754116354, + 0.3918900001959401 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15654185959972333, + "scoreError" : 0.003324708225371492, + "scoreConfidence" : [ + 0.15321715137435185, + 0.1598665678250948 + ], + "scorePercentiles" : { + "0.0" : 0.1537966328934822, + "50.0" : 0.15711305921445404, + "90.0" : 0.15991182664385314, + "95.0" : 0.15991182664385314, + "99.0" : 0.15991182664385314, + "99.9" : 0.15991182664385314, + "99.99" : 0.15991182664385314, + "99.999" : 0.15991182664385314, + "99.9999" : 0.15991182664385314, + "100.0" : 0.15991182664385314 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15991182664385314, + 0.1574710881977797, + 0.1574142480166226 + ], + [ + 0.15711305921445404, + 0.1573238880655717, + 0.15707679514325207 + ], + [ + 0.15401986099987677, + 0.1537966328934822, + 0.1547493372226177 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04730248592662241, + "scoreError" : 0.001214882838521849, + "scoreConfidence" : [ + 0.04608760308810056, + 0.04851736876514426 + ], + "scorePercentiles" : { + "0.0" : 0.04615450604845223, + "50.0" : 0.04744312130542456, + "90.0" : 0.04815119295365029, + "95.0" : 0.04815119295365029, + "99.0" : 0.04815119295365029, + "99.9" : 0.04815119295365029, + "99.99" : 0.04815119295365029, + "99.999" : 0.04815119295365029, + "99.9999" : 0.04815119295365029, + "100.0" : 0.04815119295365029 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04669727998860601, + 0.04615450604845223, + 0.04643505562830264 + ], + [ + 0.04815119295365029, + 0.04791434695676756, + 0.04799755646589584 + ], + [ + 0.04744312130542456, + 0.04768213433305519, + 0.04724717965944741 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9214657.65577173, + "scoreError" : 324186.95975341706, + "scoreConfidence" : [ + 8890470.696018314, + 9538844.615525147 + ], + "scorePercentiles" : { + "0.0" : 9072593.251133272, + "50.0" : 9095946.824545454, + "90.0" : 9473104.0625, + "95.0" : 9473104.0625, + "99.0" : 9473104.0625, + "99.9" : 9473104.0625, + "99.99" : 9473104.0625, + "99.999" : 9473104.0625, + "99.9999" : 9473104.0625, + "100.0" : 9473104.0625 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9100846.449499546, + 9095946.824545454, + 9093544.356363636 + ], + [ + 9471608.28125, + 9470003.732007576, + 9473104.0625 + ], + [ + 9076957.367513612, + 9077314.577132486, + 9072593.251133272 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T00:26:22Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json b/performance-results/2025-03-24T00:26:22Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json new file mode 100644 index 000000000..3b71828ef --- /dev/null +++ b/performance-results/2025-03-24T00:26:22Z-c46c07a77f81d0493fc0e7c93d9de49e97118281-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4058150783351246, + "scoreError" : 0.026452604872451217, + "scoreConfidence" : [ + 3.3793624734626735, + 3.432267683207576 + ], + "scorePercentiles" : { + "0.0" : 3.4004071794259927, + "50.0" : 3.406246718629739, + "90.0" : 3.4103596966550294, + "95.0" : 3.4103596966550294, + "99.0" : 3.4103596966550294, + "99.9" : 3.4103596966550294, + "99.99" : 3.4103596966550294, + "99.999" : 3.4103596966550294, + "99.9999" : 3.4103596966550294, + "100.0" : 3.4103596966550294 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.406232750028374, + 3.4103596966550294 + ], + [ + 3.4004071794259927, + 3.406260687231104 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7237606775531091, + "scoreError" : 0.01471389781372789, + "scoreConfidence" : [ + 1.7090467797393813, + 1.738474575366837 + ], + "scorePercentiles" : { + "0.0" : 1.7204652078126201, + "50.0" : 1.7244467307218376, + "90.0" : 1.7256840409561414, + "95.0" : 1.7256840409561414, + "99.0" : 1.7256840409561414, + "99.9" : 1.7256840409561414, + "99.99" : 1.7256840409561414, + "99.999" : 1.7256840409561414, + "99.9999" : 1.7256840409561414, + "100.0" : 1.7256840409561414 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7246099665286807, + 1.7204652078126201 + ], + [ + 1.7256840409561414, + 1.7242834949149946 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8663232166649114, + "scoreError" : 0.006686175885856252, + "scoreConfidence" : [ + 0.8596370407790551, + 0.8730093925507677 + ], + "scorePercentiles" : { + "0.0" : 0.8652181246222682, + "50.0" : 0.8663474533310827, + "90.0" : 0.8673798353752123, + "95.0" : 0.8673798353752123, + "99.0" : 0.8673798353752123, + "99.9" : 0.8673798353752123, + "99.99" : 0.8673798353752123, + "99.999" : 0.8673798353752123, + "99.9999" : 0.8673798353752123, + "100.0" : 0.8673798353752123 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8673798353752123, + 0.8670081057362332 + ], + [ + 0.865686800925932, + 0.8652181246222682 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.063146484271993, + "scoreError" : 0.09274549186336652, + "scoreConfidence" : [ + 15.970400992408626, + 16.155891976135358 + ], + "scorePercentiles" : { + "0.0" : 15.988271964073459, + "50.0" : 16.056373512006516, + "90.0" : 16.151461751402852, + "95.0" : 16.151461751402852, + "99.0" : 16.151461751402852, + "99.9" : 16.151461751402852, + "99.99" : 16.151461751402852, + "99.999" : 16.151461751402852, + "99.9999" : 16.151461751402852, + "100.0" : 16.151461751402852 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.056373512006516, + 16.074774345532692, + 16.042297273489353 + ], + [ + 16.021096192431116, + 16.005741694538813, + 15.988271964073459 + ], + [ + 16.107798059757286, + 16.151461751402852, + 16.120503565215856 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2631.4019878913555, + "scoreError" : 45.07292665333818, + "scoreConfidence" : [ + 2586.3290612380174, + 2676.4749145446935 + ], + "scorePercentiles" : { + "0.0" : 2598.1253635550966, + "50.0" : 2628.6049799406546, + "90.0" : 2670.80836297728, + "95.0" : 2670.80836297728, + "99.0" : 2670.80836297728, + "99.9" : 2670.80836297728, + "99.99" : 2670.80836297728, + "99.999" : 2670.80836297728, + "99.9999" : 2670.80836297728, + "100.0" : 2670.80836297728 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2628.363719532275, + 2634.404337259284, + 2628.6049799406546 + ], + [ + 2602.783085480924, + 2598.1253635550966, + 2603.021830794198 + ], + [ + 2670.80836297728, + 2657.0851252173516, + 2659.4210862651344 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70139.36832003857, + "scoreError" : 1080.653635734936, + "scoreConfidence" : [ + 69058.71468430363, + 71220.02195577351 + ], + "scorePercentiles" : { + "0.0" : 69331.95951448398, + "50.0" : 70230.85843595021, + "90.0" : 70859.36155987332, + "95.0" : 70859.36155987332, + "99.0" : 70859.36155987332, + "99.9" : 70859.36155987332, + "99.99" : 70859.36155987332, + "99.999" : 70859.36155987332, + "99.9999" : 70859.36155987332, + "100.0" : 70859.36155987332 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70230.85843595021, + 70306.19172133977, + 70212.58255702884 + ], + [ + 70778.52672038162, + 70820.40440516589, + 70859.36155987332 + ], + [ + 69338.63968738963, + 69375.79027873385, + 69331.95951448398 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 342.39493729944945, + "scoreError" : 5.38735019936265, + "scoreConfidence" : [ + 337.0075871000868, + 347.7822874988121 + ], + "scorePercentiles" : { + "0.0" : 337.26407618201983, + "50.0" : 344.3494882000147, + "90.0" : 345.3180429063327, + "95.0" : 345.3180429063327, + "99.0" : 345.3180429063327, + "99.9" : 345.3180429063327, + "99.99" : 345.3180429063327, + "99.999" : 345.3180429063327, + "99.9999" : 345.3180429063327, + "100.0" : 345.3180429063327 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 345.09902243857897, + 341.8493886510512, + 344.6666914454054 + ], + [ + 337.26407618201983, + 338.34929933870706, + 339.6471681207518 + ], + [ + 345.0112584121833, + 345.3180429063327, + 344.3494882000147 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 105.47572256516146, + "scoreError" : 3.6800047610781017, + "scoreConfidence" : [ + 101.79571780408337, + 109.15572732623956 + ], + "scorePercentiles" : { + "0.0" : 102.42778427400434, + "50.0" : 106.31243167262423, + "90.0" : 107.74689637106496, + "95.0" : 107.74689637106496, + "99.0" : 107.74689637106496, + "99.9" : 107.74689637106496, + "99.99" : 107.74689637106496, + "99.999" : 107.74689637106496, + "99.9999" : 107.74689637106496, + "100.0" : 107.74689637106496 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 107.283036063032, + 107.37412707665254, + 107.74689637106496 + ], + [ + 106.11333166047164, + 106.31243167262423, + 106.51985552590087 + ], + [ + 102.42778427400434, + 102.67053516833408, + 102.8335052743686 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06311428347152606, + "scoreError" : 0.00152037655154138, + "scoreConfidence" : [ + 0.06159390691998468, + 0.06463466002306745 + ], + "scorePercentiles" : { + "0.0" : 0.062365334173173345, + "50.0" : 0.06271125822291064, + "90.0" : 0.06517277432368142, + "95.0" : 0.06517277432368142, + "99.0" : 0.06517277432368142, + "99.9" : 0.06517277432368142, + "99.99" : 0.06517277432368142, + "99.999" : 0.06517277432368142, + "99.9999" : 0.06517277432368142, + "100.0" : 0.06517277432368142 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06270253047289417, + 0.06275191931475904, + 0.06271125822291064 + ], + [ + 0.062365334173173345, + 0.06256196170015765, + 0.06247188241063508 + ], + [ + 0.06369551286950872, + 0.06359537775601443, + 0.06517277432368142 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.8222663335657985E-4, + "scoreError" : 2.8979427134608703E-6, + "scoreConfidence" : [ + 3.79328690643119E-4, + 3.851245760700407E-4 + ], + "scorePercentiles" : { + "0.0" : 3.790968269142776E-4, + "50.0" : 3.8297120240527854E-4, + "90.0" : 3.8414170084109486E-4, + "95.0" : 3.8414170084109486E-4, + "99.0" : 3.8414170084109486E-4, + "99.9" : 3.8414170084109486E-4, + "99.99" : 3.8414170084109486E-4, + "99.999" : 3.8414170084109486E-4, + "99.9999" : 3.8414170084109486E-4, + "100.0" : 3.8414170084109486E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.790968269142776E-4, + 3.80274158956133E-4, + 3.809465855965468E-4 + ], + [ + 3.8414170084109486E-4, + 3.824734405275988E-4, + 3.8297120240527854E-4 + ], + [ + 3.8380708551126946E-4, + 3.831089772239076E-4, + 3.832197222331119E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014194196126241223, + "scoreError" : 8.231346586656076E-5, + "scoreConfidence" : [ + 0.014111882660374662, + 0.014276509592107784 + ], + "scorePercentiles" : { + "0.0" : 0.014149952206303724, + "50.0" : 0.014168512126664777, + "90.0" : 0.014269262559644757, + "95.0" : 0.014269262559644757, + "99.0" : 0.014269262559644757, + "99.9" : 0.014269262559644757, + "99.99" : 0.014269262559644757, + "99.999" : 0.014269262559644757, + "99.9999" : 0.014269262559644757, + "100.0" : 0.014269262559644757 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014149952206303724, + 0.014151971689328413, + 0.01415818948088244 + ], + [ + 0.014168512126664777, + 0.014177382997877677, + 0.014167298605955855 + ], + [ + 0.01425682910980045, + 0.014269262559644757, + 0.014248366359712928 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9976094463518428, + "scoreError" : 0.020593406679277775, + "scoreConfidence" : [ + 0.977016039672565, + 1.0182028530311205 + ], + "scorePercentiles" : { + "0.0" : 0.9861651139927029, + "50.0" : 0.9900198547668547, + "90.0" : 1.0160989425988012, + "95.0" : 1.0160989425988012, + "99.0" : 1.0160989425988012, + "99.9" : 1.0160989425988012, + "99.99" : 1.0160989425988012, + "99.999" : 1.0160989425988012, + "99.9999" : 1.0160989425988012, + "100.0" : 1.0160989425988012 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9956012011946241, + 0.989060773711799, + 0.9890333369597468 + ], + [ + 1.0111175650591446, + 1.013320355253825, + 1.0160989425988012 + ], + [ + 0.9900198547668547, + 0.9861651139927029, + 0.988067873629088 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013280445247701916, + "scoreError" : 1.4610011076541306E-4, + "scoreConfidence" : [ + 0.013134345136936502, + 0.01342654535846733 + ], + "scorePercentiles" : { + "0.0" : 0.013238463008903915, + "50.0" : 0.013259971745728908, + "90.0" : 0.01337144344340329, + "95.0" : 0.01337144344340329, + "99.0" : 0.01337144344340329, + "99.9" : 0.01337144344340329, + "99.99" : 0.01337144344340329, + "99.999" : 0.01337144344340329, + "99.9999" : 0.01337144344340329, + "100.0" : 0.01337144344340329 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01325390333619611, + 0.013266040155261706, + 0.013240461469816412 + ], + [ + 0.013312360072630071, + 0.01337144344340329, + 0.013238463008903915 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.8909240052175984, + "scoreError" : 0.04217030962671556, + "scoreConfidence" : [ + 3.848753695590883, + 3.933094314844314 + ], + "scorePercentiles" : { + "0.0" : 3.8692972204176335, + "50.0" : 3.8944467164305974, + "90.0" : 3.9083230546875, + "95.0" : 3.9083230546875, + "99.0" : 3.9083230546875, + "99.9" : 3.9083230546875, + "99.99" : 3.9083230546875, + "99.999" : 3.9083230546875, + "99.9999" : 3.9083230546875, + "100.0" : 3.9083230546875 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.9021358884555384, + 3.896992226635514, + 3.876894434883721 + ], + [ + 3.8692972204176335, + 3.891901206225681, + 3.9083230546875 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.9464650664152674, + "scoreError" : 0.07900631384816474, + "scoreConfidence" : [ + 2.8674587525671025, + 3.0254713802634323 + ], + "scorePercentiles" : { + "0.0" : 2.8846654577444477, + "50.0" : 2.949214712769095, + "90.0" : 3.0071091683704148, + "95.0" : 3.0071091683704148, + "99.0" : 3.0071091683704148, + "99.9" : 3.0071091683704148, + "99.99" : 3.0071091683704148, + "99.999" : 3.0071091683704148, + "99.9999" : 3.0071091683704148, + "100.0" : 3.0071091683704148 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.0030966561561563, + 3.0071091683704148, + 2.9888247429766888 + ], + [ + 2.8951925684515194, + 2.898828372173913, + 2.8846654577444477 + ], + [ + 2.9574190813128327, + 2.949214712769095, + 2.933834837782341 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17691180678475368, + "scoreError" : 0.0020375512397658494, + "scoreConfidence" : [ + 0.17487425554498784, + 0.17894935802451953 + ], + "scorePercentiles" : { + "0.0" : 0.17535436262252538, + "50.0" : 0.1772252414978645, + "90.0" : 0.1782519088089551, + "95.0" : 0.1782519088089551, + "99.0" : 0.1782519088089551, + "99.9" : 0.1782519088089551, + "99.99" : 0.1782519088089551, + "99.999" : 0.1782519088089551, + "99.9999" : 0.1782519088089551, + "100.0" : 0.1782519088089551 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1772252414978645, + 0.17715724875992064, + 0.17734751363765341 + ], + [ + 0.1782519088089551, + 0.17805553854782422, + 0.17803248316747075 + ], + [ + 0.17542131004964304, + 0.17536065397092604, + 0.17535436262252538 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33425991649520753, + "scoreError" : 0.005110301773248331, + "scoreConfidence" : [ + 0.3291496147219592, + 0.33937021826845587 + ], + "scorePercentiles" : { + "0.0" : 0.3314547915879487, + "50.0" : 0.33275132459321866, + "90.0" : 0.338584502843987, + "95.0" : 0.338584502843987, + "99.0" : 0.338584502843987, + "99.9" : 0.338584502843987, + "99.99" : 0.338584502843987, + "99.999" : 0.338584502843987, + "99.9999" : 0.338584502843987, + "100.0" : 0.338584502843987 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.338584502843987, + 0.3381622264980387, + 0.33802885596944293 + ], + [ + 0.332660973854035, + 0.3329679401012186, + 0.33275132459321866 + ], + [ + 0.33184054337005575, + 0.3318880896389221, + 0.3314547915879487 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16033987885490203, + "scoreError" : 0.0088942834909611, + "scoreConfidence" : [ + 0.15144559536394092, + 0.16923416234586314 + ], + "scorePercentiles" : { + "0.0" : 0.15388121990890347, + "50.0" : 0.16065122100308443, + "90.0" : 0.166323342004158, + "95.0" : 0.166323342004158, + "99.0" : 0.166323342004158, + "99.9" : 0.166323342004158, + "99.99" : 0.166323342004158, + "99.999" : 0.166323342004158, + "99.9999" : 0.166323342004158, + "100.0" : 0.166323342004158 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1541098480351364, + 0.15412502709450712, + 0.15388121990890347 + ], + [ + 0.16623179028906732, + 0.166323342004158, + 0.16616231505574663 + ], + [ + 0.16094142122119223, + 0.1606327250823227, + 0.16065122100308443 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39744495573528943, + "scoreError" : 0.005411637246195458, + "scoreConfidence" : [ + 0.39203331848909395, + 0.4028565929814849 + ], + "scorePercentiles" : { + "0.0" : 0.3940697161603026, + "50.0" : 0.39633976704185164, + "90.0" : 0.402766328567401, + "95.0" : 0.402766328567401, + "99.0" : 0.402766328567401, + "99.9" : 0.402766328567401, + "99.99" : 0.402766328567401, + "99.999" : 0.402766328567401, + "99.9999" : 0.402766328567401, + "100.0" : 0.402766328567401 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.402766328567401, + 0.3995626060012786, + 0.3994064622973081 + ], + [ + 0.3944502245888061, + 0.3940697161603026, + 0.3944233631379664 + ], + [ + 0.4007321151673011, + 0.39633976704185164, + 0.3952540186553891 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1578731358594352, + "scoreError" : 0.001429244900730236, + "scoreConfidence" : [ + 0.15644389095870495, + 0.15930238076016542 + ], + "scorePercentiles" : { + "0.0" : 0.15651093406369826, + "50.0" : 0.15804752496325447, + "90.0" : 0.15899748204973288, + "95.0" : 0.15899748204973288, + "99.0" : 0.15899748204973288, + "99.9" : 0.15899748204973288, + "99.99" : 0.15899748204973288, + "99.999" : 0.15899748204973288, + "99.9999" : 0.15899748204973288, + "100.0" : 0.15899748204973288 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15817670798139888, + 0.15885249123949613, + 0.15842256156137127 + ], + [ + 0.15899748204973288, + 0.15804752496325447, + 0.15767250805688698 + ], + [ + 0.15651093406369826, + 0.15700596079631984, + 0.157172052022758 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04795383363672171, + "scoreError" : 5.299177065546994E-4, + "scoreConfidence" : [ + 0.04742391593016701, + 0.04848375134327641 + ], + "scorePercentiles" : { + "0.0" : 0.04746444761660663, + "50.0" : 0.04800709954586042, + "90.0" : 0.04852743631837416, + "95.0" : 0.04852743631837416, + "99.0" : 0.04852743631837416, + "99.9" : 0.04852743631837416, + "99.99" : 0.04852743631837416, + "99.999" : 0.04852743631837416, + "99.9999" : 0.04852743631837416, + "100.0" : 0.04852743631837416 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047803915034585615, + 0.04798231661172767, + 0.04801513513708167 + ], + [ + 0.0480238308625434, + 0.04800709954586042, + 0.04818131418150632 + ], + [ + 0.04852743631837416, + 0.04746444761660663, + 0.04757900742220954 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9466197.532085942, + "scoreError" : 123449.88258417205, + "scoreConfidence" : [ + 9342747.64950177, + 9589647.414670113 + ], + "scorePercentiles" : { + "0.0" : 9371300.07022472, + "50.0" : 9485310.44549763, + "90.0" : 9569203.46462715, + "95.0" : 9569203.46462715, + "99.0" : 9569203.46462715, + "99.9" : 9569203.46462715, + "99.99" : 9569203.46462715, + "99.999" : 9569203.46462715, + "99.9999" : 9569203.46462715, + "100.0" : 9569203.46462715 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9371300.07022472, + 9371471.336142322, + 9412303.88052681 + ], + [ + 9485310.44549763, + 9489903.88235294, + 9427795.868991517 + ], + [ + 9569203.46462715, + 9531204.40952381, + 9537284.43088656 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T01:13:10Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json b/performance-results/2025-03-24T01:13:10Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json new file mode 100644 index 000000000..e2485a8d0 --- /dev/null +++ b/performance-results/2025-03-24T01:13:10Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.406454124310017, + "scoreError" : 0.018858190056667414, + "scoreConfidence" : [ + 3.3875959342533495, + 3.4253123143666846 + ], + "scorePercentiles" : { + "0.0" : 3.403381953657993, + "50.0" : 3.406207135056139, + "90.0" : 3.410020273469797, + "95.0" : 3.410020273469797, + "99.0" : 3.410020273469797, + "99.9" : 3.410020273469797, + "99.99" : 3.410020273469797, + "99.999" : 3.410020273469797, + "99.9999" : 3.410020273469797, + "100.0" : 3.410020273469797 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.403381953657993, + 3.407486239518625 + ], + [ + 3.404928030593653, + 3.410020273469797 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7214546892881701, + "scoreError" : 0.004938647272620143, + "scoreConfidence" : [ + 1.71651604201555, + 1.7263933365607902 + ], + "scorePercentiles" : { + "0.0" : 1.7204864939331292, + "50.0" : 1.7215383639780086, + "90.0" : 1.7222555352635336, + "95.0" : 1.7222555352635336, + "99.0" : 1.7222555352635336, + "99.9" : 1.7222555352635336, + "99.99" : 1.7222555352635336, + "99.999" : 1.7222555352635336, + "99.9999" : 1.7222555352635336, + "100.0" : 1.7222555352635336 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7212559407094044, + 1.7204864939331292 + ], + [ + 1.721820787246613, + 1.7222555352635336 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8668132758292565, + "scoreError" : 0.008547982869116547, + "scoreConfidence" : [ + 0.85826529296014, + 0.875361258698373 + ], + "scorePercentiles" : { + "0.0" : 0.8658233476391417, + "50.0" : 0.8663400506622068, + "90.0" : 0.8687496543534708, + "95.0" : 0.8687496543534708, + "99.0" : 0.8687496543534708, + "99.9" : 0.8687496543534708, + "99.99" : 0.8687496543534708, + "99.999" : 0.8687496543534708, + "99.9999" : 0.8687496543534708, + "100.0" : 0.8687496543534708 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8658233476391417, + 0.8661502169712597 + ], + [ + 0.8665298843531537, + 0.8687496543534708 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.902287964479932, + "scoreError" : 0.11396164265965075, + "scoreConfidence" : [ + 15.78832632182028, + 16.01624960713958 + ], + "scorePercentiles" : { + "0.0" : 15.80922986452746, + "50.0" : 15.920960661790467, + "90.0" : 15.97118075881037, + "95.0" : 15.97118075881037, + "99.0" : 15.97118075881037, + "99.9" : 15.97118075881037, + "99.99" : 15.97118075881037, + "99.999" : 15.97118075881037, + "99.9999" : 15.97118075881037, + "100.0" : 15.97118075881037 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.80922986452746, + 15.824703875481319, + 15.820446126136925 + ], + [ + 15.97118075881037, + 15.956354305652036, + 15.967698445224553 + ], + [ + 15.892708365722527, + 15.920960661790467, + 15.957309276973744 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2722.266736729774, + "scoreError" : 105.57849040404129, + "scoreConfidence" : [ + 2616.688246325733, + 2827.845227133815 + ], + "scorePercentiles" : { + "0.0" : 2636.873921470413, + "50.0" : 2760.8545369376047, + "90.0" : 2772.0616199852557, + "95.0" : 2772.0616199852557, + "99.0" : 2772.0616199852557, + "99.9" : 2772.0616199852557, + "99.99" : 2772.0616199852557, + "99.999" : 2772.0616199852557, + "99.9999" : 2772.0616199852557, + "100.0" : 2772.0616199852557 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2636.873921470413, + 2642.265641869794, + 2636.9323275347615 + ], + [ + 2765.7734690069874, + 2760.8545369376047, + 2772.0616199852557 + ], + [ + 2756.996665783692, + 2764.59089597599, + 2764.051552003467 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69403.28294159488, + "scoreError" : 1789.5098351053073, + "scoreConfidence" : [ + 67613.77310648958, + 71192.79277670018 + ], + "scorePercentiles" : { + "0.0" : 68148.26382761766, + "50.0" : 69446.16304178763, + "90.0" : 70726.5839917201, + "95.0" : 70726.5839917201, + "99.0" : 70726.5839917201, + "99.9" : 70726.5839917201, + "99.99" : 70726.5839917201, + "99.999" : 70726.5839917201, + "99.9999" : 70726.5839917201, + "100.0" : 70726.5839917201 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69465.85758059853, + 69446.16304178763, + 68976.76943002627 + ], + [ + 68304.00362996088, + 68148.26382761766, + 68275.46953815382 + ], + [ + 70726.5839917201, + 70682.72282740971, + 70603.71260707919 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 335.70220206197814, + "scoreError" : 15.07249257701705, + "scoreConfidence" : [ + 320.6297094849611, + 350.7746946389952 + ], + "scorePercentiles" : { + "0.0" : 327.22299189736594, + "50.0" : 332.9895061687026, + "90.0" : 347.9638389367264, + "95.0" : 347.9638389367264, + "99.0" : 347.9638389367264, + "99.9" : 347.9638389367264, + "99.99" : 347.9638389367264, + "99.999" : 347.9638389367264, + "99.9999" : 347.9638389367264, + "100.0" : 347.9638389367264 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 346.6069929006137, + 347.9638389367264, + 347.28162821148885 + ], + [ + 333.69198738799884, + 329.7415538701372, + 332.9895061687026 + ], + [ + 327.9921801088395, + 327.22299189736594, + 327.82913907593047 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 103.20240192236119, + "scoreError" : 1.7118826264673341, + "scoreConfidence" : [ + 101.49051929589386, + 104.91428454882852 + ], + "scorePercentiles" : { + "0.0" : 101.86121014089116, + "50.0" : 103.17117821314267, + "90.0" : 104.71944989338951, + "95.0" : 104.71944989338951, + "99.0" : 104.71944989338951, + "99.9" : 104.71944989338951, + "99.99" : 104.71944989338951, + "99.999" : 104.71944989338951, + "99.9999" : 104.71944989338951, + "100.0" : 104.71944989338951 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 103.14285113507162, + 103.17117821314267, + 103.41142732656795 + ], + [ + 102.26046497937386, + 101.86121014089116, + 101.98306700690846 + ], + [ + 104.00069533126559, + 104.27127327463997, + 104.71944989338951 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06280098304120152, + "scoreError" : 3.937176959420289E-4, + "scoreConfidence" : [ + 0.06240726534525949, + 0.06319470073714355 + ], + "scorePercentiles" : { + "0.0" : 0.06254160231025166, + "50.0" : 0.06279172655234555, + "90.0" : 0.06323299884917925, + "95.0" : 0.06323299884917925, + "99.0" : 0.06323299884917925, + "99.9" : 0.06323299884917925, + "99.99" : 0.06323299884917925, + "99.999" : 0.06323299884917925, + "99.9999" : 0.06323299884917925, + "100.0" : 0.06323299884917925 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06254160231025166, + 0.06256130020144389, + 0.06289950600052835 + ], + [ + 0.06279268673904444, + 0.06279172655234555, + 0.0625852339908877 + ], + [ + 0.06323299884917925, + 0.06306160496793356, + 0.06274218775919942 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.800666345175178E-4, + "scoreError" : 1.4269686166394017E-5, + "scoreConfidence" : [ + 3.657969483511238E-4, + 3.9433632068391184E-4 + ], + "scorePercentiles" : { + "0.0" : 3.683397532387197E-4, + "50.0" : 3.854766220563561E-4, + "90.0" : 3.8654012930314224E-4, + "95.0" : 3.8654012930314224E-4, + "99.0" : 3.8654012930314224E-4, + "99.9" : 3.8654012930314224E-4, + "99.99" : 3.8654012930314224E-4, + "99.999" : 3.8654012930314224E-4, + "99.9999" : 3.8654012930314224E-4, + "100.0" : 3.8654012930314224E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.859636843167263E-4, + 3.8455198181245204E-4, + 3.854766220563561E-4 + ], + [ + 3.6918629544099645E-4, + 3.6879014199807185E-4, + 3.683397532387197E-4 + ], + [ + 3.8654012930314224E-4, + 3.8552127057348224E-4, + 3.8622983191771357E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.01422155170621673, + "scoreError" : 1.222545120086124E-4, + "scoreConfidence" : [ + 0.014099297194208117, + 0.014343806218225343 + ], + "scorePercentiles" : { + "0.0" : 0.014122907994599466, + "50.0" : 0.0142476932221646, + "90.0" : 0.014300206638362132, + "95.0" : 0.014300206638362132, + "99.0" : 0.014300206638362132, + "99.9" : 0.014300206638362132, + "99.99" : 0.014300206638362132, + "99.999" : 0.014300206638362132, + "99.9999" : 0.014300206638362132, + "100.0" : 0.014300206638362132 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014255982918679112, + 0.014234981336734506, + 0.0142476932221646 + ], + [ + 0.01412348233458089, + 0.014139337159864547, + 0.014122907994599466 + ], + [ + 0.014300206638362132, + 0.01428836946243565, + 0.014281004288529646 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9803882629131864, + "scoreError" : 0.020658568420889065, + "scoreConfidence" : [ + 0.9597296944922973, + 1.0010468313340755 + ], + "scorePercentiles" : { + "0.0" : 0.9592676801918465, + "50.0" : 0.9825492621340145, + "90.0" : 0.9934468711632065, + "95.0" : 0.9934468711632065, + "99.0" : 0.9934468711632065, + "99.9" : 0.9934468711632065, + "99.99" : 0.9934468711632065, + "99.999" : 0.9934468711632065, + "99.9999" : 0.9934468711632065, + "100.0" : 0.9934468711632065 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9934468711632065, + 0.9888148557445126, + 0.9868741706137754 + ], + [ + 0.9825492621340145, + 0.9926531631761787, + 0.9820926468624177 + ], + [ + 0.9592676801918465, + 0.9635445763561037, + 0.9742511399766218 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013139045113127988, + "scoreError" : 8.038683793137916E-4, + "scoreConfidence" : [ + 0.012335176733814197, + 0.01394291349244178 + ], + "scorePercentiles" : { + "0.0" : 0.012814005489380022, + "50.0" : 0.013142212237676986, + "90.0" : 0.013427707323033625, + "95.0" : 0.013427707323033625, + "99.0" : 0.013427707323033625, + "99.9" : 0.013427707323033625, + "99.99" : 0.013427707323033625, + "99.999" : 0.013427707323033625, + "99.9999" : 0.013427707323033625, + "100.0" : 0.013427707323033625 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013369222135175747, + 0.013397351988253483, + 0.013427707323033625 + ], + [ + 0.012814005489380022, + 0.012915202340178225, + 0.012910781402746829 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.840400281821194, + "scoreError" : 0.07710475631475237, + "scoreConfidence" : [ + 3.7632955255064418, + 3.9175050381359466 + ], + "scorePercentiles" : { + "0.0" : 3.7997022750759877, + "50.0" : 3.8363600249409693, + "90.0" : 3.8819478875096975, + "95.0" : 3.8819478875096975, + "99.0" : 3.8819478875096975, + "99.9" : 3.8819478875096975, + "99.99" : 3.8819478875096975, + "99.999" : 3.8819478875096975, + "99.9999" : 3.8819478875096975, + "100.0" : 3.8819478875096975 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.834708003834356, + 3.8819478875096975, + 3.8569279853508096 + ], + [ + 3.7997022750759877, + 3.831103493108729, + 3.8380120460475826 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.961820214803675, + "scoreError" : 0.04684169380098943, + "scoreConfidence" : [ + 2.914978521002686, + 3.0086619086046644 + ], + "scorePercentiles" : { + "0.0" : 2.9317596974494284, + "50.0" : 2.9511743021540275, + "90.0" : 2.9983626555755394, + "95.0" : 2.9983626555755394, + "99.0" : 2.9983626555755394, + "99.9" : 2.9983626555755394, + "99.99" : 2.9983626555755394, + "99.999" : 2.9983626555755394, + "99.9999" : 2.9983626555755394, + "100.0" : 2.9983626555755394 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.9317596974494284, + 2.9345205044014087, + 2.936623438344099 + ], + [ + 2.9511743021540275, + 2.947147355922216, + 2.966120393534994 + ], + [ + 2.994105714071856, + 2.9983626555755394, + 2.996567871779509 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1757288501955799, + "scoreError" : 0.00513685216512485, + "scoreConfidence" : [ + 0.17059199803045505, + 0.18086570236070476 + ], + "scorePercentiles" : { + "0.0" : 0.17125731531176683, + "50.0" : 0.17670132100576033, + "90.0" : 0.17882767461239962, + "95.0" : 0.17882767461239962, + "99.0" : 0.17882767461239962, + "99.9" : 0.17882767461239962, + "99.99" : 0.17882767461239962, + "99.999" : 0.17882767461239962, + "99.9999" : 0.17882767461239962, + "100.0" : 0.17882767461239962 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1769569301741223, + 0.17670132100576033, + 0.17669613964131106 + ], + [ + 0.17275412223815365, + 0.1714712559499314, + 0.17125731531176683 + ], + [ + 0.17882767461239962, + 0.17852007883180407, + 0.17837481399496993 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.34706825206330116, + "scoreError" : 0.001580435927439251, + "scoreConfidence" : [ + 0.34548781613586194, + 0.3486486879907404 + ], + "scorePercentiles" : { + "0.0" : 0.3460187886924328, + "50.0" : 0.34727262110636525, + "90.0" : 0.3483138171780851, + "95.0" : 0.3483138171780851, + "99.0" : 0.3483138171780851, + "99.9" : 0.3483138171780851, + "99.99" : 0.3483138171780851, + "99.999" : 0.3483138171780851, + "99.9999" : 0.3483138171780851, + "100.0" : 0.3483138171780851 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.34613291267176627, + 0.3461400510193486, + 0.3460187886924328 + ], + [ + 0.34794822761908073, + 0.34727262110636525, + 0.3476111665334214 + ], + [ + 0.3483138171780851, + 0.34620084740012463, + 0.34797583634908485 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15901443524647912, + "scoreError" : 0.006788045196272182, + "scoreConfidence" : [ + 0.15222639005020694, + 0.1658024804427513 + ], + "scorePercentiles" : { + "0.0" : 0.15484666245490158, + "50.0" : 0.15790013287121835, + "90.0" : 0.1641328795627626, + "95.0" : 0.1641328795627626, + "99.0" : 0.1641328795627626, + "99.9" : 0.1641328795627626, + "99.99" : 0.1641328795627626, + "99.999" : 0.1641328795627626, + "99.9999" : 0.1641328795627626, + "100.0" : 0.1641328795627626 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15799359083655898, + 0.1578523076935219, + 0.15790013287121835 + ], + [ + 0.1641328795627626, + 0.16412531186607582, + 0.16412967892136748 + ], + [ + 0.15502788157690758, + 0.15512147143499774, + 0.15484666245490158 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39415298606633214, + "scoreError" : 0.0073863990684665615, + "scoreConfidence" : [ + 0.3867665869978656, + 0.4015393851347987 + ], + "scorePercentiles" : { + "0.0" : 0.387162633255904, + "50.0" : 0.3951555636780337, + "90.0" : 0.4017765369224588, + "95.0" : 0.4017765369224588, + "99.0" : 0.4017765369224588, + "99.9" : 0.4017765369224588, + "99.99" : 0.4017765369224588, + "99.999" : 0.4017765369224588, + "99.9999" : 0.4017765369224588, + "100.0" : 0.4017765369224588 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3951555636780337, + 0.387162633255904, + 0.38800434348568325 + ], + [ + 0.39662847281164476, + 0.3953628665691468, + 0.3951758637082115 + ], + [ + 0.4017765369224588, + 0.39381700567085415, + 0.39429358849505186 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15758703083047398, + "scoreError" : 0.005201091754230971, + "scoreConfidence" : [ + 0.152385939076243, + 0.16278812258470496 + ], + "scorePercentiles" : { + "0.0" : 0.15472419694273823, + "50.0" : 0.15595056361112844, + "90.0" : 0.1617285585367037, + "95.0" : 0.1617285585367037, + "99.0" : 0.1617285585367037, + "99.9" : 0.1617285585367037, + "99.99" : 0.1617285585367037, + "99.999" : 0.1617285585367037, + "99.9999" : 0.1617285585367037, + "100.0" : 0.1617285585367037 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15483804412789348, + 0.1558617654650021, + 0.15472419694273823 + ], + [ + 0.16167252702287607, + 0.1617285585367037, + 0.16159403569524117 + ], + [ + 0.15595056361112844, + 0.15604103013091578, + 0.15587255594176694 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.048128917200255104, + "scoreError" : 0.001081398938893643, + "scoreConfidence" : [ + 0.047047518261361464, + 0.049210316139148745 + ], + "scorePercentiles" : { + "0.0" : 0.04691966639610009, + "50.0" : 0.048270016783156025, + "90.0" : 0.049073969491159455, + "95.0" : 0.049073969491159455, + "99.0" : 0.049073969491159455, + "99.9" : 0.049073969491159455, + "99.99" : 0.049073969491159455, + "99.999" : 0.049073969491159455, + "99.9999" : 0.049073969491159455, + "100.0" : 0.049073969491159455 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047598662782672434, + 0.04691966639610009, + 0.04762934602158527 + ], + [ + 0.049073969491159455, + 0.048270016783156025, + 0.048181095204598345 + ], + [ + 0.04849201205981903, + 0.04850977500036382, + 0.04848571106284152 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9451596.3953978, + "scoreError" : 178389.00774169658, + "scoreConfidence" : [ + 9273207.387656102, + 9629985.403139496 + ], + "scorePercentiles" : { + "0.0" : 9312494.095903166, + "50.0" : 9479242.483412322, + "90.0" : 9571400.162679426, + "95.0" : 9571400.162679426, + "99.0" : 9571400.162679426, + "99.9" : 9571400.162679426, + "99.99" : 9571400.162679426, + "99.999" : 9571400.162679426, + "99.9999" : 9571400.162679426, + "100.0" : 9571400.162679426 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9479242.483412322, + 9467233.308420056, + 9499272.824311491 + ], + [ + 9528669.641904762, + 9571400.162679426, + 9564784.041108986 + ], + [ + 9312494.095903166, + 9328251.902143523, + 9313019.098696461 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T01:13:31Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json b/performance-results/2025-03-24T01:13:31Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json new file mode 100644 index 000000000..b5cdb6017 --- /dev/null +++ b/performance-results/2025-03-24T01:13:31Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.422918226767772, + "scoreError" : 0.018333149688673566, + "scoreConfidence" : [ + 3.404585077079098, + 3.4412513764564454 + ], + "scorePercentiles" : { + "0.0" : 3.419464583762408, + "50.0" : 3.422947389990944, + "90.0" : 3.426313543326791, + "95.0" : 3.426313543326791, + "99.0" : 3.426313543326791, + "99.9" : 3.426313543326791, + "99.99" : 3.426313543326791, + "99.999" : 3.426313543326791, + "99.9999" : 3.426313543326791, + "100.0" : 3.426313543326791 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.419464583762408, + 3.426313543326791 + ], + [ + 3.4223602521562295, + 3.4235345278256584 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7248233246272615, + "scoreError" : 0.023643110989649992, + "scoreConfidence" : [ + 1.7011802136376115, + 1.7484664356169115 + ], + "scorePercentiles" : { + "0.0" : 1.7201482102136298, + "50.0" : 1.7253085313214631, + "90.0" : 1.7285280256524898, + "95.0" : 1.7285280256524898, + "99.0" : 1.7285280256524898, + "99.9" : 1.7285280256524898, + "99.99" : 1.7285280256524898, + "99.999" : 1.7285280256524898, + "99.9999" : 1.7285280256524898, + "100.0" : 1.7285280256524898 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7201482102136298, + 1.723875345355189 + ], + [ + 1.7267417172877373, + 1.7285280256524898 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8691911317000947, + "scoreError" : 0.002655907669193238, + "scoreConfidence" : [ + 0.8665352240309014, + 0.8718470393692879 + ], + "scorePercentiles" : { + "0.0" : 0.8686357338501872, + "50.0" : 0.869250861572249, + "90.0" : 0.8696270698056936, + "95.0" : 0.8696270698056936, + "99.0" : 0.8696270698056936, + "99.9" : 0.8696270698056936, + "99.99" : 0.8696270698056936, + "99.999" : 0.8696270698056936, + "99.9999" : 0.8696270698056936, + "100.0" : 0.8696270698056936 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8686357338501872, + 0.8696270698056936 + ], + [ + 0.869274635006496, + 0.869227088138002 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.269713337427504, + "scoreError" : 0.14438877525995078, + "scoreConfidence" : [ + 16.125324562167553, + 16.414102112687456 + ], + "scorePercentiles" : { + "0.0" : 16.117858602831706, + "50.0" : 16.322456788864862, + "90.0" : 16.348479604511603, + "95.0" : 16.348479604511603, + "99.0" : 16.348479604511603, + "99.9" : 16.348479604511603, + "99.99" : 16.348479604511603, + "99.999" : 16.348479604511603, + "99.9999" : 16.348479604511603, + "100.0" : 16.348479604511603 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.322854104364346, + 16.335474903690017, + 16.348479604511603 + ], + [ + 16.28551807447759, + 16.322456788864862, + 16.331614273616157 + ], + [ + 16.192817675350103, + 16.117858602831706, + 16.170346009141166 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2705.9594158818363, + "scoreError" : 192.99783864660245, + "scoreConfidence" : [ + 2512.961577235234, + 2898.9572545284386 + ], + "scorePercentiles" : { + "0.0" : 2577.247939215522, + "50.0" : 2692.3021417137543, + "90.0" : 2850.8813638762285, + "95.0" : 2850.8813638762285, + "99.0" : 2850.8813638762285, + "99.9" : 2850.8813638762285, + "99.99" : 2850.8813638762285, + "99.999" : 2850.8813638762285, + "99.9999" : 2850.8813638762285, + "100.0" : 2850.8813638762285 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2692.3021417137543, + 2695.2601082938186, + 2691.307173319121 + ], + [ + 2850.8813638762285, + 2843.8230950227876, + 2838.84709036833 + ], + [ + 2577.892907020788, + 2577.247939215522, + 2586.0729241061736 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70330.90293571194, + "scoreError" : 1814.8467265792697, + "scoreConfidence" : [ + 68516.05620913267, + 72145.74966229121 + ], + "scorePercentiles" : { + "0.0" : 69039.15347272958, + "50.0" : 70411.6312894578, + "90.0" : 71564.1567915699, + "95.0" : 71564.1567915699, + "99.0" : 71564.1567915699, + "99.9" : 71564.1567915699, + "99.99" : 71564.1567915699, + "99.999" : 71564.1567915699, + "99.9999" : 71564.1567915699, + "100.0" : 71564.1567915699 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69039.15347272958, + 69066.18990884532, + 69044.98069845003 + ], + [ + 71510.90218062312, + 71564.1567915699, + 71545.78744063577 + ], + [ + 70349.9073863051, + 70411.6312894578, + 70445.41725279074 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 357.8932895289724, + "scoreError" : 6.778917399249856, + "scoreConfidence" : [ + 351.11437212972254, + 364.67220692822224 + ], + "scorePercentiles" : { + "0.0" : 354.3820744687182, + "50.0" : 355.97315553038175, + "90.0" : 363.8908628823784, + "95.0" : 363.8908628823784, + "99.0" : 363.8908628823784, + "99.9" : 363.8908628823784, + "99.99" : 363.8908628823784, + "99.999" : 363.8908628823784, + "99.9999" : 363.8908628823784, + "100.0" : 363.8908628823784 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 354.9125115105426, + 354.68922837188575, + 354.3820744687182 + ], + [ + 355.97315553038175, + 356.6277140587543, + 354.96717029330796 + ], + [ + 363.4166848352348, + 363.8908628823784, + 362.1802038095481 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 109.31292831463014, + "scoreError" : 1.96493773221573, + "scoreConfidence" : [ + 107.34799058241441, + 111.27786604684587 + ], + "scorePercentiles" : { + "0.0" : 107.69539614027994, + "50.0" : 109.76809662718475, + "90.0" : 110.36454561045173, + "95.0" : 110.36454561045173, + "99.0" : 110.36454561045173, + "99.9" : 110.36454561045173, + "99.99" : 110.36454561045173, + "99.999" : 110.36454561045173, + "99.9999" : 110.36454561045173, + "100.0" : 110.36454561045173 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 107.69539614027994, + 107.86202400330613, + 107.81319167511278 + ], + [ + 110.34968849825734, + 110.36069523704057, + 110.36454561045173 + ], + [ + 109.75382660904711, + 109.76809662718475, + 109.84889043099095 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06115231415443667, + "scoreError" : 2.7757492177696216E-4, + "scoreConfidence" : [ + 0.06087473923265971, + 0.061429889076213634 + ], + "scorePercentiles" : { + "0.0" : 0.06093074006080805, + "50.0" : 0.061178577077903806, + "90.0" : 0.061452698443424346, + "95.0" : 0.061452698443424346, + "99.0" : 0.061452698443424346, + "99.9" : 0.061452698443424346, + "99.99" : 0.061452698443424346, + "99.999" : 0.061452698443424346, + "99.9999" : 0.061452698443424346, + "100.0" : 0.061452698443424346 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06108022874890821, + 0.06096968443097709, + 0.06093074006080805 + ], + [ + 0.061178577077903806, + 0.0612031103474445, + 0.061452698443424346 + ], + [ + 0.06119962405600911, + 0.0613076285420013, + 0.061048535682453636 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.6351884197456766E-4, + "scoreError" : 1.1708507477707113E-5, + "scoreConfidence" : [ + 3.5181033449686053E-4, + 3.752273494522748E-4 + ], + "scorePercentiles" : { + "0.0" : 3.542770620589208E-4, + "50.0" : 3.669356435358375E-4, + "90.0" : 3.6963335624417025E-4, + "95.0" : 3.6963335624417025E-4, + "99.0" : 3.6963335624417025E-4, + "99.9" : 3.6963335624417025E-4, + "99.99" : 3.6963335624417025E-4, + "99.999" : 3.6963335624417025E-4, + "99.9999" : 3.6963335624417025E-4, + "100.0" : 3.6963335624417025E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.693484092028624E-4, + 3.6963335624417025E-4, + 3.6946049352507286E-4 + ], + [ + 3.542770620589208E-4, + 3.5438673282758176E-4, + 3.5446827063455045E-4 + ], + [ + 3.660474383407284E-4, + 3.669356435358375E-4, + 3.6711217140138446E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014040306639199382, + "scoreError" : 2.189874459994869E-4, + "scoreConfidence" : [ + 0.013821319193199894, + 0.01425929408519887 + ], + "scorePercentiles" : { + "0.0" : 0.013873872933511657, + "50.0" : 0.014066023999178553, + "90.0" : 0.014185114222814207, + "95.0" : 0.014185114222814207, + "99.0" : 0.014185114222814207, + "99.9" : 0.014185114222814207, + "99.99" : 0.014185114222814207, + "99.999" : 0.014185114222814207, + "99.9999" : 0.014185114222814207, + "100.0" : 0.014185114222814207 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013873872933511657, + 0.013874219684504072, + 0.013887816720458182 + ], + [ + 0.014062647974788746, + 0.014070673822931002, + 0.014066023999178553 + ], + [ + 0.014172631385231997, + 0.014185114222814207, + 0.014169759009376014 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9742580802486356, + "scoreError" : 0.025198240489418596, + "scoreConfidence" : [ + 0.949059839759217, + 0.9994563207380541 + ], + "scorePercentiles" : { + "0.0" : 0.9591472857964899, + "50.0" : 0.9688832565394303, + "90.0" : 0.9961906805458711, + "95.0" : 0.9961906805458711, + "99.0" : 0.9961906805458711, + "99.9" : 0.9961906805458711, + "99.99" : 0.9961906805458711, + "99.999" : 0.9961906805458711, + "99.9999" : 0.9961906805458711, + "100.0" : 0.9961906805458711 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9896558599703117, + 0.9947686386153387, + 0.9961906805458711 + ], + [ + 0.9688832565394303, + 0.9673317737473399, + 0.9690521334302326 + ], + [ + 0.9591472857964899, + 0.9638375641865844, + 0.9594555294061211 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01304551071126541, + "scoreError" : 4.5378102190033647E-4, + "scoreConfidence" : [ + 0.012591729689365073, + 0.013499291733165745 + ], + "scorePercentiles" : { + "0.0" : 0.012846069177073887, + "50.0" : 0.0130605302303139, + "90.0" : 0.013192607064739887, + "95.0" : 0.013192607064739887, + "99.0" : 0.013192607064739887, + "99.9" : 0.013192607064739887, + "99.99" : 0.013192607064739887, + "99.999" : 0.013192607064739887, + "99.9999" : 0.013192607064739887, + "100.0" : 0.013192607064739887 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012846069177073887, + 0.012922527678061463, + 0.012932401976023898 + ], + [ + 0.013188658484603901, + 0.013192607064739887, + 0.013190799887089414 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6124515862232065, + "scoreError" : 0.3329195335223676, + "scoreConfidence" : [ + 3.279532052700839, + 3.945371119745574 + ], + "scorePercentiles" : { + "0.0" : 3.4783565465924897, + "50.0" : 3.6183021933966506, + "90.0" : 3.7219963913690477, + "95.0" : 3.7219963913690477, + "99.0" : 3.7219963913690477, + "99.9" : 3.7219963913690477, + "99.99" : 3.7219963913690477, + "99.999" : 3.7219963913690477, + "99.9999" : 3.7219963913690477, + "100.0" : 3.7219963913690477 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.4783565465924897, + 3.51792920745429, + 3.518397646272855 + ], + [ + 3.7198229851301114, + 3.7219963913690477, + 3.718206740520446 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.820564883208848, + "scoreError" : 0.07635244025538424, + "scoreConfidence" : [ + 2.744212442953464, + 2.896917323464232 + ], + "scorePercentiles" : { + "0.0" : 2.7563458605676496, + "50.0" : 2.8488649763600113, + "90.0" : 2.856326268989149, + "95.0" : 2.856326268989149, + "99.0" : 2.856326268989149, + "99.9" : 2.856326268989149, + "99.99" : 2.856326268989149, + "99.999" : 2.856326268989149, + "99.9999" : 2.856326268989149, + "100.0" : 2.856326268989149 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8540345976027397, + 2.853888280171184, + 2.8488649763600113 + ], + [ + 2.856326268989149, + 2.8520386968919302, + 2.8387283894408175 + ], + [ + 2.763057338121547, + 2.7617995407346037, + 2.7563458605676496 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18422658410785747, + "scoreError" : 0.025242427508284763, + "scoreConfidence" : [ + 0.1589841565995727, + 0.20946901161614223 + ], + "scorePercentiles" : { + "0.0" : 0.1730692323907099, + "50.0" : 0.1752739016387696, + "90.0" : 0.20461711738587768, + "95.0" : 0.20461711738587768, + "99.0" : 0.20461711738587768, + "99.9" : 0.20461711738587768, + "99.99" : 0.20461711738587768, + "99.999" : 0.20461711738587768, + "99.9999" : 0.20461711738587768, + "100.0" : 0.20461711738587768 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1732926723621051, + 0.1730692323907099, + 0.17307003277894117 + ], + [ + 0.1751855069546633, + 0.17550739095105214, + 0.1752739016387696 + ], + [ + 0.20461711738587768, + 0.2041418652295507, + 0.20388153727904748 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3313797971859773, + "scoreError" : 0.020569230998265856, + "scoreConfidence" : [ + 0.31081056618771147, + 0.3519490281842432 + ], + "scorePercentiles" : { + "0.0" : 0.3170424942616194, + "50.0" : 0.33000916014916015, + "90.0" : 0.3460290239100346, + "95.0" : 0.3460290239100346, + "99.0" : 0.3460290239100346, + "99.9" : 0.3460290239100346, + "99.99" : 0.3460290239100346, + "99.999" : 0.3460290239100346, + "99.9999" : 0.3460290239100346, + "100.0" : 0.3460290239100346 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.33180670217989977, + 0.3296485476661392, + 0.33000916014916015 + ], + [ + 0.31890494929523566, + 0.3172751786541451, + 0.3170424942616194 + ], + [ + 0.3460290239100346, + 0.34592098360372203, + 0.3457811349538398 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1549902340662419, + "scoreError" : 0.003544496616706501, + "scoreConfidence" : [ + 0.1514457374495354, + 0.1585347306829484 + ], + "scorePercentiles" : { + "0.0" : 0.15323426649913424, + "50.0" : 0.15390085390439842, + "90.0" : 0.15797860720999668, + "95.0" : 0.15797860720999668, + "99.0" : 0.15797860720999668, + "99.9" : 0.15797860720999668, + "99.99" : 0.15797860720999668, + "99.999" : 0.15797860720999668, + "99.9999" : 0.15797860720999668, + "100.0" : 0.15797860720999668 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15344080177374067, + 0.1533190904407819, + 0.15323426649913424 + ], + [ + 0.15797860720999668, + 0.15759360946167422, + 0.1577704870314275 + ], + [ + 0.15390085390439842, + 0.15396346709878064, + 0.15371092317624274 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.397097650470543, + "scoreError" : 0.024930142478511705, + "scoreConfidence" : [ + 0.3721675079920313, + 0.42202779294905474 + ], + "scorePercentiles" : { + "0.0" : 0.38140312475209764, + "50.0" : 0.39157604408943186, + "90.0" : 0.4164570443509766, + "95.0" : 0.4164570443509766, + "99.0" : 0.4164570443509766, + "99.9" : 0.4164570443509766, + "99.99" : 0.4164570443509766, + "99.999" : 0.4164570443509766, + "99.9999" : 0.4164570443509766, + "100.0" : 0.4164570443509766 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.4161600940491053, + 0.41621297852416034, + 0.4164570443509766 + ], + [ + 0.39187239076766334, + 0.39157604408943186, + 0.3909906981272237 + ], + [ + 0.3859372891710404, + 0.38326919040318874, + 0.38140312475209764 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15905829126011567, + "scoreError" : 0.00219234128808664, + "scoreConfidence" : [ + 0.15686594997202902, + 0.16125063254820232 + ], + "scorePercentiles" : { + "0.0" : 0.1576184559467894, + "50.0" : 0.15896080007947863, + "90.0" : 0.1610654456255637, + "95.0" : 0.1610654456255637, + "99.0" : 0.1610654456255637, + "99.9" : 0.1610654456255637, + "99.99" : 0.1610654456255637, + "99.999" : 0.1610654456255637, + "99.9999" : 0.1610654456255637, + "100.0" : 0.1610654456255637 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15821193833059105, + 0.1578200735433369, + 0.1576240174644957 + ], + [ + 0.16021311116985484, + 0.15896080007947863, + 0.1576184559467894 + ], + [ + 0.1610654456255637, + 0.16019364413866016, + 0.15981713504227063 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.047881073265585855, + "scoreError" : 7.391661947761921E-4, + "scoreConfidence" : [ + 0.04714190707080966, + 0.04862023946036205 + ], + "scorePercentiles" : { + "0.0" : 0.04747618604695326, + "50.0" : 0.04758646360404859, + "90.0" : 0.04868108797986584, + "95.0" : 0.04868108797986584, + "99.0" : 0.04868108797986584, + "99.9" : 0.04868108797986584, + "99.99" : 0.04868108797986584, + "99.999" : 0.04868108797986584, + "99.9999" : 0.04868108797986584, + "100.0" : 0.04868108797986584 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047553612824073194, + 0.04753731592858094, + 0.04747618604695326 + ], + [ + 0.04868108797986584, + 0.04828521061678561, + 0.048222274048105855 + ], + [ + 0.04805520271315781, + 0.04758646360404859, + 0.04753230562870153 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9271893.135588221, + "scoreError" : 226020.91233735438, + "scoreConfidence" : [ + 9045872.223250866, + 9497914.047925577 + ], + "scorePercentiles" : { + "0.0" : 9089321.821071753, + "50.0" : 9271490.395736793, + "90.0" : 9463506.104068117, + "95.0" : 9463506.104068117, + "99.0" : 9463506.104068117, + "99.9" : 9463506.104068117, + "99.99" : 9463506.104068117, + "99.999" : 9463506.104068117, + "99.9999" : 9463506.104068117, + "100.0" : 9463506.104068117 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9463506.104068117, + 9412204.553151459, + 9399670.632518796 + ], + [ + 9271490.395736793, + 9270540.29935125, + 9273005.521779425 + ], + [ + 9148431.066727605, + 9118867.825888788, + 9089321.821071753 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T01:13:36Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json b/performance-results/2025-03-24T01:13:36Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json new file mode 100644 index 000000000..fba2b4740 --- /dev/null +++ b/performance-results/2025-03-24T01:13:36Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4255027365084705, + "scoreError" : 0.015268297622684238, + "scoreConfidence" : [ + 3.4102344388857864, + 3.4407710341311546 + ], + "scorePercentiles" : { + "0.0" : 3.423680586656175, + "50.0" : 3.4247710163271283, + "90.0" : 3.42878832672345, + "95.0" : 3.42878832672345, + "99.0" : 3.42878832672345, + "99.9" : 3.42878832672345, + "99.99" : 3.42878832672345, + "99.999" : 3.42878832672345, + "99.9999" : 3.42878832672345, + "100.0" : 3.42878832672345 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4256547896178025, + 3.42878832672345 + ], + [ + 3.423680586656175, + 3.423887243036454 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.72787103241473, + "scoreError" : 0.015311326619137618, + "scoreConfidence" : [ + 1.7125597057955924, + 1.7431823590338675 + ], + "scorePercentiles" : { + "0.0" : 1.7258301618950143, + "50.0" : 1.72761015824926, + "90.0" : 1.7304336512653857, + "95.0" : 1.7304336512653857, + "99.0" : 1.7304336512653857, + "99.9" : 1.7304336512653857, + "99.99" : 1.7304336512653857, + "99.999" : 1.7304336512653857, + "99.9999" : 1.7304336512653857, + "100.0" : 1.7304336512653857 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.729338528385661, + 1.7304336512653857 + ], + [ + 1.7258301618950143, + 1.725881788112859 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8675124306454595, + "scoreError" : 0.005320038114788069, + "scoreConfidence" : [ + 0.8621923925306714, + 0.8728324687602476 + ], + "scorePercentiles" : { + "0.0" : 0.8666706939441462, + "50.0" : 0.8675694953743074, + "90.0" : 0.8682400378890769, + "95.0" : 0.8682400378890769, + "99.0" : 0.8682400378890769, + "99.9" : 0.8682400378890769, + "99.99" : 0.8682400378890769, + "99.999" : 0.8682400378890769, + "99.9999" : 0.8682400378890769, + "100.0" : 0.8682400378890769 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8681975610402533, + 0.8669414297083615 + ], + [ + 0.8666706939441462, + 0.8682400378890769 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.08387646024225, + "scoreError" : 0.28169323607593694, + "scoreConfidence" : [ + 15.802183224166315, + 16.36556969631819 + ], + "scorePercentiles" : { + "0.0" : 15.857648305820325, + "50.0" : 16.169853409735502, + "90.0" : 16.220922945381865, + "95.0" : 16.220922945381865, + "99.0" : 16.220922945381865, + "99.9" : 16.220922945381865, + "99.99" : 16.220922945381865, + "99.999" : 16.220922945381865, + "99.9999" : 16.220922945381865, + "100.0" : 16.220922945381865 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.86268753833565, + 15.857648305820325, + 15.86481780525936 + ], + [ + 16.220922945381865, + 16.214595465849875, + 16.210400315425794 + ], + [ + 16.169747624196056, + 16.184214732175867, + 16.169853409735502 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2714.00827636627, + "scoreError" : 55.61639089855765, + "scoreConfidence" : [ + 2658.391885467712, + 2769.6246672648276 + ], + "scorePercentiles" : { + "0.0" : 2667.708875949212, + "50.0" : 2717.824085599261, + "90.0" : 2754.3955765089468, + "95.0" : 2754.3955765089468, + "99.0" : 2754.3955765089468, + "99.9" : 2754.3955765089468, + "99.99" : 2754.3955765089468, + "99.999" : 2754.3955765089468, + "99.9999" : 2754.3955765089468, + "100.0" : 2754.3955765089468 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2710.520618895013, + 2717.824085599261, + 2719.7067761834132 + ], + [ + 2683.136600437227, + 2674.865175131134, + 2667.708875949212 + ], + [ + 2749.5732786152225, + 2748.3434999769956, + 2754.3955765089468 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70426.43446172662, + "scoreError" : 903.3310026109199, + "scoreConfidence" : [ + 69523.1034591157, + 71329.76546433754 + ], + "scorePercentiles" : { + "0.0" : 69722.5379226521, + "50.0" : 70645.27630459232, + "90.0" : 70965.6169677315, + "95.0" : 70965.6169677315, + "99.0" : 70965.6169677315, + "99.9" : 70965.6169677315, + "99.99" : 70965.6169677315, + "99.999" : 70965.6169677315, + "99.9999" : 70965.6169677315, + "100.0" : 70965.6169677315 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69722.5379226521, + 69731.8772056881, + 69731.03011934547 + ], + [ + 70564.19048055039, + 70645.27630459232, + 70728.42014552624 + ], + [ + 70965.6169677315, + 70872.53267611962, + 70876.42833333378 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 347.15213022456425, + "scoreError" : 5.601239292143671, + "scoreConfidence" : [ + 341.5508909324206, + 352.7533695167079 + ], + "scorePercentiles" : { + "0.0" : 342.43002863553767, + "50.0" : 348.0046593211147, + "90.0" : 350.7291616178739, + "95.0" : 350.7291616178739, + "99.0" : 350.7291616178739, + "99.9" : 350.7291616178739, + "99.99" : 350.7291616178739, + "99.999" : 350.7291616178739, + "99.9999" : 350.7291616178739, + "100.0" : 350.7291616178739 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 350.6492554423494, + 350.7291616178739, + 349.088136414228 + ], + [ + 348.0046593211147, + 349.4400643546579, + 347.65661947655303 + ], + [ + 342.93217357156874, + 343.43907318719454, + 342.43002863553767 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 103.225095253805, + "scoreError" : 2.632840318025602, + "scoreConfidence" : [ + 100.5922549357794, + 105.8579355718306 + ], + "scorePercentiles" : { + "0.0" : 101.82354108992503, + "50.0" : 102.27286704928098, + "90.0" : 105.37862607434907, + "95.0" : 105.37862607434907, + "99.0" : 105.37862607434907, + "99.9" : 105.37862607434907, + "99.99" : 105.37862607434907, + "99.999" : 105.37862607434907, + "99.9999" : 105.37862607434907, + "100.0" : 105.37862607434907 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 101.82354108992503, + 102.14092633561962, + 102.25810535530064 + ], + [ + 105.21616990044764, + 105.31650086545383, + 105.37862607434907 + ], + [ + 102.26552728272861, + 102.35359333113948, + 102.27286704928098 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06230045880514185, + "scoreError" : 7.518182294873389E-4, + "scoreConfidence" : [ + 0.06154864057565451, + 0.06305227703462919 + ], + "scorePercentiles" : { + "0.0" : 0.06176947449890361, + "50.0" : 0.06223176112687626, + "90.0" : 0.06286822427938264, + "95.0" : 0.06286822427938264, + "99.0" : 0.06286822427938264, + "99.9" : 0.06286822427938264, + "99.99" : 0.06286822427938264, + "99.999" : 0.06286822427938264, + "99.9999" : 0.06286822427938264, + "100.0" : 0.06286822427938264 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06281667806351919, + 0.06284513343681657, + 0.06286822427938264 + ], + [ + 0.06177516175562145, + 0.0619247579401693, + 0.06176947449890361 + ], + [ + 0.06223176112687626, + 0.062192614485705226, + 0.06228032365928242 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.784185944753912E-4, + "scoreError" : 2.9961168533700172E-5, + "scoreConfidence" : [ + 3.4845742594169103E-4, + 4.083797630090914E-4 + ], + "scorePercentiles" : { + "0.0" : 3.5462576541199346E-4, + "50.0" : 3.8776968823675393E-4, + "90.0" : 3.932338892053513E-4, + "95.0" : 3.932338892053513E-4, + "99.0" : 3.932338892053513E-4, + "99.9" : 3.932338892053513E-4, + "99.99" : 3.932338892053513E-4, + "99.999" : 3.932338892053513E-4, + "99.9999" : 3.932338892053513E-4, + "100.0" : 3.932338892053513E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.932338892053513E-4, + 3.921218514055642E-4, + 3.9255882731871754E-4 + ], + [ + 3.8776968823675393E-4, + 3.8844496690490987E-4, + 3.871850316723476E-4 + ], + [ + 3.548904501436881E-4, + 3.549368799791953E-4, + 3.5462576541199346E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014112566362291336, + "scoreError" : 1.1457189642839478E-4, + "scoreConfidence" : [ + 0.013997994465862942, + 0.01422713825871973 + ], + "scorePercentiles" : { + "0.0" : 0.014037298399628298, + "50.0" : 0.014102882472316397, + "90.0" : 0.014198602709345268, + "95.0" : 0.014198602709345268, + "99.0" : 0.014198602709345268, + "99.9" : 0.014198602709345268, + "99.99" : 0.014198602709345268, + "99.999" : 0.014198602709345268, + "99.9999" : 0.014198602709345268, + "100.0" : 0.014198602709345268 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01419368768628965, + 0.01419327041108878, + 0.014198602709345268 + ], + [ + 0.014111649840610857, + 0.014102882472316397, + 0.014096726636716178 + ], + [ + 0.014038897584779789, + 0.014040081519846797, + 0.014037298399628298 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.98631598312936, + "scoreError" : 0.008020690408102148, + "scoreConfidence" : [ + 0.9782952927212578, + 0.9943366735374621 + ], + "scorePercentiles" : { + "0.0" : 0.978657759761229, + "50.0" : 0.9860868756655492, + "90.0" : 0.9935871373075013, + "95.0" : 0.9935871373075013, + "99.0" : 0.9935871373075013, + "99.9" : 0.9935871373075013, + "99.99" : 0.9935871373075013, + "99.999" : 0.9935871373075013, + "99.9999" : 0.9935871373075013, + "100.0" : 0.9935871373075013 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9887167659911024, + 0.9916675884977689, + 0.9851070933806146 + ], + [ + 0.9855722197693899, + 0.9869512607322609, + 0.9860868756655492 + ], + [ + 0.978657759761229, + 0.9804971470588235, + 0.9935871373075013 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01313144176204755, + "scoreError" : 5.18352424928154E-4, + "scoreConfidence" : [ + 0.012613089337119396, + 0.013649794186975706 + ], + "scorePercentiles" : { + "0.0" : 0.012891570798741814, + "50.0" : 0.013147115764235705, + "90.0" : 0.013308197912812965, + "95.0" : 0.013308197912812965, + "99.0" : 0.013308197912812965, + "99.9" : 0.013308197912812965, + "99.99" : 0.013308197912812965, + "99.999" : 0.013308197912812965, + "99.9999" : 0.013308197912812965, + "100.0" : 0.013308197912812965 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013296880921925651, + 0.013308197912812965, + 0.013281904583173956 + ], + [ + 0.012891570798741814, + 0.012997769410333461, + 0.013012326945297454 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.7079852049983484, + "scoreError" : 0.11627454463127139, + "scoreConfidence" : [ + 3.591710660367077, + 3.82425974962962 + ], + "scorePercentiles" : { + "0.0" : 3.6668081752199413, + "50.0" : 3.695892137459865, + "90.0" : 3.7589851232156275, + "95.0" : 3.7589851232156275, + "99.0" : 3.7589851232156275, + "99.9" : 3.7589851232156275, + "99.99" : 3.7589851232156275, + "99.999" : 3.7589851232156275, + "99.9999" : 3.7589851232156275, + "100.0" : 3.7589851232156275 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6668081752199413, + 3.6728324199706313, + 3.6832431259204714 + ], + [ + 3.7085411489992586, + 3.7589851232156275, + 3.7575012366641625 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8926147839484724, + "scoreError" : 0.09645934758523785, + "scoreConfidence" : [ + 2.7961554363632346, + 2.98907413153371 + ], + "scorePercentiles" : { + "0.0" : 2.8026243536004483, + "50.0" : 2.921494793456033, + "90.0" : 2.9457562176730487, + "95.0" : 2.9457562176730487, + "99.0" : 2.9457562176730487, + "99.9" : 2.9457562176730487, + "99.99" : 2.9457562176730487, + "99.999" : 2.9457562176730487, + "99.9999" : 2.9457562176730487, + "100.0" : 2.9457562176730487 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.9457562176730487, + 2.93675267498532, + 2.921494793456033 + ], + [ + 2.9296250128881076, + 2.927352605209248, + 2.920907433995327 + ], + [ + 2.823672700169396, + 2.825347263559322, + 2.8026243536004483 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18133326474609845, + "scoreError" : 0.01346855229269323, + "scoreConfidence" : [ + 0.16786471245340523, + 0.19480181703879168 + ], + "scorePercentiles" : { + "0.0" : 0.1740499499269006, + "50.0" : 0.17767172076041574, + "90.0" : 0.1920147274821912, + "95.0" : 0.1920147274821912, + "99.0" : 0.1920147274821912, + "99.9" : 0.1920147274821912, + "99.99" : 0.1920147274821912, + "99.999" : 0.1920147274821912, + "99.9999" : 0.1920147274821912, + "100.0" : 0.1920147274821912 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17821891932207015, + 0.17765134902559912, + 0.17767172076041574 + ], + [ + 0.1743843624315558, + 0.17456054072406088, + 0.1740499499269006 + ], + [ + 0.1920147274821912, + 0.19182560413949207, + 0.19162220890260026 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3367788147831052, + "scoreError" : 0.02374465315352348, + "scoreConfidence" : [ + 0.3130341616295817, + 0.36052346793662865 + ], + "scorePercentiles" : { + "0.0" : 0.32071956720438727, + "50.0" : 0.33412888810184105, + "90.0" : 0.35441121898146505, + "95.0" : 0.35441121898146505, + "99.0" : 0.35441121898146505, + "99.9" : 0.35441121898146505, + "99.99" : 0.35441121898146505, + "99.999" : 0.35441121898146505, + "99.9999" : 0.35441121898146505, + "100.0" : 0.35441121898146505 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.35441121898146505, + 0.3540245686975608, + 0.35409223429643794 + ], + [ + 0.32071956720438727, + 0.32220562051744694, + 0.3226218893118689 + ], + [ + 0.33409698326206066, + 0.33470836267487786, + 0.33412888810184105 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16858839828710112, + "scoreError" : 0.010531615699214387, + "scoreConfidence" : [ + 0.15805678258788675, + 0.1791200139863155 + ], + "scorePercentiles" : { + "0.0" : 0.16052026189826482, + "50.0" : 0.17016409602164442, + "90.0" : 0.17525053695979811, + "95.0" : 0.17525053695979811, + "99.0" : 0.17525053695979811, + "99.9" : 0.17525053695979811, + "99.99" : 0.17525053695979811, + "99.999" : 0.17525053695979811, + "99.9999" : 0.17525053695979811, + "100.0" : 0.17525053695979811 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17016409602164442, + 0.17025412281866625, + 0.17014017352320676 + ], + [ + 0.17525053695979811, + 0.17473462677569848, + 0.17468118482741754 + ], + [ + 0.16098750687401397, + 0.16052026189826482, + 0.16056307488519958 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39153306316745484, + "scoreError" : 0.011987780396202052, + "scoreConfidence" : [ + 0.37954528277125277, + 0.4035208435636569 + ], + "scorePercentiles" : { + "0.0" : 0.3824763335883118, + "50.0" : 0.3891833180261519, + "90.0" : 0.405713951357053, + "95.0" : 0.405713951357053, + "99.0" : 0.405713951357053, + "99.9" : 0.405713951357053, + "99.99" : 0.405713951357053, + "99.999" : 0.405713951357053, + "99.9999" : 0.405713951357053, + "100.0" : 0.405713951357053 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.405713951357053, + 0.39427057364768964, + 0.39585323267228756 + ], + [ + 0.3959599306303453, + 0.3891833180261519, + 0.3883369830304442 + ], + [ + 0.3868123861834217, + 0.38519085937138897, + 0.3824763335883118 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15836425098734164, + "scoreError" : 0.001008748099331414, + "scoreConfidence" : [ + 0.15735550288801023, + 0.15937299908667305 + ], + "scorePercentiles" : { + "0.0" : 0.1578140798838512, + "50.0" : 0.15816451689942587, + "90.0" : 0.159676068308105, + "95.0" : 0.159676068308105, + "99.0" : 0.159676068308105, + "99.9" : 0.159676068308105, + "99.99" : 0.159676068308105, + "99.999" : 0.159676068308105, + "99.9999" : 0.159676068308105, + "100.0" : 0.159676068308105 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15865113410435802, + 0.15809743934675036, + 0.15790347873869037 + ], + [ + 0.15876646168256942, + 0.159676068308105, + 0.1583807269876465 + ], + [ + 0.1578140798838512, + 0.15782435293467797, + 0.15816451689942587 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04791337412082488, + "scoreError" : 6.092732015952206E-4, + "scoreConfidence" : [ + 0.04730410091922966, + 0.0485226473224201 + ], + "scorePercentiles" : { + "0.0" : 0.04742956409538896, + "50.0" : 0.04789460816111497, + "90.0" : 0.04834787348491808, + "95.0" : 0.04834787348491808, + "99.0" : 0.04834787348491808, + "99.9" : 0.04834787348491808, + "99.99" : 0.04834787348491808, + "99.999" : 0.04834787348491808, + "99.9999" : 0.04834787348491808, + "100.0" : 0.04834787348491808 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04790588642123165, + 0.04789460816111497, + 0.047890905550952774 + ], + [ + 0.0483252757449235, + 0.048341155593475967, + 0.04834787348491808 + ], + [ + 0.04753277148452354, + 0.04755232655089445, + 0.04742956409538896 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9462755.68721248, + "scoreError" : 319695.88956154167, + "scoreConfidence" : [ + 9143059.797650939, + 9782451.576774022 + ], + "scorePercentiles" : { + "0.0" : 9210562.837016575, + "50.0" : 9569353.49043977, + "90.0" : 9645247.50819672, + "95.0" : 9645247.50819672, + "99.0" : 9645247.50819672, + "99.9" : 9645247.50819672, + "99.99" : 9645247.50819672, + "99.999" : 9645247.50819672, + "99.9999" : 9645247.50819672, + "100.0" : 9645247.50819672 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9609886.60518732, + 9569353.49043977, + 9552628.962750716 + ], + [ + 9645247.50819672, + 9577503.71291866, + 9575471.54354067 + ], + [ + 9212506.072744016, + 9211640.452117864, + 9210562.837016575 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T01:14:33Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json b/performance-results/2025-03-24T01:14:33Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json new file mode 100644 index 000000000..ad9d1d5a8 --- /dev/null +++ b/performance-results/2025-03-24T01:14:33Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.40858461951776, + "scoreError" : 0.02823504274507638, + "scoreConfidence" : [ + 3.3803495767726837, + 3.4368196622628364 + ], + "scorePercentiles" : { + "0.0" : 3.403842617984939, + "50.0" : 3.408227397148522, + "90.0" : 3.414041065789058, + "95.0" : 3.414041065789058, + "99.0" : 3.414041065789058, + "99.9" : 3.414041065789058, + "99.99" : 3.414041065789058, + "99.999" : 3.414041065789058, + "99.9999" : 3.414041065789058, + "100.0" : 3.414041065789058 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.403842617984939, + 3.409770199303155 + ], + [ + 3.406684594993889, + 3.414041065789058 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.719980936295944, + "scoreError" : 0.023474343074217335, + "scoreConfidence" : [ + 1.6965065932217267, + 1.7434552793701612 + ], + "scorePercentiles" : { + "0.0" : 1.7165348324954257, + "50.0" : 1.7198702033470656, + "90.0" : 1.7236485059942186, + "95.0" : 1.7236485059942186, + "99.0" : 1.7236485059942186, + "99.9" : 1.7236485059942186, + "99.99" : 1.7236485059942186, + "99.999" : 1.7236485059942186, + "99.9999" : 1.7236485059942186, + "100.0" : 1.7236485059942186 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.722538337715663, + 1.7236485059942186 + ], + [ + 1.7172020689784684, + 1.7165348324954257 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8662508137633711, + "scoreError" : 0.006600936431906626, + "scoreConfidence" : [ + 0.8596498773314645, + 0.8728517501952777 + ], + "scorePercentiles" : { + "0.0" : 0.8649383265860422, + "50.0" : 0.8664958062991177, + "90.0" : 0.8670733158692063, + "95.0" : 0.8670733158692063, + "99.0" : 0.8670733158692063, + "99.9" : 0.8670733158692063, + "99.99" : 0.8670733158692063, + "99.999" : 0.8670733158692063, + "99.9999" : 0.8670733158692063, + "100.0" : 0.8670733158692063 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8670486287680078, + 0.8670733158692063 + ], + [ + 0.8649383265860422, + 0.8659429838302277 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.77838375496337, + "scoreError" : 0.236087536028889, + "scoreConfidence" : [ + 15.542296218934482, + 16.014471290992258 + ], + "scorePercentiles" : { + "0.0" : 15.5961961951466, + "50.0" : 15.711442912088485, + "90.0" : 15.972625063204788, + "95.0" : 15.972625063204788, + "99.0" : 15.972625063204788, + "99.9" : 15.972625063204788, + "99.99" : 15.972625063204788, + "99.999" : 15.972625063204788, + "99.9999" : 15.972625063204788, + "100.0" : 15.972625063204788 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.923619257367257, + 15.688122136687152, + 15.861394961333474 + ], + [ + 15.917691639008215, + 15.972625063204788, + 15.700576098794429 + ], + [ + 15.63378553103995, + 15.5961961951466, + 15.711442912088485 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2568.2740998550807, + "scoreError" : 97.78617105196564, + "scoreConfidence" : [ + 2470.487928803115, + 2666.0602709070463 + ], + "scorePercentiles" : { + "0.0" : 2475.227524256153, + "50.0" : 2577.6124597652006, + "90.0" : 2636.058733746114, + "95.0" : 2636.058733746114, + "99.0" : 2636.058733746114, + "99.9" : 2636.058733746114, + "99.99" : 2636.058733746114, + "99.999" : 2636.058733746114, + "99.9999" : 2636.058733746114, + "100.0" : 2636.058733746114 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2510.514525115231, + 2475.227524256153, + 2512.7676390395122 + ], + [ + 2618.47099094829, + 2552.117579354896, + 2612.291342265198 + ], + [ + 2636.058733746114, + 2577.6124597652006, + 2619.406104205128 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69829.0263668477, + "scoreError" : 1060.1346840457486, + "scoreConfidence" : [ + 68768.89168280194, + 70889.16105089345 + ], + "scorePercentiles" : { + "0.0" : 68925.80132472458, + "50.0" : 69768.77289161518, + "90.0" : 70700.90064854718, + "95.0" : 70700.90064854718, + "99.0" : 70700.90064854718, + "99.9" : 70700.90064854718, + "99.99" : 70700.90064854718, + "99.999" : 70700.90064854718, + "99.9999" : 70700.90064854718, + "100.0" : 70700.90064854718 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69506.85659733678, + 70028.64672895106, + 69768.77289161518 + ], + [ + 70700.90064854718, + 70253.3941584423, + 70621.94107476607 + ], + [ + 69600.20646558938, + 68925.80132472458, + 69054.71741165676 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 342.9282095584336, + "scoreError" : 2.6303078428595033, + "scoreConfidence" : [ + 340.2979017155741, + 345.5585174012931 + ], + "scorePercentiles" : { + "0.0" : 339.7323315026931, + "50.0" : 343.5420116887202, + "90.0" : 345.02858681117044, + "95.0" : 345.02858681117044, + "99.0" : 345.02858681117044, + "99.9" : 345.02858681117044, + "99.99" : 345.02858681117044, + "99.999" : 345.02858681117044, + "99.9999" : 345.02858681117044, + "100.0" : 345.02858681117044 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 345.02858681117044, + 343.5420116887202, + 342.0739074233191 + ], + [ + 343.5761532037889, + 341.92689876445934, + 339.7323315026931 + ], + [ + 342.55961907210377, + 344.2673861390148, + 343.6469914206324 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 106.48756562624698, + "scoreError" : 1.0958141946055548, + "scoreConfidence" : [ + 105.39175143164142, + 107.58337982085253 + ], + "scorePercentiles" : { + "0.0" : 105.49245380830173, + "50.0" : 106.5276062463189, + "90.0" : 107.65841429984553, + "95.0" : 107.65841429984553, + "99.0" : 107.65841429984553, + "99.9" : 107.65841429984553, + "99.99" : 107.65841429984553, + "99.999" : 107.65841429984553, + "99.9999" : 107.65841429984553, + "100.0" : 107.65841429984553 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 105.77795669889201, + 106.85071095308024, + 106.68181660710022 + ], + [ + 106.35814726073099, + 105.49245380830173, + 106.93707535894518 + ], + [ + 106.5276062463189, + 106.1039094030079, + 107.65841429984553 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06297848004678867, + "scoreError" : 5.894937036759589E-4, + "scoreConfidence" : [ + 0.06238898634311271, + 0.06356797375046463 + ], + "scorePercentiles" : { + "0.0" : 0.06252654531244138, + "50.0" : 0.06302387430044368, + "90.0" : 0.06367914714722364, + "95.0" : 0.06367914714722364, + "99.0" : 0.06367914714722364, + "99.9" : 0.06367914714722364, + "99.99" : 0.06367914714722364, + "99.999" : 0.06367914714722364, + "99.9999" : 0.06367914714722364, + "100.0" : 0.06367914714722364 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06319152964594221, + 0.06269488202250713, + 0.06314516624675595 + ], + [ + 0.06302387430044368, + 0.062759557803704, + 0.06308125920342147 + ], + [ + 0.06367914714722364, + 0.06270435873865852, + 0.06252654531244138 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.761317551796573E-4, + "scoreError" : 1.2845499363296883E-5, + "scoreConfidence" : [ + 3.632862558163604E-4, + 3.889772545429542E-4 + ], + "scorePercentiles" : { + "0.0" : 3.654097590578796E-4, + "50.0" : 3.7901738871717514E-4, + "90.0" : 3.834261705410972E-4, + "95.0" : 3.834261705410972E-4, + "99.0" : 3.834261705410972E-4, + "99.9" : 3.834261705410972E-4, + "99.99" : 3.834261705410972E-4, + "99.999" : 3.834261705410972E-4, + "99.9999" : 3.834261705410972E-4, + "100.0" : 3.834261705410972E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7850269643764254E-4, + 3.7901738871717514E-4, + 3.834261705410972E-4 + ], + [ + 3.6558843802575615E-4, + 3.677787138036308E-4, + 3.654097590578796E-4 + ], + [ + 3.828899716507752E-4, + 3.796131917762167E-4, + 3.829594666067419E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014172803140729643, + "scoreError" : 1.0782891474152387E-4, + "scoreConfidence" : [ + 0.014064974225988118, + 0.014280632055471167 + ], + "scorePercentiles" : { + "0.0" : 0.014081310722784686, + "50.0" : 0.01416622602502008, + "90.0" : 0.014286797526133748, + "95.0" : 0.014286797526133748, + "99.0" : 0.014286797526133748, + "99.9" : 0.014286797526133748, + "99.99" : 0.014286797526133748, + "99.999" : 0.014286797526133748, + "99.9999" : 0.014286797526133748, + "100.0" : 0.014286797526133748 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014178331408884037, + 0.014115230361415172, + 0.014081310722784686 + ], + [ + 0.01416622602502008, + 0.014132456071226682, + 0.014158328896641263 + ], + [ + 0.014286797526133748, + 0.014185009923713932, + 0.014251537330747185 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9905397184409652, + "scoreError" : 0.02238876384346547, + "scoreConfidence" : [ + 0.9681509545974998, + 1.0129284822844307 + ], + "scorePercentiles" : { + "0.0" : 0.9773580523846755, + "50.0" : 0.9843310696850394, + "90.0" : 1.0116134580214444, + "95.0" : 1.0116134580214444, + "99.0" : 1.0116134580214444, + "99.9" : 1.0116134580214444, + "99.99" : 1.0116134580214444, + "99.999" : 1.0116134580214444, + "99.9999" : 1.0116134580214444, + "100.0" : 1.0116134580214444 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9831717689736532, + 0.9843310696850394, + 0.9784792103512376 + ], + [ + 1.010704397877716, + 1.0116134580214444, + 0.9998777521495701 + ], + [ + 0.9773580523846755, + 0.9853596882451473, + 0.9839620682802046 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013155411922502263, + "scoreError" : 2.795852915008635E-4, + "scoreConfidence" : [ + 0.012875826631001399, + 0.013434997214003127 + ], + "scorePercentiles" : { + "0.0" : 0.013002453662963657, + "50.0" : 0.01316711428100242, + "90.0" : 0.01327616876247929, + "95.0" : 0.01327616876247929, + "99.0" : 0.01327616876247929, + "99.9" : 0.01327616876247929, + "99.99" : 0.01327616876247929, + "99.999" : 0.01327616876247929, + "99.9999" : 0.01327616876247929, + "100.0" : 0.01327616876247929 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013121031901689159, + 0.013219664486364297, + 0.01327616876247929 + ], + [ + 0.013002453662963657, + 0.013099956061201498, + 0.013213196660315682 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.750332902092968, + "scoreError" : 0.1674325694384914, + "scoreConfidence" : [ + 3.582900332654477, + 3.9177654715314594 + ], + "scorePercentiles" : { + "0.0" : 3.659013118507681, + "50.0" : 3.746797678884942, + "90.0" : 3.840637273425499, + "95.0" : 3.840637273425499, + "99.0" : 3.840637273425499, + "99.9" : 3.840637273425499, + "99.99" : 3.840637273425499, + "99.999" : 3.840637273425499, + "99.9999" : 3.840637273425499, + "100.0" : 3.840637273425499 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.840637273425499, + 3.751801334583646, + 3.779107640483384 + ], + [ + 3.659013118507681, + 3.7296440223713647, + 3.741794023186238 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8548886386460897, + "scoreError" : 0.03636649593192445, + "scoreConfidence" : [ + 2.818522142714165, + 2.891255134578014 + ], + "scorePercentiles" : { + "0.0" : 2.8271100124364046, + "50.0" : 2.8555864614505997, + "90.0" : 2.880886245391705, + "95.0" : 2.880886245391705, + "99.0" : 2.880886245391705, + "99.9" : 2.880886245391705, + "99.99" : 2.880886245391705, + "99.999" : 2.880886245391705, + "99.9999" : 2.880886245391705, + "100.0" : 2.880886245391705 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.868786039586919, + 2.880886245391705, + 2.8482905326117915 + ], + [ + 2.827418055414193, + 2.8798364851713214, + 2.8555864614505997 + ], + [ + 2.871456194946885, + 2.8271100124364046, + 2.834627720804989 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17971936084685597, + "scoreError" : 0.016517911751403654, + "scoreConfidence" : [ + 0.1632014490954523, + 0.19623727259825963 + ], + "scorePercentiles" : { + "0.0" : 0.16987528725283685, + "50.0" : 0.17653581038713437, + "90.0" : 0.19261740506182826, + "95.0" : 0.19261740506182826, + "99.0" : 0.19261740506182826, + "99.9" : 0.19261740506182826, + "99.99" : 0.19261740506182826, + "99.999" : 0.19261740506182826, + "99.9999" : 0.19261740506182826, + "100.0" : 0.19261740506182826 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.19216519448501154, + 0.19261740506182826, + 0.19231822860494635 + ], + [ + 0.17595648287086726, + 0.1765369575793952, + 0.17653581038713437 + ], + [ + 0.16987528725283685, + 0.17103812304166383, + 0.17043075833802002 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33498656189355885, + "scoreError" : 0.00339606700371187, + "scoreConfidence" : [ + 0.331590494889847, + 0.3383826288972707 + ], + "scorePercentiles" : { + "0.0" : 0.3326694837829746, + "50.0" : 0.3347886653610525, + "90.0" : 0.33945752532247114, + "95.0" : 0.33945752532247114, + "99.0" : 0.33945752532247114, + "99.9" : 0.33945752532247114, + "99.99" : 0.33945752532247114, + "99.999" : 0.33945752532247114, + "99.9999" : 0.33945752532247114, + "100.0" : 0.33945752532247114 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3366052745296038, + 0.3343679756921225, + 0.33945752532247114 + ], + [ + 0.33349957656906554, + 0.33495701289523044, + 0.3349827138311057 + ], + [ + 0.3347886653610525, + 0.3326694837829746, + 0.33355082905840366 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16055367098210246, + "scoreError" : 0.010627721830330528, + "scoreConfidence" : [ + 0.14992594915177193, + 0.171181392812433 + ], + "scorePercentiles" : { + "0.0" : 0.15152957390711416, + "50.0" : 0.1632057275353331, + "90.0" : 0.16693598417467947, + "95.0" : 0.16693598417467947, + "99.0" : 0.16693598417467947, + "99.9" : 0.16693598417467947, + "99.99" : 0.16693598417467947, + "99.999" : 0.16693598417467947, + "99.9999" : 0.16693598417467947, + "100.0" : 0.16693598417467947 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1535686558915217, + 0.15192134652487657, + 0.15152957390711416 + ], + [ + 0.16276372596474667, + 0.1632057275353331, + 0.1637623504298698 + ], + [ + 0.16609101062964007, + 0.16693598417467947, + 0.16520466378114054 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39828964003913936, + "scoreError" : 0.00934466580815901, + "scoreConfidence" : [ + 0.38894497423098034, + 0.4076343058472984 + ], + "scorePercentiles" : { + "0.0" : 0.3920836011918764, + "50.0" : 0.3969977016673283, + "90.0" : 0.40858754435137895, + "95.0" : 0.40858754435137895, + "99.0" : 0.40858754435137895, + "99.9" : 0.40858754435137895, + "99.99" : 0.40858754435137895, + "99.999" : 0.40858754435137895, + "99.9999" : 0.40858754435137895, + "100.0" : 0.40858754435137895 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3922899960379727, + 0.3920836011918764, + 0.39326324503519605 + ], + [ + 0.40858754435137895, + 0.3969044770201619, + 0.3969977016673283 + ], + [ + 0.4036797789932588, + 0.4003199688563308, + 0.40048044719875053 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16041917557422003, + "scoreError" : 0.001737144665873153, + "scoreConfidence" : [ + 0.15868203090834687, + 0.1621563202400932 + ], + "scorePercentiles" : { + "0.0" : 0.15906686147165489, + "50.0" : 0.16033186659077792, + "90.0" : 0.1626990494265029, + "95.0" : 0.1626990494265029, + "99.0" : 0.1626990494265029, + "99.9" : 0.1626990494265029, + "99.99" : 0.1626990494265029, + "99.999" : 0.1626990494265029, + "99.9999" : 0.1626990494265029, + "100.0" : 0.1626990494265029 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1626990494265029, + 0.16033186659077792, + 0.16045412686926386 + ], + [ + 0.1595371675648098, + 0.16000919154212934, + 0.15906686147165489 + ], + [ + 0.16053158194076572, + 0.16107567585851426, + 0.16006705890356143 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04807424698073026, + "scoreError" : 5.436220780624052E-4, + "scoreConfidence" : [ + 0.04753062490266786, + 0.048617869058792666 + ], + "scorePercentiles" : { + "0.0" : 0.04746269952775339, + "50.0" : 0.048026309701617975, + "90.0" : 0.048588726259887666, + "95.0" : 0.048588726259887666, + "99.0" : 0.048588726259887666, + "99.9" : 0.048588726259887666, + "99.99" : 0.048588726259887666, + "99.999" : 0.048588726259887666, + "99.9999" : 0.048588726259887666, + "100.0" : 0.048588726259887666 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.048350908289173405, + 0.048588726259887666, + 0.048329807225189085 + ], + [ + 0.0480161819836171, + 0.047919599771906116, + 0.04746269952775339 + ], + [ + 0.04790992621054094, + 0.048026309701617975, + 0.048064063856886746 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9676391.013650784, + "scoreError" : 287328.6480368536, + "scoreConfidence" : [ + 9389062.36561393, + 9963719.661687639 + ], + "scorePercentiles" : { + "0.0" : 9478153.125, + "50.0" : 9586281.842911877, + "90.0" : 9966990.433266932, + "95.0" : 9966990.433266932, + "99.0" : 9966990.433266932, + "99.9" : 9966990.433266932, + "99.99" : 9966990.433266932, + "99.999" : 9966990.433266932, + "99.9999" : 9966990.433266932, + "100.0" : 9966990.433266932 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9558136.078319008, + 9557984.59503343, + 9478153.125 + ], + [ + 9966990.433266932, + 9883363.479249012, + 9822402.113837095 + ], + [ + 9586281.842911877, + 9579493.921455938, + 9654713.533783784 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T01:14:54Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json b/performance-results/2025-03-24T01:14:54Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json new file mode 100644 index 000000000..c247dd7f9 --- /dev/null +++ b/performance-results/2025-03-24T01:14:54Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.416841228362352, + "scoreError" : 0.046224539933131144, + "scoreConfidence" : [ + 3.370616688429221, + 3.463065768295483 + ], + "scorePercentiles" : { + "0.0" : 3.4104833073322536, + "50.0" : 3.4149070097262744, + "90.0" : 3.4270675866646054, + "95.0" : 3.4270675866646054, + "99.0" : 3.4270675866646054, + "99.9" : 3.4270675866646054, + "99.99" : 3.4270675866646054, + "99.999" : 3.4270675866646054, + "99.9999" : 3.4270675866646054, + "100.0" : 3.4270675866646054 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4104833073322536, + 3.415622928858356 + ], + [ + 3.414191090594193, + 3.4270675866646054 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7256805880386656, + "scoreError" : 0.008670416239197185, + "scoreConfidence" : [ + 1.7170101717994684, + 1.734351004277863 + ], + "scorePercentiles" : { + "0.0" : 1.7238767187983217, + "50.0" : 1.7258640396415021, + "90.0" : 1.7271175540733374, + "95.0" : 1.7271175540733374, + "99.0" : 1.7271175540733374, + "99.9" : 1.7271175540733374, + "99.99" : 1.7271175540733374, + "99.999" : 1.7271175540733374, + "99.9999" : 1.7271175540733374, + "100.0" : 1.7271175540733374 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7257779960512811, + 1.7238767187983217 + ], + [ + 1.725950083231723, + 1.7271175540733374 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8668202231331765, + "scoreError" : 0.004831866423434959, + "scoreConfidence" : [ + 0.8619883567097416, + 0.8716520895566114 + ], + "scorePercentiles" : { + "0.0" : 0.866215610918664, + "50.0" : 0.8666131123079148, + "90.0" : 0.8678390569982123, + "95.0" : 0.8678390569982123, + "99.0" : 0.8678390569982123, + "99.9" : 0.8678390569982123, + "99.99" : 0.8678390569982123, + "99.999" : 0.8678390569982123, + "99.9999" : 0.8678390569982123, + "100.0" : 0.8678390569982123 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8663065488930909, + 0.8678390569982123 + ], + [ + 0.866215610918664, + 0.8669196757227386 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.31640431452635, + "scoreError" : 0.3186289582091417, + "scoreConfidence" : [ + 15.997775356317206, + 16.63503327273549 + ], + "scorePercentiles" : { + "0.0" : 16.01931994704482, + "50.0" : 16.40630490278462, + "90.0" : 16.49237024973776, + "95.0" : 16.49237024973776, + "99.0" : 16.49237024973776, + "99.9" : 16.49237024973776, + "99.99" : 16.49237024973776, + "99.999" : 16.49237024973776, + "99.9999" : 16.49237024973776, + "100.0" : 16.49237024973776 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.40630490278462, + 16.401037480073782, + 16.411364862887655 + ], + [ + 16.01931994704482, + 16.08726384861906, + 16.099568628269374 + ], + [ + 16.452416990458655, + 16.49237024973776, + 16.47799192086142 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2809.778181329612, + "scoreError" : 90.87641938701525, + "scoreConfidence" : [ + 2718.9017619425967, + 2900.654600716627 + ], + "scorePercentiles" : { + "0.0" : 2751.543366182571, + "50.0" : 2799.350960371689, + "90.0" : 2882.7440630130905, + "95.0" : 2882.7440630130905, + "99.0" : 2882.7440630130905, + "99.9" : 2882.7440630130905, + "99.99" : 2882.7440630130905, + "99.999" : 2882.7440630130905, + "99.9999" : 2882.7440630130905, + "100.0" : 2882.7440630130905 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2751.543366182571, + 2754.397261861922, + 2753.9996216878067 + ], + [ + 2873.0058513045706, + 2882.7440630130905, + 2874.397658886027 + ], + [ + 2799.6827906200256, + 2798.8820580388037, + 2799.350960371689 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69538.89231546373, + "scoreError" : 2700.454110688654, + "scoreConfidence" : [ + 66838.43820477507, + 72239.34642615239 + ], + "scorePercentiles" : { + "0.0" : 67053.05858762588, + "50.0" : 70502.74638799811, + "90.0" : 70713.11228173104, + "95.0" : 70713.11228173104, + "99.0" : 70713.11228173104, + "99.9" : 70713.11228173104, + "99.99" : 70713.11228173104, + "99.999" : 70713.11228173104, + "99.9999" : 70713.11228173104, + "100.0" : 70713.11228173104 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 67586.91728942825, + 67053.05858762588, + 67587.19740878949 + ], + [ + 70692.91981659395, + 70713.11228173104, + 70694.96634571847 + ], + [ + 70502.74638799811, + 70522.83979766157, + 70496.2729236268 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 353.46608040287845, + "scoreError" : 2.1052187242826883, + "scoreConfidence" : [ + 351.36086167859577, + 355.5712991271611 + ], + "scorePercentiles" : { + "0.0" : 351.46498132968077, + "50.0" : 353.7673749359021, + "90.0" : 355.081588309483, + "95.0" : 355.081588309483, + "99.0" : 355.081588309483, + "99.9" : 355.081588309483, + "99.99" : 355.081588309483, + "99.999" : 355.081588309483, + "99.9999" : 355.081588309483, + "100.0" : 355.081588309483 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 354.89802732725707, + 355.081588309483, + 353.87855531342655 + ], + [ + 354.1289425757435, + 353.7673749359021, + 351.46498132968077 + ], + [ + 352.1390732144776, + 352.2742231087273, + 353.5619575112081 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 108.22875395145122, + "scoreError" : 2.2268608546616937, + "scoreConfidence" : [ + 106.00189309678953, + 110.45561480611292 + ], + "scorePercentiles" : { + "0.0" : 106.86010819192902, + "50.0" : 107.79288461324526, + "90.0" : 110.04883231120205, + "95.0" : 110.04883231120205, + "99.0" : 110.04883231120205, + "99.9" : 110.04883231120205, + "99.99" : 110.04883231120205, + "99.999" : 110.04883231120205, + "99.9999" : 110.04883231120205, + "100.0" : 110.04883231120205 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 106.9151305341687, + 106.86010819192902, + 106.9410451235742 + ], + [ + 109.80234788582067, + 109.83710038953076, + 110.04883231120205 + ], + [ + 108.0859766767882, + 107.79288461324526, + 107.77535983680224 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.061717211018078616, + "scoreError" : 7.746341957989277E-4, + "scoreConfidence" : [ + 0.06094257682227969, + 0.062491845213877545 + ], + "scorePercentiles" : { + "0.0" : 0.06129506386838944, + "50.0" : 0.061503650343801126, + "90.0" : 0.06238190136302673, + "95.0" : 0.06238190136302673, + "99.0" : 0.06238190136302673, + "99.9" : 0.06238190136302673, + "99.99" : 0.06238190136302673, + "99.999" : 0.06238190136302673, + "99.9999" : 0.06238190136302673, + "100.0" : 0.06238190136302673 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06140399041496273, + 0.06129506386838944, + 0.061410989824367476 + ], + [ + 0.062216737816600406, + 0.062367104588288855, + 0.06238190136302673 + ], + [ + 0.06135302896443406, + 0.06152243197883663, + 0.061503650343801126 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.594316967390262E-4, + "scoreError" : 2.025210075568485E-5, + "scoreConfidence" : [ + 3.3917959598334135E-4, + 3.79683797494711E-4 + ], + "scorePercentiles" : { + "0.0" : 3.451150199006584E-4, + "50.0" : 3.5978557142412557E-4, + "90.0" : 3.738151868826466E-4, + "95.0" : 3.738151868826466E-4, + "99.0" : 3.738151868826466E-4, + "99.9" : 3.738151868826466E-4, + "99.99" : 3.738151868826466E-4, + "99.999" : 3.738151868826466E-4, + "99.9999" : 3.738151868826466E-4, + "100.0" : 3.738151868826466E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.5978557142412557E-4, + 3.5895190739054946E-4, + 3.5982580568855865E-4 + ], + [ + 3.451150199006584E-4, + 3.455401107623804E-4, + 3.4577895015172963E-4 + ], + [ + 3.728989930124733E-4, + 3.738151868826466E-4, + 3.731737254381133E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014191966644421385, + "scoreError" : 2.1829014589974747E-4, + "scoreConfidence" : [ + 0.013973676498521638, + 0.014410256790321131 + ], + "scorePercentiles" : { + "0.0" : 0.014034512911592084, + "50.0" : 0.014199062441074573, + "90.0" : 0.014338884630605725, + "95.0" : 0.014338884630605725, + "99.0" : 0.014338884630605725, + "99.9" : 0.014338884630605725, + "99.99" : 0.014338884630605725, + "99.999" : 0.014338884630605725, + "99.9999" : 0.014338884630605725, + "100.0" : 0.014338884630605725 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014034512911592084, + 0.014036816928473472, + 0.014044025110419842 + ], + [ + 0.014203260520230885, + 0.014199062441074573, + 0.014195771940384105 + ], + [ + 0.014338884630605725, + 0.014338267550563345, + 0.01433709776644841 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9925031145812194, + "scoreError" : 0.042226353185113495, + "scoreConfidence" : [ + 0.950276761396106, + 1.034729467766333 + ], + "scorePercentiles" : { + "0.0" : 0.9630525597072419, + "50.0" : 0.9913075222045995, + "90.0" : 1.0285787390723027, + "95.0" : 1.0285787390723027, + "99.0" : 1.0285787390723027, + "99.9" : 1.0285787390723027, + "99.99" : 1.0285787390723027, + "99.999" : 1.0285787390723027, + "99.9999" : 1.0285787390723027, + "100.0" : 1.0285787390723027 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9906748670629024, + 0.9913075222045995, + 0.9914711291761673 + ], + [ + 0.9630525597072419, + 0.9650835647558387, + 0.9655797285893598 + ], + [ + 1.0129199996961409, + 1.023859920966421, + 1.0285787390723027 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013059418001820743, + "scoreError" : 2.515838452231582E-4, + "scoreConfidence" : [ + 0.012807834156597584, + 0.013311001847043901 + ], + "scorePercentiles" : { + "0.0" : 0.012981688982469987, + "50.0" : 0.013024948595270976, + "90.0" : 0.013170221643917884, + "95.0" : 0.013170221643917884, + "99.0" : 0.013170221643917884, + "99.9" : 0.013170221643917884, + "99.99" : 0.013170221643917884, + "99.999" : 0.013170221643917884, + "99.9999" : 0.013170221643917884, + "100.0" : 0.013170221643917884 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013056340266081757, + 0.013169372862338977, + 0.013170221643917884 + ], + [ + 0.012985327331655668, + 0.012981688982469987, + 0.012993556924460197 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6592788291395366, + "scoreError" : 0.050967515054031964, + "scoreConfidence" : [ + 3.6083113140855048, + 3.7102463441935685 + ], + "scorePercentiles" : { + "0.0" : 3.623741924637681, + "50.0" : 3.664233986813187, + "90.0" : 3.6741932277736957, + "95.0" : 3.6741932277736957, + "99.0" : 3.6741932277736957, + "99.9" : 3.6741932277736957, + "99.99" : 3.6741932277736957, + "99.999" : 3.6741932277736957, + "99.9999" : 3.6741932277736957, + "100.0" : 3.6741932277736957 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.665116643223443, + 3.6633513304029304, + 3.6592315215801023 + ], + [ + 3.623741924637681, + 3.670038327219369, + 3.6741932277736957 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.816428854728746, + "scoreError" : 0.06208714333215352, + "scoreConfidence" : [ + 2.7543417113965925, + 2.8785159980609 + ], + "scorePercentiles" : { + "0.0" : 2.765137873652198, + "50.0" : 2.8340587007650893, + "90.0" : 2.8525728069024527, + "95.0" : 2.8525728069024527, + "99.0" : 2.8525728069024527, + "99.9" : 2.8525728069024527, + "99.99" : 2.8525728069024527, + "99.999" : 2.8525728069024527, + "99.9999" : 2.8525728069024527, + "100.0" : 2.8525728069024527 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8513465621436715, + 2.8525728069024527, + 2.8419214063654445 + ], + [ + 2.834123484839898, + 2.8340587007650893, + 2.8287812502828054 + ], + [ + 2.7730404374826727, + 2.766877170124481, + 2.765137873652198 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1793954246557457, + "scoreError" : 0.015718117464958145, + "scoreConfidence" : [ + 0.16367730719078755, + 0.19511354212070386 + ], + "scorePercentiles" : { + "0.0" : 0.17193095985489307, + "50.0" : 0.1741289254744907, + "90.0" : 0.19208350172870808, + "95.0" : 0.19208350172870808, + "99.0" : 0.19208350172870808, + "99.9" : 0.19208350172870808, + "99.99" : 0.19208350172870808, + "99.999" : 0.19208350172870808, + "99.9999" : 0.19208350172870808, + "100.0" : 0.19208350172870808 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.19208350172870808, + 0.19167580244570948, + 0.1917056374511157 + ], + [ + 0.1741670207600404, + 0.17371442937794224, + 0.1741289254744907 + ], + [ + 0.17308442873461757, + 0.17193095985489307, + 0.1720681160741939 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3310067074422411, + "scoreError" : 0.005286940810887437, + "scoreConfidence" : [ + 0.32571976663135366, + 0.3362936482531285 + ], + "scorePercentiles" : { + "0.0" : 0.3272692564060608, + "50.0" : 0.3299537344925432, + "90.0" : 0.33597765600537544, + "95.0" : 0.33597765600537544, + "99.0" : 0.33597765600537544, + "99.9" : 0.33597765600537544, + "99.99" : 0.33597765600537544, + "99.999" : 0.33597765600537544, + "99.9999" : 0.33597765600537544, + "100.0" : 0.33597765600537544 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.33105885374251004, + 0.32922863973662553, + 0.3299537344925432 + ], + [ + 0.33597765600537544, + 0.33463009536556804, + 0.3340892610496776 + ], + [ + 0.32880638031827447, + 0.32804648986353496, + 0.3272692564060608 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1655695332101355, + "scoreError" : 0.0014940467802612104, + "scoreConfidence" : [ + 0.1640754864298743, + 0.16706357999039673 + ], + "scorePercentiles" : { + "0.0" : 0.1643908343634929, + "50.0" : 0.16573519637382125, + "90.0" : 0.16663853021945976, + "95.0" : 0.16663853021945976, + "99.0" : 0.16663853021945976, + "99.9" : 0.16663853021945976, + "99.99" : 0.16663853021945976, + "99.999" : 0.16663853021945976, + "99.9999" : 0.16663853021945976, + "100.0" : 0.16663853021945976 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16573519637382125, + 0.16486172864255333, + 0.16493741781296387 + ], + [ + 0.1658688282302206, + 0.16462066344016987, + 0.1643908343634929 + ], + [ + 0.1664890851077999, + 0.16658351470073796, + 0.16663853021945976 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3880358277948496, + "scoreError" : 0.015062129870327713, + "scoreConfidence" : [ + 0.37297369792452184, + 0.4030979576651773 + ], + "scorePercentiles" : { + "0.0" : 0.3791764736862061, + "50.0" : 0.3846368117235278, + "90.0" : 0.40354941443041037, + "95.0" : 0.40354941443041037, + "99.0" : 0.40354941443041037, + "99.9" : 0.40354941443041037, + "99.99" : 0.40354941443041037, + "99.999" : 0.40354941443041037, + "99.9999" : 0.40354941443041037, + "100.0" : 0.40354941443041037 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.38075618664331407, + 0.3798244570625546, + 0.3791764736862061 + ], + [ + 0.38515324564782005, + 0.3846368117235278, + 0.3846282916153846 + ], + [ + 0.40354941443041037, + 0.3971281042808355, + 0.397469465063593 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15783876494082616, + "scoreError" : 0.0036673927342274586, + "scoreConfidence" : [ + 0.1541713722065987, + 0.1615061576750536 + ], + "scorePercentiles" : { + "0.0" : 0.1556568356914935, + "50.0" : 0.15700002814933434, + "90.0" : 0.1620545456254355, + "95.0" : 0.1620545456254355, + "99.0" : 0.1620545456254355, + "99.9" : 0.1620545456254355, + "99.99" : 0.1620545456254355, + "99.999" : 0.1620545456254355, + "99.9999" : 0.1620545456254355, + "100.0" : 0.1620545456254355 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15700002814933434, + 0.15577499482841878, + 0.1556568356914935 + ], + [ + 0.15725884702237738, + 0.1567389933544403, + 0.15655110679733242 + ], + [ + 0.1620545456254355, + 0.15990778622255625, + 0.159605746776047 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04759487313143161, + "scoreError" : 5.249458188152128E-4, + "scoreConfidence" : [ + 0.047069927312616396, + 0.04811981895024683 + ], + "scorePercentiles" : { + "0.0" : 0.0471997846347726, + "50.0" : 0.04748367897265933, + "90.0" : 0.048040983771942464, + "95.0" : 0.048040983771942464, + "99.0" : 0.048040983771942464, + "99.9" : 0.048040983771942464, + "99.99" : 0.048040983771942464, + "99.999" : 0.048040983771942464, + "99.9999" : 0.048040983771942464, + "100.0" : 0.048040983771942464 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.048040983771942464, + 0.047442269875608435, + 0.04746866217460649 + ], + [ + 0.04795914089221827, + 0.04756065644603612, + 0.04748367897265933 + ], + [ + 0.04794581715666532, + 0.047252864258375465, + 0.0471997846347726 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9273198.347081004, + "scoreError" : 151405.44321916296, + "scoreConfidence" : [ + 9121792.903861841, + 9424603.790300166 + ], + "scorePercentiles" : { + "0.0" : 9155483.271729186, + "50.0" : 9294069.286245354, + "90.0" : 9361522.364826942, + "95.0" : 9361522.364826942, + "99.0" : 9361522.364826942, + "99.9" : 9361522.364826942, + "99.99" : 9361522.364826942, + "99.999" : 9361522.364826942, + "99.9999" : 9361522.364826942, + "100.0" : 9361522.364826942 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9159622.364468865, + 9161932.124542125, + 9155483.271729186 + ], + [ + 9338092.402427638, + 9294069.286245354, + 9278606.829313543 + ], + [ + 9350569.692523364, + 9358886.787652012, + 9361522.364826942 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T01:15:42Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json b/performance-results/2025-03-24T01:15:42Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json new file mode 100644 index 000000000..347a362b1 --- /dev/null +++ b/performance-results/2025-03-24T01:15:42Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.423985031790188, + "scoreError" : 0.020585678001601503, + "scoreConfidence" : [ + 3.4033993537885863, + 3.4445707097917895 + ], + "scorePercentiles" : { + "0.0" : 3.4193836164754052, + "50.0" : 3.425190782059619, + "90.0" : 3.4261749465661073, + "95.0" : 3.4261749465661073, + "99.0" : 3.4261749465661073, + "99.9" : 3.4261749465661073, + "99.99" : 3.4261749465661073, + "99.999" : 3.4261749465661073, + "99.9999" : 3.4261749465661073, + "100.0" : 3.4261749465661073 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4193836164754052, + 3.4261749465661073 + ], + [ + 3.4243051172951176, + 3.4260764468241205 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7287797917121857, + "scoreError" : 0.007600411881287742, + "scoreConfidence" : [ + 1.7211793798308979, + 1.7363802035934734 + ], + "scorePercentiles" : { + "0.0" : 1.7276067282125074, + "50.0" : 1.728753700082378, + "90.0" : 1.7300050384714796, + "95.0" : 1.7300050384714796, + "99.0" : 1.7300050384714796, + "99.9" : 1.7300050384714796, + "99.99" : 1.7300050384714796, + "99.999" : 1.7300050384714796, + "99.9999" : 1.7300050384714796, + "100.0" : 1.7300050384714796 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7276067282125074, + 1.729551031146016 + ], + [ + 1.7279563690187403, + 1.7300050384714796 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8680077673242658, + "scoreError" : 0.001730336967352543, + "scoreConfidence" : [ + 0.8662774303569132, + 0.8697381042916184 + ], + "scorePercentiles" : { + "0.0" : 0.8676148794980105, + "50.0" : 0.868100694296265, + "90.0" : 0.8682148012065225, + "95.0" : 0.8682148012065225, + "99.0" : 0.8682148012065225, + "99.9" : 0.8682148012065225, + "99.99" : 0.8682148012065225, + "99.999" : 0.8682148012065225, + "99.9999" : 0.8682148012065225, + "100.0" : 0.8682148012065225 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8676148794980105, + 0.8682148012065225 + ], + [ + 0.8680832284714595, + 0.8681181601210705 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.38240461990315, + "scoreError" : 0.12334786222297711, + "scoreConfidence" : [ + 16.25905675768017, + 16.505752482126127 + ], + "scorePercentiles" : { + "0.0" : 16.276350464015767, + "50.0" : 16.405246368329045, + "90.0" : 16.491374585997335, + "95.0" : 16.491374585997335, + "99.0" : 16.491374585997335, + "99.9" : 16.491374585997335, + "99.99" : 16.491374585997335, + "99.999" : 16.491374585997335, + "99.9999" : 16.491374585997335, + "100.0" : 16.491374585997335 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.276350464015767, + 16.28949960657584, + 16.309277751841147 + ], + [ + 16.405246368329045, + 16.4140186013479, + 16.491374585997335 + ], + [ + 16.435045435937738, + 16.418812751229037, + 16.402016013854535 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2708.5653430356538, + "scoreError" : 91.70865496219062, + "scoreConfidence" : [ + 2616.8566880734634, + 2800.273997997844 + ], + "scorePercentiles" : { + "0.0" : 2655.382188812315, + "50.0" : 2683.8756391544052, + "90.0" : 2780.8420757077465, + "95.0" : 2780.8420757077465, + "99.0" : 2780.8420757077465, + "99.9" : 2780.8420757077465, + "99.99" : 2780.8420757077465, + "99.999" : 2780.8420757077465, + "99.9999" : 2780.8420757077465, + "100.0" : 2780.8420757077465 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2778.394621699917, + 2780.6211412089756, + 2780.8420757077465 + ], + [ + 2681.688877607523, + 2683.8756391544052, + 2686.991378749153 + ], + [ + 2669.7043469811665, + 2655.382188812315, + 2659.5878173996875 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69453.92527304837, + "scoreError" : 1521.0238725110248, + "scoreConfidence" : [ + 67932.90140053735, + 70974.9491455594 + ], + "scorePercentiles" : { + "0.0" : 68693.4254198043, + "50.0" : 68981.39786361123, + "90.0" : 70688.90214143042, + "95.0" : 70688.90214143042, + "99.0" : 70688.90214143042, + "99.9" : 70688.90214143042, + "99.99" : 70688.90214143042, + "99.999" : 70688.90214143042, + "99.9999" : 70688.90214143042, + "100.0" : 70688.90214143042 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 68981.39786361123, + 68965.05800560681, + 68981.99555956059 + ], + [ + 70626.75144783205, + 70688.90214143042, + 70640.85183648426 + ], + [ + 68693.4254198043, + 68759.7918936698, + 68747.15328943594 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 356.10407851079464, + "scoreError" : 6.498936628587323, + "scoreConfidence" : [ + 349.6051418822073, + 362.60301513938197 + ], + "scorePercentiles" : { + "0.0" : 350.9120636475959, + "50.0" : 355.3428972137064, + "90.0" : 361.4061321659956, + "95.0" : 361.4061321659956, + "99.0" : 361.4061321659956, + "99.9" : 361.4061321659956, + "99.99" : 361.4061321659956, + "99.999" : 361.4061321659956, + "99.9999" : 361.4061321659956, + "100.0" : 361.4061321659956 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 354.25636836864624, + 354.82855651204625, + 351.4684689201288 + ], + [ + 360.4932364258982, + 360.36491162891963, + 361.4061321659956 + ], + [ + 355.8640717142149, + 355.3428972137064, + 350.9120636475959 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.31669412956369, + "scoreError" : 3.5778548693793955, + "scoreConfidence" : [ + 103.73883926018429, + 110.89454899894308 + ], + "scorePercentiles" : { + "0.0" : 105.79308903472088, + "50.0" : 105.93376479703352, + "90.0" : 110.34952243173072, + "95.0" : 110.34952243173072, + "99.0" : 110.34952243173072, + "99.9" : 110.34952243173072, + "99.99" : 110.34952243173072, + "99.999" : 110.34952243173072, + "99.9999" : 110.34952243173072, + "100.0" : 110.34952243173072 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 109.77252022787577, + 110.31612729927951, + 110.34952243173072 + ], + [ + 106.03328503402605, + 105.87577646935003, + 105.79308903472088 + ], + [ + 105.87219204411367, + 105.90396982794302, + 105.93376479703352 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06119980136377835, + "scoreError" : 8.618213928725673E-4, + "scoreConfidence" : [ + 0.060337979970905786, + 0.06206162275665092 + ], + "scorePercentiles" : { + "0.0" : 0.06066733146885389, + "50.0" : 0.06089297250114173, + "90.0" : 0.061862555115650385, + "95.0" : 0.061862555115650385, + "99.0" : 0.061862555115650385, + "99.9" : 0.061862555115650385, + "99.99" : 0.061862555115650385, + "99.999" : 0.061862555115650385, + "99.9999" : 0.061862555115650385, + "100.0" : 0.061862555115650385 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06178237913394827, + 0.061862555115650385, + 0.06185610631664894 + ], + [ + 0.06089089902575656, + 0.06089297250114173, + 0.06134222386549055 + ], + [ + 0.06074345491377582, + 0.0607602899327391, + 0.06066733146885389 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.714779192655463E-4, + "scoreError" : 1.623245467441315E-5, + "scoreConfidence" : [ + 3.552454645911331E-4, + 3.8771037393995944E-4 + ], + "scorePercentiles" : { + "0.0" : 3.584074242444118E-4, + "50.0" : 3.7633382446846465E-4, + "90.0" : 3.7957460862137523E-4, + "95.0" : 3.7957460862137523E-4, + "99.0" : 3.7957460862137523E-4, + "99.9" : 3.7957460862137523E-4, + "99.99" : 3.7957460862137523E-4, + "99.999" : 3.7957460862137523E-4, + "99.9999" : 3.7957460862137523E-4, + "100.0" : 3.7957460862137523E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7924316070034667E-4, + 3.7957460862137523E-4, + 3.7955198229060557E-4 + ], + [ + 3.593466223899345E-4, + 3.5847276303743996E-4, + 3.584074242444118E-4 + ], + [ + 3.7633382446846465E-4, + 3.766252124611751E-4, + 3.7574567517616273E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014355010333514245, + "scoreError" : 4.1067815151196995E-4, + "scoreConfidence" : [ + 0.013944332182002275, + 0.014765688485026216 + ], + "scorePercentiles" : { + "0.0" : 0.014026616836784073, + "50.0" : 0.014459461475396798, + "90.0" : 0.01459370264405256, + "95.0" : 0.01459370264405256, + "99.0" : 0.01459370264405256, + "99.9" : 0.01459370264405256, + "99.99" : 0.01459370264405256, + "99.999" : 0.01459370264405256, + "99.9999" : 0.01459370264405256, + "100.0" : 0.01459370264405256 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014453072907829299, + 0.01459370264405256, + 0.014459461475396798 + ], + [ + 0.014026616836784073, + 0.014033903854924926, + 0.01404158894438352 + ], + [ + 0.014542850651003227, + 0.014528971946336417, + 0.01451492374091739 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9771543281961408, + "scoreError" : 0.02185627742500379, + "scoreConfidence" : [ + 0.955298050771137, + 0.9990106056211445 + ], + "scorePercentiles" : { + "0.0" : 0.9627037857142857, + "50.0" : 0.974022056199474, + "90.0" : 0.9980891943113772, + "95.0" : 0.9980891943113772, + "99.0" : 0.9980891943113772, + "99.9" : 0.9980891943113772, + "99.99" : 0.9980891943113772, + "99.999" : 0.9980891943113772, + "99.9999" : 0.9980891943113772, + "100.0" : 0.9980891943113772 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9669437919164572, + 0.9627037857142857, + 0.963355748579135 + ], + [ + 0.991817503818308, + 0.9980891943113772, + 0.989932828152841 + ], + [ + 0.974022056199474, + 0.9732893321654501, + 0.9742347129079396 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012885614874331264, + "scoreError" : 5.050071426909742E-4, + "scoreConfidence" : [ + 0.01238060773164029, + 0.013390622017022237 + ], + "scorePercentiles" : { + "0.0" : 0.012721508086860284, + "50.0" : 0.012853246073407367, + "90.0" : 0.013082793771193537, + "95.0" : 0.013082793771193537, + "99.0" : 0.013082793771193537, + "99.9" : 0.013082793771193537, + "99.99" : 0.013082793771193537, + "99.999" : 0.013082793771193537, + "99.9999" : 0.013082793771193537, + "100.0" : 0.013082793771193537 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012979090677596537, + 0.013082793771193537, + 0.013077631711922834 + ], + [ + 0.012727401469218198, + 0.012721508086860284, + 0.01272526352919619 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6305832853859683, + "scoreError" : 0.07908803946707522, + "scoreConfidence" : [ + 3.551495245918893, + 3.7096713248530437 + ], + "scorePercentiles" : { + "0.0" : 3.5858967541218636, + "50.0" : 3.6275817135425212, + "90.0" : 3.661791859443631, + "95.0" : 3.661791859443631, + "99.0" : 3.661791859443631, + "99.9" : 3.661791859443631, + "99.99" : 3.661791859443631, + "99.999" : 3.661791859443631, + "99.9999" : 3.661791859443631, + "100.0" : 3.661791859443631 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.5858967541218636, + 3.620618655571635, + 3.624266738405797 + ], + [ + 3.630896688679245, + 3.6600290160936355, + 3.661791859443631 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8635983475617643, + "scoreError" : 0.05318319058426944, + "scoreConfidence" : [ + 2.810415156977495, + 2.916781538146034 + ], + "scorePercentiles" : { + "0.0" : 2.814156100168824, + "50.0" : 2.8762246813344836, + "90.0" : 2.8928681952560025, + "95.0" : 2.8928681952560025, + "99.0" : 2.8928681952560025, + "99.9" : 2.8928681952560025, + "99.99" : 2.8928681952560025, + "99.999" : 2.8928681952560025, + "99.9999" : 2.8928681952560025, + "100.0" : 2.8928681952560025 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8762246813344836, + 2.8830864364370137, + 2.8709831374856485 + ], + [ + 2.830178765138653, + 2.8240756487859966, + 2.814156100168824 + ], + [ + 2.8894638145044786, + 2.8913483489447818, + 2.8928681952560025 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17460592529590413, + "scoreError" : 0.007290842462030162, + "scoreConfidence" : [ + 0.16731508283387397, + 0.18189676775793429 + ], + "scorePercentiles" : { + "0.0" : 0.16902718518330714, + "50.0" : 0.17527733757492903, + "90.0" : 0.1789688415627181, + "95.0" : 0.1789688415627181, + "99.0" : 0.1789688415627181, + "99.9" : 0.1789688415627181, + "99.99" : 0.1789688415627181, + "99.999" : 0.1789688415627181, + "99.9999" : 0.1789688415627181, + "100.0" : 0.1789688415627181 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17740387072911123, + 0.1752745377618088, + 0.17527733757492903 + ], + [ + 0.16919842399837576, + 0.16908881285719116, + 0.16902718518330714 + ], + [ + 0.1789688415627181, + 0.17867402992728118, + 0.17854028806841513 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.32594856915486825, + "scoreError" : 0.006512483666661735, + "scoreConfidence" : [ + 0.3194360854882065, + 0.33246105282153 + ], + "scorePercentiles" : { + "0.0" : 0.32274181687913506, + "50.0" : 0.32294927724850636, + "90.0" : 0.3315308010542368, + "95.0" : 0.3315308010542368, + "99.0" : 0.3315308010542368, + "99.9" : 0.3315308010542368, + "99.99" : 0.3315308010542368, + "99.999" : 0.3315308010542368, + "99.9999" : 0.3315308010542368, + "100.0" : 0.3315308010542368 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3266327356937549, + 0.32294927724850636, + 0.32284441984116735 + ], + [ + 0.33064299758637794, + 0.3315308010542368, + 0.33034233406005353 + ], + [ + 0.3229322670584816, + 0.32292047297210025, + 0.32274181687913506 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16163972415380565, + "scoreError" : 0.007092012523861331, + "scoreConfidence" : [ + 0.15454771162994432, + 0.16873173667766697 + ], + "scorePercentiles" : { + "0.0" : 0.15710679449192483, + "50.0" : 0.16063566504963536, + "90.0" : 0.16717027942159812, + "95.0" : 0.16717027942159812, + "99.0" : 0.16717027942159812, + "99.9" : 0.16717027942159812, + "99.99" : 0.16717027942159812, + "99.999" : 0.16717027942159812, + "99.9999" : 0.16717027942159812, + "100.0" : 0.16717027942159812 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16096042670894428, + 0.16060938489335733, + 0.16063566504963536 + ], + [ + 0.15735056534600497, + 0.15741520246190657, + 0.15710679449192483 + ], + [ + 0.16711328819705554, + 0.16717027942159812, + 0.16639591081382385 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3908731216705499, + "scoreError" : 0.008318461719991843, + "scoreConfidence" : [ + 0.38255465995055804, + 0.3991915833905417 + ], + "scorePercentiles" : { + "0.0" : 0.3850710142472083, + "50.0" : 0.39186429463166145, + "90.0" : 0.39874439389952154, + "95.0" : 0.39874439389952154, + "99.0" : 0.39874439389952154, + "99.9" : 0.39874439389952154, + "99.99" : 0.39874439389952154, + "99.999" : 0.39874439389952154, + "99.9999" : 0.39874439389952154, + "100.0" : 0.39874439389952154 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39874439389952154, + 0.3877659189220628, + 0.386286415868356 + ], + [ + 0.39493609237391886, + 0.3853260085153932, + 0.3850710142472083 + ], + [ + 0.39510388317332384, + 0.3927600734035033, + 0.39186429463166145 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1586786249037039, + "scoreError" : 0.0034100905503789674, + "scoreConfidence" : [ + 0.15526853435332494, + 0.16208871545408288 + ], + "scorePercentiles" : { + "0.0" : 0.15661870924496094, + "50.0" : 0.1578523135339058, + "90.0" : 0.16217684937238494, + "95.0" : 0.16217684937238494, + "99.0" : 0.16217684937238494, + "99.9" : 0.16217684937238494, + "99.99" : 0.16217684937238494, + "99.999" : 0.16217684937238494, + "99.9999" : 0.16217684937238494, + "100.0" : 0.16217684937238494 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15877473223358313, + 0.1578523135339058, + 0.15726137488598838 + ], + [ + 0.16217684937238494, + 0.16083772981536285, + 0.16052423554906337 + ], + [ + 0.15739435946549987, + 0.15666732003258604, + 0.15661870924496094 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04705562194714075, + "scoreError" : 0.001724178194025406, + "scoreConfidence" : [ + 0.04533144375311534, + 0.04877980014116615 + ], + "scorePercentiles" : { + "0.0" : 0.04576418512315, + "50.0" : 0.047069235799412586, + "90.0" : 0.048249880785691195, + "95.0" : 0.048249880785691195, + "99.0" : 0.048249880785691195, + "99.9" : 0.048249880785691195, + "99.99" : 0.048249880785691195, + "99.999" : 0.048249880785691195, + "99.9999" : 0.048249880785691195, + "100.0" : 0.048249880785691195 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047069235799412586, + 0.04717382480446822, + 0.046859601845300296 + ], + [ + 0.048249880785691195, + 0.048244426864980386, + 0.048241332310631276 + ], + [ + 0.04600872909506655, + 0.04588938089556622, + 0.04576418512315 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9393487.11191537, + "scoreError" : 76117.81686439089, + "scoreConfidence" : [ + 9317369.295050979, + 9469604.928779762 + ], + "scorePercentiles" : { + "0.0" : 9326570.458527492, + "50.0" : 9421905.214689266, + "90.0" : 9427197.699340245, + "95.0" : 9427197.699340245, + "99.0" : 9427197.699340245, + "99.9" : 9427197.699340245, + "99.99" : 9427197.699340245, + "99.999" : 9427197.699340245, + "99.9999" : 9427197.699340245, + "100.0" : 9427197.699340245 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9423936.029190207, + 9422548.15913371, + 9421905.214689266 + ], + [ + 9331684.680037314, + 9341840.24089636, + 9326570.458527492 + ], + [ + 9427197.699340245, + 9420696.956685498, + 9425004.56873823 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-24T01:16:10Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json b/performance-results/2025-03-24T01:16:10Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json new file mode 100644 index 000000000..2a0b40127 --- /dev/null +++ b/performance-results/2025-03-24T01:16:10Z-ae7279fa86294a4250c1df7bbf056a940e80459c-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.426145151023948, + "scoreError" : 0.013210663115301039, + "scoreConfidence" : [ + 3.412934487908647, + 3.439355814139249 + ], + "scorePercentiles" : { + "0.0" : 3.4234322248782174, + "50.0" : 3.426652794233978, + "90.0" : 3.427842790749618, + "95.0" : 3.427842790749618, + "99.0" : 3.427842790749618, + "99.9" : 3.427842790749618, + "99.99" : 3.427842790749618, + "99.999" : 3.427842790749618, + "99.9999" : 3.427842790749618, + "100.0" : 3.427842790749618 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4275964386075892, + 3.427842790749618 + ], + [ + 3.4234322248782174, + 3.4257091498603667 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.729128204255764, + "scoreError" : 0.007766170352462106, + "scoreConfidence" : [ + 1.721362033903302, + 1.7368943746082262 + ], + "scorePercentiles" : { + "0.0" : 1.7279808848819176, + "50.0" : 1.7290426231590101, + "90.0" : 1.7304466858231178, + "95.0" : 1.7304466858231178, + "99.0" : 1.7304466858231178, + "99.9" : 1.7304466858231178, + "99.99" : 1.7304466858231178, + "99.999" : 1.7304466858231178, + "99.9999" : 1.7304466858231178, + "100.0" : 1.7304466858231178 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7282477158561975, + 1.7298375304618228 + ], + [ + 1.7279808848819176, + 1.7304466858231178 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8683695224465093, + "scoreError" : 0.0022479338394988647, + "scoreConfidence" : [ + 0.8661215886070105, + 0.8706174562860082 + ], + "scorePercentiles" : { + "0.0" : 0.8679904677398708, + "50.0" : 0.8683417491104126, + "90.0" : 0.8688041238253417, + "95.0" : 0.8688041238253417, + "99.0" : 0.8688041238253417, + "99.9" : 0.8688041238253417, + "99.99" : 0.8688041238253417, + "99.999" : 0.8688041238253417, + "99.9999" : 0.8688041238253417, + "100.0" : 0.8688041238253417 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8682214628124686, + 0.8684620354083565 + ], + [ + 0.8679904677398708, + 0.8688041238253417 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.240687874378818, + "scoreError" : 0.14206130369424322, + "scoreConfidence" : [ + 16.098626570684573, + 16.382749178073063 + ], + "scorePercentiles" : { + "0.0" : 16.102134406564456, + "50.0" : 16.20890091093278, + "90.0" : 16.34498291737838, + "95.0" : 16.34498291737838, + "99.0" : 16.34498291737838, + "99.9" : 16.34498291737838, + "99.99" : 16.34498291737838, + "99.999" : 16.34498291737838, + "99.9999" : 16.34498291737838, + "100.0" : 16.34498291737838 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.33512895649821, + 16.342082271169485, + 16.34498291737838 + ], + [ + 16.20890091093278, + 16.201763368385475, + 16.204084508361756 + ], + [ + 16.102134406564456, + 16.177766103475452, + 16.24934742664334 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2768.9873500346007, + "scoreError" : 104.42207140117078, + "scoreConfidence" : [ + 2664.56527863343, + 2873.4094214357715 + ], + "scorePercentiles" : { + "0.0" : 2685.5244079379963, + "50.0" : 2795.830847084459, + "90.0" : 2824.7859522281055, + "95.0" : 2824.7859522281055, + "99.0" : 2824.7859522281055, + "99.9" : 2824.7859522281055, + "99.99" : 2824.7859522281055, + "99.999" : 2824.7859522281055, + "99.9999" : 2824.7859522281055, + "100.0" : 2824.7859522281055 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2687.576466737567, + 2685.5244079379963, + 2691.1189811657555 + ], + [ + 2824.4863505006483, + 2824.7859522281055, + 2824.782033862034 + ], + [ + 2790.6171435181855, + 2796.1639672766546, + 2795.830847084459 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69477.58904509427, + "scoreError" : 2033.1449142317103, + "scoreConfidence" : [ + 67444.44413086255, + 71510.73395932598 + ], + "scorePercentiles" : { + "0.0" : 68354.45274228718, + "50.0" : 68850.00819272888, + "90.0" : 71104.42582085764, + "95.0" : 71104.42582085764, + "99.0" : 71104.42582085764, + "99.9" : 71104.42582085764, + "99.99" : 71104.42582085764, + "99.999" : 71104.42582085764, + "99.9999" : 71104.42582085764, + "100.0" : 71104.42582085764 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 68845.9116730038, + 68850.00819272888, + 68933.08606569297 + ], + [ + 68354.45274228718, + 68569.71784579945, + 68527.59360154229 + ], + [ + 71069.65064660512, + 71043.45481733108, + 71104.42582085764 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 353.43246559746035, + "scoreError" : 5.017815172324881, + "scoreConfidence" : [ + 348.41465042513545, + 358.45028076978525 + ], + "scorePercentiles" : { + "0.0" : 348.49531796540316, + "50.0" : 352.22740012108295, + "90.0" : 357.6247499948426, + "95.0" : 357.6247499948426, + "99.0" : 357.6247499948426, + "99.9" : 357.6247499948426, + "99.99" : 357.6247499948426, + "99.999" : 357.6247499948426, + "99.9999" : 357.6247499948426, + "100.0" : 357.6247499948426 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 351.5264560603956, + 352.22740012108295, + 348.49531796540316 + ], + [ + 356.42376106443544, + 356.8220207221888, + 357.6247499948426 + ], + [ + 352.2169543217317, + 351.9050707919133, + 353.6504593351496 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 108.90948380386186, + "scoreError" : 3.918996971616842, + "scoreConfidence" : [ + 104.99048683224501, + 112.82848077547871 + ], + "scorePercentiles" : { + "0.0" : 105.69252450514203, + "50.0" : 109.97755758368027, + "90.0" : 111.12718275777527, + "95.0" : 111.12718275777527, + "99.0" : 111.12718275777527, + "99.9" : 111.12718275777527, + "99.99" : 111.12718275777527, + "99.999" : 111.12718275777527, + "99.9999" : 111.12718275777527, + "100.0" : 111.12718275777527 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 109.97755758368027, + 110.15002579246816, + 109.55958182687034 + ], + [ + 110.62620785006521, + 111.11818071668289, + 111.12718275777527 + ], + [ + 105.69252450514203, + 105.96696635595293, + 105.96712684611965 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.061097025447483445, + "scoreError" : 0.0011606211932044168, + "scoreConfidence" : [ + 0.05993640425427903, + 0.062257646640687864 + ], + "scorePercentiles" : { + "0.0" : 0.06035415747290153, + "50.0" : 0.06096801351030039, + "90.0" : 0.06199666086385081, + "95.0" : 0.06199666086385081, + "99.0" : 0.06199666086385081, + "99.9" : 0.06199666086385081, + "99.99" : 0.06199666086385081, + "99.999" : 0.06199666086385081, + "99.9999" : 0.06199666086385081, + "100.0" : 0.06199666086385081 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06199666086385081, + 0.061894619520075266, + 0.061959236395516704 + ], + [ + 0.06036282408083686, + 0.06035415747290153, + 0.06040292525837023 + ], + [ + 0.06096801351030039, + 0.06101391860841128, + 0.06092087331708803 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.578972828265755E-4, + "scoreError" : 5.7237137478910345E-6, + "scoreConfidence" : [ + 3.5217356907868446E-4, + 3.6362099657446655E-4 + ], + "scorePercentiles" : { + "0.0" : 3.549562143708115E-4, + "50.0" : 3.5624617220250085E-4, + "90.0" : 3.6339893810142566E-4, + "95.0" : 3.6339893810142566E-4, + "99.0" : 3.6339893810142566E-4, + "99.9" : 3.6339893810142566E-4, + "99.99" : 3.6339893810142566E-4, + "99.999" : 3.6339893810142566E-4, + "99.9999" : 3.6339893810142566E-4, + "100.0" : 3.6339893810142566E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6191391529543857E-4, + 3.6339893810142566E-4, + 3.617474791706142E-4 + ], + [ + 3.563956431412455E-4, + 3.549562143708115E-4, + 3.553836690005984E-4 + ], + [ + 3.5512751742728077E-4, + 3.5590599672926385E-4, + 3.5624617220250085E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014230959816322204, + "scoreError" : 3.529362494757639E-4, + "scoreConfidence" : [ + 0.01387802356684644, + 0.014583896065797968 + ], + "scorePercentiles" : { + "0.0" : 0.014070434197529822, + "50.0" : 0.014109343967413465, + "90.0" : 0.014518360081650312, + "95.0" : 0.014518360081650312, + "99.0" : 0.014518360081650312, + "99.9" : 0.014518360081650312, + "99.99" : 0.014518360081650312, + "99.999" : 0.014518360081650312, + "99.9999" : 0.014518360081650312, + "100.0" : 0.014518360081650312 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014070434197529822, + 0.014071993049926826, + 0.01409282296653415 + ], + [ + 0.014109343967413465, + 0.014115185616529233, + 0.01408806176698895 + ], + [ + 0.014518360081650312, + 0.014509509125652376, + 0.014502927574674702 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9697289381301906, + "scoreError" : 0.00528362052375522, + "scoreConfidence" : [ + 0.9644453176064354, + 0.9750125586539458 + ], + "scorePercentiles" : { + "0.0" : 0.9641568281912842, + "50.0" : 0.9692605071719326, + "90.0" : 0.9739204806194001, + "95.0" : 0.9739204806194001, + "99.0" : 0.9739204806194001, + "99.9" : 0.9739204806194001, + "99.99" : 0.9739204806194001, + "99.999" : 0.9739204806194001, + "99.9999" : 0.9739204806194001, + "100.0" : 0.9739204806194001 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9677952521049066, + 0.9674707717906549, + 0.9706912509948559 + ], + [ + 0.9641568281912842, + 0.9739204806194001, + 0.9733063868613139 + ], + [ + 0.9722907940890531, + 0.9692605071719326, + 0.9686681713483146 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013101354791376594, + "scoreError" : 4.999515490779988E-4, + "scoreConfidence" : [ + 0.012601403242298595, + 0.013601306340454592 + ], + "scorePercentiles" : { + "0.0" : 0.012865263901217797, + "50.0" : 0.013119884615840766, + "90.0" : 0.013265388737961957, + "95.0" : 0.013265388737961957, + "99.0" : 0.013265388737961957, + "99.9" : 0.013265388737961957, + "99.99" : 0.013265388737961957, + "99.999" : 0.013265388737961957, + "99.9999" : 0.013265388737961957, + "100.0" : 0.013265388737961957 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012865263901217797, + 0.012979990903828231, + 0.012984937465915287 + ], + [ + 0.013257715973570058, + 0.013265388737961957, + 0.013254831765766244 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.5684094461451203, + "scoreError" : 0.06843728423472582, + "scoreConfidence" : [ + 3.4999721619103945, + 3.636846730379846 + ], + "scorePercentiles" : { + "0.0" : 3.5270711086036672, + "50.0" : 3.5678580502980344, + "90.0" : 3.595799877785766, + "95.0" : 3.595799877785766, + "99.0" : 3.595799877785766, + "99.9" : 3.595799877785766, + "99.99" : 3.595799877785766, + "99.999" : 3.595799877785766, + "99.9999" : 3.595799877785766, + "100.0" : 3.595799877785766 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.5617510263532766, + 3.595799877785766, + 3.5901185635319455 + ], + [ + 3.5270711086036672, + 3.5666760649072753, + 3.569040035688794 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8218470565413725, + "scoreError" : 0.058995670696254006, + "scoreConfidence" : [ + 2.7628513858451185, + 2.8808427272376265 + ], + "scorePercentiles" : { + "0.0" : 2.7884896799553944, + "50.0" : 2.812975501265823, + "90.0" : 2.8689687375215147, + "95.0" : 2.8689687375215147, + "99.0" : 2.8689687375215147, + "99.9" : 2.8689687375215147, + "99.99" : 2.8689687375215147, + "99.999" : 2.8689687375215147, + "99.9999" : 2.8689687375215147, + "100.0" : 2.8689687375215147 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.866157445558739, + 2.8689687375215147, + 2.865885706876791 + ], + [ + 2.7884896799553944, + 2.7952312970933484, + 2.788916612660346 + ], + [ + 2.8146177188291586, + 2.812975501265823, + 2.7953808091112355 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17479665863226598, + "scoreError" : 0.0036510964053856694, + "scoreConfidence" : [ + 0.17114556222688032, + 0.17844775503765165 + ], + "scorePercentiles" : { + "0.0" : 0.17170469753266598, + "50.0" : 0.1757618755800056, + "90.0" : 0.17690241083337757, + "95.0" : 0.17690241083337757, + "99.0" : 0.17690241083337757, + "99.9" : 0.17690241083337757, + "99.99" : 0.17690241083337757, + "99.999" : 0.17690241083337757, + "99.9999" : 0.17690241083337757, + "100.0" : 0.17690241083337757 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17690241083337757, + 0.17658258348636813, + 0.17661318091907738 + ], + [ + 0.1757618755800056, + 0.1759331799405359, + 0.17544330049122808 + ], + [ + 0.1724683128503182, + 0.17170469753266598, + 0.171760386056817 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3246266612392709, + "scoreError" : 0.019924162165017714, + "scoreConfidence" : [ + 0.30470249907425323, + 0.3445508234042886 + ], + "scorePercentiles" : { + "0.0" : 0.31273289608155863, + "50.0" : 0.3212355564549806, + "90.0" : 0.3402318470043888, + "95.0" : 0.3402318470043888, + "99.0" : 0.3402318470043888, + "99.9" : 0.3402318470043888, + "99.99" : 0.3402318470043888, + "99.999" : 0.3402318470043888, + "99.9999" : 0.3402318470043888, + "100.0" : 0.3402318470043888 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3220469740435399, + 0.3212355564549806, + 0.32113408535371374 + ], + [ + 0.3128711308700685, + 0.3127965790247412, + 0.31273289608155863 + ], + [ + 0.3402318470043888, + 0.3399265549134913, + 0.3386643274069559 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1609434612920892, + "scoreError" : 0.005787544780688637, + "scoreConfidence" : [ + 0.15515591651140057, + 0.16673100607277783 + ], + "scorePercentiles" : { + "0.0" : 0.157457594693749, + "50.0" : 0.15970487859526966, + "90.0" : 0.16554137850320316, + "95.0" : 0.16554137850320316, + "99.0" : 0.16554137850320316, + "99.9" : 0.16554137850320316, + "99.99" : 0.16554137850320316, + "99.999" : 0.16554137850320316, + "99.9999" : 0.16554137850320316, + "100.0" : 0.16554137850320316 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15970487859526966, + 0.15976183559127072, + 0.1596239163421019 + ], + [ + 0.16554137850320316, + 0.16528086764511438, + 0.16534963091320953 + ], + [ + 0.15787519901172978, + 0.1578958503331544, + 0.157457594693749 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38969563839387505, + "scoreError" : 0.01257371231763372, + "scoreConfidence" : [ + 0.37712192607624134, + 0.40226935071150877 + ], + "scorePercentiles" : { + "0.0" : 0.38017483816149633, + "50.0" : 0.3889050955510617, + "90.0" : 0.40367623961571064, + "95.0" : 0.40367623961571064, + "99.0" : 0.40367623961571064, + "99.9" : 0.40367623961571064, + "99.99" : 0.40367623961571064, + "99.999" : 0.40367623961571064, + "99.9999" : 0.40367623961571064, + "100.0" : 0.40367623961571064 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3834444588190184, + 0.38162887341627233, + 0.38017483816149633 + ], + [ + 0.40367623961571064, + 0.39445489649731774, + 0.39294918110731264 + ], + [ + 0.3941998362568489, + 0.3878273261198371, + 0.3889050955510617 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15826806224850987, + "scoreError" : 0.002061095263214545, + "scoreConfidence" : [ + 0.15620696698529532, + 0.1603291575117244 + ], + "scorePercentiles" : { + "0.0" : 0.15657704847497964, + "50.0" : 0.15863054351929698, + "90.0" : 0.1598088950396318, + "95.0" : 0.1598088950396318, + "99.0" : 0.1598088950396318, + "99.9" : 0.1598088950396318, + "99.99" : 0.1598088950396318, + "99.999" : 0.1598088950396318, + "99.9999" : 0.1598088950396318, + "100.0" : 0.1598088950396318 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1598088950396318, + 0.1592978537840292, + 0.15920936771635993 + ], + [ + 0.15691187307788865, + 0.15657704847497964, + 0.15667079597048364 + ], + [ + 0.15878778983470682, + 0.15863054351929698, + 0.15851839281921218 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.048150610010993106, + "scoreError" : 0.001506079249802445, + "scoreConfidence" : [ + 0.04664453076119066, + 0.04965668926079555 + ], + "scorePercentiles" : { + "0.0" : 0.04693892552782028, + "50.0" : 0.04831327972558398, + "90.0" : 0.04916321137915607, + "95.0" : 0.04916321137915607, + "99.0" : 0.04916321137915607, + "99.9" : 0.04916321137915607, + "99.99" : 0.04916321137915607, + "99.999" : 0.04916321137915607, + "99.9999" : 0.04916321137915607, + "100.0" : 0.04916321137915607 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.048350991471009165, + 0.04831327972558398, + 0.048275269739509914 + ], + [ + 0.04721030312243299, + 0.04699559927439858, + 0.04693892552782028 + ], + [ + 0.04916321137915607, + 0.049058127318573605, + 0.049049782540453314 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9279650.608622259, + "scoreError" : 462029.7659555513, + "scoreConfidence" : [ + 8817620.842666708, + 9741680.37457781 + ], + "scorePercentiles" : { + "0.0" : 8933317.997321429, + "50.0" : 9321904.258154707, + "90.0" : 9607548.77137368, + "95.0" : 9607548.77137368, + "99.0" : 9607548.77137368, + "99.9" : 9607548.77137368, + "99.99" : 9607548.77137368, + "99.999" : 9607548.77137368, + "99.9999" : 9607548.77137368, + "100.0" : 9607548.77137368 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 8953302.709937332, + 8933317.997321429, + 8941444.654155497 + ], + [ + 9314768.808193669, + 9321904.258154707, + 9337448.018674137 + ], + [ + 9607548.77137368, + 9554760.581661891, + 9552359.678127985 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-03-31T23:20:48Z-cd99d17c3d8134fcfa8ca0ab4f2283c99b1370e7-jdk17.json b/performance-results/2025-03-31T23:20:48Z-cd99d17c3d8134fcfa8ca0ab4f2283c99b1370e7-jdk17.json new file mode 100644 index 000000000..ac01ce7b4 --- /dev/null +++ b/performance-results/2025-03-31T23:20:48Z-cd99d17c3d8134fcfa8ca0ab4f2283c99b1370e7-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4095002146992455, + "scoreError" : 0.025505340753752086, + "scoreConfidence" : [ + 3.3839948739454933, + 3.4350055554529977 + ], + "scorePercentiles" : { + "0.0" : 3.404163195746615, + "50.0" : 3.4102788182455352, + "90.0" : 3.4132800265592973, + "95.0" : 3.4132800265592973, + "99.0" : 3.4132800265592973, + "99.9" : 3.4132800265592973, + "99.99" : 3.4132800265592973, + "99.999" : 3.4132800265592973, + "99.9999" : 3.4132800265592973, + "100.0" : 3.4132800265592973 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4132800265592973, + 3.411452008475927 + ], + [ + 3.404163195746615, + 3.4091056280151433 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7245578519058582, + "scoreError" : 0.024912795202235074, + "scoreConfidence" : [ + 1.6996450567036232, + 1.7494706471080932 + ], + "scorePercentiles" : { + "0.0" : 1.7211598482106032, + "50.0" : 1.7235201540372407, + "90.0" : 1.7300312513383473, + "95.0" : 1.7300312513383473, + "99.0" : 1.7300312513383473, + "99.9" : 1.7300312513383473, + "99.99" : 1.7300312513383473, + "99.999" : 1.7300312513383473, + "99.9999" : 1.7300312513383473, + "100.0" : 1.7300312513383473 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7211598482106032, + 1.7228377141578146 + ], + [ + 1.7242025939166667, + 1.7300312513383473 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8653820156363996, + "scoreError" : 0.010780862871240771, + "scoreConfidence" : [ + 0.8546011527651588, + 0.8761628785076404 + ], + "scorePercentiles" : { + "0.0" : 0.8629236869657826, + "50.0" : 0.8659809453132804, + "90.0" : 0.8666424849532549, + "95.0" : 0.8666424849532549, + "99.0" : 0.8666424849532549, + "99.9" : 0.8666424849532549, + "99.99" : 0.8666424849532549, + "99.999" : 0.8666424849532549, + "99.9999" : 0.8666424849532549, + "100.0" : 0.8666424849532549 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8659980265177031, + 0.8659638641088577 + ], + [ + 0.8629236869657826, + 0.8666424849532549 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.845427151308781, + "scoreError" : 0.23528497239241766, + "scoreConfidence" : [ + 15.610142178916364, + 16.0807121237012 + ], + "scorePercentiles" : { + "0.0" : 15.685382986452229, + "50.0" : 15.794741526952283, + "90.0" : 16.05433497503823, + "95.0" : 16.05433497503823, + "99.0" : 16.05433497503823, + "99.9" : 16.05433497503823, + "99.99" : 16.05433497503823, + "99.999" : 16.05433497503823, + "99.9999" : 16.05433497503823, + "100.0" : 16.05433497503823 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.705963889103662, + 15.983985656350747, + 15.907397863104613 + ], + [ + 15.794741526952283, + 15.685382986452229, + 15.783258404085283 + ], + [ + 15.707878097947686, + 16.05433497503823, + 15.985900962744292 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2618.6331027609417, + "scoreError" : 164.53393097173048, + "scoreConfidence" : [ + 2454.099171789211, + 2783.1670337326723 + ], + "scorePercentiles" : { + "0.0" : 2526.588483782207, + "50.0" : 2574.4482466906097, + "90.0" : 2779.116655176981, + "95.0" : 2779.116655176981, + "99.0" : 2779.116655176981, + "99.9" : 2779.116655176981, + "99.99" : 2779.116655176981, + "99.999" : 2779.116655176981, + "99.9999" : 2779.116655176981, + "100.0" : 2779.116655176981 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2574.4482466906097, + 2567.169496959159, + 2583.5862751102313 + ], + [ + 2691.7266850893725, + 2759.1161944439864, + 2779.116655176981 + ], + [ + 2526.588483782207, + 2550.387208827728, + 2535.558678768202 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70548.16913826618, + "scoreError" : 244.49656136443414, + "scoreConfidence" : [ + 70303.67257690175, + 70792.66569963061 + ], + "scorePercentiles" : { + "0.0" : 70333.39038528103, + "50.0" : 70574.58948612705, + "90.0" : 70727.34078165884, + "95.0" : 70727.34078165884, + "99.0" : 70727.34078165884, + "99.9" : 70727.34078165884, + "99.99" : 70727.34078165884, + "99.999" : 70727.34078165884, + "99.9999" : 70727.34078165884, + "100.0" : 70727.34078165884 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70727.34078165884, + 70333.39038528103, + 70469.07400113309 + ], + [ + 70446.7874393602, + 70574.58948612705, + 70377.48010235681 + ], + [ + 70686.9996314109, + 70637.21329216441, + 70680.64712490341 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 333.90502579287846, + "scoreError" : 10.48452847769103, + "scoreConfidence" : [ + 323.42049731518745, + 344.3895542705695 + ], + "scorePercentiles" : { + "0.0" : 323.7340712326594, + "50.0" : 332.554273388344, + "90.0" : 344.35325070599015, + "95.0" : 344.35325070599015, + "99.0" : 344.35325070599015, + "99.9" : 344.35325070599015, + "99.99" : 344.35325070599015, + "99.999" : 344.35325070599015, + "99.9999" : 344.35325070599015, + "100.0" : 344.35325070599015 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 323.7340712326594, + 330.9442044287599, + 332.554273388344 + ], + [ + 344.35325070599015, + 341.53721675036223, + 330.2777034476568 + ], + [ + 337.1697350039635, + 332.963429061658, + 331.611348116512 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 105.14950954869005, + "scoreError" : 4.836651540160923, + "scoreConfidence" : [ + 100.31285800852912, + 109.98616108885098 + ], + "scorePercentiles" : { + "0.0" : 100.91133191706817, + "50.0" : 106.59798299070972, + "90.0" : 108.39761451537689, + "95.0" : 108.39761451537689, + "99.0" : 108.39761451537689, + "99.9" : 108.39761451537689, + "99.99" : 108.39761451537689, + "99.999" : 108.39761451537689, + "99.9999" : 108.39761451537689, + "100.0" : 108.39761451537689 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 101.27462527804794, + 100.91133191706817, + 102.60138617565751 + ], + [ + 106.59798299070972, + 104.85781049140613, + 106.73497928138285 + ], + [ + 108.39761451537689, + 108.05399948905632, + 106.91585579950491 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.0635880857287969, + "scoreError" : 0.0011326306299092221, + "scoreConfidence" : [ + 0.062455455098887676, + 0.06472071635870612 + ], + "scorePercentiles" : { + "0.0" : 0.062470017516351305, + "50.0" : 0.0637208354944978, + "90.0" : 0.06454115485794684, + "95.0" : 0.06454115485794684, + "99.0" : 0.06454115485794684, + "99.9" : 0.06454115485794684, + "99.99" : 0.06454115485794684, + "99.999" : 0.06454115485794684, + "99.9999" : 0.06454115485794684, + "100.0" : 0.06454115485794684 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.062470017516351305, + 0.06317745563438563, + 0.06288347814522062 + ], + [ + 0.06391383142340362, + 0.06341452927486604, + 0.0637208354944978 + ], + [ + 0.06437003169535384, + 0.06380143751714634, + 0.06454115485794684 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.731061859869773E-4, + "scoreError" : 7.774255833409394E-6, + "scoreConfidence" : [ + 3.6533193015356787E-4, + 3.808804418203867E-4 + ], + "scorePercentiles" : { + "0.0" : 3.6551122994718863E-4, + "50.0" : 3.755504457892557E-4, + "90.0" : 3.7857010140567406E-4, + "95.0" : 3.7857010140567406E-4, + "99.0" : 3.7857010140567406E-4, + "99.9" : 3.7857010140567406E-4, + "99.99" : 3.7857010140567406E-4, + "99.999" : 3.7857010140567406E-4, + "99.9999" : 3.7857010140567406E-4, + "100.0" : 3.7857010140567406E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.757933912683506E-4, + 3.76255239570355E-4, + 3.7088208784642214E-4 + ], + [ + 3.7857010140567406E-4, + 3.755504457892557E-4, + 3.770222975377734E-4 + ], + [ + 3.71370276442085E-4, + 3.670006040756906E-4, + 3.6551122994718863E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014464432942230857, + "scoreError" : 3.773796000125417E-4, + "scoreConfidence" : [ + 0.014087053342218315, + 0.014841812542243399 + ], + "scorePercentiles" : { + "0.0" : 0.01420708790665494, + "50.0" : 0.014423894288491884, + "90.0" : 0.01477697409632679, + "95.0" : 0.01477697409632679, + "99.0" : 0.01477697409632679, + "99.9" : 0.01477697409632679, + "99.99" : 0.01477697409632679, + "99.999" : 0.01477697409632679, + "99.9999" : 0.01477697409632679, + "100.0" : 0.01477697409632679 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014423894288491884, + 0.014402292067465215, + 0.014473567330947153 + ], + [ + 0.01474985725411184, + 0.014677930232216797, + 0.01477697409632679 + ], + [ + 0.01420708790665494, + 0.014254813051832719, + 0.014213480252030371 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.0010298916700413, + "scoreError" : 0.015481496915640302, + "scoreConfidence" : [ + 0.985548394754401, + 1.0165113885856816 + ], + "scorePercentiles" : { + "0.0" : 0.991348368259318, + "50.0" : 0.9985827688467299, + "90.0" : 1.022128904333606, + "95.0" : 1.022128904333606, + "99.0" : 1.022128904333606, + "99.9" : 1.022128904333606, + "99.99" : 1.022128904333606, + "99.999" : 1.022128904333606, + "99.9999" : 1.022128904333606, + "100.0" : 1.022128904333606 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9941657343672333, + 0.9980671982035928, + 0.991348368259318 + ], + [ + 0.9985827688467299, + 1.0013906113336004, + 1.022128904333606 + ], + [ + 1.005601708396179, + 1.0039356745306696, + 0.9940480567594433 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012962170975303838, + "scoreError" : 3.677345354410526E-4, + "scoreConfidence" : [ + 0.012594436439862786, + 0.01332990551074489 + ], + "scorePercentiles" : { + "0.0" : 0.012833838495399187, + "50.0" : 0.012916732160113319, + "90.0" : 0.01318912247864082, + "95.0" : 0.01318912247864082, + "99.0" : 0.01318912247864082, + "99.9" : 0.01318912247864082, + "99.99" : 0.01318912247864082, + "99.999" : 0.01318912247864082, + "99.9999" : 0.01318912247864082, + "100.0" : 0.01318912247864082 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012908908054701438, + 0.01318912247864082, + 0.01304114794828526 + ], + [ + 0.012833838495399187, + 0.012875452609271113, + 0.012924556265525201 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.9034817930410655, + "scoreError" : 0.22224119148390883, + "scoreConfidence" : [ + 3.681240601557157, + 4.125722984524974 + ], + "scorePercentiles" : { + "0.0" : 3.7797827596371882, + "50.0" : 3.8966766567625974, + "90.0" : 3.991222782122905, + "95.0" : 3.991222782122905, + "99.0" : 3.991222782122905, + "99.9" : 3.991222782122905, + "99.99" : 3.991222782122905, + "99.999" : 3.991222782122905, + "99.9999" : 3.991222782122905, + "100.0" : 3.991222782122905 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7797827596371882, + 3.868858556071152, + 3.900277293291732 + ], + [ + 3.893076020233463, + 3.9876733468899523, + 3.991222782122905 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.9975317276163223, + "scoreError" : 0.10471051985244478, + "scoreConfidence" : [ + 2.8928212077638773, + 3.102242247468767 + ], + "scorePercentiles" : { + "0.0" : 2.902337391468369, + "50.0" : 3.0179460974652987, + "90.0" : 3.090146808773556, + "95.0" : 3.090146808773556, + "99.0" : 3.090146808773556, + "99.9" : 3.090146808773556, + "99.99" : 3.090146808773556, + "99.999" : 3.090146808773556, + "99.9999" : 3.090146808773556, + "100.0" : 3.090146808773556 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.052372484894721, + 3.0179460974652987, + 3.090146808773556 + ], + [ + 2.997661714028777, + 2.902337391468369, + 2.909984528658714 + ], + [ + 3.0189954114095987, + 2.963754678222222, + 3.0245864336256427 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17330625960990392, + "scoreError" : 0.0066047385708272064, + "scoreConfidence" : [ + 0.1667015210390767, + 0.17991099818073114 + ], + "scorePercentiles" : { + "0.0" : 0.1698520789965351, + "50.0" : 0.17148525901982303, + "90.0" : 0.17856710444083354, + "95.0" : 0.17856710444083354, + "99.0" : 0.17856710444083354, + "99.9" : 0.17856710444083354, + "99.99" : 0.17856710444083354, + "99.999" : 0.17856710444083354, + "99.9999" : 0.17856710444083354, + "100.0" : 0.17856710444083354 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17148525901982303, + 0.17180318619753637, + 0.17054395748418233 + ], + [ + 0.17856710444083354, + 0.17850592938488452, + 0.17838055207720163 + ], + [ + 0.17040596131890604, + 0.17021230756923286, + 0.1698520789965351 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3292259542440874, + "scoreError" : 0.012091801546312187, + "scoreConfidence" : [ + 0.31713415269777523, + 0.3413177557903996 + ], + "scorePercentiles" : { + "0.0" : 0.3221258255113545, + "50.0" : 0.3256091559274574, + "90.0" : 0.33965986006385435, + "95.0" : 0.33965986006385435, + "99.0" : 0.33965986006385435, + "99.9" : 0.33965986006385435, + "99.99" : 0.33965986006385435, + "99.999" : 0.33965986006385435, + "99.9999" : 0.33965986006385435, + "100.0" : 0.33965986006385435 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3256091559274574, + 0.32656926765070865, + 0.3250800603972304 + ], + [ + 0.33965986006385435, + 0.33829378360001355, + 0.33800826975596565 + ], + [ + 0.3221258255113545, + 0.32344406209974774, + 0.3242433031904546 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.164591468070587, + "scoreError" : 0.010540941826718983, + "scoreConfidence" : [ + 0.154050526243868, + 0.175132409897306 + ], + "scorePercentiles" : { + "0.0" : 0.15646001839943674, + "50.0" : 0.16499985348468849, + "90.0" : 0.1718761545296736, + "95.0" : 0.1718761545296736, + "99.0" : 0.1718761545296736, + "99.9" : 0.1718761545296736, + "99.99" : 0.1718761545296736, + "99.999" : 0.1718761545296736, + "99.9999" : 0.1718761545296736, + "100.0" : 0.1718761545296736 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16499985348468849, + 0.16565805920453228, + 0.16446735321689362 + ], + [ + 0.17158116838529244, + 0.1712827279562894, + 0.1718761545296736 + ], + [ + 0.15763110239435066, + 0.15646001839943674, + 0.15736677506412577 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39030310779049593, + "scoreError" : 0.0062346041971935336, + "scoreConfidence" : [ + 0.3840685035933024, + 0.39653771198768945 + ], + "scorePercentiles" : { + "0.0" : 0.3861410541740675, + "50.0" : 0.38990841648471614, + "90.0" : 0.3984212686454183, + "95.0" : 0.3984212686454183, + "99.0" : 0.3984212686454183, + "99.9" : 0.3984212686454183, + "99.99" : 0.3984212686454183, + "99.999" : 0.3984212686454183, + "99.9999" : 0.3984212686454183, + "100.0" : 0.3984212686454183 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.38856887371774945, + 0.38621954667284597, + 0.3861410541740675 + ], + [ + 0.3902935326854779, + 0.38990841648471614, + 0.389275338030362 + ], + [ + 0.3984212686454183, + 0.39248510859497643, + 0.39141483110884967 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15973932982259292, + "scoreError" : 0.004125870217414085, + "scoreConfidence" : [ + 0.15561345960517883, + 0.16386520004000701 + ], + "scorePercentiles" : { + "0.0" : 0.15601926915876185, + "50.0" : 0.1600415154837161, + "90.0" : 0.16276038462289638, + "95.0" : 0.16276038462289638, + "99.0" : 0.16276038462289638, + "99.9" : 0.16276038462289638, + "99.99" : 0.16276038462289638, + "99.999" : 0.16276038462289638, + "99.9999" : 0.16276038462289638, + "100.0" : 0.16276038462289638 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16039395408032334, + 0.1600415154837161, + 0.1600059933438935 + ], + [ + 0.1571330822098614, + 0.15717875150495889, + 0.15601926915876185 + ], + [ + 0.16276038462289638, + 0.16258213159049895, + 0.16153888640842567 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04749754239285639, + "scoreError" : 6.638648530745888E-4, + "scoreConfidence" : [ + 0.0468336775397818, + 0.04816140724593098 + ], + "scorePercentiles" : { + "0.0" : 0.04688907084816175, + "50.0" : 0.04767168074233331, + "90.0" : 0.04789557901240481, + "95.0" : 0.04789557901240481, + "99.0" : 0.04789557901240481, + "99.9" : 0.04789557901240481, + "99.99" : 0.04789557901240481, + "99.999" : 0.04789557901240481, + "99.9999" : 0.04789557901240481, + "100.0" : 0.04789557901240481 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.046991556753302285, + 0.04688907084816175, + 0.04708833516975091 + ], + [ + 0.047696189976295295, + 0.04767168074233331, + 0.04775386363592952 + ], + [ + 0.04789557901240481, + 0.047608589495784316, + 0.04788301590174531 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9596764.60533551, + "scoreError" : 238953.03479679223, + "scoreConfidence" : [ + 9357811.570538716, + 9835717.640132302 + ], + "scorePercentiles" : { + "0.0" : 9416117.540921919, + "50.0" : 9583250.818007663, + "90.0" : 9791073.728962818, + "95.0" : 9791073.728962818, + "99.0" : 9791073.728962818, + "99.9" : 9791073.728962818, + "99.99" : 9791073.728962818, + "99.999" : 9791073.728962818, + "99.9999" : 9791073.728962818, + "100.0" : 9791073.728962818 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9583250.818007663, + 9601638.153550863, + 9492654.818785578 + ], + [ + 9515580.683158897, + 9452075.962192817, + 9416117.540921919 + ], + [ + 9759589.867317073, + 9758899.875121951, + 9791073.728962818 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-01T21:33:42Z-12273f47d604fd8003c1cb1a2a8924e8f7626f89-jdk17.json b/performance-results/2025-04-01T21:33:42Z-12273f47d604fd8003c1cb1a2a8924e8f7626f89-jdk17.json new file mode 100644 index 000000000..93c7bd839 --- /dev/null +++ b/performance-results/2025-04-01T21:33:42Z-12273f47d604fd8003c1cb1a2a8924e8f7626f89-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.420985462330865, + "scoreError" : 0.021308159867503323, + "scoreConfidence" : [ + 3.399677302463362, + 3.442293622198368 + ], + "scorePercentiles" : { + "0.0" : 3.418007258992135, + "50.0" : 3.420373229961676, + "90.0" : 3.425188130407973, + "95.0" : 3.425188130407973, + "99.0" : 3.425188130407973, + "99.9" : 3.425188130407973, + "99.99" : 3.425188130407973, + "99.999" : 3.425188130407973, + "99.9999" : 3.425188130407973, + "100.0" : 3.425188130407973 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.418007258992135, + 3.42200693473186 + ], + [ + 3.4187395251914925, + 3.425188130407973 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7259211816186313, + "scoreError" : 0.011219628682282887, + "scoreConfidence" : [ + 1.7147015529363483, + 1.7371408103009143 + ], + "scorePercentiles" : { + "0.0" : 1.7240481148983835, + "50.0" : 1.7259595429086452, + "90.0" : 1.727717525758852, + "95.0" : 1.727717525758852, + "99.0" : 1.727717525758852, + "99.9" : 1.727717525758852, + "99.99" : 1.727717525758852, + "99.999" : 1.727717525758852, + "99.9999" : 1.727717525758852, + "100.0" : 1.727717525758852 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.724885876907566, + 1.7270332089097247 + ], + [ + 1.7240481148983835, + 1.727717525758852 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8674466325046533, + "scoreError" : 0.007705896262075907, + "scoreConfidence" : [ + 0.8597407362425773, + 0.8751525287667292 + ], + "scorePercentiles" : { + "0.0" : 0.8666059785196016, + "50.0" : 0.866992153998527, + "90.0" : 0.8691962435019575, + "95.0" : 0.8691962435019575, + "99.0" : 0.8691962435019575, + "99.9" : 0.8691962435019575, + "99.99" : 0.8691962435019575, + "99.999" : 0.8691962435019575, + "99.9999" : 0.8691962435019575, + "100.0" : 0.8691962435019575 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8667857553889012, + 0.8691962435019575 + ], + [ + 0.8666059785196016, + 0.8671985526081527 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.154507473954208, + "scoreError" : 0.3032032937894869, + "scoreConfidence" : [ + 15.851304180164721, + 16.457710767743695 + ], + "scorePercentiles" : { + "0.0" : 15.883888547322103, + "50.0" : 16.237351237284106, + "90.0" : 16.350840322494335, + "95.0" : 16.350840322494335, + "99.0" : 16.350840322494335, + "99.9" : 16.350840322494335, + "99.99" : 16.350840322494335, + "99.999" : 16.350840322494335, + "99.9999" : 16.350840322494335, + "100.0" : 16.350840322494335 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.217804435983428, + 16.350840322494335, + 16.237351237284106 + ], + [ + 15.902125351212634, + 15.977259361703576, + 15.883888547322103 + ], + [ + 16.276565741155228, + 16.272309984981842, + 16.272422283450616 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2644.344808486787, + "scoreError" : 86.02528562254417, + "scoreConfidence" : [ + 2558.3195228642426, + 2730.370094109331 + ], + "scorePercentiles" : { + "0.0" : 2586.8209241778127, + "50.0" : 2637.5472685222603, + "90.0" : 2708.2319955639605, + "95.0" : 2708.2319955639605, + "99.0" : 2708.2319955639605, + "99.9" : 2708.2319955639605, + "99.99" : 2708.2319955639605, + "99.999" : 2708.2319955639605, + "99.9999" : 2708.2319955639605, + "100.0" : 2708.2319955639605 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2637.5472685222603, + 2634.608120991165, + 2640.9078602226705 + ], + [ + 2707.3095209289977, + 2703.7568171125213, + 2708.2319955639605 + ], + [ + 2587.4985780982424, + 2592.4221907634533, + 2586.8209241778127 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70325.77067177565, + "scoreError" : 1291.3849307178716, + "scoreConfidence" : [ + 69034.38574105778, + 71617.15560249353 + ], + "scorePercentiles" : { + "0.0" : 69322.45195764846, + "50.0" : 70592.4237150667, + "90.0" : 71095.16711300776, + "95.0" : 71095.16711300776, + "99.0" : 71095.16711300776, + "99.9" : 71095.16711300776, + "99.99" : 71095.16711300776, + "99.999" : 71095.16711300776, + "99.9999" : 71095.16711300776, + "100.0" : 71095.16711300776 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70613.44484999884, + 70468.08939852084, + 70592.4237150667 + ], + [ + 71073.30799444801, + 71049.2033306343, + 71095.16711300776 + ], + [ + 69354.70219205428, + 69322.45195764846, + 69363.1454946017 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 340.7577166349173, + "scoreError" : 13.198336746781516, + "scoreConfidence" : [ + 327.55937988813577, + 353.95605338169884 + ], + "scorePercentiles" : { + "0.0" : 330.78040096354056, + "50.0" : 341.8254902127628, + "90.0" : 349.35471838817614, + "95.0" : 349.35471838817614, + "99.0" : 349.35471838817614, + "99.9" : 349.35471838817614, + "99.99" : 349.35471838817614, + "99.999" : 349.35471838817614, + "99.9999" : 349.35471838817614, + "100.0" : 349.35471838817614 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 349.31589625960527, + 349.35471838817614, + 349.2481281662378 + ], + [ + 330.78040096354056, + 331.33226859378885, + 331.6847680735642 + ], + [ + 342.2954285076341, + 341.8254902127628, + 340.98235054894616 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 108.89965983414605, + "scoreError" : 1.0234192467503809, + "scoreConfidence" : [ + 107.87624058739567, + 109.92307908089643 + ], + "scorePercentiles" : { + "0.0" : 108.37603229365496, + "50.0" : 108.5505522600155, + "90.0" : 109.83768561008253, + "95.0" : 109.83768561008253, + "99.0" : 109.83768561008253, + "99.9" : 109.83768561008253, + "99.99" : 109.83768561008253, + "99.999" : 109.83768561008253, + "99.9999" : 109.83768561008253, + "100.0" : 109.83768561008253 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 108.37603229365496, + 108.5505522600155, + 108.56280243220073 + ], + [ + 109.55591592645746, + 109.83768561008253, + 109.71555007594219 + ], + [ + 108.48281995549353, + 108.4905998536738, + 108.52498009979388 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06272724120605161, + "scoreError" : 0.0022162873271655403, + "scoreConfidence" : [ + 0.06051095387888607, + 0.06494352853321715 + ], + "scorePercentiles" : { + "0.0" : 0.06136190240535068, + "50.0" : 0.06223583766694465, + "90.0" : 0.06464186464858017, + "95.0" : 0.06464186464858017, + "99.0" : 0.06464186464858017, + "99.9" : 0.06464186464858017, + "99.99" : 0.06464186464858017, + "99.999" : 0.06464186464858017, + "99.9999" : 0.06464186464858017, + "100.0" : 0.06464186464858017 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.0640337739962861, + 0.06457937539311984, + 0.06464186464858017 + ], + [ + 0.06165480211595847, + 0.06136190240535068, + 0.061548181982680625 + ], + [ + 0.06226324983967474, + 0.06223583766694465, + 0.062226182805869105 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.710390379094124E-4, + "scoreError" : 1.1928445832262768E-5, + "scoreConfidence" : [ + 3.591105920771496E-4, + 3.829674837416752E-4 + ], + "scorePercentiles" : { + "0.0" : 3.626336021150838E-4, + "50.0" : 3.705256004146279E-4, + "90.0" : 3.799144246528192E-4, + "95.0" : 3.799144246528192E-4, + "99.0" : 3.799144246528192E-4, + "99.9" : 3.799144246528192E-4, + "99.99" : 3.799144246528192E-4, + "99.999" : 3.799144246528192E-4, + "99.9999" : 3.799144246528192E-4, + "100.0" : 3.799144246528192E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.799144246528192E-4, + 3.793384301920466E-4, + 3.7943793885042047E-4 + ], + [ + 3.626336021150838E-4, + 3.6448350332461536E-4, + 3.62749219272948E-4 + ], + [ + 3.70708421954848E-4, + 3.705256004146279E-4, + 3.695602004073025E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014321677295737002, + "scoreError" : 4.099545398900902E-4, + "scoreConfidence" : [ + 0.013911722755846912, + 0.014731631835627092 + ], + "scorePercentiles" : { + "0.0" : 0.014128172541091303, + "50.0" : 0.014189505785698575, + "90.0" : 0.014654304488123552, + "95.0" : 0.014654304488123552, + "99.0" : 0.014654304488123552, + "99.9" : 0.014654304488123552, + "99.99" : 0.014654304488123552, + "99.999" : 0.014654304488123552, + "99.9999" : 0.014654304488123552, + "100.0" : 0.014654304488123552 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014189505785698575, + 0.014186176067956552, + 0.014195022822474986 + ], + [ + 0.014128172541091303, + 0.014130851554584623, + 0.014130318505141966 + ], + [ + 0.014640681621466511, + 0.01464006227509494, + 0.014654304488123552 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.058156856583621, + "scoreError" : 0.15887940561407896, + "scoreConfidence" : [ + 0.899277450969542, + 1.2170362621977 + ], + "scorePercentiles" : { + "0.0" : 0.9879297991702065, + "50.0" : 1.0016554988982371, + "90.0" : 1.18968641232453, + "95.0" : 1.18968641232453, + "99.0" : 1.18968641232453, + "99.9" : 1.18968641232453, + "99.99" : 1.18968641232453, + "99.999" : 1.18968641232453, + "99.9999" : 1.18968641232453, + "100.0" : 1.18968641232453 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.18968641232453, + 1.1785333975960406, + 1.183730490530303 + ], + [ + 1.0016554988982371, + 1.0042734961839728, + 0.9910632743038351 + ], + [ + 0.9879297991702065, + 0.9945502313276977, + 0.9919891089177661 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01328452052372637, + "scoreError" : 9.392093654110593E-4, + "scoreConfidence" : [ + 0.012345311158315312, + 0.01422372988913743 + ], + "scorePercentiles" : { + "0.0" : 0.012975986001863305, + "50.0" : 0.013256764035906334, + "90.0" : 0.01362551115901114, + "95.0" : 0.01362551115901114, + "99.0" : 0.01362551115901114, + "99.9" : 0.01362551115901114, + "99.99" : 0.01362551115901114, + "99.999" : 0.01362551115901114, + "99.9999" : 0.01362551115901114, + "100.0" : 0.01362551115901114 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01362551115901114, + 0.013530204566610382, + 0.013610755139983395 + ], + [ + 0.012975986001863305, + 0.012983323505202288, + 0.012981342769687702 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.8199575825224277, + "scoreError" : 0.05323858201215984, + "scoreConfidence" : [ + 3.766719000510268, + 3.8731961645345874 + ], + "scorePercentiles" : { + "0.0" : 3.796875929384966, + "50.0" : 3.819544478009818, + "90.0" : 3.8509473918398767, + "95.0" : 3.8509473918398767, + "99.0" : 3.8509473918398767, + "99.9" : 3.8509473918398767, + "99.99" : 3.8509473918398767, + "99.999" : 3.8509473918398767, + "99.9999" : 3.8509473918398767, + "100.0" : 3.8509473918398767 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8140265087719296, + 3.8509473918398767, + 3.8269707582249426 + ], + [ + 3.796875929384966, + 3.8058624596651445, + 3.8250624472477064 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.901999271654215, + "scoreError" : 0.06511539595555306, + "scoreConfidence" : [ + 2.836883875698662, + 2.9671146676097684 + ], + "scorePercentiles" : { + "0.0" : 2.863777385738832, + "50.0" : 2.8855375709751874, + "90.0" : 2.9610254289520426, + "95.0" : 2.9610254289520426, + "99.0" : 2.9610254289520426, + "99.9" : 2.9610254289520426, + "99.99" : 2.9610254289520426, + "99.999" : 2.9610254289520426, + "99.9999" : 2.9610254289520426, + "100.0" : 2.9610254289520426 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.863777385738832, + 2.873600486494253, + 2.8855375709751874 + ], + [ + 2.8745960767461916, + 2.871018776406429, + 2.8936733446180556 + ], + [ + 2.9540984152392205, + 2.9610254289520426, + 2.9406659597177303 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18278995623871602, + "scoreError" : 0.01646910130162921, + "scoreConfidence" : [ + 0.16632085493708682, + 0.19925905754034523 + ], + "scorePercentiles" : { + "0.0" : 0.17524887399891348, + "50.0" : 0.17712125903294368, + "90.0" : 0.1963312424658879, + "95.0" : 0.1963312424658879, + "99.0" : 0.1963312424658879, + "99.9" : 0.1963312424658879, + "99.99" : 0.1963312424658879, + "99.999" : 0.1963312424658879, + "99.9999" : 0.1963312424658879, + "100.0" : 0.1963312424658879 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17712125903294368, + 0.17764719309683263, + 0.17682571326519786 + ], + [ + 0.1963312424658879, + 0.19568520027786473, + 0.19540450698555992 + ], + [ + 0.17527204134534494, + 0.17557357567989887, + 0.17524887399891348 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3232566254882523, + "scoreError" : 0.02282913570582237, + "scoreConfidence" : [ + 0.30042748978242995, + 0.34608576119407464 + ], + "scorePercentiles" : { + "0.0" : 0.3092274280148423, + "50.0" : 0.3201938921298668, + "90.0" : 0.3405121527853446, + "95.0" : 0.3405121527853446, + "99.0" : 0.3405121527853446, + "99.9" : 0.3405121527853446, + "99.99" : 0.3405121527853446, + "99.999" : 0.3405121527853446, + "99.9999" : 0.3405121527853446, + "100.0" : 0.3405121527853446 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32029835740823775, + 0.31994934137445613, + 0.3201938921298668 + ], + [ + 0.3405121527853446, + 0.3400584822157236, + 0.34022206205559147 + ], + [ + 0.3092274280148423, + 0.30933073147947665, + 0.30951718193073136 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1657651871890437, + "scoreError" : 0.007932720842646653, + "scoreConfidence" : [ + 0.15783246634639705, + 0.17369790803169036 + ], + "scorePercentiles" : { + "0.0" : 0.1593353740320576, + "50.0" : 0.16877857649659922, + "90.0" : 0.16972019656495027, + "95.0" : 0.16972019656495027, + "99.0" : 0.16972019656495027, + "99.9" : 0.16972019656495027, + "99.99" : 0.16972019656495027, + "99.999" : 0.16972019656495027, + "99.9999" : 0.16972019656495027, + "100.0" : 0.16972019656495027 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16877857649659922, + 0.16808839190506605, + 0.16972019656495027 + ], + [ + 0.1593642279485586, + 0.15979414727877025, + 0.1593353740320576 + ], + [ + 0.1687985193099723, + 0.16892914557924255, + 0.16907810558617659 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3922519583598169, + "scoreError" : 0.00540791058135611, + "scoreConfidence" : [ + 0.3868440477784608, + 0.397659868941173 + ], + "scorePercentiles" : { + "0.0" : 0.38899327481717755, + "50.0" : 0.3920643285372643, + "90.0" : 0.39907136154674966, + "95.0" : 0.39907136154674966, + "99.0" : 0.39907136154674966, + "99.9" : 0.39907136154674966, + "99.99" : 0.39907136154674966, + "99.999" : 0.39907136154674966, + "99.9999" : 0.39907136154674966, + "100.0" : 0.39907136154674966 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3941107479703634, + 0.39320674989187276, + 0.39292061883619506 + ], + [ + 0.39907136154674966, + 0.3920643285372643, + 0.3918314238304208 + ], + [ + 0.38903332743328406, + 0.38899327481717755, + 0.38903579237502434 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15861264541642875, + "scoreError" : 0.003450571682714868, + "scoreConfidence" : [ + 0.15516207373371388, + 0.16206321709914362 + ], + "scorePercentiles" : { + "0.0" : 0.15590977652359644, + "50.0" : 0.15834482064761302, + "90.0" : 0.1617350184858728, + "95.0" : 0.1617350184858728, + "99.0" : 0.1617350184858728, + "99.9" : 0.1617350184858728, + "99.99" : 0.1617350184858728, + "99.999" : 0.1617350184858728, + "99.9999" : 0.1617350184858728, + "100.0" : 0.1617350184858728 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.160611737548785, + 0.15831396635901657, + 0.15834482064761302 + ], + [ + 0.1566366366299104, + 0.15627956014314962, + 0.15590977652359644 + ], + [ + 0.1617350184858728, + 0.16011737287647107, + 0.15956491953344396 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.047483792777320843, + "scoreError" : 3.9679518207553995E-4, + "scoreConfidence" : [ + 0.0470869975952453, + 0.047880587959396384 + ], + "scorePercentiles" : { + "0.0" : 0.04715763853285422, + "50.0" : 0.047544488575204914, + "90.0" : 0.047805480103640816, + "95.0" : 0.047805480103640816, + "99.0" : 0.047805480103640816, + "99.9" : 0.047805480103640816, + "99.99" : 0.047805480103640816, + "99.999" : 0.047805480103640816, + "99.9999" : 0.047805480103640816, + "100.0" : 0.047805480103640816 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047805480103640816, + 0.0477210462219762, + 0.04757783843280919 + ], + [ + 0.04722691685832621, + 0.04715763853285422, + 0.04722577149684536 + ], + [ + 0.04766301272586019, + 0.047544488575204914, + 0.04743194204837049 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9409975.270078996, + "scoreError" : 266484.5794582535, + "scoreConfidence" : [ + 9143490.690620743, + 9676459.84953725 + ], + "scorePercentiles" : { + "0.0" : 9229127.362546125, + "50.0" : 9368682.052434457, + "90.0" : 9608553.345821325, + "95.0" : 9608553.345821325, + "99.0" : 9608553.345821325, + "99.9" : 9608553.345821325, + "99.99" : 9608553.345821325, + "99.999" : 9608553.345821325, + "99.9999" : 9608553.345821325, + "100.0" : 9608553.345821325 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9229127.362546125, + 9258536.712303422, + 9247606.292051757 + ], + [ + 9608553.345821325, + 9604708.076775432, + 9604726.285988484 + ], + [ + 9404343.094924811, + 9363494.20786517, + 9368682.052434457 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-01T22:24:13Z-dff69a4069ce12440d48b3d0bdd6cc1c10d6b6b0-jdk17.json b/performance-results/2025-04-01T22:24:13Z-dff69a4069ce12440d48b3d0bdd6cc1c10d6b6b0-jdk17.json new file mode 100644 index 000000000..cc683602a --- /dev/null +++ b/performance-results/2025-04-01T22:24:13Z-dff69a4069ce12440d48b3d0bdd6cc1c10d6b6b0-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4194744891916873, + "scoreError" : 0.02554187101683565, + "scoreConfidence" : [ + 3.3939326181748517, + 3.445016360208523 + ], + "scorePercentiles" : { + "0.0" : 3.415566520359219, + "50.0" : 3.4189396043971776, + "90.0" : 3.4244522276131746, + "95.0" : 3.4244522276131746, + "99.0" : 3.4244522276131746, + "99.9" : 3.4244522276131746, + "99.99" : 3.4244522276131746, + "99.999" : 3.4244522276131746, + "99.9999" : 3.4244522276131746, + "100.0" : 3.4244522276131746 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4171721747963577, + 3.4244522276131746 + ], + [ + 3.415566520359219, + 3.4207070339979975 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7266663105789197, + "scoreError" : 0.00869904524406742, + "scoreConfidence" : [ + 1.7179672653348523, + 1.7353653558229871 + ], + "scorePercentiles" : { + "0.0" : 1.724945010664874, + "50.0" : 1.7267529382479703, + "90.0" : 1.7282143551548643, + "95.0" : 1.7282143551548643, + "99.0" : 1.7282143551548643, + "99.9" : 1.7282143551548643, + "99.99" : 1.7282143551548643, + "99.999" : 1.7282143551548643, + "99.9999" : 1.7282143551548643, + "100.0" : 1.7282143551548643 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.724945010664874, + 1.7265763975379063 + ], + [ + 1.726929478958034, + 1.7282143551548643 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8628031120549917, + "scoreError" : 0.0767462701324756, + "scoreConfidence" : [ + 0.7860568419225161, + 0.9395493821874673 + ], + "scorePercentiles" : { + "0.0" : 0.8451682861185522, + "50.0" : 0.867492884671893, + "90.0" : 0.8710583927576289, + "95.0" : 0.8710583927576289, + "99.0" : 0.8710583927576289, + "99.9" : 0.8710583927576289, + "99.99" : 0.8710583927576289, + "99.999" : 0.8710583927576289, + "99.9999" : 0.8710583927576289, + "100.0" : 0.8710583927576289 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8673623407164245, + 0.8676234286273615 + ], + [ + 0.8710583927576289, + 0.8451682861185522 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.31392561301447, + "scoreError" : 0.1312391844802445, + "scoreConfidence" : [ + 16.182686428534225, + 16.445164797494712 + ], + "scorePercentiles" : { + "0.0" : 16.21093971066763, + "50.0" : 16.302884394353885, + "90.0" : 16.46017338456293, + "95.0" : 16.46017338456293, + "99.0" : 16.46017338456293, + "99.9" : 16.46017338456293, + "99.99" : 16.46017338456293, + "99.999" : 16.46017338456293, + "99.9999" : 16.46017338456293, + "100.0" : 16.46017338456293 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.335544036726933, + 16.3881504707433, + 16.338990592960965 + ], + [ + 16.46017338456293, + 16.300954823858877, + 16.302884394353885 + ], + [ + 16.250290632880514, + 16.23740247037521, + 16.21093971066763 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2756.9992365127205, + "scoreError" : 113.15020257290064, + "scoreConfidence" : [ + 2643.84903393982, + 2870.149439085621 + ], + "scorePercentiles" : { + "0.0" : 2698.7491764529773, + "50.0" : 2720.6434970594128, + "90.0" : 2847.352513628344, + "95.0" : 2847.352513628344, + "99.0" : 2847.352513628344, + "99.9" : 2847.352513628344, + "99.99" : 2847.352513628344, + "99.999" : 2847.352513628344, + "99.9999" : 2847.352513628344, + "100.0" : 2847.352513628344 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2708.7644589191254, + 2720.6434970594128, + 2722.404526193519 + ], + [ + 2710.1717555299124, + 2698.7491764529773, + 2713.328570944813 + ], + [ + 2846.681855022229, + 2847.352513628344, + 2844.896774864152 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69904.38873607699, + "scoreError" : 1519.5438025687874, + "scoreConfidence" : [ + 68384.8449335082, + 71423.93253864578 + ], + "scorePercentiles" : { + "0.0" : 68682.559730696, + "50.0" : 70478.32467330323, + "90.0" : 70580.13042248992, + "95.0" : 70580.13042248992, + "99.0" : 70580.13042248992, + "99.9" : 70580.13042248992, + "99.99" : 70580.13042248992, + "99.999" : 70580.13042248992, + "99.9999" : 70580.13042248992, + "100.0" : 70580.13042248992 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 68682.559730696, + 68708.866932472, + 68707.26495938459 + ], + [ + 70518.02892766449, + 70457.87631837883, + 70478.32467330323 + ], + [ + 70508.3088102308, + 70498.13785007298, + 70580.13042248992 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 350.97170890665683, + "scoreError" : 8.839750478157988, + "scoreConfidence" : [ + 342.1319584284988, + 359.81145938481484 + ], + "scorePercentiles" : { + "0.0" : 344.2073326740012, + "50.0" : 350.7670243218901, + "90.0" : 357.7030520279713, + "95.0" : 357.7030520279713, + "99.0" : 357.7030520279713, + "99.9" : 357.7030520279713, + "99.99" : 357.7030520279713, + "99.999" : 357.7030520279713, + "99.9999" : 357.7030520279713, + "100.0" : 357.7030520279713 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 356.5023818760904, + 356.86336793959464, + 357.7030520279713 + ], + [ + 344.51655037432863, + 344.2073326740012, + 346.18135193755194 + ], + [ + 351.4179954510821, + 350.7670243218901, + 350.58632355740076 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.13558739995234, + "scoreError" : 0.9471044773107464, + "scoreConfidence" : [ + 106.1884829226416, + 108.08269187726309 + ], + "scorePercentiles" : { + "0.0" : 106.41150472365675, + "50.0" : 106.98591081143343, + "90.0" : 108.05644484593567, + "95.0" : 108.05644484593567, + "99.0" : 108.05644484593567, + "99.9" : 108.05644484593567, + "99.99" : 108.05644484593567, + "99.999" : 108.05644484593567, + "99.9999" : 108.05644484593567, + "100.0" : 108.05644484593567 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 108.05644484593567, + 106.98591081143343, + 106.86280167853995 + ], + [ + 107.3278838833463, + 107.63659682409566, + 107.66812717658092 + ], + [ + 106.62162483191045, + 106.41150472365675, + 106.64939182407181 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06116770333920915, + "scoreError" : 4.8614906962900385E-4, + "scoreConfidence" : [ + 0.06068155426958015, + 0.06165385240883815 + ], + "scorePercentiles" : { + "0.0" : 0.060782978586450445, + "50.0" : 0.061090301025083386, + "90.0" : 0.06161584813121542, + "95.0" : 0.06161584813121542, + "99.0" : 0.06161584813121542, + "99.9" : 0.06161584813121542, + "99.99" : 0.06161584813121542, + "99.999" : 0.06161584813121542, + "99.9999" : 0.06161584813121542, + "100.0" : 0.06161584813121542 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06153806217731365, + 0.06138916308364743, + 0.06161584813121542 + ], + [ + 0.061090301025083386, + 0.06104354878525211, + 0.061186428299589445 + ], + [ + 0.06095554725825328, + 0.06090745270607725, + 0.060782978586450445 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.695521446448638E-4, + "scoreError" : 2.8262222982506193E-5, + "scoreConfidence" : [ + 3.412899216623576E-4, + 3.9781436762737E-4 + ], + "scorePercentiles" : { + "0.0" : 3.5000887232047905E-4, + "50.0" : 3.6917912816374846E-4, + "90.0" : 3.8959380126631364E-4, + "95.0" : 3.8959380126631364E-4, + "99.0" : 3.8959380126631364E-4, + "99.9" : 3.8959380126631364E-4, + "99.99" : 3.8959380126631364E-4, + "99.999" : 3.8959380126631364E-4, + "99.9999" : 3.8959380126631364E-4, + "100.0" : 3.8959380126631364E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.5046645867463925E-4, + 3.5000887232047905E-4, + 3.5024093424695045E-4 + ], + [ + 3.8959380126631364E-4, + 3.8892023345357696E-4, + 3.886819629837889E-4 + ], + [ + 3.700855260474804E-4, + 3.6917912816374846E-4, + 3.687923846467969E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014166576121955722, + "scoreError" : 2.1144263631359052E-4, + "scoreConfidence" : [ + 0.01395513348564213, + 0.014378018758269313 + ], + "scorePercentiles" : { + "0.0" : 0.014046923717671385, + "50.0" : 0.014122111461491641, + "90.0" : 0.01439731619304848, + "95.0" : 0.01439731619304848, + "99.0" : 0.01439731619304848, + "99.9" : 0.01439731619304848, + "99.99" : 0.01439731619304848, + "99.999" : 0.01439731619304848, + "99.9999" : 0.01439731619304848, + "100.0" : 0.01439731619304848 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01439731619304848, + 0.014281812945140039, + 0.014289442321377029 + ], + [ + 0.014058839168851619, + 0.014046923717671385, + 0.014048392538699385 + ], + [ + 0.01413298399034446, + 0.014122111461491641, + 0.01412136276097747 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9740776945547436, + "scoreError" : 0.009058175914346716, + "scoreConfidence" : [ + 0.9650195186403968, + 0.9831358704690903 + ], + "scorePercentiles" : { + "0.0" : 0.9649532202817445, + "50.0" : 0.9764470310486233, + "90.0" : 0.979412945255117, + "95.0" : 0.979412945255117, + "99.0" : 0.979412945255117, + "99.9" : 0.979412945255117, + "99.99" : 0.979412945255117, + "99.999" : 0.979412945255117, + "99.9999" : 0.979412945255117, + "100.0" : 0.979412945255117 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9791201020168396, + 0.9764470310486233, + 0.9716871637193937 + ], + [ + 0.9707747388856532, + 0.9649532202817445, + 0.9679974266769916 + ], + [ + 0.979412945255117, + 0.9793519523063363, + 0.9769546708019927 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013012135619588671, + "scoreError" : 3.106285482246328E-4, + "scoreConfidence" : [ + 0.012701507071364039, + 0.013322764167813304 + ], + "scorePercentiles" : { + "0.0" : 0.012917852429793061, + "50.0" : 0.012971381308933288, + "90.0" : 0.013147150097681156, + "95.0" : 0.013147150097681156, + "99.0" : 0.013147150097681156, + "99.9" : 0.013147150097681156, + "99.99" : 0.013147150097681156, + "99.999" : 0.013147150097681156, + "99.9999" : 0.013147150097681156, + "100.0" : 0.013147150097681156 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012917852429793061, + 0.012919215704208975, + 0.012924454169714609 + ], + [ + 0.013018308448151966, + 0.013145832867982269, + 0.013147150097681156 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.632083144066653, + "scoreError" : 0.07389883297062878, + "scoreConfidence" : [ + 3.5581843110960243, + 3.7059819770372817 + ], + "scorePercentiles" : { + "0.0" : 3.590731975592247, + "50.0" : 3.6395454342607834, + "90.0" : 3.6549121504747992, + "95.0" : 3.6549121504747992, + "99.0" : 3.6549121504747992, + "99.9" : 3.6549121504747992, + "99.99" : 3.6549121504747992, + "99.999" : 3.6549121504747992, + "99.9999" : 3.6549121504747992, + "100.0" : 3.6549121504747992 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6517999656934306, + 3.6549121504747992, + 3.6541691212563916 + ], + [ + 3.590731975592247, + 3.613594748554913, + 3.627290902828136 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.814660377440884, + "scoreError" : 0.024490734182133617, + "scoreConfidence" : [ + 2.7901696432587504, + 2.8391511116230173 + ], + "scorePercentiles" : { + "0.0" : 2.797245694825175, + "50.0" : 2.8061119545454547, + "90.0" : 2.8349407777777778, + "95.0" : 2.8349407777777778, + "99.0" : 2.8349407777777778, + "99.9" : 2.8349407777777778, + "99.99" : 2.8349407777777778, + "99.999" : 2.8349407777777778, + "99.9999" : 2.8349407777777778, + "100.0" : 2.8349407777777778 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8255445700564974, + 2.8261645255721954, + 2.8051827203366058 + ], + [ + 2.8037174272497896, + 2.797245694825175, + 2.8016132535014004 + ], + [ + 2.8349407777777778, + 2.831422473103058, + 2.8061119545454547 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18077341062741054, + "scoreError" : 0.014353792857067442, + "scoreConfidence" : [ + 0.1664196177703431, + 0.19512720348447798 + ], + "scorePercentiles" : { + "0.0" : 0.17193353889930024, + "50.0" : 0.1785189516405441, + "90.0" : 0.19204514456905822, + "95.0" : 0.19204514456905822, + "99.0" : 0.19204514456905822, + "99.9" : 0.19204514456905822, + "99.99" : 0.19204514456905822, + "99.999" : 0.19204514456905822, + "99.9999" : 0.19204514456905822, + "100.0" : 0.19204514456905822 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.19204514456905822, + 0.19126840104047127, + 0.19137153131757725 + ], + [ + 0.17851557071707813, + 0.17853092246581212, + 0.1785189516405441 + ], + [ + 0.17207392991603002, + 0.17193353889930024, + 0.17270270508082344 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3255786312013808, + "scoreError" : 0.006781671949494997, + "scoreConfidence" : [ + 0.31879695925188584, + 0.3323603031508758 + ], + "scorePercentiles" : { + "0.0" : 0.3198157626083341, + "50.0" : 0.32745385523903076, + "90.0" : 0.32982301777704487, + "95.0" : 0.32982301777704487, + "99.0" : 0.32982301777704487, + "99.9" : 0.32982301777704487, + "99.99" : 0.32982301777704487, + "99.999" : 0.32982301777704487, + "99.9999" : 0.32982301777704487, + "100.0" : 0.32982301777704487 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32040968607221815, + 0.3207289064143682, + 0.3198157626083341 + ], + [ + 0.32693975477311366, + 0.32745385523903076, + 0.3277725755162242 + ], + [ + 0.32982301777704487, + 0.32863060256325993, + 0.3286335198488334 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16520958330540386, + "scoreError" : 0.003904719990913554, + "scoreConfidence" : [ + 0.16130486331449032, + 0.1691143032963174 + ], + "scorePercentiles" : { + "0.0" : 0.1623530315934735, + "50.0" : 0.1654880534015125, + "90.0" : 0.16782697615211628, + "95.0" : 0.16782697615211628, + "99.0" : 0.16782697615211628, + "99.9" : 0.16782697615211628, + "99.99" : 0.16782697615211628, + "99.999" : 0.16782697615211628, + "99.9999" : 0.16782697615211628, + "100.0" : 0.16782697615211628 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16251762683438156, + 0.1623530315934735, + 0.16235577231548529 + ], + [ + 0.16781707266319854, + 0.16782697615211628, + 0.16760257225220393 + ], + [ + 0.16563840416404413, + 0.1652867403722191, + 0.1654880534015125 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3928930526593304, + "scoreError" : 0.0025513234074087984, + "scoreConfidence" : [ + 0.39034172925192157, + 0.3954443760667392 + ], + "scorePercentiles" : { + "0.0" : 0.3907715779766324, + "50.0" : 0.392861043134944, + "90.0" : 0.39614403272064647, + "95.0" : 0.39614403272064647, + "99.0" : 0.39614403272064647, + "99.9" : 0.39614403272064647, + "99.99" : 0.39614403272064647, + "99.999" : 0.39614403272064647, + "99.9999" : 0.39614403272064647, + "100.0" : 0.39614403272064647 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3937948602087025, + 0.3928797329692779, + 0.3920452974360985 + ], + [ + 0.39313111813035617, + 0.3915590486687549, + 0.3907715779766324 + ], + [ + 0.39614403272064647, + 0.392861043134944, + 0.3928507626885607 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15668086807705478, + "scoreError" : 0.0026468715335953544, + "scoreConfidence" : [ + 0.15403399654345942, + 0.15932773961065014 + ], + "scorePercentiles" : { + "0.0" : 0.15500656603890567, + "50.0" : 0.15602657285507, + "90.0" : 0.1587486827634378, + "95.0" : 0.1587486827634378, + "99.0" : 0.1587486827634378, + "99.9" : 0.1587486827634378, + "99.99" : 0.1587486827634378, + "99.999" : 0.1587486827634378, + "99.9999" : 0.1587486827634378, + "100.0" : 0.1587486827634378 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1564891541844016, + 0.15550979076602495, + 0.15500656603890567 + ], + [ + 0.15869252295412348, + 0.1586838797683275, + 0.1587486827634378 + ], + [ + 0.15602657285507, + 0.15557162095519603, + 0.15539902240800596 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.047155284663097694, + "scoreError" : 4.936480783222632E-4, + "scoreConfidence" : [ + 0.04666163658477543, + 0.04764893274141996 + ], + "scorePercentiles" : { + "0.0" : 0.04676411413981285, + "50.0" : 0.047194693460316864, + "90.0" : 0.04768852778055957, + "95.0" : 0.04768852778055957, + "99.0" : 0.04768852778055957, + "99.9" : 0.04768852778055957, + "99.99" : 0.04768852778055957, + "99.999" : 0.04768852778055957, + "99.9999" : 0.04768852778055957, + "100.0" : 0.04768852778055957 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04768852778055957, + 0.047379118801701835, + 0.047233946125687834 + ], + [ + 0.047268657425789375, + 0.04714530012776209, + 0.047194693460316864 + ], + [ + 0.04693128750703961, + 0.04679191659920923, + 0.04676411413981285 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9336798.090218965, + "scoreError" : 189887.07302217573, + "scoreConfidence" : [ + 9146911.01719679, + 9526685.16324114 + ], + "scorePercentiles" : { + "0.0" : 9185498.928374656, + "50.0" : 9326856.899347624, + "90.0" : 9472147.553977273, + "95.0" : 9472147.553977273, + "99.0" : 9472147.553977273, + "99.9" : 9472147.553977273, + "99.99" : 9472147.553977273, + "99.999" : 9472147.553977273, + "99.9999" : 9472147.553977273, + "100.0" : 9472147.553977273 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9224735.104147466, + 9185498.928374656, + 9203164.059797607 + ], + [ + 9472147.553977273, + 9452682.468809074, + 9455593.06899811 + ], + [ + 9388428.242964353, + 9326856.899347624, + 9322076.48555452 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-02T00:54:25Z-14343b248c8e4c4f6f5e3567656bf546701169c7-jdk17.json b/performance-results/2025-04-02T00:54:25Z-14343b248c8e4c4f6f5e3567656bf546701169c7-jdk17.json new file mode 100644 index 000000000..46a74f75a --- /dev/null +++ b/performance-results/2025-04-02T00:54:25Z-14343b248c8e4c4f6f5e3567656bf546701169c7-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.421526384634706, + "scoreError" : 0.024204253048581707, + "scoreConfidence" : [ + 3.397322131586124, + 3.4457306376832877 + ], + "scorePercentiles" : { + "0.0" : 3.4173147730655797, + "50.0" : 3.421193313876114, + "90.0" : 3.426404137721016, + "95.0" : 3.426404137721016, + "99.0" : 3.426404137721016, + "99.9" : 3.426404137721016, + "99.99" : 3.426404137721016, + "99.999" : 3.426404137721016, + "99.9999" : 3.426404137721016, + "100.0" : 3.426404137721016 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.420782629000279, + 3.426404137721016 + ], + [ + 3.4173147730655797, + 3.4216039987519493 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7283454988973057, + "scoreError" : 0.0025880343464985893, + "scoreConfidence" : [ + 1.7257574645508071, + 1.7309335332438043 + ], + "scorePercentiles" : { + "0.0" : 1.7279527704336943, + "50.0" : 1.7282621497493265, + "90.0" : 1.728904925656876, + "95.0" : 1.728904925656876, + "99.0" : 1.728904925656876, + "99.9" : 1.728904925656876, + "99.99" : 1.728904925656876, + "99.999" : 1.728904925656876, + "99.9999" : 1.728904925656876, + "100.0" : 1.728904925656876 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7279527704336943, + 1.7282545511010183 + ], + [ + 1.7282697483976346, + 1.728904925656876 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8691224272889502, + "scoreError" : 0.0033289897328440546, + "scoreConfidence" : [ + 0.8657934375561062, + 0.8724514170217942 + ], + "scorePercentiles" : { + "0.0" : 0.8686308534225845, + "50.0" : 0.869010981659937, + "90.0" : 0.8698368924133419, + "95.0" : 0.8698368924133419, + "99.0" : 0.8698368924133419, + "99.9" : 0.8698368924133419, + "99.99" : 0.8698368924133419, + "99.999" : 0.8698368924133419, + "99.9999" : 0.8698368924133419, + "100.0" : 0.8698368924133419 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8686308534225845, + 0.869109060504571 + ], + [ + 0.868912902815303, + 0.8698368924133419 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.309649787987688, + "scoreError" : 0.07794437405308531, + "scoreConfidence" : [ + 16.231705413934602, + 16.387594162040774 + ], + "scorePercentiles" : { + "0.0" : 16.26765662772302, + "50.0" : 16.28656758905185, + "90.0" : 16.38712193348276, + "95.0" : 16.38712193348276, + "99.0" : 16.38712193348276, + "99.9" : 16.38712193348276, + "99.99" : 16.38712193348276, + "99.999" : 16.38712193348276, + "99.9999" : 16.38712193348276, + "100.0" : 16.38712193348276 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.28656758905185, + 16.273200002371972, + 16.299111445359156 + ], + [ + 16.366013192165212, + 16.3540962884704, + 16.38712193348276 + ], + [ + 16.26765662772302, + 16.26851464142473, + 16.28456637184009 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2712.6069740459716, + "scoreError" : 11.038642078368325, + "scoreConfidence" : [ + 2701.568331967603, + 2723.64561612434 + ], + "scorePercentiles" : { + "0.0" : 2703.8693752278577, + "50.0" : 2711.819323271369, + "90.0" : 2722.840900870486, + "95.0" : 2722.840900870486, + "99.0" : 2722.840900870486, + "99.9" : 2722.840900870486, + "99.99" : 2722.840900870486, + "99.999" : 2722.840900870486, + "99.9999" : 2722.840900870486, + "100.0" : 2722.840900870486 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2711.6700217383127, + 2712.519688484181, + 2711.819323271369 + ], + [ + 2722.840900870486, + 2713.2880055354126, + 2722.7197608423567 + ], + [ + 2703.8693752278577, + 2708.9476508866146, + 2705.7880395571538 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70977.29311251568, + "scoreError" : 253.57898466017767, + "scoreConfidence" : [ + 70723.71412785549, + 71230.87209717586 + ], + "scorePercentiles" : { + "0.0" : 70751.37602239971, + "50.0" : 70921.36587253957, + "90.0" : 71183.33947884571, + "95.0" : 71183.33947884571, + "99.0" : 71183.33947884571, + "99.9" : 71183.33947884571, + "99.99" : 71183.33947884571, + "99.999" : 71183.33947884571, + "99.9999" : 71183.33947884571, + "100.0" : 71183.33947884571 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70913.88389465859, + 70969.59237313575, + 70921.36587253957 + ], + [ + 70844.70664555264, + 70751.37602239971, + 70911.93988780752 + ], + [ + 71158.56853347426, + 71140.86530422738, + 71183.33947884571 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 350.31244511380766, + "scoreError" : 6.666002229820555, + "scoreConfidence" : [ + 343.6464428839871, + 356.9784473436282 + ], + "scorePercentiles" : { + "0.0" : 345.20414333375453, + "50.0" : 350.5234018035162, + "90.0" : 355.26663651937116, + "95.0" : 355.26663651937116, + "99.0" : 355.26663651937116, + "99.9" : 355.26663651937116, + "99.99" : 355.26663651937116, + "99.999" : 355.26663651937116, + "99.9999" : 355.26663651937116, + "100.0" : 355.26663651937116 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 354.0198481362827, + 354.58181399517474, + 355.26663651937116 + ], + [ + 350.5234018035162, + 350.38433326530674, + 351.37866449831887 + ], + [ + 345.20414333375453, + 345.84513014838336, + 345.6080343241608 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 104.87761273102751, + "scoreError" : 2.104556922800753, + "scoreConfidence" : [ + 102.77305580822676, + 106.98216965382827 + ], + "scorePercentiles" : { + "0.0" : 103.59739904226069, + "50.0" : 104.47823668180365, + "90.0" : 106.64228593068609, + "95.0" : 106.64228593068609, + "99.0" : 106.64228593068609, + "99.9" : 106.64228593068609, + "99.99" : 106.64228593068609, + "99.999" : 106.64228593068609, + "99.9999" : 106.64228593068609, + "100.0" : 106.64228593068609 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 103.59739904226069, + 103.72012032272589, + 103.6785773206504 + ], + [ + 104.57502425284017, + 104.47823668180365, + 104.42984806950203 + ], + [ + 106.64228593068609, + 106.3804639830908, + 106.39655897568788 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.061408572434368404, + "scoreError" : 4.563862938090769E-4, + "scoreConfidence" : [ + 0.06095218614055933, + 0.06186495872817748 + ], + "scorePercentiles" : { + "0.0" : 0.06097075857086242, + "50.0" : 0.061388873282667684, + "90.0" : 0.06178538960661835, + "95.0" : 0.06178538960661835, + "99.0" : 0.06178538960661835, + "99.9" : 0.06178538960661835, + "99.99" : 0.06178538960661835, + "99.999" : 0.06178538960661835, + "99.9999" : 0.06178538960661835, + "100.0" : 0.06178538960661835 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06097075857086242, + 0.061146214680974656, + 0.0612855844349249 + ], + [ + 0.061388873282667684, + 0.06155373061392818, + 0.06124024126422281 + ], + [ + 0.06178538960661835, + 0.061691854335031895, + 0.06161450512008478 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.7316652617251883E-4, + "scoreError" : 8.119757313773042E-6, + "scoreConfidence" : [ + 3.6504676885874577E-4, + 3.812862834862919E-4 + ], + "scorePercentiles" : { + "0.0" : 3.667738323748724E-4, + "50.0" : 3.752289794739548E-4, + "90.0" : 3.778600239409276E-4, + "95.0" : 3.778600239409276E-4, + "99.0" : 3.778600239409276E-4, + "99.9" : 3.778600239409276E-4, + "99.99" : 3.778600239409276E-4, + "99.999" : 3.778600239409276E-4, + "99.9999" : 3.778600239409276E-4, + "100.0" : 3.778600239409276E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.668491935524401E-4, + 3.667738323748724E-4, + 3.6701340072654664E-4 + ], + [ + 3.778600239409276E-4, + 3.7740688490455637E-4, + 3.7720805236979543E-4 + ], + [ + 3.754190644322722E-4, + 3.7473930377730384E-4, + 3.752289794739548E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014008341450335656, + "scoreError" : 1.4498033977860858E-4, + "scoreConfidence" : [ + 0.013863361110557047, + 0.014153321790114266 + ], + "scorePercentiles" : { + "0.0" : 0.013880233651371766, + "50.0" : 0.013988460148024223, + "90.0" : 0.014114319541008596, + "95.0" : 0.014114319541008596, + "99.0" : 0.014114319541008596, + "99.9" : 0.014114319541008596, + "99.99" : 0.014114319541008596, + "99.999" : 0.014114319541008596, + "99.9999" : 0.014114319541008596, + "100.0" : 0.014114319541008596 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014114319541008596, + 0.014112022618451226, + 0.014106586750966642 + ], + [ + 0.013912293381858856, + 0.013880233651371766, + 0.013970244557602174 + ], + [ + 0.013988460148024223, + 0.014002486228898102, + 0.01398842617483931 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9778241649362742, + "scoreError" : 0.004838244956807494, + "scoreConfidence" : [ + 0.9729859199794667, + 0.9826624098930817 + ], + "scorePercentiles" : { + "0.0" : 0.9736546614740531, + "50.0" : 0.9773280237467018, + "90.0" : 0.9821452236299352, + "95.0" : 0.9821452236299352, + "99.0" : 0.9821452236299352, + "99.9" : 0.9821452236299352, + "99.99" : 0.9821452236299352, + "99.999" : 0.9821452236299352, + "99.9999" : 0.9821452236299352, + "100.0" : 0.9821452236299352 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9749890558642879, + 0.9736546614740531, + 0.9772415279976546 + ], + [ + 0.9773280237467018, + 0.9776727197184476, + 0.9762410675517376 + ], + [ + 0.9819867925176747, + 0.9821452236299352, + 0.9791584119259767 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012869722100222638, + "scoreError" : 3.8966084585346096E-4, + "scoreConfidence" : [ + 0.012480061254369177, + 0.013259382946076098 + ], + "scorePercentiles" : { + "0.0" : 0.012669512538736168, + "50.0" : 0.012853368862123522, + "90.0" : 0.013023504013752508, + "95.0" : 0.013023504013752508, + "99.0" : 0.013023504013752508, + "99.9" : 0.013023504013752508, + "99.99" : 0.013023504013752508, + "99.999" : 0.013023504013752508, + "99.9999" : 0.013023504013752508, + "100.0" : 0.013023504013752508 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012900479146832615, + 0.013020436614143498, + 0.013023504013752508 + ], + [ + 0.012669512538736168, + 0.0127981417104566, + 0.012806258577414431 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.5468241771900515, + "scoreError" : 0.21376380574191445, + "scoreConfidence" : [ + 3.333060371448137, + 3.760587982931966 + ], + "scorePercentiles" : { + "0.0" : 3.453652321132597, + "50.0" : 3.551183448477694, + "90.0" : 3.61925639146165, + "95.0" : 3.61925639146165, + "99.0" : 3.61925639146165, + "99.9" : 3.61925639146165, + "99.99" : 3.61925639146165, + "99.999" : 3.61925639146165, + "99.9999" : 3.61925639146165, + "100.0" : 3.61925639146165 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.453652321132597, + 3.4880539741980474, + 3.4936314308659218 + ], + [ + 3.6176154793926245, + 3.61925639146165, + 3.608735466089466 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8304880688757925, + "scoreError" : 0.07599696860642481, + "scoreConfidence" : [ + 2.7544911002693677, + 2.9064850374822173 + ], + "scorePercentiles" : { + "0.0" : 2.780787323324993, + "50.0" : 2.814811319729806, + "90.0" : 2.8892461886192953, + "95.0" : 2.8892461886192953, + "99.0" : 2.8892461886192953, + "99.9" : 2.8892461886192953, + "99.99" : 2.8892461886192953, + "99.999" : 2.8892461886192953, + "99.9999" : 2.8892461886192953, + "100.0" : 2.8892461886192953 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8892461886192953, + 2.8884606503032053, + 2.887350749133949 + ], + [ + 2.793379465083799, + 2.7882133852801783, + 2.780787323324993 + ], + [ + 2.8192035718714767, + 2.814811319729806, + 2.812939966535433 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17450209716197213, + "scoreError" : 0.005812830363912847, + "scoreConfidence" : [ + 0.1686892667980593, + 0.18031492752588496 + ], + "scorePercentiles" : { + "0.0" : 0.170191207610749, + "50.0" : 0.1748316288921135, + "90.0" : 0.17852150263312924, + "95.0" : 0.17852150263312924, + "99.0" : 0.17852150263312924, + "99.9" : 0.17852150263312924, + "99.99" : 0.17852150263312924, + "99.999" : 0.17852150263312924, + "99.9999" : 0.17852150263312924, + "100.0" : 0.17852150263312924 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17498419680134386, + 0.1748316288921135, + 0.17469628181611727 + ], + [ + 0.17852150263312924, + 0.17834503670281068, + 0.17807120077281954 + ], + [ + 0.1706394429731759, + 0.170191207610749, + 0.1702383762554901 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33112232276848347, + "scoreError" : 0.01408401635978298, + "scoreConfidence" : [ + 0.3170383064087005, + 0.3452063391282664 + ], + "scorePercentiles" : { + "0.0" : 0.3189610034765413, + "50.0" : 0.33347466086434574, + "90.0" : 0.33958328683486705, + "95.0" : 0.33958328683486705, + "99.0" : 0.33958328683486705, + "99.9" : 0.33958328683486705, + "99.99" : 0.33958328683486705, + "99.999" : 0.33958328683486705, + "99.9999" : 0.33958328683486705, + "100.0" : 0.33958328683486705 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3213060990553913, + 0.3212401773209123, + 0.3189610034765413 + ], + [ + 0.3333820681090812, + 0.3337180653073483, + 0.33347466086434574 + ], + [ + 0.33958328683486705, + 0.3391921009734423, + 0.3392434429744216 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15903038363523334, + "scoreError" : 0.0032727032804364393, + "scoreConfidence" : [ + 0.1557576803547969, + 0.16230308691566978 + ], + "scorePercentiles" : { + "0.0" : 0.1568177738748628, + "50.0" : 0.15869251267931953, + "90.0" : 0.16177639883523418, + "95.0" : 0.16177639883523418, + "99.0" : 0.16177639883523418, + "99.9" : 0.16177639883523418, + "99.99" : 0.16177639883523418, + "99.999" : 0.16177639883523418, + "99.9999" : 0.16177639883523418, + "100.0" : 0.16177639883523418 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15893024055179428, + 0.1585677964830495, + 0.15869251267931953 + ], + [ + 0.15714625532316107, + 0.15691627485132356, + 0.1568177738748628 + ], + [ + 0.16131501726029165, + 0.16111118285806347, + 0.16177639883523418 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39920263185700916, + "scoreError" : 0.01508577615443086, + "scoreConfidence" : [ + 0.3841168557025783, + 0.41428840801144 + ], + "scorePercentiles" : { + "0.0" : 0.3892273552718639, + "50.0" : 0.3956107737558351, + "90.0" : 0.4115906599991769, + "95.0" : 0.4115906599991769, + "99.0" : 0.4115906599991769, + "99.9" : 0.4115906599991769, + "99.99" : 0.4115906599991769, + "99.999" : 0.4115906599991769, + "99.9999" : 0.4115906599991769, + "100.0" : 0.4115906599991769 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39916488715922244, + 0.394366896561243, + 0.3937410017324199 + ], + [ + 0.4115906599991769, + 0.4101335106016487, + 0.40964308319678844 + ], + [ + 0.3956107737558351, + 0.3893455184348842, + 0.3892273552718639 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15671659954710748, + "scoreError" : 0.002376152157258202, + "scoreConfidence" : [ + 0.15434044738984928, + 0.15909275170436568 + ], + "scorePercentiles" : { + "0.0" : 0.15505241405668568, + "50.0" : 0.1567589684761651, + "90.0" : 0.15864113097069973, + "95.0" : 0.15864113097069973, + "99.0" : 0.15864113097069973, + "99.9" : 0.15864113097069973, + "99.99" : 0.15864113097069973, + "99.999" : 0.15864113097069973, + "99.9999" : 0.15864113097069973, + "100.0" : 0.15864113097069973 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15712338663859474, + 0.1567589684761651, + 0.15637328781410767 + ], + [ + 0.15864113097069973, + 0.15834399254215817, + 0.15792437585079672 + ], + [ + 0.15505241405668568, + 0.15506374830596517, + 0.15516809126879452 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.046883255194173766, + "scoreError" : 9.061111451677109E-4, + "scoreConfidence" : [ + 0.045977144049006054, + 0.04778936633934148 + ], + "scorePercentiles" : { + "0.0" : 0.046237800306090364, + "50.0" : 0.046795298544688814, + "90.0" : 0.04808867215992152, + "95.0" : 0.04808867215992152, + "99.0" : 0.04808867215992152, + "99.9" : 0.04808867215992152, + "99.99" : 0.04808867215992152, + "99.999" : 0.04808867215992152, + "99.9999" : 0.04808867215992152, + "100.0" : 0.04808867215992152 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.046750469346061786, + 0.046892388873518806, + 0.047285378485471784 + ], + [ + 0.046619141515195306, + 0.04643861545641564, + 0.046237800306090364 + ], + [ + 0.04808867215992152, + 0.046795298544688814, + 0.04684153206019982 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9241780.57363828, + "scoreError" : 265931.63507504837, + "scoreConfidence" : [ + 8975848.938563233, + 9507712.208713328 + ], + "scorePercentiles" : { + "0.0" : 9038273.207768744, + "50.0" : 9277086.333951762, + "90.0" : 9444023.251180358, + "95.0" : 9444023.251180358, + "99.0" : 9444023.251180358, + "99.9" : 9444023.251180358, + "99.99" : 9444023.251180358, + "99.999" : 9444023.251180358, + "99.9999" : 9444023.251180358, + "100.0" : 9444023.251180358 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9444023.251180358, + 9391734.985915493, + 9381496.035647279 + ], + [ + 9278744.134508349, + 9262558.790740741, + 9277086.333951762 + ], + [ + 9061707.098731885, + 9040401.32429991, + 9038273.207768744 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-02T23:08:02Z-5a0354109936c23ea8738604500215b1936cbd6f-jdk17.json b/performance-results/2025-04-02T23:08:02Z-5a0354109936c23ea8738604500215b1936cbd6f-jdk17.json new file mode 100644 index 000000000..41be86bf2 --- /dev/null +++ b/performance-results/2025-04-02T23:08:02Z-5a0354109936c23ea8738604500215b1936cbd6f-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.424479155837928, + "scoreError" : 0.011075372549510833, + "scoreConfidence" : [ + 3.4134037832884174, + 3.435554528387439 + ], + "scorePercentiles" : { + "0.0" : 3.4222286409542613, + "50.0" : 3.424837405471688, + "90.0" : 3.426013171454075, + "95.0" : 3.426013171454075, + "99.0" : 3.426013171454075, + "99.9" : 3.426013171454075, + "99.99" : 3.426013171454075, + "99.999" : 3.426013171454075, + "99.9999" : 3.426013171454075, + "100.0" : 3.426013171454075 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.426013171454075, + 3.4255917004773675 + ], + [ + 3.4222286409542613, + 3.4240831104660083 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.730114924834354, + "scoreError" : 0.015068036624339469, + "scoreConfidence" : [ + 1.7150468882100145, + 1.7451829614586933 + ], + "scorePercentiles" : { + "0.0" : 1.7278191249827204, + "50.0" : 1.7300845809684677, + "90.0" : 1.7324714124177591, + "95.0" : 1.7324714124177591, + "99.0" : 1.7324714124177591, + "99.9" : 1.7324714124177591, + "99.99" : 1.7324714124177591, + "99.999" : 1.7324714124177591, + "99.9999" : 1.7324714124177591, + "100.0" : 1.7324714124177591 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7278191249827204, + 1.7317408171276252 + ], + [ + 1.7284283448093105, + 1.7324714124177591 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8681857109496245, + "scoreError" : 0.0035043749820760526, + "scoreConfidence" : [ + 0.8646813359675485, + 0.8716900859317005 + ], + "scorePercentiles" : { + "0.0" : 0.8676305266413037, + "50.0" : 0.8682075476996174, + "90.0" : 0.8686972217579596, + "95.0" : 0.8686972217579596, + "99.0" : 0.8686972217579596, + "99.9" : 0.8686972217579596, + "99.99" : 0.8686972217579596, + "99.999" : 0.8686972217579596, + "99.9999" : 0.8686972217579596, + "100.0" : 0.8686972217579596 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8678129209888844, + 0.8686021744103505 + ], + [ + 0.8676305266413037, + 0.8686972217579596 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.387280261757567, + "scoreError" : 0.10028607635809765, + "scoreConfidence" : [ + 16.286994185399468, + 16.487566338115666 + ], + "scorePercentiles" : { + "0.0" : 16.299881227884125, + "50.0" : 16.410224457562155, + "90.0" : 16.457636875301638, + "95.0" : 16.457636875301638, + "99.0" : 16.457636875301638, + "99.9" : 16.457636875301638, + "99.99" : 16.457636875301638, + "99.999" : 16.457636875301638, + "99.9999" : 16.457636875301638, + "100.0" : 16.457636875301638 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.299881227884125, + 16.328028210173624, + 16.30546147881785 + ], + [ + 16.457636875301638, + 16.429821212221743, + 16.410224457562155 + ], + [ + 16.412175542163634, + 16.436125687636725, + 16.406167664056625 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2642.0682457066564, + "scoreError" : 114.34022799708357, + "scoreConfidence" : [ + 2527.7280177095727, + 2756.40847370374 + ], + "scorePercentiles" : { + "0.0" : 2555.2046983574915, + "50.0" : 2659.7345801498823, + "90.0" : 2713.6502722405826, + "95.0" : 2713.6502722405826, + "99.0" : 2713.6502722405826, + "99.9" : 2713.6502722405826, + "99.99" : 2713.6502722405826, + "99.999" : 2713.6502722405826, + "99.9999" : 2713.6502722405826, + "100.0" : 2713.6502722405826 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2706.2844882940467, + 2712.2668309135865, + 2713.6502722405826 + ], + [ + 2555.3276391760605, + 2555.2046983574915, + 2558.8986334792153 + ], + [ + 2661.411687999915, + 2655.8353807491285, + 2659.7345801498823 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69729.45525114956, + "scoreError" : 2962.4156855070937, + "scoreConfidence" : [ + 66767.03956564247, + 72691.87093665665 + ], + "scorePercentiles" : { + "0.0" : 67361.01966300381, + "50.0" : 70738.98053842774, + "90.0" : 71080.73631929721, + "95.0" : 71080.73631929721, + "99.0" : 71080.73631929721, + "99.9" : 71080.73631929721, + "99.99" : 71080.73631929721, + "99.999" : 71080.73631929721, + "99.9999" : 71080.73631929721, + "100.0" : 71080.73631929721 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 67411.41767701558, + 67361.01966300381, + 67389.57797458366 + ], + [ + 71080.73631929721, + 71053.29571140243, + 71079.39665194794 + ], + [ + 70705.69662773378, + 70744.97609693388, + 70738.98053842774 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 353.94580919495104, + "scoreError" : 10.159825623076115, + "scoreConfidence" : [ + 343.7859835718749, + 364.10563481802717 + ], + "scorePercentiles" : { + "0.0" : 347.0369763846074, + "50.0" : 353.17931736004226, + "90.0" : 361.39092290805024, + "95.0" : 361.39092290805024, + "99.0" : 361.39092290805024, + "99.9" : 361.39092290805024, + "99.99" : 361.39092290805024, + "99.999" : 361.39092290805024, + "99.9999" : 361.39092290805024, + "100.0" : 361.39092290805024 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 347.3977135026078, + 347.69793010856546, + 347.0369763846074 + ], + [ + 361.2079659440757, + 361.21748163628587, + 361.39092290805024 + ], + [ + 353.2714724807457, + 353.17931736004226, + 353.11250242957925 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.68682541606691, + "scoreError" : 2.1175975242501184, + "scoreConfidence" : [ + 105.5692278918168, + 109.80442294031702 + ], + "scorePercentiles" : { + "0.0" : 106.26146297343669, + "50.0" : 107.34763854854604, + "90.0" : 109.36109832163555, + "95.0" : 109.36109832163555, + "99.0" : 109.36109832163555, + "99.9" : 109.36109832163555, + "99.99" : 109.36109832163555, + "99.999" : 109.36109832163555, + "99.9999" : 109.36109832163555, + "100.0" : 109.36109832163555 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 109.19339810163474, + 109.30825077522033, + 109.36109832163555 + ], + [ + 107.00354599780425, + 106.4757245889034, + 106.26146297343669 + ], + [ + 106.74918851780693, + 107.34763854854604, + 107.48112091961424 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06162681252669893, + "scoreError" : 3.3686119708431755E-4, + "scoreConfidence" : [ + 0.061289951329614616, + 0.061963673723783246 + ], + "scorePercentiles" : { + "0.0" : 0.061328496562593905, + "50.0" : 0.061681442692720474, + "90.0" : 0.06197374492597344, + "95.0" : 0.06197374492597344, + "99.0" : 0.06197374492597344, + "99.9" : 0.06197374492597344, + "99.99" : 0.06197374492597344, + "99.999" : 0.06197374492597344, + "99.9999" : 0.06197374492597344, + "100.0" : 0.06197374492597344 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06197374492597344, + 0.061568095189134614, + 0.061681442692720474 + ], + [ + 0.061702634419482816, + 0.06179707055900928, + 0.06169649623656577 + ], + [ + 0.061328496562593905, + 0.06142226142128862, + 0.061471070733521434 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.601361537296343E-4, + "scoreError" : 1.3735303553208745E-5, + "scoreConfidence" : [ + 3.464008501764256E-4, + 3.7387145728284306E-4 + ], + "scorePercentiles" : { + "0.0" : 3.5257102726447045E-4, + "50.0" : 3.563742360272379E-4, + "90.0" : 3.711108373662132E-4, + "95.0" : 3.711108373662132E-4, + "99.0" : 3.711108373662132E-4, + "99.9" : 3.711108373662132E-4, + "99.99" : 3.711108373662132E-4, + "99.999" : 3.711108373662132E-4, + "99.9999" : 3.711108373662132E-4, + "100.0" : 3.711108373662132E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7094360919965913E-4, + 3.7054810797679537E-4, + 3.711108373662132E-4 + ], + [ + 3.564217083170926E-4, + 3.561934064597772E-4, + 3.563742360272379E-4 + ], + [ + 3.5417943252750647E-4, + 3.5257102726447045E-4, + 3.5288301842795726E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014064441341060416, + "scoreError" : 1.2119529604295307E-4, + "scoreConfidence" : [ + 0.013943246045017463, + 0.01418563663710337 + ], + "scorePercentiles" : { + "0.0" : 0.01398626967601172, + "50.0" : 0.0140487007086081, + "90.0" : 0.014176805886422469, + "95.0" : 0.014176805886422469, + "99.0" : 0.014176805886422469, + "99.9" : 0.014176805886422469, + "99.99" : 0.014176805886422469, + "99.999" : 0.014176805886422469, + "99.9999" : 0.014176805886422469, + "100.0" : 0.014176805886422469 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013999763167326047, + 0.013999175775825382, + 0.01398626967601172 + ], + [ + 0.014029347007575757, + 0.0140487007086081, + 0.01405117447410611 + ], + [ + 0.014176805886422469, + 0.014143796568194129, + 0.014144938805474027 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.009089933464979, + "scoreError" : 0.01145814597855419, + "scoreConfidence" : [ + 0.9976317874864248, + 1.020548079443533 + ], + "scorePercentiles" : { + "0.0" : 1.0003654717415225, + "50.0" : 1.0087827143433528, + "90.0" : 1.0205102271428572, + "95.0" : 1.0205102271428572, + "99.0" : 1.0205102271428572, + "99.9" : 1.0205102271428572, + "99.99" : 1.0205102271428572, + "99.999" : 1.0205102271428572, + "99.9999" : 1.0205102271428572, + "100.0" : 1.0205102271428572 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0153699043557722, + 1.0152101648563598, + 1.0087827143433528 + ], + [ + 1.0026712928614396, + 1.0003654717415225, + 1.0058263027255356 + ], + [ + 1.0031070592718885, + 1.0099662638860836, + 1.0205102271428572 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013063078195670041, + "scoreError" : 3.172213737715068E-4, + "scoreConfidence" : [ + 0.012745856821898535, + 0.013380299569441548 + ], + "scorePercentiles" : { + "0.0" : 0.012905051156776511, + "50.0" : 0.013051076766829785, + "90.0" : 0.013247707986805675, + "95.0" : 0.013247707986805675, + "99.0" : 0.013247707986805675, + "99.9" : 0.013247707986805675, + "99.99" : 0.013247707986805675, + "99.999" : 0.013247707986805675, + "99.9999" : 0.013247707986805675, + "100.0" : 0.013247707986805675 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013015171863042652, + 0.013247707986805675, + 0.013039056843488737 + ], + [ + 0.012905051156776511, + 0.013063096690170833, + 0.013108384633735837 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.972506567178479, + "scoreError" : 0.19669975350394048, + "scoreConfidence" : [ + 3.7758068136745386, + 4.169206320682419 + ], + "scorePercentiles" : { + "0.0" : 3.865339341576507, + "50.0" : 3.980264222581429, + "90.0" : 4.068455570382425, + "95.0" : 4.068455570382425, + "99.0" : 4.068455570382425, + "99.9" : 4.068455570382425, + "99.99" : 4.068455570382425, + "99.999" : 4.068455570382425, + "99.9999" : 4.068455570382425, + "100.0" : 4.068455570382425 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 4.068455570382425, + 3.9299753731343285, + 3.9963807795527155 + ], + [ + 4.010740672814755, + 3.865339341576507, + 3.9641476656101426 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.158331899464004, + "scoreError" : 0.04410759724726521, + "scoreConfidence" : [ + 3.114224302216739, + 3.2024394967112695 + ], + "scorePercentiles" : { + "0.0" : 3.1209627138845555, + "50.0" : 3.151894622439332, + "90.0" : 3.205059529958347, + "95.0" : 3.205059529958347, + "99.0" : 3.205059529958347, + "99.9" : 3.205059529958347, + "99.99" : 3.205059529958347, + "99.999" : 3.205059529958347, + "99.9999" : 3.205059529958347, + "100.0" : 3.205059529958347 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.205059529958347, + 3.151894622439332, + 3.1209627138845555 + ], + [ + 3.1614530736409607, + 3.1490925138539043, + 3.1931810312899107 + ], + [ + 3.138146982428616, + 3.159927334913112, + 3.1452692927672956 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17926628376468318, + "scoreError" : 0.0041338115424907305, + "scoreConfidence" : [ + 0.17513247222219244, + 0.1834000953071739 + ], + "scorePercentiles" : { + "0.0" : 0.17606456009788904, + "50.0" : 0.17991486069481677, + "90.0" : 0.1824510914962325, + "95.0" : 0.1824510914962325, + "99.0" : 0.1824510914962325, + "99.9" : 0.1824510914962325, + "99.99" : 0.1824510914962325, + "99.999" : 0.1824510914962325, + "99.9999" : 0.1824510914962325, + "100.0" : 0.1824510914962325 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1762438778308454, + 0.17617481822666173, + 0.17606456009788904 + ], + [ + 0.18154535195338029, + 0.1824510914962325, + 0.18063986376445088 + ], + [ + 0.17991486069481677, + 0.1799070998992552, + 0.18045502991861703 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33563272825190205, + "scoreError" : 0.009558237070581397, + "scoreConfidence" : [ + 0.32607449118132065, + 0.34519096532248345 + ], + "scorePercentiles" : { + "0.0" : 0.3284607007160218, + "50.0" : 0.33644188396581887, + "90.0" : 0.3440445917363333, + "95.0" : 0.3440445917363333, + "99.0" : 0.3440445917363333, + "99.9" : 0.3440445917363333, + "99.99" : 0.3440445917363333, + "99.999" : 0.3440445917363333, + "99.9999" : 0.3440445917363333, + "100.0" : 0.3440445917363333 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.329211396694759, + 0.32936281339129864, + 0.3284607007160218 + ], + [ + 0.3413116095904437, + 0.3403381569615084, + 0.3440445917363333 + ], + [ + 0.33644188396581887, + 0.3350542349984923, + 0.3364691662124424 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16489447994355155, + "scoreError" : 0.012856772971821528, + "scoreConfidence" : [ + 0.15203770697173002, + 0.17775125291537308 + ], + "scorePercentiles" : { + "0.0" : 0.1552361662216703, + "50.0" : 0.16498882176796673, + "90.0" : 0.17424424524323948, + "95.0" : 0.17424424524323948, + "99.0" : 0.17424424524323948, + "99.9" : 0.17424424524323948, + "99.99" : 0.17424424524323948, + "99.999" : 0.17424424524323948, + "99.9999" : 0.17424424524323948, + "100.0" : 0.17424424524323948 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16498882176796673, + 0.1665575346346663, + 0.16489984001714927 + ], + [ + 0.1552361662216703, + 0.15588410461092406, + 0.15634531709452487 + ], + [ + 0.17229772164504403, + 0.17424424524323948, + 0.1735965682567788 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3875551586103285, + "scoreError" : 0.0063050988879517446, + "scoreConfidence" : [ + 0.3812500597223768, + 0.39386025749828024 + ], + "scorePercentiles" : { + "0.0" : 0.38285499134762635, + "50.0" : 0.385947726409633, + "90.0" : 0.39251833351650506, + "95.0" : 0.39251833351650506, + "99.0" : 0.39251833351650506, + "99.9" : 0.39251833351650506, + "99.99" : 0.39251833351650506, + "99.999" : 0.39251833351650506, + "99.9999" : 0.39251833351650506, + "100.0" : 0.39251833351650506 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.385947726409633, + 0.3845023914564749, + 0.38541915674259064 + ], + [ + 0.39251833351650506, + 0.39210625470514426, + 0.39240598979792035 + ], + [ + 0.38285499134762635, + 0.3868541281237911, + 0.3853874553932714 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1597276282520068, + "scoreError" : 0.0046269221140336735, + "scoreConfidence" : [ + 0.1551007061379731, + 0.16435455036604046 + ], + "scorePercentiles" : { + "0.0" : 0.1554737507501438, + "50.0" : 0.1615286003876595, + "90.0" : 0.1617219838281907, + "95.0" : 0.1617219838281907, + "99.0" : 0.1617219838281907, + "99.9" : 0.1617219838281907, + "99.99" : 0.1617219838281907, + "99.999" : 0.1617219838281907, + "99.9999" : 0.1617219838281907, + "100.0" : 0.1617219838281907 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16165860842224378, + 0.1617219838281907, + 0.1615286003876595 + ], + [ + 0.15625568347942936, + 0.15650595923126281, + 0.1554737507501438 + ], + [ + 0.1615476022486794, + 0.16123468213404704, + 0.16162178378640463 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04761128317096445, + "scoreError" : 3.479280769183812E-4, + "scoreConfidence" : [ + 0.04726335509404607, + 0.04795921124788283 + ], + "scorePercentiles" : { + "0.0" : 0.04738616306773758, + "50.0" : 0.047527383797194026, + "90.0" : 0.047924545537323164, + "95.0" : 0.047924545537323164, + "99.0" : 0.047924545537323164, + "99.9" : 0.047924545537323164, + "99.99" : 0.047924545537323164, + "99.999" : 0.047924545537323164, + "99.9999" : 0.047924545537323164, + "100.0" : 0.047924545537323164 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047924545537323164, + 0.047923508297830535, + 0.04775109323280267 + ], + [ + 0.04747591117377846, + 0.047487881058774925, + 0.04738616306773758 + ], + [ + 0.047604741071853605, + 0.04742032130138513, + 0.047527383797194026 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 1.0398962932366718E7, + "scoreError" : 351179.03066771803, + "scoreConfidence" : [ + 1.0047783901699E7, + 1.0750141963034436E7 + ], + "scorePercentiles" : { + "0.0" : 9973581.754735792, + "50.0" : 1.0443271703549061E7, + "90.0" : 1.0618271176220806E7, + "95.0" : 1.0618271176220806E7, + "99.0" : 1.0618271176220806E7, + "99.9" : 1.0618271176220806E7, + "99.99" : 1.0618271176220806E7, + "99.999" : 1.0618271176220806E7, + "99.9999" : 1.0618271176220806E7, + "100.0" : 1.0618271176220806E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 1.0368837321243523E7, + 1.0231072242331289E7, + 1.028341827954779E7 + ], + [ + 1.0542553845100105E7, + 9973581.754735792, + 1.0552821065400844E7 + ], + [ + 1.0618271176220806E7, + 1.0443271703549061E7, + 1.0576839003171246E7 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T02:51:35Z-e98ca21274456df314a2574b48271e4f236d2970-jdk17.json b/performance-results/2025-04-03T02:51:35Z-e98ca21274456df314a2574b48271e4f236d2970-jdk17.json new file mode 100644 index 000000000..e7e3fde93 --- /dev/null +++ b/performance-results/2025-04-03T02:51:35Z-e98ca21274456df314a2574b48271e4f236d2970-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.412009068804363, + "scoreError" : 0.027147540536237486, + "scoreConfidence" : [ + 3.3848615282681256, + 3.4391566093406003 + ], + "scorePercentiles" : { + "0.0" : 3.406407858797982, + "50.0" : 3.412581318388711, + "90.0" : 3.416465779642049, + "95.0" : 3.416465779642049, + "99.0" : 3.416465779642049, + "99.9" : 3.416465779642049, + "99.99" : 3.416465779642049, + "99.999" : 3.416465779642049, + "99.9999" : 3.416465779642049, + "100.0" : 3.416465779642049 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.411854248718382, + 3.416465779642049 + ], + [ + 3.406407858797982, + 3.41330838805904 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7247825532086658, + "scoreError" : 0.008412192988375613, + "scoreConfidence" : [ + 1.7163703602202902, + 1.7331947461970414 + ], + "scorePercentiles" : { + "0.0" : 1.7232151056048182, + "50.0" : 1.7247590010147462, + "90.0" : 1.7263971052003526, + "95.0" : 1.7263971052003526, + "99.0" : 1.7263971052003526, + "99.9" : 1.7263971052003526, + "99.99" : 1.7263971052003526, + "99.999" : 1.7263971052003526, + "99.9999" : 1.7263971052003526, + "100.0" : 1.7263971052003526 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7232151056048182, + 1.7263971052003526 + ], + [ + 1.7246609185990969, + 1.7248570834303953 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8665645873428459, + "scoreError" : 0.007980730163315616, + "scoreConfidence" : [ + 0.8585838571795303, + 0.8745453175061615 + ], + "scorePercentiles" : { + "0.0" : 0.8652048329749016, + "50.0" : 0.8665310283763555, + "90.0" : 0.8679914596437709, + "95.0" : 0.8679914596437709, + "99.0" : 0.8679914596437709, + "99.9" : 0.8679914596437709, + "99.99" : 0.8679914596437709, + "99.999" : 0.8679914596437709, + "99.9999" : 0.8679914596437709, + "100.0" : 0.8679914596437709 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8671178524031105, + 0.8679914596437709 + ], + [ + 0.8652048329749016, + 0.8659442043496006 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.190306505865994, + "scoreError" : 0.19886222794442865, + "scoreConfidence" : [ + 15.991444277921566, + 16.389168733810422 + ], + "scorePercentiles" : { + "0.0" : 16.00356710808966, + "50.0" : 16.19719540512624, + "90.0" : 16.338223872579796, + "95.0" : 16.338223872579796, + "99.0" : 16.338223872579796, + "99.9" : 16.338223872579796, + "99.99" : 16.338223872579796, + "99.999" : 16.338223872579796, + "99.9999" : 16.338223872579796, + "100.0" : 16.338223872579796 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.263091004643808, + 16.332625869940873, + 16.338223872579796 + ], + [ + 16.20694779720255, + 16.19719540512624, + 16.18695691399324 + ], + [ + 16.163126086734835, + 16.00356710808966, + 16.02102449448297 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2652.1374561733314, + "scoreError" : 149.48652867483324, + "scoreConfidence" : [ + 2502.6509274984983, + 2801.6239848481646 + ], + "scorePercentiles" : { + "0.0" : 2572.313124395027, + "50.0" : 2615.4625094289067, + "90.0" : 2776.2508648496128, + "95.0" : 2776.2508648496128, + "99.0" : 2776.2508648496128, + "99.9" : 2776.2508648496128, + "99.99" : 2776.2508648496128, + "99.999" : 2776.2508648496128, + "99.9999" : 2776.2508648496128, + "100.0" : 2776.2508648496128 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2572.327591862452, + 2573.670192282608, + 2572.313124395027 + ], + [ + 2763.3332028422533, + 2776.2508648496128, + 2764.5264619939276 + ], + [ + 2617.16311033585, + 2614.190047569343, + 2615.4625094289067 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69244.53393821999, + "scoreError" : 2238.7153835897343, + "scoreConfidence" : [ + 67005.81855463026, + 71483.24932180972 + ], + "scorePercentiles" : { + "0.0" : 68283.01701912875, + "50.0" : 68404.88908740183, + "90.0" : 71025.63666207869, + "95.0" : 71025.63666207869, + "99.0" : 71025.63666207869, + "99.9" : 71025.63666207869, + "99.99" : 71025.63666207869, + "99.999" : 71025.63666207869, + "99.9999" : 71025.63666207869, + "100.0" : 71025.63666207869 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 68283.01701912875, + 68299.08646909134, + 68346.94205609483 + ], + [ + 68410.80512801414, + 68396.52696193331, + 68404.88908740183 + ], + [ + 71020.59502416776, + 71025.63666207869, + 71013.30703606934 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 352.0495439106279, + "scoreError" : 5.688087554984918, + "scoreConfidence" : [ + 346.361456355643, + 357.7376314656128 + ], + "scorePercentiles" : { + "0.0" : 347.5038937323927, + "50.0" : 352.6586337417818, + "90.0" : 355.9543623081089, + "95.0" : 355.9543623081089, + "99.0" : 355.9543623081089, + "99.9" : 355.9543623081089, + "99.99" : 355.9543623081089, + "99.999" : 355.9543623081089, + "99.9999" : 355.9543623081089, + "100.0" : 355.9543623081089 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 355.36606065776704, + 355.9543623081089, + 355.44739687765446 + ], + [ + 353.3104547724866, + 352.6586337417818, + 352.0106775017903 + ], + [ + 348.08547373181875, + 348.1089418718505, + 347.5038937323927 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.97197788613875, + "scoreError" : 2.7303080728968436, + "scoreConfidence" : [ + 105.2416698132419, + 110.70228595903559 + ], + "scorePercentiles" : { + "0.0" : 105.82762260516864, + "50.0" : 108.34243905974502, + "90.0" : 109.89787443224124, + "95.0" : 109.89787443224124, + "99.0" : 109.89787443224124, + "99.9" : 109.89787443224124, + "99.99" : 109.89787443224124, + "99.999" : 109.89787443224124, + "99.9999" : 109.89787443224124, + "100.0" : 109.89787443224124 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 109.24278780414237, + 109.77494855538254, + 109.89787443224124 + ], + [ + 108.25668688929966, + 108.34243905974502, + 108.35487959785104 + ], + [ + 105.99650175505398, + 105.82762260516864, + 106.05406027636413 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06264234939734833, + "scoreError" : 0.001940503038725499, + "scoreConfidence" : [ + 0.06070184635862284, + 0.06458285243607384 + ], + "scorePercentiles" : { + "0.0" : 0.061487347325639305, + "50.0" : 0.06224014973548267, + "90.0" : 0.0643154368235226, + "95.0" : 0.0643154368235226, + "99.0" : 0.0643154368235226, + "99.9" : 0.0643154368235226, + "99.99" : 0.0643154368235226, + "99.999" : 0.0643154368235226, + "99.9999" : 0.0643154368235226, + "100.0" : 0.0643154368235226 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06234369102198837, + 0.062147674374957274, + 0.06224014973548267 + ], + [ + 0.06389407033371457, + 0.0643154368235226, + 0.06415574181545232 + ], + [ + 0.06163425568567026, + 0.0615627774597077, + 0.061487347325639305 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.693017818862823E-4, + "scoreError" : 1.4251241076151806E-5, + "scoreConfidence" : [ + 3.550505408101305E-4, + 3.8355302296243406E-4 + ], + "scorePercentiles" : { + "0.0" : 3.581285258168051E-4, + "50.0" : 3.7241348116836534E-4, + "90.0" : 3.774987506762271E-4, + "95.0" : 3.774987506762271E-4, + "99.0" : 3.774987506762271E-4, + "99.9" : 3.774987506762271E-4, + "99.99" : 3.774987506762271E-4, + "99.999" : 3.774987506762271E-4, + "99.9999" : 3.774987506762271E-4, + "100.0" : 3.774987506762271E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7728784066109127E-4, + 3.7661322860138834E-4, + 3.774987506762271E-4 + ], + [ + 3.581285258168051E-4, + 3.5816292636233426E-4, + 3.5870577075242295E-4 + ], + [ + 3.7241348116836534E-4, + 3.7278464199828296E-4, + 3.721208709396231E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014251813348747193, + "scoreError" : 2.4133152936300968E-4, + "scoreConfidence" : [ + 0.014010481819384184, + 0.014493144878110202 + ], + "scorePercentiles" : { + "0.0" : 0.014109882265792994, + "50.0" : 0.014200063186653244, + "90.0" : 0.01444335340454787, + "95.0" : 0.01444335340454787, + "99.0" : 0.01444335340454787, + "99.9" : 0.01444335340454787, + "99.99" : 0.01444335340454787, + "99.999" : 0.01444335340454787, + "99.9999" : 0.01444335340454787, + "100.0" : 0.01444335340454787 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014433382154187222, + 0.014433030841594948, + 0.01444335340454787 + ], + [ + 0.014115376225199589, + 0.014109882265792994, + 0.014123692329094866 + ], + [ + 0.014207825716136768, + 0.014199714015517262, + 0.014200063186653244 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9922482637732131, + "scoreError" : 0.04060752324069984, + "scoreConfidence" : [ + 0.9516407405325132, + 1.032855787013913 + ], + "scorePercentiles" : { + "0.0" : 0.9736791512024146, + "50.0" : 0.9777998899100508, + "90.0" : 1.0262624400205234, + "95.0" : 1.0262624400205234, + "99.0" : 1.0262624400205234, + "99.9" : 1.0262624400205234, + "99.99" : 1.0262624400205234, + "99.999" : 1.0262624400205234, + "99.9999" : 1.0262624400205234, + "100.0" : 1.0262624400205234 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0262624400205234, + 1.0246107202868853, + 1.0222336996831238 + ], + [ + 0.976044982920164, + 0.9750917759360375, + 0.9736791512024146 + ], + [ + 0.9752420151160522, + 0.9777998899100508, + 0.9792696988836663 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013020478890194788, + "scoreError" : 7.333534194251844E-4, + "scoreConfidence" : [ + 0.012287125470769603, + 0.013753832309619973 + ], + "scorePercentiles" : { + "0.0" : 0.012776612812060816, + "50.0" : 0.013020479729130969, + "90.0" : 0.013262022369869371, + "95.0" : 0.013262022369869371, + "99.0" : 0.013262022369869371, + "99.9" : 0.013262022369869371, + "99.99" : 0.013262022369869371, + "99.999" : 0.013262022369869371, + "99.9999" : 0.013262022369869371, + "100.0" : 0.013262022369869371 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013262022369869371, + 0.013255514599294823, + 0.013260036602118372 + ], + [ + 0.012785444858967114, + 0.012776612812060816, + 0.012783242098858227 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6823549127759994, + "scoreError" : 0.12037344013443266, + "scoreConfidence" : [ + 3.5619814726415666, + 3.802728352910432 + ], + "scorePercentiles" : { + "0.0" : 3.6239961630434783, + "50.0" : 3.674330386428005, + "90.0" : 3.7354224331590737, + "95.0" : 3.7354224331590737, + "99.0" : 3.7354224331590737, + "99.9" : 3.7354224331590737, + "99.99" : 3.7354224331590737, + "99.999" : 3.7354224331590737, + "99.9999" : 3.7354224331590737, + "100.0" : 3.7354224331590737 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6239961630434783, + 3.6654824945054947, + 3.6578229041697146 + ], + [ + 3.6831782783505154, + 3.7354224331590737, + 3.72822720342772 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.830217610770232, + "scoreError" : 0.02941764690765332, + "scoreConfidence" : [ + 2.8007999638625787, + 2.859635257677885 + ], + "scorePercentiles" : { + "0.0" : 2.8059439887766553, + "50.0" : 2.8304837555178266, + "90.0" : 2.8638871964490265, + "95.0" : 2.8638871964490265, + "99.0" : 2.8638871964490265, + "99.9" : 2.8638871964490265, + "99.99" : 2.8638871964490265, + "99.999" : 2.8638871964490265, + "99.9999" : 2.8638871964490265, + "100.0" : 2.8638871964490265 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8059439887766553, + 2.80763629365525, + 2.8274634690415605 + ], + [ + 2.8266450850763145, + 2.8334196541076486, + 2.8638871964490265 + ], + [ + 2.8327837142452563, + 2.8304837555178266, + 2.8436953400625535 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1753886762344773, + "scoreError" : 0.0030167678177013334, + "scoreConfidence" : [ + 0.17237190841677597, + 0.17840544405217862 + ], + "scorePercentiles" : { + "0.0" : 0.1728514556469734, + "50.0" : 0.17628545656465944, + "90.0" : 0.17697612007574418, + "95.0" : 0.17697612007574418, + "99.0" : 0.17697612007574418, + "99.9" : 0.17697612007574418, + "99.99" : 0.17697612007574418, + "99.999" : 0.17697612007574418, + "99.9999" : 0.17697612007574418, + "100.0" : 0.17697612007574418 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17323752276270657, + 0.17297506889453929, + 0.1728514556469734 + ], + [ + 0.17697612007574418, + 0.17628545656465944, + 0.1761608011520778 + ], + [ + 0.17683352849640147, + 0.17655357137056196, + 0.1766245611466318 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3252011556337465, + "scoreError" : 0.011613804722758634, + "scoreConfidence" : [ + 0.3135873509109879, + 0.33681496035650516 + ], + "scorePercentiles" : { + "0.0" : 0.31793855517756653, + "50.0" : 0.32358584517068434, + "90.0" : 0.3339527306061112, + "95.0" : 0.3339527306061112, + "99.0" : 0.3339527306061112, + "99.9" : 0.3339527306061112, + "99.99" : 0.3339527306061112, + "99.999" : 0.3339527306061112, + "99.9999" : 0.3339527306061112, + "100.0" : 0.3339527306061112 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32359638985244626, + 0.32337204507679873, + 0.32358584517068434 + ], + [ + 0.333943945167969, + 0.33376095434216674, + 0.3339527306061112 + ], + [ + 0.3185725668822274, + 0.31793855517756653, + 0.318087368427749 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16379379419542822, + "scoreError" : 0.011142070500678086, + "scoreConfidence" : [ + 0.15265172369475014, + 0.1749358646961063 + ], + "scorePercentiles" : { + "0.0" : 0.15917055110064143, + "50.0" : 0.15955122844105493, + "90.0" : 0.1727546144039249, + "95.0" : 0.1727546144039249, + "99.0" : 0.1727546144039249, + "99.9" : 0.1727546144039249, + "99.99" : 0.1727546144039249, + "99.999" : 0.1727546144039249, + "99.9999" : 0.1727546144039249, + "100.0" : 0.1727546144039249 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15958058684134938, + 0.15917055110064143, + 0.15917860239717305 + ], + [ + 0.1727546144039249, + 0.17259759036227756, + 0.17254379072415757 + ], + [ + 0.15955122844105493, + 0.15929815637892858, + 0.15946902710934635 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38991118899124244, + "scoreError" : 0.01124237080592444, + "scoreConfidence" : [ + 0.378668818185318, + 0.4011535597971669 + ], + "scorePercentiles" : { + "0.0" : 0.38210326390799326, + "50.0" : 0.39018023211080766, + "90.0" : 0.39966706621907844, + "95.0" : 0.39966706621907844, + "99.0" : 0.39966706621907844, + "99.9" : 0.39966706621907844, + "99.99" : 0.39966706621907844, + "99.999" : 0.39966706621907844, + "99.9999" : 0.39966706621907844, + "100.0" : 0.39966706621907844 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39966706621907844, + 0.39717512927439536, + 0.39558205047468353 + ], + [ + 0.38210326390799326, + 0.38233665801345773, + 0.38222272790857664 + ], + [ + 0.3904339530316636, + 0.39018023211080766, + 0.3894996199805258 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15684870185149255, + "scoreError" : 0.0037258751961398227, + "scoreConfidence" : [ + 0.15312282665535273, + 0.16057457704763237 + ], + "scorePercentiles" : { + "0.0" : 0.15480540073375748, + "50.0" : 0.1556524699052096, + "90.0" : 0.15974400097442532, + "95.0" : 0.15974400097442532, + "99.0" : 0.15974400097442532, + "99.9" : 0.15974400097442532, + "99.99" : 0.15974400097442532, + "99.999" : 0.15974400097442532, + "99.9999" : 0.15974400097442532, + "100.0" : 0.15974400097442532 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1597275829925888, + 0.15974400097442532, + 0.159548770716998 + ], + [ + 0.15493251851392806, + 0.15480540073375748, + 0.1548956253620607 + ], + [ + 0.15698526397915294, + 0.1556524699052096, + 0.15534668348531216 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04782230709382967, + "scoreError" : 0.0017082561348700006, + "scoreConfidence" : [ + 0.046114050958959665, + 0.04953056322869967 + ], + "scorePercentiles" : { + "0.0" : 0.04707639163183068, + "50.0" : 0.04721573866013211, + "90.0" : 0.04920717646943044, + "95.0" : 0.04920717646943044, + "99.0" : 0.04920717646943044, + "99.9" : 0.04920717646943044, + "99.99" : 0.04920717646943044, + "99.999" : 0.04920717646943044, + "99.9999" : 0.04920717646943044, + "100.0" : 0.04920717646943044 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04721573866013211, + 0.04707639163183068, + 0.047087921274932665 + ], + [ + 0.04726264621172378, + 0.047139337894786464, + 0.047093677427406215 + ], + [ + 0.0491894079390064, + 0.0491284663352182, + 0.04920717646943044 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9281569.0026659, + "scoreError" : 115612.17714641236, + "scoreConfidence" : [ + 9165956.825519487, + 9397181.179812312 + ], + "scorePercentiles" : { + "0.0" : 9196106.576286765, + "50.0" : 9263902.401851851, + "90.0" : 9365629.605805244, + "95.0" : 9365629.605805244, + "99.0" : 9365629.605805244, + "99.9" : 9365629.605805244, + "99.99" : 9365629.605805244, + "99.999" : 9365629.605805244, + "99.9999" : 9365629.605805244, + "100.0" : 9365629.605805244 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9310784.226046512, + 9263902.401851851, + 9258585.227567067 + ], + [ + 9361236.768942937, + 9365629.605805244, + 9355414.256314313 + ], + [ + 9218562.90046083, + 9203899.060717572, + 9196106.576286765 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T02:52:17Z-e98ca21274456df314a2574b48271e4f236d2970-jdk17.json b/performance-results/2025-04-03T02:52:17Z-e98ca21274456df314a2574b48271e4f236d2970-jdk17.json new file mode 100644 index 000000000..fe3a7e2f7 --- /dev/null +++ b/performance-results/2025-04-03T02:52:17Z-e98ca21274456df314a2574b48271e4f236d2970-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.403194491531668, + "scoreError" : 0.0054344602373101285, + "scoreConfidence" : [ + 3.3977600312943577, + 3.408628951768978 + ], + "scorePercentiles" : { + "0.0" : 3.40204038330392, + "50.0" : 3.403455956648364, + "90.0" : 3.4038256695260225, + "95.0" : 3.4038256695260225, + "99.0" : 3.4038256695260225, + "99.9" : 3.4038256695260225, + "99.99" : 3.4038256695260225, + "99.999" : 3.4038256695260225, + "99.9999" : 3.4038256695260225, + "100.0" : 3.4038256695260225 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4038256695260225, + 3.403812822654316 + ], + [ + 3.403099090642413, + 3.40204038330392 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7219424259297373, + "scoreError" : 0.013541201269863041, + "scoreConfidence" : [ + 1.7084012246598743, + 1.7354836271996004 + ], + "scorePercentiles" : { + "0.0" : 1.7197695025152795, + "50.0" : 1.7218632263632574, + "90.0" : 1.7242737484771553, + "95.0" : 1.7242737484771553, + "99.0" : 1.7242737484771553, + "99.9" : 1.7242737484771553, + "99.99" : 1.7242737484771553, + "99.999" : 1.7242737484771553, + "99.9999" : 1.7242737484771553, + "100.0" : 1.7242737484771553 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7197695025152795, + 1.7242737484771553 + ], + [ + 1.7206375929853883, + 1.7230888597411262 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8640697627505329, + "scoreError" : 0.014770242609452224, + "scoreConfidence" : [ + 0.8492995201410807, + 0.8788400053599852 + ], + "scorePercentiles" : { + "0.0" : 0.8624312182679136, + "50.0" : 0.8632019184962488, + "90.0" : 0.8674439957417209, + "95.0" : 0.8674439957417209, + "99.0" : 0.8674439957417209, + "99.9" : 0.8674439957417209, + "99.99" : 0.8674439957417209, + "99.999" : 0.8674439957417209, + "99.9999" : 0.8674439957417209, + "100.0" : 0.8674439957417209 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8624312182679136, + 0.8634219709025568 + ], + [ + 0.8629818660899409, + 0.8674439957417209 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.9436319756992, + "scoreError" : 0.09563035262704961, + "scoreConfidence" : [ + 15.84800162307215, + 16.03926232832625 + ], + "scorePercentiles" : { + "0.0" : 15.84638395040122, + "50.0" : 15.959992832909032, + "90.0" : 16.02254842355818, + "95.0" : 16.02254842355818, + "99.0" : 16.02254842355818, + "99.9" : 16.02254842355818, + "99.99" : 16.02254842355818, + "99.999" : 16.02254842355818, + "99.9999" : 16.02254842355818, + "100.0" : 16.02254842355818 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.02254842355818, + 15.987810841814806, + 15.991277618896921 + ], + [ + 15.912647622226181, + 15.879334862745797, + 15.84638395040122 + ], + [ + 15.928670625550126, + 15.964021003190537, + 15.959992832909032 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2640.280594719942, + "scoreError" : 163.1601437194584, + "scoreConfidence" : [ + 2477.1204510004836, + 2803.440738439401 + ], + "scorePercentiles" : { + "0.0" : 2532.8517014134386, + "50.0" : 2628.7413437275936, + "90.0" : 2765.5166739080864, + "95.0" : 2765.5166739080864, + "99.0" : 2765.5166739080864, + "99.9" : 2765.5166739080864, + "99.99" : 2765.5166739080864, + "99.999" : 2765.5166739080864, + "99.9999" : 2765.5166739080864, + "100.0" : 2765.5166739080864 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2628.7413437275936, + 2624.102851090245, + 2631.2151456928896 + ], + [ + 2747.292980003622, + 2760.780272754581, + 2765.5166739080864 + ], + [ + 2536.3386188386053, + 2532.8517014134386, + 2535.6857650504176 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70561.7075536086, + "scoreError" : 675.1940634943425, + "scoreConfidence" : [ + 69886.51349011426, + 71236.90161710295 + ], + "scorePercentiles" : { + "0.0" : 70054.20588415946, + "50.0" : 70598.37075600476, + "90.0" : 71032.91635748415, + "95.0" : 71032.91635748415, + "99.0" : 71032.91635748415, + "99.9" : 71032.91635748415, + "99.99" : 71032.91635748415, + "99.999" : 71032.91635748415, + "99.9999" : 71032.91635748415, + "100.0" : 71032.91635748415 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70634.05122592344, + 70598.37075600476, + 70573.16509122771 + ], + [ + 70977.18073904366, + 71032.91635748415, + 70999.40010834833 + ], + [ + 70063.63182051902, + 70054.20588415946, + 70122.4459997669 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 337.49420084887447, + "scoreError" : 9.469080745548057, + "scoreConfidence" : [ + 328.0251201033264, + 346.96328159442254 + ], + "scorePercentiles" : { + "0.0" : 330.2899132159104, + "50.0" : 339.15051295464735, + "90.0" : 344.43838779117556, + "95.0" : 344.43838779117556, + "99.0" : 344.43838779117556, + "99.9" : 344.43838779117556, + "99.99" : 344.43838779117556, + "99.999" : 344.43838779117556, + "99.9999" : 344.43838779117556, + "100.0" : 344.43838779117556 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 330.386498161057, + 330.47431679190134, + 330.2899132159104 + ], + [ + 341.3405225744992, + 342.95327223940876, + 344.43838779117556 + ], + [ + 338.54115541959317, + 339.15051295464735, + 339.8732284916776 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 105.33461889685323, + "scoreError" : 5.416508050150125, + "scoreConfidence" : [ + 99.9181108467031, + 110.75112694700336 + ], + "scorePercentiles" : { + "0.0" : 100.52179981974373, + "50.0" : 107.24703425038527, + "90.0" : 107.99725413741437, + "95.0" : 107.99725413741437, + "99.0" : 107.99725413741437, + "99.9" : 107.99725413741437, + "99.99" : 107.99725413741437, + "99.999" : 107.99725413741437, + "99.9999" : 107.99725413741437, + "100.0" : 107.99725413741437 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 106.86967319741898, + 107.24703425038527, + 107.35165090978742 + ], + [ + 107.99725413741437, + 107.84506179509498, + 107.47085951287897 + ], + [ + 101.69064834493503, + 100.52179981974373, + 101.01758810402046 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06268900704606982, + "scoreError" : 0.001163791376921044, + "scoreConfidence" : [ + 0.06152521566914877, + 0.06385279842299087 + ], + "scorePercentiles" : { + "0.0" : 0.06172657346287506, + "50.0" : 0.06306495052626931, + "90.0" : 0.06333138844979798, + "95.0" : 0.06333138844979798, + "99.0" : 0.06333138844979798, + "99.9" : 0.06333138844979798, + "99.99" : 0.06333138844979798, + "99.999" : 0.06333138844979798, + "99.9999" : 0.06333138844979798, + "100.0" : 0.06333138844979798 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06176310465626177, + 0.06172657346287506, + 0.06184468065776942 + ], + [ + 0.06320055288221502, + 0.06314213385319653, + 0.06292492596997269 + ], + [ + 0.06320275295627058, + 0.06306495052626931, + 0.06333138844979798 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.7481237278850056E-4, + "scoreError" : 1.1980570626435157E-5, + "scoreConfidence" : [ + 3.6283180216206543E-4, + 3.867929434149357E-4 + ], + "scorePercentiles" : { + "0.0" : 3.6409876203927915E-4, + "50.0" : 3.7933416066346235E-4, + "90.0" : 3.8019052370467216E-4, + "95.0" : 3.8019052370467216E-4, + "99.0" : 3.8019052370467216E-4, + "99.9" : 3.8019052370467216E-4, + "99.99" : 3.8019052370467216E-4, + "99.999" : 3.8019052370467216E-4, + "99.9999" : 3.8019052370467216E-4, + "100.0" : 3.8019052370467216E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6570256780549384E-4, + 3.6409876203927915E-4, + 3.663767519349152E-4 + ], + [ + 3.8019052370467216E-4, + 3.8017008019173117E-4, + 3.7933416066346235E-4 + ], + [ + 3.797582444148515E-4, + 3.7767420023679903E-4, + 3.800060641053006E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014098005962349182, + "scoreError" : 2.050573003153203E-5, + "scoreConfidence" : [ + 0.01407750023231765, + 0.014118511692380714 + ], + "scorePercentiles" : { + "0.0" : 0.014083777860870986, + "50.0" : 0.014098247163116069, + "90.0" : 0.01412190544660648, + "95.0" : 0.01412190544660648, + "99.0" : 0.01412190544660648, + "99.9" : 0.01412190544660648, + "99.99" : 0.01412190544660648, + "99.999" : 0.01412190544660648, + "99.9999" : 0.01412190544660648, + "100.0" : 0.01412190544660648 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014083777860870986, + 0.014092198276262962, + 0.014087036303267731 + ], + [ + 0.01412190544660648, + 0.014103096767051113, + 0.014105937445252077 + ], + [ + 0.014086103755592116, + 0.014098247163116069, + 0.014103750643123096 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9900720714208604, + "scoreError" : 0.032398284485443664, + "scoreConfidence" : [ + 0.9576737869354167, + 1.022470355906304 + ], + "scorePercentiles" : { + "0.0" : 0.9747853510088703, + "50.0" : 0.9790084789035732, + "90.0" : 1.0185325541297485, + "95.0" : 1.0185325541297485, + "99.0" : 1.0185325541297485, + "99.9" : 1.0185325541297485, + "99.99" : 1.0185325541297485, + "99.999" : 1.0185325541297485, + "99.9999" : 1.0185325541297485, + "100.0" : 1.0185325541297485 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0146146674444556, + 1.013647100851409, + 1.0185325541297485 + ], + [ + 0.9802752494608901, + 0.9790084789035732, + 0.9757974534100888 + ], + [ + 0.9747853510088703, + 0.978946785238841, + 0.9750410023398655 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013014100910331693, + "scoreError" : 2.3206391521088976E-4, + "scoreConfidence" : [ + 0.012782036995120804, + 0.013246164825542582 + ], + "scorePercentiles" : { + "0.0" : 0.012868733088318561, + "50.0" : 0.013027448912159054, + "90.0" : 0.013099782038014646, + "95.0" : 0.013099782038014646, + "99.0" : 0.013099782038014646, + "99.9" : 0.013099782038014646, + "99.99" : 0.013099782038014646, + "99.999" : 0.013099782038014646, + "99.9999" : 0.013099782038014646, + "100.0" : 0.013099782038014646 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012868733088318561, + 0.013014096830110695, + 0.013040800994207413 + ], + [ + 0.012983094574488803, + 0.013078097936850035, + 0.013099782038014646 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.803681758942895, + "scoreError" : 0.058068017082038216, + "scoreConfidence" : [ + 3.745613741860857, + 3.861749776024933 + ], + "scorePercentiles" : { + "0.0" : 3.7688745960813868, + "50.0" : 3.8028532290171775, + "90.0" : 3.828712826952527, + "95.0" : 3.828712826952527, + "99.0" : 3.828712826952527, + "99.9" : 3.828712826952527, + "99.99" : 3.828712826952527, + "99.999" : 3.828712826952527, + "99.9999" : 3.828712826952527, + "100.0" : 3.828712826952527 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7688745960813868, + 3.7987889476082004, + 3.8001995714285712 + ], + [ + 3.8055068866057837, + 3.8200077249809015, + 3.828712826952527 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.922983171605901, + "scoreError" : 0.06878756494659564, + "scoreConfidence" : [ + 2.8541956066593053, + 2.9917707365524966 + ], + "scorePercentiles" : { + "0.0" : 2.882975975208994, + "50.0" : 2.899830810089881, + "90.0" : 2.991555425067305, + "95.0" : 2.991555425067305, + "99.0" : 2.991555425067305, + "99.9" : 2.991555425067305, + "99.99" : 2.991555425067305, + "99.999" : 2.991555425067305, + "99.9999" : 2.991555425067305, + "100.0" : 2.991555425067305 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8932728536303154, + 2.882975975208994, + 2.911509500727802 + ], + [ + 2.9790622302651175, + 2.991555425067305, + 2.955098183751846 + ], + [ + 2.899830810089881, + 2.8976569843568947, + 2.895886581354951 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1752739306467576, + "scoreError" : 0.0067926352926449335, + "scoreConfidence" : [ + 0.16848129535411266, + 0.1820665659394025 + ], + "scorePercentiles" : { + "0.0" : 0.16931798284853206, + "50.0" : 0.17703718935330254, + "90.0" : 0.179263765438738, + "95.0" : 0.179263765438738, + "99.0" : 0.179263765438738, + "99.9" : 0.179263765438738, + "99.99" : 0.179263765438738, + "99.999" : 0.179263765438738, + "99.9999" : 0.179263765438738, + "100.0" : 0.179263765438738 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17127871834001301, + 0.16931798284853206, + 0.16951058001525554 + ], + [ + 0.179263765438738, + 0.17873609151027703, + 0.17824298643590475 + ], + [ + 0.17700606642948175, + 0.17703718935330254, + 0.17707199544931385 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3311272051006344, + "scoreError" : 0.02574131802826179, + "scoreConfidence" : [ + 0.30538588707237263, + 0.3568685231288962 + ], + "scorePercentiles" : { + "0.0" : 0.32002414304457744, + "50.0" : 0.3214951376583296, + "90.0" : 0.35274181238095237, + "95.0" : 0.35274181238095237, + "99.0" : 0.35274181238095237, + "99.9" : 0.35274181238095237, + "99.99" : 0.35274181238095237, + "99.999" : 0.35274181238095237, + "99.9999" : 0.35274181238095237, + "100.0" : 0.35274181238095237 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3225040451818885, + 0.3214951376583296, + 0.32122822893578745 + ], + [ + 0.32008386182504883, + 0.3202712323853446, + 0.32002414304457744 + ], + [ + 0.35274181238095237, + 0.35085857753841837, + 0.35093780695536214 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1573598302291365, + "scoreError" : 0.0033830824565148298, + "scoreConfidence" : [ + 0.15397674777262166, + 0.16074291268565133 + ], + "scorePercentiles" : { + "0.0" : 0.15461272411447302, + "50.0" : 0.15828907844627, + "90.0" : 0.1594421173947704, + "95.0" : 0.1594421173947704, + "99.0" : 0.1594421173947704, + "99.9" : 0.1594421173947704, + "99.99" : 0.1594421173947704, + "99.999" : 0.1594421173947704, + "99.9999" : 0.1594421173947704, + "100.0" : 0.1594421173947704 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15461272411447302, + 0.15493705184060486, + 0.15469718323432957 + ], + [ + 0.1586219272265842, + 0.1594421173947704, + 0.15929977722377978 + ], + [ + 0.158008010443988, + 0.15828907844627, + 0.15833060213742875 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3929055482587191, + "scoreError" : 0.008874881668847938, + "scoreConfidence" : [ + 0.3840306665898712, + 0.401780429927567 + ], + "scorePercentiles" : { + "0.0" : 0.3861855186329407, + "50.0" : 0.3916299738789896, + "90.0" : 0.39987236290935263, + "95.0" : 0.39987236290935263, + "99.0" : 0.39987236290935263, + "99.9" : 0.39987236290935263, + "99.99" : 0.39987236290935263, + "99.999" : 0.39987236290935263, + "99.9999" : 0.39987236290935263, + "100.0" : 0.39987236290935263 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39418789096929324, + 0.3916299738789896, + 0.391009796019706 + ], + [ + 0.3995561204203124, + 0.39987236290935263, + 0.39806413752885916 + ], + [ + 0.38798272721629484, + 0.3876614067527232, + 0.3861855186329407 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15638411625309134, + "scoreError" : 0.0038605736119067847, + "scoreConfidence" : [ + 0.15252354264118456, + 0.16024468986499812 + ], + "scorePercentiles" : { + "0.0" : 0.15314811026371405, + "50.0" : 0.15670415334712298, + "90.0" : 0.159883718659568, + "95.0" : 0.159883718659568, + "99.0" : 0.159883718659568, + "99.9" : 0.159883718659568, + "99.99" : 0.159883718659568, + "99.999" : 0.159883718659568, + "99.9999" : 0.159883718659568, + "100.0" : 0.159883718659568 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1566501469187631, + 0.15670415334712298, + 0.1567198383613597 + ], + [ + 0.1547686963506361, + 0.15314811026371405, + 0.15320902544735873 + ], + [ + 0.159883718659568, + 0.15830709884438815, + 0.15806625808491132 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04731102617255678, + "scoreError" : 5.494062501007604E-4, + "scoreConfidence" : [ + 0.04676161992245602, + 0.04786043242265754 + ], + "scorePercentiles" : { + "0.0" : 0.04687650850095393, + "50.0" : 0.04743667847350695, + "90.0" : 0.047676395332538736, + "95.0" : 0.047676395332538736, + "99.0" : 0.047676395332538736, + "99.9" : 0.047676395332538736, + "99.99" : 0.047676395332538736, + "99.999" : 0.047676395332538736, + "99.9999" : 0.047676395332538736, + "100.0" : 0.047676395332538736 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04749636832506115, + 0.04743667847350695, + 0.04734048231150498 + ], + [ + 0.04691541189661886, + 0.04689057975486013, + 0.04687650850095393 + ], + [ + 0.047676395332538736, + 0.047574515204567076, + 0.04759229575339923 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9441197.85305533, + "scoreError" : 304521.42768585624, + "scoreConfidence" : [ + 9136676.425369473, + 9745719.280741187 + ], + "scorePercentiles" : { + "0.0" : 9249209.369685767, + "50.0" : 9358704.228250701, + "90.0" : 9681377.27589545, + "95.0" : 9681377.27589545, + "99.0" : 9681377.27589545, + "99.9" : 9681377.27589545, + "99.99" : 9681377.27589545, + "99.999" : 9681377.27589545, + "99.9999" : 9681377.27589545, + "100.0" : 9681377.27589545 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9409813.65098777, + 9358704.228250701, + 9353099.48317757 + ], + [ + 9675122.80754352, + 9664841.801932367, + 9681377.27589545 + ], + [ + 9318771.304469274, + 9259840.755555555, + 9249209.369685767 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T02:52:33Z-e98ca21274456df314a2574b48271e4f236d2970-jdk17.json b/performance-results/2025-04-03T02:52:33Z-e98ca21274456df314a2574b48271e4f236d2970-jdk17.json new file mode 100644 index 000000000..43c4405b4 --- /dev/null +++ b/performance-results/2025-04-03T02:52:33Z-e98ca21274456df314a2574b48271e4f236d2970-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4156356646292396, + "scoreError" : 0.013598054926190144, + "scoreConfidence" : [ + 3.4020376097030494, + 3.42923371955543 + ], + "scorePercentiles" : { + "0.0" : 3.4130888415653047, + "50.0" : 3.415786695895449, + "90.0" : 3.4178804251607553, + "95.0" : 3.4178804251607553, + "99.0" : 3.4178804251607553, + "99.9" : 3.4178804251607553, + "99.99" : 3.4178804251607553, + "99.999" : 3.4178804251607553, + "99.9999" : 3.4178804251607553, + "100.0" : 3.4178804251607553 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4148610786856364, + 3.4178804251607553 + ], + [ + 3.4130888415653047, + 3.4167123131052617 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7253259788610695, + "scoreError" : 0.008555086625644845, + "scoreConfidence" : [ + 1.7167708922354248, + 1.7338810654867143 + ], + "scorePercentiles" : { + "0.0" : 1.7241059127032126, + "50.0" : 1.7252574282825233, + "90.0" : 1.726683146176019, + "95.0" : 1.726683146176019, + "99.0" : 1.726683146176019, + "99.9" : 1.726683146176019, + "99.99" : 1.726683146176019, + "99.999" : 1.726683146176019, + "99.9999" : 1.726683146176019, + "100.0" : 1.726683146176019 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7241059127032126, + 1.726683146176019 + ], + [ + 1.7242780552173471, + 1.7262368013476994 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8680284206920243, + "scoreError" : 0.0038235580345896383, + "scoreConfidence" : [ + 0.8642048626574347, + 0.871851978726614 + ], + "scorePercentiles" : { + "0.0" : 0.8672392519716291, + "50.0" : 0.8681156014545766, + "90.0" : 0.8686432278873151, + "95.0" : 0.8686432278873151, + "99.0" : 0.8686432278873151, + "99.9" : 0.8686432278873151, + "99.99" : 0.8686432278873151, + "99.999" : 0.8686432278873151, + "99.9999" : 0.8686432278873151, + "100.0" : 0.8686432278873151 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8682466548186853, + 0.8679845480904678 + ], + [ + 0.8672392519716291, + 0.8686432278873151 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.266398884740102, + "scoreError" : 0.12089071736767489, + "scoreConfidence" : [ + 16.145508167372427, + 16.387289602107778 + ], + "scorePercentiles" : { + "0.0" : 16.16215887190314, + "50.0" : 16.2909633020778, + "90.0" : 16.35367633567486, + "95.0" : 16.35367633567486, + "99.0" : 16.35367633567486, + "99.9" : 16.35367633567486, + "99.99" : 16.35367633567486, + "99.999" : 16.35367633567486, + "99.9999" : 16.35367633567486, + "100.0" : 16.35367633567486 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.30206765152038, + 16.2909633020778, + 16.35367633567486 + ], + [ + 16.286595407788486, + 16.32141250450957, + 16.319740312132282 + ], + [ + 16.181694193122404, + 16.16215887190314, + 16.17928138393201 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2708.4379672756168, + "scoreError" : 52.77435647527872, + "scoreConfidence" : [ + 2655.663610800338, + 2761.2123237508954 + ], + "scorePercentiles" : { + "0.0" : 2678.8808548562843, + "50.0" : 2690.720282550591, + "90.0" : 2759.421890618881, + "95.0" : 2759.421890618881, + "99.0" : 2759.421890618881, + "99.9" : 2759.421890618881, + "99.99" : 2759.421890618881, + "99.999" : 2759.421890618881, + "99.9999" : 2759.421890618881, + "100.0" : 2759.421890618881 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2678.8808548562843, + 2680.4724669738675, + 2683.5451766372953 + ], + [ + 2733.344157571987, + 2759.421890618881, + 2750.126719125809 + ], + [ + 2709.4928928539957, + 2690.720282550591, + 2689.9372642918393 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 71058.98757792657, + "scoreError" : 822.5121592927409, + "scoreConfidence" : [ + 70236.47541863383, + 71881.49973721932 + ], + "scorePercentiles" : { + "0.0" : 70334.4708128567, + "50.0" : 71230.61338609025, + "90.0" : 71513.68980710543, + "95.0" : 71513.68980710543, + "99.0" : 71513.68980710543, + "99.9" : 71513.68980710543, + "99.99" : 71513.68980710543, + "99.999" : 71513.68980710543, + "99.9999" : 71513.68980710543, + "100.0" : 71513.68980710543 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 71368.81270009922, + 71230.61338609025, + 71190.58903098464 + ], + [ + 70334.4708128567, + 70389.2239357189, + 70557.90033738017 + ], + [ + 71513.68980710543, + 71475.07240288406, + 71470.51578821983 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 353.8880754496758, + "scoreError" : 2.8872515097664553, + "scoreConfidence" : [ + 351.00082393990937, + 356.7753269594422 + ], + "scorePercentiles" : { + "0.0" : 350.7947815417503, + "50.0" : 354.64335969623687, + "90.0" : 355.8222124963307, + "95.0" : 355.8222124963307, + "99.0" : 355.8222124963307, + "99.9" : 355.8222124963307, + "99.99" : 355.8222124963307, + "99.999" : 355.8222124963307, + "99.9999" : 355.8222124963307, + "100.0" : 355.8222124963307 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 355.56970556775656, + 355.8222124963307, + 354.9352269121157 + ], + [ + 354.6486608825263, + 353.1706551915284, + 354.64335969623687 + ], + [ + 350.7947815417503, + 353.6826154737699, + 351.7254612850681 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.725544877288, + "scoreError" : 1.8828817446497361, + "scoreConfidence" : [ + 105.84266313263826, + 109.60842662193774 + ], + "scorePercentiles" : { + "0.0" : 106.20111805060321, + "50.0" : 108.05817565088162, + "90.0" : 108.91316264233733, + "95.0" : 108.91316264233733, + "99.0" : 108.91316264233733, + "99.9" : 108.91316264233733, + "99.99" : 108.91316264233733, + "99.999" : 108.91316264233733, + "99.9999" : 108.91316264233733, + "100.0" : 108.91316264233733 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 108.08754446696082, + 107.92893729958848, + 108.05817565088162 + ], + [ + 108.91316264233733, + 108.80524904880716, + 108.7959124505325 + ], + [ + 106.51012019955222, + 106.22968408632865, + 106.20111805060321 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06139367548232111, + "scoreError" : 3.540999759717375E-4, + "scoreConfidence" : [ + 0.06103957550634937, + 0.061747775458292846 + ], + "scorePercentiles" : { + "0.0" : 0.06110012819854828, + "50.0" : 0.061308202516047156, + "90.0" : 0.061741893811702385, + "95.0" : 0.061741893811702385, + "99.0" : 0.061741893811702385, + "99.9" : 0.061741893811702385, + "99.99" : 0.061741893811702385, + "99.999" : 0.061741893811702385, + "99.9999" : 0.061741893811702385, + "100.0" : 0.061741893811702385 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.061263466611938835, + 0.06129953820738525, + 0.06110012819854828 + ], + [ + 0.061741893811702385, + 0.06153386918050137, + 0.06166293546437777 + ], + [ + 0.061243678443693196, + 0.06138936690669564, + 0.061308202516047156 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.694689698392999E-4, + "scoreError" : 9.255300635961062E-6, + "scoreConfidence" : [ + 3.602136692033388E-4, + 3.7872427047526094E-4 + ], + "scorePercentiles" : { + "0.0" : 3.6217798291792163E-4, + "50.0" : 3.7218480085890395E-4, + "90.0" : 3.7506734062791447E-4, + "95.0" : 3.7506734062791447E-4, + "99.0" : 3.7506734062791447E-4, + "99.9" : 3.7506734062791447E-4, + "99.99" : 3.7506734062791447E-4, + "99.999" : 3.7506734062791447E-4, + "99.9999" : 3.7506734062791447E-4, + "100.0" : 3.7506734062791447E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.622063955463637E-4, + 3.6227118109386175E-4, + 3.6217798291792163E-4 + ], + [ + 3.7320771985383417E-4, + 3.7278784840373975E-4, + 3.7506734062791447E-4 + ], + [ + 3.7218480085890395E-4, + 3.719860773868182E-4, + 3.733313818643414E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014185911212594595, + "scoreError" : 3.2603556268247393E-4, + "scoreConfidence" : [ + 0.013859875649912121, + 0.01451194677527707 + ], + "scorePercentiles" : { + "0.0" : 0.014013460115357451, + "50.0" : 0.014108437662597841, + "90.0" : 0.014442271787354495, + "95.0" : 0.014442271787354495, + "99.0" : 0.014442271787354495, + "99.9" : 0.014442271787354495, + "99.99" : 0.014442271787354495, + "99.999" : 0.014442271787354495, + "99.9999" : 0.014442271787354495, + "100.0" : 0.014442271787354495 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014110861143644116, + 0.014108437662597841, + 0.014073766856660334 + ], + [ + 0.014013460115357451, + 0.014017406076755624, + 0.014028585135753145 + ], + [ + 0.014441690347867277, + 0.014442271787354495, + 0.014436721787361084 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.000218969280612, + "scoreError" : 0.028304821762359534, + "scoreConfidence" : [ + 0.9719141475182526, + 1.0285237910429716 + ], + "scorePercentiles" : { + "0.0" : 0.971517003011463, + "50.0" : 1.006556415601409, + "90.0" : 1.0175622131664632, + "95.0" : 1.0175622131664632, + "99.0" : 1.0175622131664632, + "99.9" : 1.0175622131664632, + "99.99" : 1.0175622131664632, + "99.999" : 1.0175622131664632, + "99.9999" : 1.0175622131664632, + "100.0" : 1.0175622131664632 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9864229748471098, + 0.9793540111644305, + 0.971517003011463 + ], + [ + 1.0175622131664632, + 1.0142364593306288, + 1.0141052803690935 + ], + [ + 1.0029004894705174, + 1.006556415601409, + 1.0093158765643924 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013081022622499473, + "scoreError" : 3.378864151227627E-4, + "scoreConfidence" : [ + 0.01274313620737671, + 0.013418909037622237 + ], + "scorePercentiles" : { + "0.0" : 0.012912455037290306, + "50.0" : 0.013086725894439325, + "90.0" : 0.013221848698075737, + "95.0" : 0.013221848698075737, + "99.0" : 0.013221848698075737, + "99.9" : 0.013221848698075737, + "99.99" : 0.013221848698075737, + "99.999" : 0.013221848698075737, + "99.9999" : 0.013221848698075737, + "100.0" : 0.013221848698075737 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013221848698075737, + 0.013161446690900669, + 0.013169755604253201 + ], + [ + 0.012912455037290306, + 0.013008624606498946, + 0.013012005097977983 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6645016367361083, + "scoreError" : 0.13736673724963294, + "scoreConfidence" : [ + 3.5271348994864753, + 3.8018683739857413 + ], + "scorePercentiles" : { + "0.0" : 3.6035412175792505, + "50.0" : 3.6690025230107586, + "90.0" : 3.720898994791667, + "95.0" : 3.720898994791667, + "99.0" : 3.720898994791667, + "99.9" : 3.720898994791667, + "99.99" : 3.720898994791667, + "99.999" : 3.720898994791667, + "99.9999" : 3.720898994791667, + "100.0" : 3.720898994791667 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6035412175792505, + 3.638543946909091, + 3.6223095568428674 + ], + [ + 3.720898994791667, + 3.699461099112426, + 3.702255005181347 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.8352983613756226, + "scoreError" : 0.08666946035359768, + "scoreConfidence" : [ + 2.748628901022025, + 2.92196782172922 + ], + "scorePercentiles" : { + "0.0" : 2.765421011611833, + "50.0" : 2.8449870605802046, + "90.0" : 2.8918537652500724, + "95.0" : 2.8918537652500724, + "99.0" : 2.8918537652500724, + "99.9" : 2.8918537652500724, + "99.99" : 2.8918537652500724, + "99.999" : 2.8918537652500724, + "99.9999" : 2.8918537652500724, + "100.0" : 2.8918537652500724 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.835161081632653, + 2.8449870605802046, + 2.855578256996002 + ], + [ + 2.7817287532684283, + 2.768810570598007, + 2.765421011611833 + ], + [ + 2.8824682089337177, + 2.8918537652500724, + 2.8916765435096847 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17668539768407285, + "scoreError" : 0.0038052870787773085, + "scoreConfidence" : [ + 0.17288011060529554, + 0.18049068476285016 + ], + "scorePercentiles" : { + "0.0" : 0.17355092122663612, + "50.0" : 0.1777485684322787, + "90.0" : 0.17866238191628106, + "95.0" : 0.17866238191628106, + "99.0" : 0.17866238191628106, + "99.9" : 0.17866238191628106, + "99.99" : 0.17866238191628106, + "99.999" : 0.17866238191628106, + "99.9999" : 0.17866238191628106, + "100.0" : 0.17866238191628106 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17391668427826087, + 0.17365871248220052, + 0.17355092122663612 + ], + [ + 0.1777485684322787, + 0.17777599557349072, + 0.17773426860392785 + ], + [ + 0.17863249555214175, + 0.17866238191628106, + 0.17848855109143805 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.32587688199055964, + "scoreError" : 0.019338886180817538, + "scoreConfidence" : [ + 0.3065379958097421, + 0.34521576817137717 + ], + "scorePercentiles" : { + "0.0" : 0.3141145466453072, + "50.0" : 0.32231344068069745, + "90.0" : 0.3408148210074296, + "95.0" : 0.3408148210074296, + "99.0" : 0.3408148210074296, + "99.9" : 0.3408148210074296, + "99.99" : 0.3408148210074296, + "99.999" : 0.3408148210074296, + "99.9999" : 0.3408148210074296, + "100.0" : 0.3408148210074296 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3235398579054644, + 0.32227414531098936, + 0.32231344068069745 + ], + [ + 0.3408148210074296, + 0.34049507483827035, + 0.3400488105617519 + ], + [ + 0.3141145466453072, + 0.31483124140536456, + 0.3144599995597623 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1623926354338566, + "scoreError" : 0.012456786224923444, + "scoreConfidence" : [ + 0.14993584920893316, + 0.17484942165878004 + ], + "scorePercentiles" : { + "0.0" : 0.1533380093227226, + "50.0" : 0.16319451313685174, + "90.0" : 0.17073326242914702, + "95.0" : 0.17073326242914702, + "99.0" : 0.17073326242914702, + "99.9" : 0.17073326242914702, + "99.99" : 0.17073326242914702, + "99.999" : 0.17073326242914702, + "99.9999" : 0.17073326242914702, + "100.0" : 0.17073326242914702 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15338722272838826, + 0.15366977726043396, + 0.1533380093227226 + ], + [ + 0.16311651067577929, + 0.1632495087255334, + 0.16319451313685174 + ], + [ + 0.17073326242914702, + 0.17037008702318687, + 0.17047482760266616 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39736623534599325, + "scoreError" : 0.0072331898616597515, + "scoreConfidence" : [ + 0.3901330454843335, + 0.404599425207653 + ], + "scorePercentiles" : { + "0.0" : 0.39367914727186837, + "50.0" : 0.3956107970567292, + "90.0" : 0.40649457729360594, + "95.0" : 0.40649457729360594, + "99.0" : 0.40649457729360594, + "99.9" : 0.40649457729360594, + "99.99" : 0.40649457729360594, + "99.999" : 0.40649457729360594, + "99.9999" : 0.40649457729360594, + "100.0" : 0.40649457729360594 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3956107970567292, + 0.39441284527706566, + 0.3941601015726617 + ], + [ + 0.40649457729360594, + 0.39985587800879646, + 0.400734263273893 + ], + [ + 0.39739873168017803, + 0.3939497766791412, + 0.39367914727186837 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15825399365071202, + "scoreError" : 0.0013317635767325676, + "scoreConfidence" : [ + 0.15692223007397946, + 0.15958575722744459 + ], + "scorePercentiles" : { + "0.0" : 0.15673044195595956, + "50.0" : 0.1583845141196408, + "90.0" : 0.1593887585470426, + "95.0" : 0.1593887585470426, + "99.0" : 0.1593887585470426, + "99.9" : 0.1593887585470426, + "99.99" : 0.1593887585470426, + "99.999" : 0.1593887585470426, + "99.9999" : 0.1593887585470426, + "100.0" : 0.1593887585470426 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1583845141196408, + 0.15735447831696878, + 0.15673044195595956 + ], + [ + 0.15894453801039465, + 0.1582970085161617, + 0.15822979096518988 + ], + [ + 0.1593887585470426, + 0.1585478360180106, + 0.15840857640703956 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04790902474190342, + "scoreError" : 9.884302829136805E-4, + "scoreConfidence" : [ + 0.046920594458989745, + 0.0488974550248171 + ], + "scorePercentiles" : { + "0.0" : 0.04700120233216146, + "50.0" : 0.048178018003912006, + "90.0" : 0.04842747581320794, + "95.0" : 0.04842747581320794, + "99.0" : 0.04842747581320794, + "99.9" : 0.04842747581320794, + "99.99" : 0.04842747581320794, + "99.999" : 0.04842747581320794, + "99.9999" : 0.04842747581320794, + "100.0" : 0.04842747581320794 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047425067774184065, + 0.0470235094445202, + 0.04700120233216146 + ], + [ + 0.04842747581320794, + 0.04839052659746921, + 0.04833344739220586 + ], + [ + 0.04817166911375088, + 0.048178018003912006, + 0.04823030620571908 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9340768.943235474, + "scoreError" : 334580.2702463491, + "scoreConfidence" : [ + 9006188.672989124, + 9675349.213481823 + ], + "scorePercentiles" : { + "0.0" : 9167080.854262145, + "50.0" : 9249256.829944547, + "90.0" : 9604620.571976967, + "95.0" : 9604620.571976967, + "99.0" : 9604620.571976967, + "99.9" : 9604620.571976967, + "99.99" : 9604620.571976967, + "99.999" : 9604620.571976967, + "99.9999" : 9604620.571976967, + "100.0" : 9604620.571976967 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9603299.714971209, + 9604620.571976967, + 9599769.868522072 + ], + [ + 9176881.251376146, + 9171812.810265811, + 9167080.854262145 + ], + [ + 9250278.53789279, + 9243920.049907578, + 9249256.829944547 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T03:21:08Z-9099f7a1b442ee3cec5e62c9ac2172649b0e9303-jdk17.json b/performance-results/2025-04-03T03:21:08Z-9099f7a1b442ee3cec5e62c9ac2172649b0e9303-jdk17.json new file mode 100644 index 000000000..3968fb62a --- /dev/null +++ b/performance-results/2025-04-03T03:21:08Z-9099f7a1b442ee3cec5e62c9ac2172649b0e9303-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4206904700900105, + "scoreError" : 0.02183667760750563, + "scoreConfidence" : [ + 3.398853792482505, + 3.442527147697516 + ], + "scorePercentiles" : { + "0.0" : 3.4169173445120937, + "50.0" : 3.4204712443645153, + "90.0" : 3.4249020471189184, + "95.0" : 3.4249020471189184, + "99.0" : 3.4249020471189184, + "99.9" : 3.4249020471189184, + "99.99" : 3.4249020471189184, + "99.999" : 3.4249020471189184, + "99.9999" : 3.4249020471189184, + "100.0" : 3.4249020471189184 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4169173445120937, + 3.42151719244912 + ], + [ + 3.4194252962799103, + 3.4249020471189184 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7252335363338895, + "scoreError" : 0.008307105083911945, + "scoreConfidence" : [ + 1.7169264312499777, + 1.7335406414178014 + ], + "scorePercentiles" : { + "0.0" : 1.7239610059033839, + "50.0" : 1.7249873882714315, + "90.0" : 1.7269983628893113, + "95.0" : 1.7269983628893113, + "99.0" : 1.7269983628893113, + "99.9" : 1.7269983628893113, + "99.99" : 1.7269983628893113, + "99.999" : 1.7269983628893113, + "99.9999" : 1.7269983628893113, + "100.0" : 1.7269983628893113 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.725213956729067, + 1.7269983628893113 + ], + [ + 1.7239610059033839, + 1.7247608198137958 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8684343770623647, + "scoreError" : 0.007317786949523727, + "scoreConfidence" : [ + 0.861116590112841, + 0.8757521640118884 + ], + "scorePercentiles" : { + "0.0" : 0.867179793041212, + "50.0" : 0.8684535805333289, + "90.0" : 0.8696505541415892, + "95.0" : 0.8696505541415892, + "99.0" : 0.8696505541415892, + "99.9" : 0.8696505541415892, + "99.99" : 0.8696505541415892, + "99.999" : 0.8696505541415892, + "99.9999" : 0.8696505541415892, + "100.0" : 0.8696505541415892 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.867179793041212, + 0.8690834321319288 + ], + [ + 0.867823728934729, + 0.8696505541415892 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.17909126766679, + "scoreError" : 0.2559768985488164, + "scoreConfidence" : [ + 15.923114369117975, + 16.435068166215608 + ], + "scorePercentiles" : { + "0.0" : 15.95867060528112, + "50.0" : 16.219606732032062, + "90.0" : 16.34178668248754, + "95.0" : 16.34178668248754, + "99.0" : 16.34178668248754, + "99.9" : 16.34178668248754, + "99.99" : 16.34178668248754, + "99.999" : 16.34178668248754, + "99.9999" : 16.34178668248754, + "100.0" : 16.34178668248754 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.33268306277049, + 16.34178668248754, + 16.317455598781788 + ], + [ + 16.222099039014896, + 16.21617211413328, + 16.219606732032062 + ], + [ + 15.998538550283158, + 16.0048090242168, + 15.95867060528112 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2741.393458861405, + "scoreError" : 128.33119256683457, + "scoreConfidence" : [ + 2613.0622662945707, + 2869.7246514282397 + ], + "scorePercentiles" : { + "0.0" : 2652.278337073892, + "50.0" : 2734.203485973766, + "90.0" : 2835.992818278071, + "95.0" : 2835.992818278071, + "99.0" : 2835.992818278071, + "99.9" : 2835.992818278071, + "99.99" : 2835.992818278071, + "99.999" : 2835.992818278071, + "99.9999" : 2835.992818278071, + "100.0" : 2835.992818278071 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2661.1713934815975, + 2657.433088914789, + 2652.278337073892 + ], + [ + 2832.7345846544295, + 2829.543160848537, + 2835.992818278071 + ], + [ + 2737.992023875842, + 2731.192236651723, + 2734.203485973766 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69626.51006344466, + "scoreError" : 1442.2282000666273, + "scoreConfidence" : [ + 68184.28186337803, + 71068.73826351129 + ], + "scorePercentiles" : { + "0.0" : 68747.77960524686, + "50.0" : 69415.45501954913, + "90.0" : 70718.66289611543, + "95.0" : 70718.66289611543, + "99.0" : 70718.66289611543, + "99.9" : 70718.66289611543, + "99.99" : 70718.66289611543, + "99.999" : 70718.66289611543, + "99.9999" : 70718.66289611543, + "100.0" : 70718.66289611543 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69508.20422837307, + 69329.92052768177, + 69415.45501954913 + ], + [ + 68759.44810168311, + 68766.27396576387, + 68747.77960524686 + ], + [ + 70718.66289611543, + 70696.14519876917, + 70696.7010278194 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 354.62313474254336, + "scoreError" : 7.606529656984937, + "scoreConfidence" : [ + 347.0166050855584, + 362.2296643995283 + ], + "scorePercentiles" : { + "0.0" : 349.0330227618401, + "50.0" : 354.7798397775166, + "90.0" : 359.74298642059154, + "95.0" : 359.74298642059154, + "99.0" : 359.74298642059154, + "99.9" : 359.74298642059154, + "99.99" : 359.74298642059154, + "99.999" : 359.74298642059154, + "99.9999" : 359.74298642059154, + "100.0" : 359.74298642059154 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 359.23653220898484, + 358.78449189912214, + 359.74298642059154 + ], + [ + 349.12833515981123, + 349.0330227618401, + 349.0772965711547 + ], + [ + 354.7798397775166, + 354.58012610305406, + 357.245581780815 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.85075131510806, + "scoreError" : 2.625356711099751, + "scoreConfidence" : [ + 105.2253946040083, + 110.47610802620781 + ], + "scorePercentiles" : { + "0.0" : 106.59276942871568, + "50.0" : 107.03915029820716, + "90.0" : 109.93824920257076, + "95.0" : 109.93824920257076, + "99.0" : 109.93824920257076, + "99.9" : 109.93824920257076, + "99.99" : 109.93824920257076, + "99.999" : 109.93824920257076, + "99.9999" : 109.93824920257076, + "100.0" : 109.93824920257076 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 106.64717439112054, + 106.74946925270864, + 106.74222649575631 + ], + [ + 106.59276942871568, + 107.03915029820716, + 107.12172718231646 + ], + [ + 109.92123791555389, + 109.93824920257076, + 109.90475766902303 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06159594570780158, + "scoreError" : 8.981845003630485E-4, + "scoreConfidence" : [ + 0.060697761207438534, + 0.062494130208164626 + ], + "scorePercentiles" : { + "0.0" : 0.061129065987737714, + "50.0" : 0.06128236699738327, + "90.0" : 0.062467338455580126, + "95.0" : 0.062467338455580126, + "99.0" : 0.062467338455580126, + "99.9" : 0.062467338455580126, + "99.99" : 0.062467338455580126, + "99.999" : 0.062467338455580126, + "99.9999" : 0.062467338455580126, + "100.0" : 0.062467338455580126 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06209102383642957, + 0.06232024442865689, + 0.062467338455580126 + ], + [ + 0.06126727419097916, + 0.06119005713219277, + 0.061129065987737714 + ], + [ + 0.061336540454007375, + 0.06128236699738327, + 0.0612795998872473 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.696119107404097E-4, + "scoreError" : 9.97721816459628E-6, + "scoreConfidence" : [ + 3.596346925758134E-4, + 3.79589128905006E-4 + ], + "scorePercentiles" : { + "0.0" : 3.626888560288343E-4, + "50.0" : 3.686331515365253E-4, + "90.0" : 3.773193622138792E-4, + "95.0" : 3.773193622138792E-4, + "99.0" : 3.773193622138792E-4, + "99.9" : 3.773193622138792E-4, + "99.99" : 3.773193622138792E-4, + "99.999" : 3.773193622138792E-4, + "99.9999" : 3.773193622138792E-4, + "100.0" : 3.773193622138792E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7698920463475277E-4, + 3.773193622138792E-4, + 3.762850259338338E-4 + ], + [ + 3.626888560288343E-4, + 3.637296742969206E-4, + 3.63402454815387E-4 + ], + [ + 3.6888732463155117E-4, + 3.686331515365253E-4, + 3.685721425720028E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.01429124971939135, + "scoreError" : 4.7653081770894496E-4, + "scoreConfidence" : [ + 0.013814718901682404, + 0.014767780537100294 + ], + "scorePercentiles" : { + "0.0" : 0.014011771877022926, + "50.0" : 0.014203055541826094, + "90.0" : 0.014662239724822296, + "95.0" : 0.014662239724822296, + "99.0" : 0.014662239724822296, + "99.9" : 0.014662239724822296, + "99.99" : 0.014662239724822296, + "99.999" : 0.014662239724822296, + "99.9999" : 0.014662239724822296, + "100.0" : 0.014662239724822296 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.0142007654630245, + 0.014205766461443175, + 0.014203055541826094 + ], + [ + 0.014025981748205747, + 0.014011771877022926, + 0.014013038340596667 + ], + [ + 0.01464161089498721, + 0.01465701742259353, + 0.014662239724822296 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9781382338333438, + "scoreError" : 0.01588711632877792, + "scoreConfidence" : [ + 0.9622511175045658, + 0.9940253501621217 + ], + "scorePercentiles" : { + "0.0" : 0.9687070489151491, + "50.0" : 0.9749398667381556, + "90.0" : 0.9923944358440012, + "95.0" : 0.9923944358440012, + "99.0" : 0.9923944358440012, + "99.9" : 0.9923944358440012, + "99.99" : 0.9923944358440012, + "99.999" : 0.9923944358440012, + "99.9999" : 0.9923944358440012, + "100.0" : 0.9923944358440012 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9905149994057052, + 0.9877674571315685, + 0.9923944358440012 + ], + [ + 0.9687070489151491, + 0.9702613015426409, + 0.9690745838178294 + ], + [ + 0.9750571266575663, + 0.9749398667381556, + 0.9745272844474762 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012951543349691617, + "scoreError" : 7.17908173353132E-5, + "scoreConfidence" : [ + 0.012879752532356304, + 0.01302333416702693 + ], + "scorePercentiles" : { + "0.0" : 0.012927962256345552, + "50.0" : 0.012945963688038627, + "90.0" : 0.012992789849235263, + "95.0" : 0.012992789849235263, + "99.0" : 0.012992789849235263, + "99.9" : 0.012992789849235263, + "99.99" : 0.012992789849235263, + "99.999" : 0.012992789849235263, + "99.9999" : 0.012992789849235263, + "100.0" : 0.012992789849235263 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01293589796652265, + 0.012929136678630163, + 0.012927962256345552 + ], + [ + 0.012992789849235263, + 0.012956029409554606, + 0.012967443937861459 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6448004708793054, + "scoreError" : 0.23658004422340556, + "scoreConfidence" : [ + 3.4082204266559, + 3.8813805151027108 + ], + "scorePercentiles" : { + "0.0" : 3.5409849886765747, + "50.0" : 3.650745095226265, + "90.0" : 3.722874720982143, + "95.0" : 3.722874720982143, + "99.0" : 3.722874720982143, + "99.9" : 3.722874720982143, + "99.99" : 3.722874720982143, + "99.999" : 3.722874720982143, + "99.9999" : 3.722874720982143, + "100.0" : 3.722874720982143 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7169321567607727, + 3.722874720982143, + 3.7216814717261903 + ], + [ + 3.5409849886765747, + 3.5817714534383955, + 3.5845580336917564 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.792517699935429, + "scoreError" : 0.02652058118597728, + "scoreConfidence" : [ + 2.7659971187494516, + 2.819038281121406 + ], + "scorePercentiles" : { + "0.0" : 2.7707105880886425, + "50.0" : 2.791919388051368, + "90.0" : 2.811218851602024, + "95.0" : 2.811218851602024, + "99.0" : 2.811218851602024, + "99.9" : 2.811218851602024, + "99.99" : 2.811218851602024, + "99.999" : 2.811218851602024, + "99.9999" : 2.811218851602024, + "100.0" : 2.811218851602024 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8110501843732436, + 2.811218851602024, + 2.8094077328651688 + ], + [ + 2.771137926018288, + 2.7707105880886425, + 2.7836048469245758 + ], + [ + 2.791919388051368, + 2.792374098548297, + 2.791235682947251 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1742432157856465, + "scoreError" : 0.004875078290119533, + "scoreConfidence" : [ + 0.16936813749552695, + 0.17911829407576604 + ], + "scorePercentiles" : { + "0.0" : 0.17208208915388984, + "50.0" : 0.17246391856514615, + "90.0" : 0.17818732172766474, + "95.0" : 0.17818732172766474, + "99.0" : 0.17818732172766474, + "99.9" : 0.17818732172766474, + "99.99" : 0.17818732172766474, + "99.999" : 0.17818732172766474, + "99.9999" : 0.17818732172766474, + "100.0" : 0.17818732172766474 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17262994255036337, + 0.1722843506761995, + 0.17215549340655556 + ], + [ + 0.1722585692803252, + 0.17208208915388984, + 0.17246391856514615 + ], + [ + 0.17818732172766474, + 0.17799467089689053, + 0.17813258581378363 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3333449063182734, + "scoreError" : 0.005905235020739848, + "scoreConfidence" : [ + 0.32743967129753354, + 0.33925014133901327 + ], + "scorePercentiles" : { + "0.0" : 0.329350732446318, + "50.0" : 0.33232254492888474, + "90.0" : 0.33807079141311697, + "95.0" : 0.33807079141311697, + "99.0" : 0.33807079141311697, + "99.9" : 0.33807079141311697, + "99.99" : 0.33807079141311697, + "99.999" : 0.33807079141311697, + "99.9999" : 0.33807079141311697, + "100.0" : 0.33807079141311697 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3301769634508716, + 0.329350732446318, + 0.32948116519504483 + ], + [ + 0.33404202852657244, + 0.33232254492888474, + 0.33195924776763486 + ], + [ + 0.33807079141311697, + 0.33732083306348243, + 0.3373798500725347 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16205925527522547, + "scoreError" : 0.005801548356563951, + "scoreConfidence" : [ + 0.1562577069186615, + 0.16786080363178943 + ], + "scorePercentiles" : { + "0.0" : 0.15775786740810854, + "50.0" : 0.162711726244712, + "90.0" : 0.16611034483904188, + "95.0" : 0.16611034483904188, + "99.0" : 0.16611034483904188, + "99.9" : 0.16611034483904188, + "99.99" : 0.16611034483904188, + "99.999" : 0.16611034483904188, + "99.9999" : 0.16611034483904188, + "100.0" : 0.16611034483904188 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15784430243863942, + 0.15775786740810854, + 0.1578714414309169 + ], + [ + 0.16611034483904188, + 0.1653657661931771, + 0.16567923764475886 + ], + [ + 0.16281569179922176, + 0.162711726244712, + 0.1623769194784529 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38844540306756375, + "scoreError" : 0.007554763837641979, + "scoreConfidence" : [ + 0.3808906392299218, + 0.39600016690520573 + ], + "scorePercentiles" : { + "0.0" : 0.38233104985471783, + "50.0" : 0.38763725885727573, + "90.0" : 0.3965965093793377, + "95.0" : 0.3965965093793377, + "99.0" : 0.3965965093793377, + "99.9" : 0.3965965093793377, + "99.99" : 0.3965965093793377, + "99.999" : 0.3965965093793377, + "99.9999" : 0.3965965093793377, + "100.0" : 0.3965965093793377 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3913939590215264, + 0.3826024790343561, + 0.38233104985471783 + ], + [ + 0.39190607030607044, + 0.38736799585528353, + 0.38763725885727573 + ], + [ + 0.3965965093793377, + 0.38878835813700335, + 0.38738494716250244 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15717731845538507, + "scoreError" : 0.0025445160448387513, + "scoreConfidence" : [ + 0.15463280241054633, + 0.1597218345002238 + ], + "scorePercentiles" : { + "0.0" : 0.15498779949474598, + "50.0" : 0.1574507210334892, + "90.0" : 0.15957643376896932, + "95.0" : 0.15957643376896932, + "99.0" : 0.15957643376896932, + "99.9" : 0.15957643376896932, + "99.99" : 0.15957643376896932, + "99.999" : 0.15957643376896932, + "99.9999" : 0.15957643376896932, + "100.0" : 0.15957643376896932 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15595670473472442, + 0.1553044715721141, + 0.15498779949474598 + ], + [ + 0.15957643376896932, + 0.15827448316794074, + 0.15837715270343036 + ], + [ + 0.15745232445326154, + 0.1574507210334892, + 0.15721577516978996 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04712556397907962, + "scoreError" : 0.0015890684722958284, + "scoreConfidence" : [ + 0.04553649550678379, + 0.048714632451375445 + ], + "scorePercentiles" : { + "0.0" : 0.045865031742610134, + "50.0" : 0.047629415089756474, + "90.0" : 0.048132523928707226, + "95.0" : 0.048132523928707226, + "99.0" : 0.048132523928707226, + "99.9" : 0.048132523928707226, + "99.99" : 0.048132523928707226, + "99.999" : 0.048132523928707226, + "99.9999" : 0.048132523928707226, + "100.0" : 0.048132523928707226 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047704076315776923, + 0.04758969826585194, + 0.047651035980787376 + ], + [ + 0.045865031742610134, + 0.04587505893929455, + 0.04590735107926219 + ], + [ + 0.048132523928707226, + 0.04777588446966982, + 0.047629415089756474 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9287425.275754306, + "scoreError" : 673064.5173172944, + "scoreConfidence" : [ + 8614360.758437011, + 9960489.793071602 + ], + "scorePercentiles" : { + "0.0" : 8931976.855357142, + "50.0" : 9097843.042727273, + "90.0" : 9823178.722276742, + "95.0" : 9823178.722276742, + "99.0" : 9823178.722276742, + "99.9" : 9823178.722276742, + "99.99" : 9823178.722276742, + "99.999" : 9823178.722276742, + "99.9999" : 9823178.722276742, + "100.0" : 9823178.722276742 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9798666.694417238, + 9815992.58390579, + 9823178.722276742 + ], + [ + 9135345.167123288, + 9097843.042727273, + 9086959.946412353 + ], + [ + 8957876.223813787, + 8938988.245755138, + 8931976.855357142 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T04:18:38Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json b/performance-results/2025-04-03T04:18:38Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json new file mode 100644 index 000000000..0fe671611 --- /dev/null +++ b/performance-results/2025-04-03T04:18:38Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4069670399174807, + "scoreError" : 0.01377711284446077, + "scoreConfidence" : [ + 3.39318992707302, + 3.4207441527619413 + ], + "scorePercentiles" : { + "0.0" : 3.4045192638077895, + "50.0" : 3.4072206524360227, + "90.0" : 3.408907590990087, + "95.0" : 3.408907590990087, + "99.0" : 3.408907590990087, + "99.9" : 3.408907590990087, + "99.99" : 3.408907590990087, + "99.999" : 3.408907590990087, + "99.9999" : 3.408907590990087, + "100.0" : 3.408907590990087 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4045192638077895, + 3.4085900660281925 + ], + [ + 3.405851238843853, + 3.408907590990087 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.719648412053527, + "scoreError" : 0.02809970741527712, + "scoreConfidence" : [ + 1.6915487046382498, + 1.747748119468804 + ], + "scorePercentiles" : { + "0.0" : 1.7142389493573933, + "50.0" : 1.7197343077505653, + "90.0" : 1.724886083355584, + "95.0" : 1.724886083355584, + "99.0" : 1.724886083355584, + "99.9" : 1.724886083355584, + "99.99" : 1.724886083355584, + "99.999" : 1.724886083355584, + "99.9999" : 1.724886083355584, + "100.0" : 1.724886083355584 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7198267502215996, + 1.724886083355584 + ], + [ + 1.7142389493573933, + 1.719641865279531 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8662654811505468, + "scoreError" : 0.00672456953410522, + "scoreConfidence" : [ + 0.8595409116164415, + 0.8729900506846521 + ], + "scorePercentiles" : { + "0.0" : 0.8653473559404564, + "50.0" : 0.8660314345774419, + "90.0" : 0.8676516995068471, + "95.0" : 0.8676516995068471, + "99.0" : 0.8676516995068471, + "99.9" : 0.8676516995068471, + "99.99" : 0.8676516995068471, + "99.999" : 0.8676516995068471, + "99.9999" : 0.8676516995068471, + "100.0" : 0.8676516995068471 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8653473559404564, + 0.8664642452472594 + ], + [ + 0.8655986239076244, + 0.8676516995068471 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.881613268860953, + "scoreError" : 0.16972371039592618, + "scoreConfidence" : [ + 15.711889558465026, + 16.051336979256877 + ], + "scorePercentiles" : { + "0.0" : 15.742701283030245, + "50.0" : 15.901656590162244, + "90.0" : 15.99973571476549, + "95.0" : 15.99973571476549, + "99.0" : 15.99973571476549, + "99.9" : 15.99973571476549, + "99.99" : 15.99973571476549, + "99.999" : 15.99973571476549, + "99.9999" : 15.99973571476549, + "100.0" : 15.99973571476549 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.935344863973986, + 15.972098879330911, + 15.901656590162244 + ], + [ + 15.757391679403302, + 15.871936389357284, + 15.773600580677298 + ], + [ + 15.742701283030245, + 15.980053439047829, + 15.99973571476549 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2573.939325064266, + "scoreError" : 66.9181072449432, + "scoreConfidence" : [ + 2507.021217819323, + 2640.8574323092093 + ], + "scorePercentiles" : { + "0.0" : 2515.2229208854337, + "50.0" : 2569.4866319365015, + "90.0" : 2639.1359506980743, + "95.0" : 2639.1359506980743, + "99.0" : 2639.1359506980743, + "99.9" : 2639.1359506980743, + "99.99" : 2639.1359506980743, + "99.999" : 2639.1359506980743, + "99.9999" : 2639.1359506980743, + "100.0" : 2639.1359506980743 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2560.1238720819943, + 2515.2229208854337, + 2554.682790491716 + ], + [ + 2569.4866319365015, + 2607.02742513819, + 2586.839165945245 + ], + [ + 2527.5210870802625, + 2605.414081320981, + 2639.1359506980743 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 68846.59384431818, + "scoreError" : 1148.764589611738, + "scoreConfidence" : [ + 67697.82925470645, + 69995.35843392991 + ], + "scorePercentiles" : { + "0.0" : 68007.01410414431, + "50.0" : 68771.41539379892, + "90.0" : 69848.51628355683, + "95.0" : 69848.51628355683, + "99.0" : 69848.51628355683, + "99.9" : 69848.51628355683, + "99.99" : 69848.51628355683, + "99.999" : 69848.51628355683, + "99.9999" : 69848.51628355683, + "100.0" : 69848.51628355683 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69523.41353028912, + 69848.51628355683, + 69556.08312562345 + ], + [ + 68007.01410414431, + 68771.41539379892, + 69007.79544421007 + ], + [ + 68034.56775354304, + 68574.90101325582, + 68295.63795044218 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 342.9326843032323, + "scoreError" : 5.632654178479563, + "scoreConfidence" : [ + 337.3000301247527, + 348.5653384817119 + ], + "scorePercentiles" : { + "0.0" : 338.22134638914224, + "50.0" : 342.65657276820275, + "90.0" : 348.7118127353454, + "95.0" : 348.7118127353454, + "99.0" : 348.7118127353454, + "99.9" : 348.7118127353454, + "99.99" : 348.7118127353454, + "99.999" : 348.7118127353454, + "99.9999" : 348.7118127353454, + "100.0" : 348.7118127353454 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 346.2396737614174, + 344.4937949433161, + 348.7118127353454 + ], + [ + 338.22134638914224, + 339.50568888443763, + 344.2246711810125 + ], + [ + 342.65657276820275, + 340.39185850752824, + 341.9487395586887 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 104.41664466797751, + "scoreError" : 3.4239410559884464, + "scoreConfidence" : [ + 100.99270361198906, + 107.84058572396596 + ], + "scorePercentiles" : { + "0.0" : 101.34074595436566, + "50.0" : 105.26679530526971, + "90.0" : 106.52285125107282, + "95.0" : 106.52285125107282, + "99.0" : 106.52285125107282, + "99.9" : 106.52285125107282, + "99.99" : 106.52285125107282, + "99.999" : 106.52285125107282, + "99.9999" : 106.52285125107282, + "100.0" : 106.52285125107282 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 102.03512173310942, + 101.34074595436566, + 102.14607145041818 + ], + [ + 105.99328845197857, + 106.09573198089387, + 104.36496507781024 + ], + [ + 105.26679530526971, + 105.98423080687914, + 106.52285125107282 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06291601396860064, + "scoreError" : 0.0010268130772880873, + "scoreConfidence" : [ + 0.06188920089131255, + 0.06394282704588873 + ], + "scorePercentiles" : { + "0.0" : 0.06190691776395209, + "50.0" : 0.06296611601329824, + "90.0" : 0.0638439230946027, + "95.0" : 0.0638439230946027, + "99.0" : 0.0638439230946027, + "99.9" : 0.0638439230946027, + "99.99" : 0.0638439230946027, + "99.999" : 0.0638439230946027, + "99.9999" : 0.0638439230946027, + "100.0" : 0.0638439230946027 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06264503327653603, + 0.06243686636905691, + 0.06332339414394447 + ], + [ + 0.06244408786981879, + 0.06190691776395209, + 0.0638439230946027 + ], + [ + 0.06317183357022381, + 0.06296611601329824, + 0.06350595361597276 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.772918445712037E-4, + "scoreError" : 1.3750074525357626E-5, + "scoreConfidence" : [ + 3.635417700458461E-4, + 3.910419190965613E-4 + ], + "scorePercentiles" : { + "0.0" : 3.67455808549216E-4, + "50.0" : 3.758903578714715E-4, + "90.0" : 3.898184364874329E-4, + "95.0" : 3.898184364874329E-4, + "99.0" : 3.898184364874329E-4, + "99.9" : 3.898184364874329E-4, + "99.99" : 3.898184364874329E-4, + "99.999" : 3.898184364874329E-4, + "99.9999" : 3.898184364874329E-4, + "100.0" : 3.898184364874329E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.822310819920716E-4, + 3.8398533949458825E-4, + 3.898184364874329E-4 + ], + [ + 3.7456247794088814E-4, + 3.758903578714715E-4, + 3.844980090532881E-4 + ], + [ + 3.684198426518969E-4, + 3.6876524709997987E-4, + 3.67455808549216E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014692487168159126, + "scoreError" : 1.0890921120123715E-4, + "scoreConfidence" : [ + 0.014583577956957888, + 0.014801396379360364 + ], + "scorePercentiles" : { + "0.0" : 0.014623069662020972, + "50.0" : 0.014686299765904265, + "90.0" : 0.01481580967669291, + "95.0" : 0.01481580967669291, + "99.0" : 0.01481580967669291, + "99.9" : 0.01481580967669291, + "99.99" : 0.01481580967669291, + "99.999" : 0.01481580967669291, + "99.9999" : 0.01481580967669291, + "100.0" : 0.01481580967669291 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01481580967669291, + 0.014761402142737998, + 0.01471955471785874 + ], + [ + 0.014686299765904265, + 0.014623069662020972, + 0.01464070584084271 + ], + [ + 0.014698066747505035, + 0.014626562814467248, + 0.014660913145402247 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.991542696406702, + "scoreError" : 0.023328699477302327, + "scoreConfidence" : [ + 0.9682139969293997, + 1.0148713958840043 + ], + "scorePercentiles" : { + "0.0" : 0.9696445302501454, + "50.0" : 0.9992563994804157, + "90.0" : 1.0060960282696176, + "95.0" : 1.0060960282696176, + "99.0" : 1.0060960282696176, + "99.9" : 1.0060960282696176, + "99.99" : 1.0060960282696176, + "99.999" : 1.0060960282696176, + "99.9999" : 1.0060960282696176, + "100.0" : 1.0060960282696176 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9999140340965903, + 0.9992563994804157, + 0.9996002698650674 + ], + [ + 1.001559894241362, + 1.0060960282696176, + 0.9970750286141575 + ], + [ + 0.9696445302501454, + 0.9763279108659573, + 0.9744101719770047 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013056361858015402, + "scoreError" : 9.322779867712266E-4, + "scoreConfidence" : [ + 0.012124083871244177, + 0.013988639844786628 + ], + "scorePercentiles" : { + "0.0" : 0.01265293295628519, + "50.0" : 0.013073918976377876, + "90.0" : 0.013424728910260541, + "95.0" : 0.013424728910260541, + "99.0" : 0.013424728910260541, + "99.9" : 0.013424728910260541, + "99.99" : 0.013424728910260541, + "99.999" : 0.013424728910260541, + "99.9999" : 0.013424728910260541, + "100.0" : 0.013424728910260541 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01265293295628519, + 0.012762067769615975, + 0.01287342819259179 + ], + [ + 0.013274409760163962, + 0.013424728910260541, + 0.013350603559174955 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.7533453814696007, + "scoreError" : 0.07221931908733174, + "scoreConfidence" : [ + 3.681126062382269, + 3.8255647005569324 + ], + "scorePercentiles" : { + "0.0" : 3.715878045319465, + "50.0" : 3.7647120831820504, + "90.0" : 3.7759736120754717, + "95.0" : 3.7759736120754717, + "99.0" : 3.7759736120754717, + "99.9" : 3.7759736120754717, + "99.99" : 3.7759736120754717, + "99.999" : 3.7759736120754717, + "99.9999" : 3.7759736120754717, + "100.0" : 3.7759736120754717 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7583392802404205, + 3.715878045319465, + 3.726707458271237 + ], + [ + 3.7710848861236803, + 3.7720890067873305, + 3.7759736120754717 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.889554648811101, + "scoreError" : 0.10180974707315243, + "scoreConfidence" : [ + 2.7877449017379483, + 2.9913643958842533 + ], + "scorePercentiles" : { + "0.0" : 2.8047336149747615, + "50.0" : 2.9016337911227152, + "90.0" : 2.970081754083754, + "95.0" : 2.970081754083754, + "99.0" : 2.970081754083754, + "99.9" : 2.970081754083754, + "99.99" : 2.970081754083754, + "99.999" : 2.970081754083754, + "99.9999" : 2.970081754083754, + "100.0" : 2.970081754083754 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.970081754083754, + 2.9444875981748604, + 2.90051821287703 + ], + [ + 2.8047336149747615, + 2.8152427427526034, + 2.822288823927765 + ], + [ + 2.9185109804493727, + 2.9284943209370424, + 2.9016337911227152 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1805457075975223, + "scoreError" : 0.0032906053591940008, + "scoreConfidence" : [ + 0.1772551022383283, + 0.18383631295671632 + ], + "scorePercentiles" : { + "0.0" : 0.1789229324936036, + "50.0" : 0.1797346438469419, + "90.0" : 0.18514838317410945, + "95.0" : 0.18514838317410945, + "99.0" : 0.18514838317410945, + "99.9" : 0.18514838317410945, + "99.99" : 0.18514838317410945, + "99.999" : 0.18514838317410945, + "99.9999" : 0.18514838317410945, + "100.0" : 0.18514838317410945 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.18514838317410945, + 0.18192817100858683, + 0.18085476485694651 + ], + [ + 0.1797346438469419, + 0.17923391680108972, + 0.18011414041280935 + ], + [ + 0.1789229324936036, + 0.17933638023420548, + 0.1796380355494081 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33802979936950583, + "scoreError" : 0.007790846575675005, + "scoreConfidence" : [ + 0.3302389527938308, + 0.34582064594518086 + ], + "scorePercentiles" : { + "0.0" : 0.33224624904481875, + "50.0" : 0.3363953684405275, + "90.0" : 0.3439181182681065, + "95.0" : 0.3439181182681065, + "99.0" : 0.3439181182681065, + "99.9" : 0.3439181182681065, + "99.99" : 0.3439181182681065, + "99.999" : 0.3439181182681065, + "99.9999" : 0.3439181182681065, + "100.0" : 0.3439181182681065 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3363953684405275, + 0.3355822697651007, + 0.33907762964093174 + ], + [ + 0.3438371653142621, + 0.3439181182681065, + 0.34326591658943467 + ], + [ + 0.33389524587646074, + 0.3340502313859104, + 0.33224624904481875 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16610825006196098, + "scoreError" : 0.005481242770670671, + "scoreConfidence" : [ + 0.1606270072912903, + 0.17158949283263164 + ], + "scorePercentiles" : { + "0.0" : 0.16116178712671833, + "50.0" : 0.16686997396876252, + "90.0" : 0.16965193444847826, + "95.0" : 0.16965193444847826, + "99.0" : 0.16965193444847826, + "99.9" : 0.16965193444847826, + "99.99" : 0.16965193444847826, + "99.999" : 0.16965193444847826, + "99.9999" : 0.16965193444847826, + "100.0" : 0.16965193444847826 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16686997396876252, + 0.1677147124744239, + 0.1665400422502373 + ], + [ + 0.16275387152529133, + 0.16116178712671833, + 0.16213362620989316 + ], + [ + 0.16965193444847826, + 0.1692971778936498, + 0.16885112466019417 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3900476853359935, + "scoreError" : 0.013179482989262305, + "scoreConfidence" : [ + 0.3768682023467312, + 0.4032271683252558 + ], + "scorePercentiles" : { + "0.0" : 0.378498379168086, + "50.0" : 0.39198960250078396, + "90.0" : 0.401988626281304, + "95.0" : 0.401988626281304, + "99.0" : 0.401988626281304, + "99.9" : 0.401988626281304, + "99.99" : 0.401988626281304, + "99.999" : 0.401988626281304, + "99.9999" : 0.401988626281304, + "100.0" : 0.401988626281304 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39413079210184054, + 0.378498379168086, + 0.37850229889103365 + ], + [ + 0.401988626281304, + 0.39198960250078396, + 0.3924206083032491 + ], + [ + 0.39697791433448454, + 0.38790818863460047, + 0.38801275780855937 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1558497393759247, + "scoreError" : 0.005886044703965503, + "scoreConfidence" : [ + 0.1499636946719592, + 0.1617357840798902 + ], + "scorePercentiles" : { + "0.0" : 0.1525339157870653, + "50.0" : 0.15429124798654612, + "90.0" : 0.16052009594054478, + "95.0" : 0.16052009594054478, + "99.0" : 0.16052009594054478, + "99.9" : 0.16052009594054478, + "99.99" : 0.16052009594054478, + "99.999" : 0.16052009594054478, + "99.9999" : 0.16052009594054478, + "100.0" : 0.16052009594054478 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15263621707343134, + 0.15287506503195034, + 0.1525339157870653 + ], + [ + 0.16052009594054478, + 0.1603939217617245, + 0.16025259234331682 + ], + [ + 0.15504192820155038, + 0.15429124798654612, + 0.1541026702571926 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.046866688633485816, + "scoreError" : 4.7205703256350144E-4, + "scoreConfidence" : [ + 0.04639463160092232, + 0.047338745666049314 + ], + "scorePercentiles" : { + "0.0" : 0.0465004971821031, + "50.0" : 0.04677862280611481, + "90.0" : 0.047195328475420975, + "95.0" : 0.047195328475420975, + "99.0" : 0.047195328475420975, + "99.9" : 0.047195328475420975, + "99.99" : 0.047195328475420975, + "99.999" : 0.047195328475420975, + "99.9999" : 0.047195328475420975, + "100.0" : 0.047195328475420975 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04677862280611481, + 0.0465004971821031, + 0.04658195166248987 + ], + [ + 0.047106999882234345, + 0.04674651273349414, + 0.046599830365755344 + ], + [ + 0.04717519188221475, + 0.04711526271154499, + 0.047195328475420975 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9274065.194162289, + "scoreError" : 255674.20191399023, + "scoreConfidence" : [ + 9018390.992248299, + 9529739.396076279 + ], + "scorePercentiles" : { + "0.0" : 9054173.222624434, + "50.0" : 9343782.669467786, + "90.0" : 9467276.662251655, + "95.0" : 9467276.662251655, + "99.0" : 9467276.662251655, + "99.9" : 9467276.662251655, + "99.99" : 9467276.662251655, + "99.999" : 9467276.662251655, + "99.9999" : 9467276.662251655, + "100.0" : 9467276.662251655 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9370335.287453184, + 9343782.669467786, + 9419851.420507995 + ], + [ + 9199186.877757354, + 9373907.444236176, + 9467276.662251655 + ], + [ + 9054173.222624434, + 9103496.834394904, + 9134576.328767123 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T04:19:02Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json b/performance-results/2025-04-03T04:19:02Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json new file mode 100644 index 000000000..4f6416e5a --- /dev/null +++ b/performance-results/2025-04-03T04:19:02Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4207323250526915, + "scoreError" : 0.0319456484452798, + "scoreConfidence" : [ + 3.388786676607412, + 3.452677973497971 + ], + "scorePercentiles" : { + "0.0" : 3.4148720216622768, + "50.0" : 3.420843722069556, + "90.0" : 3.4263698344093774, + "95.0" : 3.4263698344093774, + "99.0" : 3.4263698344093774, + "99.9" : 3.4263698344093774, + "99.99" : 3.4263698344093774, + "99.999" : 3.4263698344093774, + "99.9999" : 3.4263698344093774, + "100.0" : 3.4263698344093774 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4148720216622768, + 3.4227369708906776 + ], + [ + 3.4189504732484335, + 3.4263698344093774 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7277102944001554, + "scoreError" : 0.0031271802076314223, + "scoreConfidence" : [ + 1.724583114192524, + 1.7308374746077868 + ], + "scorePercentiles" : { + "0.0" : 1.7273150184436197, + "50.0" : 1.7276098423405877, + "90.0" : 1.7283064744758272, + "95.0" : 1.7283064744758272, + "99.0" : 1.7283064744758272, + "99.9" : 1.7283064744758272, + "99.99" : 1.7283064744758272, + "99.999" : 1.7283064744758272, + "99.9999" : 1.7283064744758272, + "100.0" : 1.7283064744758272 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7273150184436197, + 1.7279020093223763 + ], + [ + 1.7273176753587989, + 1.7283064744758272 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8682495052702349, + "scoreError" : 0.003949470062662093, + "scoreConfidence" : [ + 0.8643000352075728, + 0.872198975332897 + ], + "scorePercentiles" : { + "0.0" : 0.8677494428788252, + "50.0" : 0.8680539988529801, + "90.0" : 0.8691405804961545, + "95.0" : 0.8691405804961545, + "99.0" : 0.8691405804961545, + "99.9" : 0.8691405804961545, + "99.99" : 0.8691405804961545, + "99.999" : 0.8691405804961545, + "99.9999" : 0.8691405804961545, + "100.0" : 0.8691405804961545 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8680616748545228, + 0.8677494428788252 + ], + [ + 0.8680463228514372, + 0.8691405804961545 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.129063634777115, + "scoreError" : 0.08527819871813747, + "scoreConfidence" : [ + 16.04378543605898, + 16.21434183349525 + ], + "scorePercentiles" : { + "0.0" : 16.059264510157075, + "50.0" : 16.108068079257407, + "90.0" : 16.214119925984104, + "95.0" : 16.214119925984104, + "99.0" : 16.214119925984104, + "99.9" : 16.214119925984104, + "99.99" : 16.214119925984104, + "99.999" : 16.214119925984104, + "99.9999" : 16.214119925984104, + "100.0" : 16.214119925984104 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.0925343717999, + 16.09984081671261, + 16.108068079257407 + ], + [ + 16.214119925984104, + 16.159726236461857, + 16.19100512182415 + ], + [ + 16.059264510157075, + 16.097684680162253, + 16.139328970634665 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2690.9112918289243, + "scoreError" : 89.11642467727573, + "scoreConfidence" : [ + 2601.7948671516488, + 2780.0277165062 + ], + "scorePercentiles" : { + "0.0" : 2652.044232240892, + "50.0" : 2657.6655237443792, + "90.0" : 2763.516905739167, + "95.0" : 2763.516905739167, + "99.0" : 2763.516905739167, + "99.9" : 2763.516905739167, + "99.99" : 2763.516905739167, + "99.999" : 2763.516905739167, + "99.9999" : 2763.516905739167, + "100.0" : 2763.516905739167 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2763.516905739167, + 2757.9183269925015, + 2763.176354709843 + ], + [ + 2659.1776750958593, + 2652.044232240892, + 2657.6655237443792 + ], + [ + 2653.991151912376, + 2655.9615935642164, + 2654.7498624610816 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70813.59294604426, + "scoreError" : 285.425501314716, + "scoreConfidence" : [ + 70528.16744472954, + 71099.01844735898 + ], + "scorePercentiles" : { + "0.0" : 70628.70211461508, + "50.0" : 70783.99135660434, + "90.0" : 71040.45930720455, + "95.0" : 71040.45930720455, + "99.0" : 71040.45930720455, + "99.9" : 71040.45930720455, + "99.99" : 71040.45930720455, + "99.999" : 71040.45930720455, + "99.9999" : 71040.45930720455, + "100.0" : 71040.45930720455 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 71040.45930720455, + 71024.63676656474, + 71018.19681898014 + ], + [ + 70800.4921040496, + 70689.3527485353, + 70783.99135660434 + ], + [ + 70670.66800835967, + 70628.70211461508, + 70665.83728948496 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 353.25425258646266, + "scoreError" : 7.344410731177084, + "scoreConfidence" : [ + 345.90984185528555, + 360.59866331763976 + ], + "scorePercentiles" : { + "0.0" : 347.27155054221925, + "50.0" : 355.65845226413325, + "90.0" : 357.51761485639236, + "95.0" : 357.51761485639236, + "99.0" : 357.51761485639236, + "99.9" : 357.51761485639236, + "99.99" : 357.51761485639236, + "99.999" : 357.51761485639236, + "99.9999" : 357.51761485639236, + "100.0" : 357.51761485639236 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 355.7057941305003, + 355.65845226413325, + 356.40599321473053 + ], + [ + 357.51761485639236, + 356.7266455150841, + 354.7055422687994 + ], + [ + 347.27155054221925, + 347.42020970279657, + 347.8764707835086 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 108.2220803435144, + "scoreError" : 1.3778531511347178, + "scoreConfidence" : [ + 106.84422719237969, + 109.59993349464912 + ], + "scorePercentiles" : { + "0.0" : 107.19737504715748, + "50.0" : 108.38482161616515, + "90.0" : 109.49844061242605, + "95.0" : 109.49844061242605, + "99.0" : 109.49844061242605, + "99.9" : 109.49844061242605, + "99.99" : 109.49844061242605, + "99.999" : 109.49844061242605, + "99.9999" : 109.49844061242605, + "100.0" : 109.49844061242605 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 109.49844061242605, + 108.855934976009, + 108.84497615431408 + ], + [ + 108.27115702933337, + 108.41776316427838, + 108.38482161616515 + ], + [ + 107.32316112420783, + 107.20509336773831, + 107.19737504715748 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06187979929930037, + "scoreError" : 4.89919681720745E-4, + "scoreConfidence" : [ + 0.06138987961757962, + 0.062369718981021116 + ], + "scorePercentiles" : { + "0.0" : 0.06156398933727337, + "50.0" : 0.06173390797466479, + "90.0" : 0.062283656367169496, + "95.0" : 0.062283656367169496, + "99.0" : 0.062283656367169496, + "99.9" : 0.062283656367169496, + "99.99" : 0.062283656367169496, + "99.999" : 0.062283656367169496, + "99.9999" : 0.062283656367169496, + "100.0" : 0.062283656367169496 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.061646123259297615, + 0.06173390797466479, + 0.06196862166148202 + ], + [ + 0.062283656367169496, + 0.06225505770954729, + 0.06216190292903675 + ], + [ + 0.061721765325268484, + 0.06156398933727337, + 0.06158316912996354 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.724198382138392E-4, + "scoreError" : 8.699200781534305E-6, + "scoreConfidence" : [ + 3.637206374323049E-4, + 3.8111903899537347E-4 + ], + "scorePercentiles" : { + "0.0" : 3.651132355641374E-4, + "50.0" : 3.7532956662498937E-4, + "90.0" : 3.770072542482455E-4, + "95.0" : 3.770072542482455E-4, + "99.0" : 3.770072542482455E-4, + "99.9" : 3.770072542482455E-4, + "99.99" : 3.770072542482455E-4, + "99.999" : 3.770072542482455E-4, + "99.9999" : 3.770072542482455E-4, + "100.0" : 3.770072542482455E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7532956662498937E-4, + 3.7440243865318883E-4, + 3.754156135124096E-4 + ], + [ + 3.770072542482455E-4, + 3.7648122859236174E-4, + 3.763393834485371E-4 + ], + [ + 3.6621271513166535E-4, + 3.6547710814901834E-4, + 3.651132355641374E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014120962875839724, + "scoreError" : 1.5472298051941275E-4, + "scoreConfidence" : [ + 0.013966239895320311, + 0.014275685856359138 + ], + "scorePercentiles" : { + "0.0" : 0.014002392716320438, + "50.0" : 0.014128934788690208, + "90.0" : 0.0142317715103421, + "95.0" : 0.0142317715103421, + "99.0" : 0.0142317715103421, + "99.9" : 0.0142317715103421, + "99.99" : 0.0142317715103421, + "99.999" : 0.0142317715103421, + "99.9999" : 0.0142317715103421, + "100.0" : 0.0142317715103421 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014128934788690208, + 0.014126580095325006, + 0.014130934258050294 + ], + [ + 0.014205468612696974, + 0.014230774158935892, + 0.0142317715103421 + ], + [ + 0.014018518749561925, + 0.014002392716320438, + 0.014013290992634694 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9710586987458186, + "scoreError" : 0.010987316611614452, + "scoreConfidence" : [ + 0.9600713821342042, + 0.9820460153574331 + ], + "scorePercentiles" : { + "0.0" : 0.955936307111451, + "50.0" : 0.9733839632080981, + "90.0" : 0.9767457063189765, + "95.0" : 0.9767457063189765, + "99.0" : 0.9767457063189765, + "99.9" : 0.9767457063189765, + "99.99" : 0.9767457063189765, + "99.999" : 0.9767457063189765, + "99.9999" : 0.9767457063189765, + "100.0" : 0.9767457063189765 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9752175705509507, + 0.9749185228114642, + 0.973517640221941 + ], + [ + 0.9652071514332593, + 0.9733839632080981, + 0.955936307111451 + ], + [ + 0.9767457063189765, + 0.9722837267159246, + 0.9723177003403014 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012983448700691527, + "scoreError" : 2.576521228683663E-4, + "scoreConfidence" : [ + 0.01272579657782316, + 0.013241100823559894 + ], + "scorePercentiles" : { + "0.0" : 0.012864549208333976, + "50.0" : 0.01295442629267363, + "90.0" : 0.013094527081456496, + "95.0" : 0.013094527081456496, + "99.0" : 0.013094527081456496, + "99.9" : 0.013094527081456496, + "99.99" : 0.013094527081456496, + "99.999" : 0.013094527081456496, + "99.9999" : 0.013094527081456496, + "100.0" : 0.013094527081456496 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012967554409251349, + 0.013094527081456496, + 0.01309233181204047 + ], + [ + 0.012864549208333976, + 0.012940431516970975, + 0.012941298176095909 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.695386946419859, + "scoreError" : 0.017234151890428238, + "scoreConfidence" : [ + 3.6781527945294306, + 3.7126210983102874 + ], + "scorePercentiles" : { + "0.0" : 3.689411109882006, + "50.0" : 3.6941566158227035, + "90.0" : 3.706890833951075, + "95.0" : 3.706890833951075, + "99.0" : 3.706890833951075, + "99.9" : 3.706890833951075, + "99.99" : 3.706890833951075, + "99.999" : 3.706890833951075, + "99.9999" : 3.706890833951075, + "100.0" : 3.706890833951075 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6956624397634887, + 3.69178669298893, + 3.6959198100517368 + ], + [ + 3.706890833951075, + 3.689411109882006, + 3.6926507918819187 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.836029495688691, + "scoreError" : 0.08247781158293523, + "scoreConfidence" : [ + 2.7535516841057555, + 2.9185073072716263 + ], + "scorePercentiles" : { + "0.0" : 2.780162533500139, + "50.0" : 2.8326620141602947, + "90.0" : 2.896600083405734, + "95.0" : 2.896600083405734, + "99.0" : 2.896600083405734, + "99.9" : 2.896600083405734, + "99.99" : 2.896600083405734, + "99.999" : 2.896600083405734, + "99.9999" : 2.896600083405734, + "100.0" : 2.896600083405734 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.896600083405734, + 2.89330250390512, + 2.8909107427745666 + ], + [ + 2.8418196442171073, + 2.826841927077445, + 2.8326620141602947 + ], + [ + 2.780162533500139, + 2.7807002805115375, + 2.7812657316462737 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17517850014596284, + "scoreError" : 0.0037486979732552785, + "scoreConfidence" : [ + 0.17142980217270756, + 0.17892719811921812 + ], + "scorePercentiles" : { + "0.0" : 0.1717836128766276, + "50.0" : 0.17623950894383447, + "90.0" : 0.17721852954102427, + "95.0" : 0.17721852954102427, + "99.0" : 0.17721852954102427, + "99.9" : 0.17721852954102427, + "99.99" : 0.17721852954102427, + "99.999" : 0.17721852954102427, + "99.9999" : 0.17721852954102427, + "100.0" : 0.17721852954102427 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.172831079570004, + 0.17218152398415978, + 0.1717836128766276 + ], + [ + 0.17621121955560254, + 0.17623950894383447, + 0.17624023835959254 + ], + [ + 0.17707964202362192, + 0.17721852954102427, + 0.176821146459199 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.32290382875128587, + "scoreError" : 0.019311333448506423, + "scoreConfidence" : [ + 0.30359249530277943, + 0.3422151621997923 + ], + "scorePercentiles" : { + "0.0" : 0.31114121480352197, + "50.0" : 0.3198565041100272, + "90.0" : 0.33750574249071885, + "95.0" : 0.33750574249071885, + "99.0" : 0.33750574249071885, + "99.9" : 0.33750574249071885, + "99.99" : 0.33750574249071885, + "99.999" : 0.33750574249071885, + "99.9999" : 0.33750574249071885, + "100.0" : 0.33750574249071885 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3373749518588489, + 0.33750574249071885, + 0.3373804223541716 + ], + [ + 0.31175855700346045, + 0.31131111596052674, + 0.31114121480352197 + ], + [ + 0.3197633228240711, + 0.3200426273562262, + 0.3198565041100272 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1583957563563813, + "scoreError" : 0.0027862408712994364, + "scoreConfidence" : [ + 0.15560951548508187, + 0.16118199722768076 + ], + "scorePercentiles" : { + "0.0" : 0.1563399570070665, + "50.0" : 0.15848177283676704, + "90.0" : 0.16027697366691776, + "95.0" : 0.16027697366691776, + "99.0" : 0.16027697366691776, + "99.9" : 0.16027697366691776, + "99.99" : 0.16027697366691776, + "99.999" : 0.16027697366691776, + "99.9999" : 0.16027697366691776, + "100.0" : 0.16027697366691776 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1565101095703889, + 0.1564862471637587, + 0.1563399570070665 + ], + [ + 0.15829687175103682, + 0.15848177283676704, + 0.15865207415281127 + ], + [ + 0.16027111858131932, + 0.1602466824773656, + 0.16027697366691776 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3868561814412517, + "scoreError" : 0.0069254109492785645, + "scoreConfidence" : [ + 0.37993077049197316, + 0.3937815923905303 + ], + "scorePercentiles" : { + "0.0" : 0.38157141117216115, + "50.0" : 0.3869765164460955, + "90.0" : 0.39176893238266863, + "95.0" : 0.39176893238266863, + "99.0" : 0.39176893238266863, + "99.9" : 0.39176893238266863, + "99.99" : 0.39176893238266863, + "99.999" : 0.39176893238266863, + "99.9999" : 0.39176893238266863, + "100.0" : 0.39176893238266863 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3870978555392119, + 0.3869765164460955, + 0.3851402720970537 + ], + [ + 0.3840976532493471, + 0.381694085610687, + 0.38157141117216115 + ], + [ + 0.3917450901363209, + 0.39176893238266863, + 0.3916138163377193 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15523830175393216, + "scoreError" : 0.0026270894280356724, + "scoreConfidence" : [ + 0.1526112123258965, + 0.15786539118196782 + ], + "scorePercentiles" : { + "0.0" : 0.15325871712310923, + "50.0" : 0.15492024173134422, + "90.0" : 0.15720893628460486, + "95.0" : 0.15720893628460486, + "99.0" : 0.15720893628460486, + "99.9" : 0.15720893628460486, + "99.99" : 0.15720893628460486, + "99.999" : 0.15720893628460486, + "99.9999" : 0.15720893628460486, + "100.0" : 0.15720893628460486 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15564634977431907, + 0.15492024173134422, + 0.15463564016762282 + ], + [ + 0.15720893628460486, + 0.15707466542581597, + 0.1569684785584228 + ], + [ + 0.15395843413800536, + 0.15325871712310923, + 0.15347325258214523 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04755786559883292, + "scoreError" : 0.0014208049396587064, + "scoreConfidence" : [ + 0.04613706065917421, + 0.04897867053849163 + ], + "scorePercentiles" : { + "0.0" : 0.04647786951045506, + "50.0" : 0.04765763511935682, + "90.0" : 0.04853239242226439, + "95.0" : 0.04853239242226439, + "99.0" : 0.04853239242226439, + "99.9" : 0.04853239242226439, + "99.99" : 0.04853239242226439, + "99.999" : 0.04853239242226439, + "99.9999" : 0.04853239242226439, + "100.0" : 0.04853239242226439 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04780514980997681, + 0.04758781751300317, + 0.04765763511935682 + ], + [ + 0.048491284037900165, + 0.04853239242226439, + 0.04836042689473073 + ], + [ + 0.046539819069869176, + 0.04656839601193997, + 0.04647786951045506 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9210789.606424699, + "scoreError" : 67701.16141275437, + "scoreConfidence" : [ + 9143088.445011944, + 9278490.767837454 + ], + "scorePercentiles" : { + "0.0" : 9137590.056621004, + "50.0" : 9214177.742173113, + "90.0" : 9257430.554116558, + "95.0" : 9257430.554116558, + "99.0" : 9257430.554116558, + "99.9" : 9257430.554116558, + "99.99" : 9257430.554116558, + "99.999" : 9257430.554116558, + "99.9999" : 9257430.554116558, + "100.0" : 9257430.554116558 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9185812.64003673, + 9189725.07805326, + 9137590.056621004 + ], + [ + 9257430.554116558, + 9256689.355226642, + 9251173.079555966 + ], + [ + 9186617.759412305, + 9217890.192626728, + 9214177.742173113 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T04:20:01Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json b/performance-results/2025-04-03T04:20:01Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json new file mode 100644 index 000000000..98ae37871 --- /dev/null +++ b/performance-results/2025-04-03T04:20:01Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.3992092882886666, + "scoreError" : 0.028178246222827573, + "scoreConfidence" : [ + 3.371031042065839, + 3.427387534511494 + ], + "scorePercentiles" : { + "0.0" : 3.395005069255314, + "50.0" : 3.3986561825358588, + "90.0" : 3.4045197188276344, + "95.0" : 3.4045197188276344, + "99.0" : 3.4045197188276344, + "99.9" : 3.4045197188276344, + "99.99" : 3.4045197188276344, + "99.999" : 3.4045197188276344, + "99.9999" : 3.4045197188276344, + "100.0" : 3.4045197188276344 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.395005069255314, + 3.4045197188276344 + ], + [ + 3.396358694557847, + 3.4009536705138705 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7185863296289448, + "scoreError" : 0.0226247904680873, + "scoreConfidence" : [ + 1.6959615391608573, + 1.7412111200970322 + ], + "scorePercentiles" : { + "0.0" : 1.713896569825601, + "50.0" : 1.7191667413071396, + "90.0" : 1.7221152660758985, + "95.0" : 1.7221152660758985, + "99.0" : 1.7221152660758985, + "99.9" : 1.7221152660758985, + "99.99" : 1.7221152660758985, + "99.999" : 1.7221152660758985, + "99.9999" : 1.7221152660758985, + "100.0" : 1.7221152660758985 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.713896569825601, + 1.718257222681635 + ], + [ + 1.7200762599326442, + 1.7221152660758985 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8638131333573812, + "scoreError" : 0.005739607080341613, + "scoreConfidence" : [ + 0.8580735262770396, + 0.8695527404377228 + ], + "scorePercentiles" : { + "0.0" : 0.8629604388633407, + "50.0" : 0.8637508804684315, + "90.0" : 0.8647903336293211, + "95.0" : 0.8647903336293211, + "99.0" : 0.8647903336293211, + "99.9" : 0.8647903336293211, + "99.99" : 0.8647903336293211, + "99.999" : 0.8647903336293211, + "99.9999" : 0.8647903336293211, + "100.0" : 0.8647903336293211 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8629604388633407, + 0.8647903336293211 + ], + [ + 0.8631690751649713, + 0.8643326857718918 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.875310471082843, + "scoreError" : 0.26777051507050426, + "scoreConfidence" : [ + 15.607539956012339, + 16.143080986153347 + ], + "scorePercentiles" : { + "0.0" : 15.612288653326042, + "50.0" : 15.832222806276663, + "90.0" : 16.106444002568377, + "95.0" : 16.106444002568377, + "99.0" : 16.106444002568377, + "99.9" : 16.106444002568377, + "99.99" : 16.106444002568377, + "99.999" : 16.106444002568377, + "99.9999" : 16.106444002568377, + "100.0" : 16.106444002568377 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.106444002568377, + 16.047190666002482, + 16.011487463515408 + ], + [ + 15.753348985453242, + 15.78377177928709, + 15.925255493182311 + ], + [ + 15.832222806276663, + 15.805784390133978, + 15.612288653326042 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2667.7601557240364, + "scoreError" : 119.67998425181611, + "scoreConfidence" : [ + 2548.08017147222, + 2787.4401399758526 + ], + "scorePercentiles" : { + "0.0" : 2558.413530316072, + "50.0" : 2697.246014837451, + "90.0" : 2745.2269193723982, + "95.0" : 2745.2269193723982, + "99.0" : 2745.2269193723982, + "99.9" : 2745.2269193723982, + "99.99" : 2745.2269193723982, + "99.999" : 2745.2269193723982, + "99.9999" : 2745.2269193723982, + "100.0" : 2745.2269193723982 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2601.2023290761535, + 2568.775645722441, + 2558.413530316072 + ], + [ + 2692.6922111857752, + 2708.3682091572205, + 2745.2269193723982 + ], + [ + 2721.1608852061686, + 2716.755656642648, + 2697.246014837451 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69653.26025364155, + "scoreError" : 837.2247301229313, + "scoreConfidence" : [ + 68816.03552351861, + 70490.48498376449 + ], + "scorePercentiles" : { + "0.0" : 69143.04281828675, + "50.0" : 69490.61975836863, + "90.0" : 70297.39157492763, + "95.0" : 70297.39157492763, + "99.0" : 70297.39157492763, + "99.9" : 70297.39157492763, + "99.99" : 70297.39157492763, + "99.999" : 70297.39157492763, + "99.9999" : 70297.39157492763, + "100.0" : 70297.39157492763 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69673.21206564475, + 69226.62057270289, + 69143.04281828675 + ], + [ + 69360.11899118814, + 69148.32384924784, + 69490.61975836863 + ], + [ + 70265.82211287168, + 70274.19053953572, + 70297.39157492763 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 325.76357997471234, + "scoreError" : 15.438554362778062, + "scoreConfidence" : [ + 310.3250256119343, + 341.2021343374904 + ], + "scorePercentiles" : { + "0.0" : 312.51355700005786, + "50.0" : 329.8447893587314, + "90.0" : 335.30161127464805, + "95.0" : 335.30161127464805, + "99.0" : 335.30161127464805, + "99.9" : 335.30161127464805, + "99.99" : 335.30161127464805, + "99.999" : 335.30161127464805, + "99.9999" : 335.30161127464805, + "100.0" : 335.30161127464805 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 335.30161127464805, + 333.0629081494773, + 330.14557873677194 + ], + [ + 329.8447893587314, + 333.10079335684634, + 328.95696746140584 + ], + [ + 313.93428796549847, + 312.51355700005786, + 315.0117264689737 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 103.49485554121512, + "scoreError" : 3.793394744918793, + "scoreConfidence" : [ + 99.70146079629632, + 107.28825028613392 + ], + "scorePercentiles" : { + "0.0" : 100.45672061279393, + "50.0" : 102.92956348814475, + "90.0" : 106.59142705404575, + "95.0" : 106.59142705404575, + "99.0" : 106.59142705404575, + "99.9" : 106.59142705404575, + "99.99" : 106.59142705404575, + "99.999" : 106.59142705404575, + "99.9999" : 106.59142705404575, + "100.0" : 106.59142705404575 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 106.59142705404575, + 106.51678823289815, + 105.1312372742135 + ], + [ + 102.92956348814475, + 100.45672061279393, + 100.84404127845603 + ], + [ + 102.08705881148529, + 104.08286168477012, + 102.81400143412843 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.0631853564618406, + "scoreError" : 0.0015354385052261798, + "scoreConfidence" : [ + 0.061649917956614425, + 0.06472079496706679 + ], + "scorePercentiles" : { + "0.0" : 0.0622281343053248, + "50.0" : 0.06272677993903052, + "90.0" : 0.0644954543314501, + "95.0" : 0.0644954543314501, + "99.0" : 0.0644954543314501, + "99.9" : 0.0644954543314501, + "99.99" : 0.0644954543314501, + "99.999" : 0.0644954543314501, + "99.9999" : 0.0644954543314501, + "100.0" : 0.0644954543314501 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06427183367932593, + 0.0644954543314501, + 0.06438153322045247 + ], + [ + 0.06272677993903052, + 0.06272599818724675, + 0.0627533352870303 + ], + [ + 0.06256258656673465, + 0.0622281343053248, + 0.06252255263996999 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.8448266611457985E-4, + "scoreError" : 4.210014110702952E-6, + "scoreConfidence" : [ + 3.802726520038769E-4, + 3.886926802252828E-4 + ], + "scorePercentiles" : { + "0.0" : 3.813840175864892E-4, + "50.0" : 3.838468919576846E-4, + "90.0" : 3.8902695347126055E-4, + "95.0" : 3.8902695347126055E-4, + "99.0" : 3.8902695347126055E-4, + "99.9" : 3.8902695347126055E-4, + "99.99" : 3.8902695347126055E-4, + "99.999" : 3.8902695347126055E-4, + "99.9999" : 3.8902695347126055E-4, + "100.0" : 3.8902695347126055E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8159715463319407E-4, + 3.830467416295346E-4, + 3.813840175864892E-4 + ], + [ + 3.8554534892830454E-4, + 3.833462317780834E-4, + 3.838468919576846E-4 + ], + [ + 3.866754638332235E-4, + 3.8587519121344437E-4, + 3.8902695347126055E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014356945249008832, + "scoreError" : 4.749203126173207E-4, + "scoreConfidence" : [ + 0.013882024936391511, + 0.014831865561626153 + ], + "scorePercentiles" : { + "0.0" : 0.014186610823678286, + "50.0" : 0.014250738606324111, + "90.0" : 0.015081788841130516, + "95.0" : 0.015081788841130516, + "99.0" : 0.015081788841130516, + "99.9" : 0.015081788841130516, + "99.99" : 0.015081788841130516, + "99.999" : 0.015081788841130516, + "99.9999" : 0.015081788841130516, + "100.0" : 0.015081788841130516 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014211193623522056, + 0.014198740368054954, + 0.014186610823678286 + ], + [ + 0.014194806765726226, + 0.014383023576350585, + 0.014250738606324111 + ], + [ + 0.014355401821679275, + 0.014350202814613489, + 0.015081788841130516 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9889173184430794, + "scoreError" : 0.020906436622996124, + "scoreConfidence" : [ + 0.9680108818200833, + 1.0098237550660756 + ], + "scorePercentiles" : { + "0.0" : 0.9751137195787831, + "50.0" : 0.9838115681259223, + "90.0" : 1.0076507319899244, + "95.0" : 1.0076507319899244, + "99.0" : 1.0076507319899244, + "99.9" : 1.0076507319899244, + "99.99" : 1.0076507319899244, + "99.999" : 1.0076507319899244, + "99.9999" : 1.0076507319899244, + "100.0" : 1.0076507319899244 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0076507319899244, + 1.006104635915493, + 1.0008279665732587 + ], + [ + 0.9845124068714314, + 0.9838115681259223, + 0.9837508866810939 + ], + [ + 0.9790087858051885, + 0.9751137195787831, + 0.979475164446621 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013070564786537432, + "scoreError" : 3.312438477869377E-4, + "scoreConfidence" : [ + 0.012739320938750494, + 0.01340180863432437 + ], + "scorePercentiles" : { + "0.0" : 0.01294236621136469, + "50.0" : 0.013038706144191437, + "90.0" : 0.0132176846025943, + "95.0" : 0.0132176846025943, + "99.0" : 0.0132176846025943, + "99.9" : 0.0132176846025943, + "99.99" : 0.0132176846025943, + "99.999" : 0.0132176846025943, + "99.9999" : 0.0132176846025943, + "100.0" : 0.0132176846025943 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01294236621136469, + 0.013041755751930787, + 0.013035656536452087 + ], + [ + 0.012973304387985968, + 0.013212621228896751, + 0.0132176846025943 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.9320503683012595, + "scoreError" : 0.13073817145027877, + "scoreConfidence" : [ + 3.8013121968509807, + 4.062788539751538 + ], + "scorePercentiles" : { + "0.0" : 3.886556063714064, + "50.0" : 3.9285158029082803, + "90.0" : 3.9836880589171972, + "95.0" : 3.9836880589171972, + "99.0" : 3.9836880589171972, + "99.9" : 3.9836880589171972, + "99.99" : 3.9836880589171972, + "99.999" : 3.9836880589171972, + "99.9999" : 3.9836880589171972, + "100.0" : 3.9836880589171972 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.9627668122028528, + 3.975874643879173, + 3.9836880589171972 + ], + [ + 3.886556063714064, + 3.8942647936137074, + 3.88915183748056 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.004364586156701, + "scoreError" : 0.14161123897060376, + "scoreConfidence" : [ + 2.8627533471860973, + 3.145975825127305 + ], + "scorePercentiles" : { + "0.0" : 2.899472187880545, + "50.0" : 2.9752824544913743, + "90.0" : 3.116214405919003, + "95.0" : 3.116214405919003, + "99.0" : 3.116214405919003, + "99.9" : 3.116214405919003, + "99.99" : 3.116214405919003, + "99.999" : 3.116214405919003, + "99.9999" : 3.116214405919003, + "100.0" : 3.116214405919003 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.1080275556246115, + 3.116214405919003, + 3.1107170768273718 + ], + [ + 2.94470944581861, + 2.9752824544913743, + 2.982728600954369 + ], + [ + 2.969614950415677, + 2.9325145974787454, + 2.899472187880545 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17564792482371683, + "scoreError" : 0.002974252867516921, + "scoreConfidence" : [ + 0.1726736719561999, + 0.17862217769123376 + ], + "scorePercentiles" : { + "0.0" : 0.1731033127055565, + "50.0" : 0.1768566043965761, + "90.0" : 0.17698233668412855, + "95.0" : 0.17698233668412855, + "99.0" : 0.17698233668412855, + "99.9" : 0.17698233668412855, + "99.99" : 0.17698233668412855, + "99.999" : 0.17698233668412855, + "99.9999" : 0.17698233668412855, + "100.0" : 0.17698233668412855 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17686704975150774, + 0.1768795816898668, + 0.1769473231708396 + ], + [ + 0.1768566043965761, + 0.1763903096094825, + 0.17698233668412855 + ], + [ + 0.17349474921929217, + 0.17331005618620127, + 0.1731033127055565 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3224626777755301, + "scoreError" : 0.016155882614857214, + "scoreConfidence" : [ + 0.3063067951606729, + 0.33861856039038735 + ], + "scorePercentiles" : { + "0.0" : 0.3106331735470444, + "50.0" : 0.32324063284633786, + "90.0" : 0.333969142098584, + "95.0" : 0.333969142098584, + "99.0" : 0.333969142098584, + "99.9" : 0.333969142098584, + "99.99" : 0.333969142098584, + "99.999" : 0.333969142098584, + "99.9999" : 0.333969142098584, + "100.0" : 0.333969142098584 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32324063284633786, + 0.3228341037221164, + 0.32352256436220117 + ], + [ + 0.333969142098584, + 0.3330036538909793, + 0.3325125170074813 + ], + [ + 0.31173687711587017, + 0.31071143538915647, + 0.3106331735470444 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16336138611669254, + "scoreError" : 0.013309637759159056, + "scoreConfidence" : [ + 0.1500517483575335, + 0.1766710238758516 + ], + "scorePercentiles" : { + "0.0" : 0.15236389503915654, + "50.0" : 0.16749676753651346, + "90.0" : 0.17041830118777798, + "95.0" : 0.17041830118777798, + "99.0" : 0.17041830118777798, + "99.9" : 0.17041830118777798, + "99.99" : 0.17041830118777798, + "99.999" : 0.17041830118777798, + "99.9999" : 0.17041830118777798, + "100.0" : 0.17041830118777798 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16764070001508727, + 0.1672745904688624, + 0.16749676753651346 + ], + [ + 0.15236389503915654, + 0.15341220566081154, + 0.15290987807153014 + ], + [ + 0.17041830118777798, + 0.16932816888482508, + 0.1694079681856683 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3916901877748583, + "scoreError" : 0.013066770761379609, + "scoreConfidence" : [ + 0.3786234170134787, + 0.40475695853623794 + ], + "scorePercentiles" : { + "0.0" : 0.3831963658274897, + "50.0" : 0.3880605029491657, + "90.0" : 0.40703388969840043, + "95.0" : 0.40703388969840043, + "99.0" : 0.40703388969840043, + "99.9" : 0.40703388969840043, + "99.99" : 0.40703388969840043, + "99.999" : 0.40703388969840043, + "99.9999" : 0.40703388969840043, + "100.0" : 0.40703388969840043 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.40703388969840043, + 0.3974855021264756, + 0.3967198541336084 + ], + [ + 0.3880605029491657, + 0.3875346873086611, + 0.3875294380546406 + ], + [ + 0.39397768474963557, + 0.38367376512564744, + 0.3831963658274897 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15989002361063018, + "scoreError" : 0.004543996585626853, + "scoreConfidence" : [ + 0.15534602702500333, + 0.16443402019625702 + ], + "scorePercentiles" : { + "0.0" : 0.15594041546594312, + "50.0" : 0.1613597867688584, + "90.0" : 0.1622719936715023, + "95.0" : 0.1622719936715023, + "99.0" : 0.1622719936715023, + "99.9" : 0.1622719936715023, + "99.99" : 0.1622719936715023, + "99.999" : 0.1622719936715023, + "99.9999" : 0.1622719936715023, + "100.0" : 0.1622719936715023 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15676905651356013, + 0.15594041546594312, + 0.15631288311241714 + ], + [ + 0.16217939525153255, + 0.1622719936715023, + 0.16147748038883236 + ], + [ + 0.1618514822211792, + 0.1613597867688584, + 0.1608477191018465 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04783453527496373, + "scoreError" : 7.974832162056922E-4, + "scoreConfidence" : [ + 0.047037052058758036, + 0.048632018491169424 + ], + "scorePercentiles" : { + "0.0" : 0.04737623978226162, + "50.0" : 0.04774475477679637, + "90.0" : 0.04894417089131105, + "95.0" : 0.04894417089131105, + "99.0" : 0.04894417089131105, + "99.9" : 0.04894417089131105, + "99.99" : 0.04894417089131105, + "99.999" : 0.04894417089131105, + "99.9999" : 0.04894417089131105, + "100.0" : 0.04894417089131105 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04749892322380233, + 0.047416286812295816, + 0.04737623978226162 + ], + [ + 0.04774475477679637, + 0.047800833626508096, + 0.04774200215790931 + ], + [ + 0.04894417089131105, + 0.04804041357891248, + 0.04794719262487654 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9631059.90526732, + "scoreError" : 171531.34109600133, + "scoreConfidence" : [ + 9459528.56417132, + 9802591.246363321 + ], + "scorePercentiles" : { + "0.0" : 9512877.128326995, + "50.0" : 9688628.696030978, + "90.0" : 9758324.88195122, + "95.0" : 9758324.88195122, + "99.0" : 9758324.88195122, + "99.9" : 9758324.88195122, + "99.99" : 9758324.88195122, + "99.999" : 9758324.88195122, + "99.9999" : 9758324.88195122, + "100.0" : 9758324.88195122 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9758324.88195122, + 9737305.494644595, + 9534123.904671116 + ], + [ + 9694253.833333334, + 9696302.620155038, + 9688628.696030978 + ], + [ + 9534044.147759771, + 9523678.440532826, + 9512877.128326995 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T04:20:12Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json b/performance-results/2025-04-03T04:20:12Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json new file mode 100644 index 000000000..7d0bb435f --- /dev/null +++ b/performance-results/2025-04-03T04:20:12Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4141460140654183, + "scoreError" : 0.02523433949722112, + "scoreConfidence" : [ + 3.388911674568197, + 3.4393803535626395 + ], + "scorePercentiles" : { + "0.0" : 3.4109114729011334, + "50.0" : 3.412942036862178, + "90.0" : 3.419788509636182, + "95.0" : 3.419788509636182, + "99.0" : 3.419788509636182, + "99.9" : 3.419788509636182, + "99.99" : 3.419788509636182, + "99.999" : 3.419788509636182, + "99.9999" : 3.419788509636182, + "100.0" : 3.419788509636182 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4109114729011334, + 3.413465927756727 + ], + [ + 3.412418145967629, + 3.419788509636182 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7201150901156992, + "scoreError" : 0.028373580112449958, + "scoreConfidence" : [ + 1.6917415100032491, + 1.7484886702281492 + ], + "scorePercentiles" : { + "0.0" : 1.715451119237048, + "50.0" : 1.7205134919863199, + "90.0" : 1.7239822572531092, + "95.0" : 1.7239822572531092, + "99.0" : 1.7239822572531092, + "99.9" : 1.7239822572531092, + "99.99" : 1.7239822572531092, + "99.999" : 1.7239822572531092, + "99.9999" : 1.7239822572531092, + "100.0" : 1.7239822572531092 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7239822572531092, + 1.7237394376447464 + ], + [ + 1.715451119237048, + 1.7172875463278934 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8659551304749118, + "scoreError" : 0.010436027041818195, + "scoreConfidence" : [ + 0.8555191034330936, + 0.87639115751673 + ], + "scorePercentiles" : { + "0.0" : 0.8639684361227421, + "50.0" : 0.8662045209892448, + "90.0" : 0.8674430437984155, + "95.0" : 0.8674430437984155, + "99.0" : 0.8674430437984155, + "99.9" : 0.8674430437984155, + "99.99" : 0.8674430437984155, + "99.999" : 0.8674430437984155, + "99.9999" : 0.8674430437984155, + "100.0" : 0.8674430437984155 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8639684361227421, + 0.8653272198110116 + ], + [ + 0.8674430437984155, + 0.867081822167478 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.252654676449723, + "scoreError" : 0.10537930227104682, + "scoreConfidence" : [ + 16.147275374178676, + 16.35803397872077 + ], + "scorePercentiles" : { + "0.0" : 16.168129744860877, + "50.0" : 16.268725836178465, + "90.0" : 16.355642468960376, + "95.0" : 16.355642468960376, + "99.0" : 16.355642468960376, + "99.9" : 16.355642468960376, + "99.99" : 16.355642468960376, + "99.999" : 16.355642468960376, + "99.9999" : 16.355642468960376, + "100.0" : 16.355642468960376 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.355642468960376, + 16.272526956761183, + 16.268725836178465 + ], + [ + 16.168129744860877, + 16.274173548129912, + 16.318351985527347 + ], + [ + 16.17852783509764, + 16.23478021354547, + 16.203033498986223 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2711.90349954842, + "scoreError" : 92.62280441102727, + "scoreConfidence" : [ + 2619.2806951373927, + 2804.526303959447 + ], + "scorePercentiles" : { + "0.0" : 2649.300552891204, + "50.0" : 2690.6946489145466, + "90.0" : 2797.8890502273834, + "95.0" : 2797.8890502273834, + "99.0" : 2797.8890502273834, + "99.9" : 2797.8890502273834, + "99.99" : 2797.8890502273834, + "99.999" : 2797.8890502273834, + "99.9999" : 2797.8890502273834, + "100.0" : 2797.8890502273834 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2666.717149029226, + 2649.300552891204, + 2669.5037781743854 + ], + [ + 2680.457249875851, + 2705.622885659174, + 2690.6946489145466 + ], + [ + 2797.8890502273834, + 2766.6792631764147, + 2780.266917987591 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69111.95639690965, + "scoreError" : 83.29528789521649, + "scoreConfidence" : [ + 69028.66110901443, + 69195.25168480487 + ], + "scorePercentiles" : { + "0.0" : 69046.25547453541, + "50.0" : 69118.4881065913, + "90.0" : 69182.46390916892, + "95.0" : 69182.46390916892, + "99.0" : 69182.46390916892, + "99.9" : 69182.46390916892, + "99.99" : 69182.46390916892, + "99.999" : 69182.46390916892, + "99.9999" : 69182.46390916892, + "100.0" : 69182.46390916892 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69162.28535818945, + 69182.46390916892, + 69118.4881065913 + ], + [ + 69136.79708672072, + 69054.3599191844, + 69046.25547453541 + ], + [ + 69060.3327196236, + 69101.69400475129, + 69144.93099342177 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 347.3278857421012, + "scoreError" : 11.852637802821008, + "scoreConfidence" : [ + 335.4752479392802, + 359.1805235449222 + ], + "scorePercentiles" : { + "0.0" : 337.69633644382174, + "50.0" : 349.8230392811812, + "90.0" : 354.5053703216764, + "95.0" : 354.5053703216764, + "99.0" : 354.5053703216764, + "99.9" : 354.5053703216764, + "99.99" : 354.5053703216764, + "99.999" : 354.5053703216764, + "99.9999" : 354.5053703216764, + "100.0" : 354.5053703216764 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 349.8230392811812, + 349.75558705623996, + 350.2228570416806 + ], + [ + 353.86196935718107, + 354.5053703216764, + 353.13588747335746 + ], + [ + 338.3428057877555, + 338.60711891601716, + 337.69633644382174 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.73978567279248, + "scoreError" : 2.23951667478191, + "scoreConfidence" : [ + 105.50026899801057, + 109.97930234757439 + ], + "scorePercentiles" : { + "0.0" : 105.94123260786559, + "50.0" : 108.09616081351409, + "90.0" : 109.21003352792893, + "95.0" : 109.21003352792893, + "99.0" : 109.21003352792893, + "99.9" : 109.21003352792893, + "99.99" : 109.21003352792893, + "99.999" : 109.21003352792893, + "99.9999" : 109.21003352792893, + "100.0" : 109.21003352792893 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 105.97381347858634, + 105.94123260786559, + 106.4660416765197 + ], + [ + 109.21003352792893, + 109.12797422747417, + 109.0807392320912 + ], + [ + 107.58179783757122, + 108.09616081351409, + 108.18027765358097 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.061909221750764645, + "scoreError" : 7.93118736000689E-4, + "scoreConfidence" : [ + 0.06111610301476396, + 0.06270234048676533 + ], + "scorePercentiles" : { + "0.0" : 0.06120587202007528, + "50.0" : 0.06209829328042624, + "90.0" : 0.06241124775010922, + "95.0" : 0.06241124775010922, + "99.0" : 0.06241124775010922, + "99.9" : 0.06241124775010922, + "99.99" : 0.06241124775010922, + "99.999" : 0.06241124775010922, + "99.9999" : 0.06241124775010922, + "100.0" : 0.06241124775010922 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06120587202007528, + 0.06131094404831244, + 0.061437342034772996 + ], + [ + 0.06209829328042624, + 0.06231152692741468, + 0.0619119299166677 + ], + [ + 0.06241124775010922, + 0.06213026141468112, + 0.06236557836442216 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.7692210394697193E-4, + "scoreError" : 1.9364149312350478E-5, + "scoreConfidence" : [ + 3.5755795463462145E-4, + 3.962862532593224E-4 + ], + "scorePercentiles" : { + "0.0" : 3.610834907005055E-4, + "50.0" : 3.804653194718181E-4, + "90.0" : 3.906616198985073E-4, + "95.0" : 3.906616198985073E-4, + "99.0" : 3.906616198985073E-4, + "99.9" : 3.906616198985073E-4, + "99.99" : 3.906616198985073E-4, + "99.999" : 3.906616198985073E-4, + "99.9999" : 3.906616198985073E-4, + "100.0" : 3.906616198985073E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8721810412907065E-4, + 3.906616198985073E-4, + 3.866140347051792E-4 + ], + [ + 3.6320046181129455E-4, + 3.610834907005055E-4, + 3.628257406006513E-4 + ], + [ + 3.789365386107795E-4, + 3.804653194718181E-4, + 3.8129362559494065E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014347172959238966, + "scoreError" : 5.008339226000911E-4, + "scoreConfidence" : [ + 0.013846339036638875, + 0.014848006881839057 + ], + "scorePercentiles" : { + "0.0" : 0.014093595788880276, + "50.0" : 0.014189940964876059, + "90.0" : 0.01476075187496033, + "95.0" : 0.01476075187496033, + "99.0" : 0.01476075187496033, + "99.9" : 0.01476075187496033, + "99.99" : 0.01476075187496033, + "99.999" : 0.01476075187496033, + "99.9999" : 0.01476075187496033, + "100.0" : 0.01476075187496033 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014122154853159652, + 0.014099223867423879, + 0.014093595788880276 + ], + [ + 0.01418198724770538, + 0.014189940964876059, + 0.014215869308036984 + ], + [ + 0.014730909794904051, + 0.01476075187496033, + 0.014730122933204103 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9851786290563604, + "scoreError" : 0.007389816834762871, + "scoreConfidence" : [ + 0.9777888122215975, + 0.9925684458911234 + ], + "scorePercentiles" : { + "0.0" : 0.9780690916381418, + "50.0" : 0.986488261195502, + "90.0" : 0.9905183169572108, + "95.0" : 0.9905183169572108, + "99.0" : 0.9905183169572108, + "99.9" : 0.9905183169572108, + "99.99" : 0.9905183169572108, + "99.999" : 0.9905183169572108, + "99.9999" : 0.9905183169572108, + "100.0" : 0.9905183169572108 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9838497288735858, + 0.986488261195502, + 0.9877146994567901 + ], + [ + 0.9813227989402414, + 0.9807172931254291, + 0.9780690916381418 + ], + [ + 0.9900390989010989, + 0.9905183169572108, + 0.9878883724192433 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013110931908467226, + "scoreError" : 3.1593701265900207E-4, + "scoreConfidence" : [ + 0.012794994895808223, + 0.013426868921126229 + ], + "scorePercentiles" : { + "0.0" : 0.012994717709554265, + "50.0" : 0.013109973759007349, + "90.0" : 0.013229475688776117, + "95.0" : 0.013229475688776117, + "99.0" : 0.013229475688776117, + "99.9" : 0.013229475688776117, + "99.99" : 0.013229475688776117, + "99.999" : 0.013229475688776117, + "99.9999" : 0.013229475688776117, + "100.0" : 0.013229475688776117 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01302357288717445, + 0.013008309857432749, + 0.012994717709554265 + ], + [ + 0.013229475688776117, + 0.013213140677025528, + 0.013196374630840247 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.7185666837587, + "scoreError" : 0.059501212486211645, + "scoreConfidence" : [ + 3.659065471272488, + 3.7780678962449117 + ], + "scorePercentiles" : { + "0.0" : 3.6901369336283185, + "50.0" : 3.71791115056773, + "90.0" : 3.748282396551724, + "95.0" : 3.748282396551724, + "99.0" : 3.748282396551724, + "99.9" : 3.748282396551724, + "99.99" : 3.748282396551724, + "99.999" : 3.748282396551724, + "99.9999" : 3.748282396551724, + "100.0" : 3.748282396551724 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7134024246473647, + 3.702479917838638, + 3.6901369336283185 + ], + [ + 3.734678553398058, + 3.748282396551724, + 3.7224198764880954 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.808103327650971, + "scoreError" : 0.038645407159203296, + "scoreConfidence" : [ + 2.7694579204917673, + 2.8467487348101743 + ], + "scorePercentiles" : { + "0.0" : 2.776432284564131, + "50.0" : 2.8192024323562572, + "90.0" : 2.8317730673839185, + "95.0" : 2.8317730673839185, + "99.0" : 2.8317730673839185, + "99.9" : 2.8317730673839185, + "99.99" : 2.8317730673839185, + "99.999" : 2.8317730673839185, + "99.9999" : 2.8317730673839185, + "100.0" : 2.8317730673839185 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8192024323562572, + 2.812318770528684, + 2.825893922576999 + ], + [ + 2.8219859692437925, + 2.8317730673839185, + 2.826690167326173 + ], + [ + 2.782025319054242, + 2.776432284564131, + 2.776608015824542 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17652238855933255, + "scoreError" : 0.003125705040678961, + "scoreConfidence" : [ + 0.1733966835186536, + 0.17964809360001152 + ], + "scorePercentiles" : { + "0.0" : 0.17452421106457242, + "50.0" : 0.17574864547196006, + "90.0" : 0.17961467400675335, + "95.0" : 0.17961467400675335, + "99.0" : 0.17961467400675335, + "99.9" : 0.17961467400675335, + "99.99" : 0.17961467400675335, + "99.999" : 0.17961467400675335, + "99.9999" : 0.17961467400675335, + "100.0" : 0.17961467400675335 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17961467400675335, + 0.17849365485667368, + 0.17829464331051206 + ], + [ + 0.17667822780516246, + 0.175622275771838, + 0.17574864547196006 + ], + [ + 0.175139794949035, + 0.17452421106457242, + 0.17458536979748604 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33159081262614715, + "scoreError" : 0.012872917742416154, + "scoreConfidence" : [ + 0.318717894883731, + 0.3444637303685633 + ], + "scorePercentiles" : { + "0.0" : 0.32417070874258486, + "50.0" : 0.327614753407155, + "90.0" : 0.34253819167665694, + "95.0" : 0.34253819167665694, + "99.0" : 0.34253819167665694, + "99.9" : 0.34253819167665694, + "99.99" : 0.34253819167665694, + "99.999" : 0.34253819167665694, + "99.9999" : 0.34253819167665694, + "100.0" : 0.34253819167665694 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.327614753407155, + 0.32804313826472037, + 0.3272351357657068 + ], + [ + 0.32650751772887554, + 0.32417070874258486, + 0.3257033246482543 + ], + [ + 0.34253819167665694, + 0.3412840927923009, + 0.3412204506090695 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16257438283358802, + "scoreError" : 0.0015079171733187204, + "scoreConfidence" : [ + 0.1610664656602693, + 0.16408230000690674 + ], + "scorePercentiles" : { + "0.0" : 0.16145170934306333, + "50.0" : 0.16253732088872996, + "90.0" : 0.16372694721590073, + "95.0" : 0.16372694721590073, + "99.0" : 0.16372694721590073, + "99.9" : 0.16372694721590073, + "99.99" : 0.16372694721590073, + "99.999" : 0.16372694721590073, + "99.9999" : 0.16372694721590073, + "100.0" : 0.16372694721590073 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16217501864975756, + 0.16253732088872996, + 0.16269733150573498 + ], + [ + 0.16175499032722448, + 0.1616261715800362, + 0.16145170934306333 + ], + [ + 0.16363694076449797, + 0.16372694721590073, + 0.16356301522734706 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3891936853118775, + "scoreError" : 0.005998609157386771, + "scoreConfidence" : [ + 0.3831950761544907, + 0.39519229446926424 + ], + "scorePercentiles" : { + "0.0" : 0.3858164131558642, + "50.0" : 0.38843062722858807, + "90.0" : 0.39801564624875624, + "95.0" : 0.39801564624875624, + "99.0" : 0.39801564624875624, + "99.9" : 0.39801564624875624, + "99.99" : 0.39801564624875624, + "99.999" : 0.39801564624875624, + "99.9999" : 0.39801564624875624, + "100.0" : 0.39801564624875624 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39801564624875624, + 0.3878194711859148, + 0.38843062722858807 + ], + [ + 0.3893662909593521, + 0.38925788793741, + 0.3895342826705099 + ], + [ + 0.3883784769505612, + 0.38612407146994093, + 0.3858164131558642 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15658902672809438, + "scoreError" : 0.003943926804707067, + "scoreConfidence" : [ + 0.15264509992338732, + 0.16053295353280145 + ], + "scorePercentiles" : { + "0.0" : 0.15414155185967293, + "50.0" : 0.15551880479611832, + "90.0" : 0.16021518488256592, + "95.0" : 0.16021518488256592, + "99.0" : 0.16021518488256592, + "99.9" : 0.16021518488256592, + "99.99" : 0.16021518488256592, + "99.999" : 0.16021518488256592, + "99.9999" : 0.16021518488256592, + "100.0" : 0.16021518488256592 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1564305789794769, + 0.15551880479611832, + 0.15540823026356684 + ], + [ + 0.15484570807655385, + 0.1542891126745352, + 0.15414155185967293 + ], + [ + 0.16021518488256592, + 0.15947678614486652, + 0.1589752828754928 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04743935270487015, + "scoreError" : 0.0014339295540742704, + "scoreConfidence" : [ + 0.04600542315079588, + 0.048873282258944425 + ], + "scorePercentiles" : { + "0.0" : 0.04618683700436459, + "50.0" : 0.0473992635310958, + "90.0" : 0.04867919720586088, + "95.0" : 0.04867919720586088, + "99.0" : 0.04867919720586088, + "99.9" : 0.04867919720586088, + "99.99" : 0.04867919720586088, + "99.999" : 0.04867919720586088, + "99.9999" : 0.04867919720586088, + "100.0" : 0.04867919720586088 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.0473992635310958, + 0.04618683700436459, + 0.04625727953835835 + ], + [ + 0.047923044246684976, + 0.04867919720586088, + 0.04845878558760249 + ], + [ + 0.04747248577504973, + 0.047303504564719684, + 0.047273776890094876 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9071703.616870854, + "scoreError" : 160321.0639152296, + "scoreConfidence" : [ + 8911382.552955624, + 9232024.680786084 + ], + "scorePercentiles" : { + "0.0" : 8985842.091644205, + "50.0" : 9013161.59009009, + "90.0" : 9212517.708103132, + "95.0" : 9212517.708103132, + "99.0" : 9212517.708103132, + "99.9" : 9212517.708103132, + "99.99" : 9212517.708103132, + "99.999" : 9212517.708103132, + "99.9999" : 9212517.708103132, + "100.0" : 9212517.708103132 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9172326.609532539, + 9212517.708103132, + 9203796.53449862 + ], + [ + 9047417.420433996, + 9013161.59009009, + 9006460.631863186 + ], + [ + 9005402.827182718, + 8985842.091644205, + 8998407.13848921 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T04:20:22Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json b/performance-results/2025-04-03T04:20:22Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json new file mode 100644 index 000000000..69a93bc83 --- /dev/null +++ b/performance-results/2025-04-03T04:20:22Z-bfd7b46570071ef5cb5edd7377fbc51fb477ee3d-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4171100486983814, + "scoreError" : 0.029050359197470347, + "scoreConfidence" : [ + 3.388059689500911, + 3.4461604078958517 + ], + "scorePercentiles" : { + "0.0" : 3.4120508869424384, + "50.0" : 3.417248324070669, + "90.0" : 3.4218926597097488, + "95.0" : 3.4218926597097488, + "99.0" : 3.4218926597097488, + "99.9" : 3.4218926597097488, + "99.99" : 3.4218926597097488, + "99.999" : 3.4218926597097488, + "99.9999" : 3.4218926597097488, + "100.0" : 3.4218926597097488 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4120508869424384, + 3.4147862249287275 + ], + [ + 3.4197104232126105, + 3.4218926597097488 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7291216308035666, + "scoreError" : 0.010634177230505332, + "scoreConfidence" : [ + 1.7184874535730612, + 1.739755808034072 + ], + "scorePercentiles" : { + "0.0" : 1.7278385132821346, + "50.0" : 1.7286578762881986, + "90.0" : 1.7313322573557348, + "95.0" : 1.7313322573557348, + "99.0" : 1.7313322573557348, + "99.9" : 1.7313322573557348, + "99.99" : 1.7313322573557348, + "99.999" : 1.7313322573557348, + "99.9999" : 1.7313322573557348, + "100.0" : 1.7313322573557348 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7278385132821346, + 1.7278959373704097 + ], + [ + 1.7313322573557348, + 1.7294198152059874 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8672043251385466, + "scoreError" : 0.006581078982478564, + "scoreConfidence" : [ + 0.860623246156068, + 0.8737854041210252 + ], + "scorePercentiles" : { + "0.0" : 0.8660632068022843, + "50.0" : 0.8671657259458264, + "90.0" : 0.8684226418602491, + "95.0" : 0.8684226418602491, + "99.0" : 0.8684226418602491, + "99.9" : 0.8684226418602491, + "99.99" : 0.8684226418602491, + "99.999" : 0.8684226418602491, + "99.9999" : 0.8684226418602491, + "100.0" : 0.8684226418602491 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8667643732520639, + 0.8675670786395889 + ], + [ + 0.8660632068022843, + 0.8684226418602491 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.162001317325213, + "scoreError" : 0.12285363357149377, + "scoreConfidence" : [ + 16.03914768375372, + 16.284854950896708 + ], + "scorePercentiles" : { + "0.0" : 16.08098225063554, + "50.0" : 16.158180279448743, + "90.0" : 16.264393757728516, + "95.0" : 16.264393757728516, + "99.0" : 16.264393757728516, + "99.9" : 16.264393757728516, + "99.99" : 16.264393757728516, + "99.999" : 16.264393757728516, + "99.9999" : 16.264393757728516, + "100.0" : 16.264393757728516 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.2498132766456, + 16.232697591247195, + 16.264393757728516 + ], + [ + 16.167029538529444, + 16.158180279448743, + 16.13834542567008 + ], + [ + 16.08543601225834, + 16.08098225063554, + 16.08113372376346 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2713.372153938922, + "scoreError" : 38.77531189294057, + "scoreConfidence" : [ + 2674.5968420459817, + 2752.1474658318625 + ], + "scorePercentiles" : { + "0.0" : 2691.019153774729, + "50.0" : 2702.636105906266, + "90.0" : 2748.609138326982, + "95.0" : 2748.609138326982, + "99.0" : 2748.609138326982, + "99.9" : 2748.609138326982, + "99.99" : 2748.609138326982, + "99.999" : 2748.609138326982, + "99.9999" : 2748.609138326982, + "100.0" : 2748.609138326982 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2740.4996046953506, + 2748.609138326982, + 2741.3544851741417 + ], + [ + 2695.644525570017, + 2695.7406319067013, + 2691.019153774729 + ], + [ + 2705.513011761636, + 2699.332728334476, + 2702.636105906266 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70136.62092217, + "scoreError" : 1833.6126634576278, + "scoreConfidence" : [ + 68303.00825871238, + 71970.23358562762 + ], + "scorePercentiles" : { + "0.0" : 68636.20359353884, + "50.0" : 70840.18396558113, + "90.0" : 70914.97550703726, + "95.0" : 70914.97550703726, + "99.0" : 70914.97550703726, + "99.9" : 70914.97550703726, + "99.99" : 70914.97550703726, + "99.999" : 70914.97550703726, + "99.9999" : 70914.97550703726, + "100.0" : 70914.97550703726 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70884.08944043725, + 70894.06686001566, + 70759.17612968457 + ], + [ + 70887.07004709519, + 70840.18396558113, + 70914.97550703726 + ], + [ + 68636.20359353884, + 68734.45468992933, + 68679.36806621081 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 357.3760123281292, + "scoreError" : 8.909817000066589, + "scoreConfidence" : [ + 348.4661953280626, + 366.2858293281958 + ], + "scorePercentiles" : { + "0.0" : 351.1186240805577, + "50.0" : 357.0735177853829, + "90.0" : 363.5453188941034, + "95.0" : 363.5453188941034, + "99.0" : 363.5453188941034, + "99.9" : 363.5453188941034, + "99.99" : 363.5453188941034, + "99.999" : 363.5453188941034, + "99.9999" : 363.5453188941034, + "100.0" : 363.5453188941034 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 351.3800725684625, + 351.1186240805577, + 351.14898598830297 + ], + [ + 356.46301856590736, + 357.0735177853829, + 359.1732893240755 + ], + [ + 363.5453188941034, + 363.31735936112716, + 363.1639243852433 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 108.21095768888088, + "scoreError" : 1.728555284357556, + "scoreConfidence" : [ + 106.48240240452333, + 109.93951297323844 + ], + "scorePercentiles" : { + "0.0" : 106.6361791958133, + "50.0" : 108.34945308402088, + "90.0" : 109.38279632848486, + "95.0" : 109.38279632848486, + "99.0" : 109.38279632848486, + "99.9" : 109.38279632848486, + "99.99" : 109.38279632848486, + "99.999" : 109.38279632848486, + "99.9999" : 109.38279632848486, + "100.0" : 109.38279632848486 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 108.21218065367852, + 108.34945308402088, + 108.46737250455398 + ], + [ + 106.6361791958133, + 107.10942310914471, + 107.19210526928929 + ], + [ + 109.1947139384956, + 109.35439511644663, + 109.38279632848486 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06169959127089957, + "scoreError" : 0.0010302074088845569, + "scoreConfidence" : [ + 0.060669383862015015, + 0.06272979867978414 + ], + "scorePercentiles" : { + "0.0" : 0.06091269048924299, + "50.0" : 0.0620058904927547, + "90.0" : 0.0622928827164339, + "95.0" : 0.0622928827164339, + "99.0" : 0.0622928827164339, + "99.9" : 0.0622928827164339, + "99.99" : 0.0622928827164339, + "99.999" : 0.0622928827164339, + "99.9999" : 0.0622928827164339, + "100.0" : 0.0622928827164339 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06222775979141516, + 0.0622928827164339, + 0.0622715326828114 + ], + [ + 0.06091787278719283, + 0.06091326277029908, + 0.06091269048924299 + ], + [ + 0.0617303522657827, + 0.0620058904927547, + 0.06202407744216337 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.6798945543601994E-4, + "scoreError" : 1.651439730618763E-5, + "scoreConfidence" : [ + 3.514750581298323E-4, + 3.845038527422076E-4 + ], + "scorePercentiles" : { + "0.0" : 3.5445183380887837E-4, + "50.0" : 3.6962223546356776E-4, + "90.0" : 3.7913274260289705E-4, + "95.0" : 3.7913274260289705E-4, + "99.0" : 3.7913274260289705E-4, + "99.9" : 3.7913274260289705E-4, + "99.99" : 3.7913274260289705E-4, + "99.999" : 3.7913274260289705E-4, + "99.9999" : 3.7913274260289705E-4, + "100.0" : 3.7913274260289705E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7913274260289705E-4, + 3.772585944041239E-4, + 3.7845987324760806E-4 + ], + [ + 3.6962223546356776E-4, + 3.698791820859403E-4, + 3.695285413619942E-4 + ], + [ + 3.5902273255519643E-4, + 3.5445183380887837E-4, + 3.545493633939737E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014403353417093919, + "scoreError" : 5.362041725711555E-4, + "scoreConfidence" : [ + 0.013867149244522764, + 0.014939557589665075 + ], + "scorePercentiles" : { + "0.0" : 0.01398167059872964, + "50.0" : 0.014544293900340769, + "90.0" : 0.014684813553348615, + "95.0" : 0.014684813553348615, + "99.0" : 0.014684813553348615, + "99.9" : 0.014684813553348615, + "99.99" : 0.014684813553348615, + "99.999" : 0.014684813553348615, + "99.9999" : 0.014684813553348615, + "100.0" : 0.014684813553348615 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014683949145623569, + 0.014679144894583022, + 0.014684813553348615 + ], + [ + 0.014533443404507641, + 0.014544293900340769, + 0.014547071132853868 + ], + [ + 0.013982993723109276, + 0.01398167059872964, + 0.013992800400748885 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9704870782068402, + "scoreError" : 0.010541865346184598, + "scoreConfidence" : [ + 0.9599452128606556, + 0.9810289435530248 + ], + "scorePercentiles" : { + "0.0" : 0.9624246163025695, + "50.0" : 0.9728594578793774, + "90.0" : 0.9772800762239813, + "95.0" : 0.9772800762239813, + "99.0" : 0.9772800762239813, + "99.9" : 0.9772800762239813, + "99.99" : 0.9772800762239813, + "99.999" : 0.9772800762239813, + "99.9999" : 0.9772800762239813, + "100.0" : 0.9772800762239813 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9760755084911185, + 0.9772800762239813, + 0.9765354366761059 + ], + [ + 0.9710249972812894, + 0.9728594578793774, + 0.9729500664461523 + ], + [ + 0.9625655503368624, + 0.9624246163025695, + 0.9626679942241048 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013325571908170615, + "scoreError" : 4.7289741439673064E-4, + "scoreConfidence" : [ + 0.012852674493773884, + 0.013798469322567345 + ], + "scorePercentiles" : { + "0.0" : 0.013084378469896164, + "50.0" : 0.013347866633788563, + "90.0" : 0.013475767826630661, + "95.0" : 0.013475767826630661, + "99.0" : 0.013475767826630661, + "99.9" : 0.013475767826630661, + "99.99" : 0.013475767826630661, + "99.999" : 0.013475767826630661, + "99.9999" : 0.013475767826630661, + "100.0" : 0.013475767826630661 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013084378469896164, + 0.013225057919112142, + 0.013227907234958916 + ], + [ + 0.01347249396580759, + 0.01346782603261821, + 0.013475767826630661 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.51804067922278, + "scoreError" : 0.10090682815622272, + "scoreConfidence" : [ + 3.417133851066557, + 3.6189475073790027 + ], + "scorePercentiles" : { + "0.0" : 3.4634543123268697, + "50.0" : 3.5154336537433952, + "90.0" : 3.556867966571835, + "95.0" : 3.556867966571835, + "99.0" : 3.556867966571835, + "99.9" : 3.556867966571835, + "99.99" : 3.556867966571835, + "99.999" : 3.556867966571835, + "99.9999" : 3.556867966571835, + "100.0" : 3.556867966571835 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.4634543123268697, + 3.5054302095304837, + 3.5006572841147654 + ], + [ + 3.525437097956307, + 3.556867966571835, + 3.5563972048364154 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.788730153094184, + "scoreError" : 0.06903096873348752, + "scoreConfidence" : [ + 2.719699184360697, + 2.8577611218276715 + ], + "scorePercentiles" : { + "0.0" : 2.7437548197530863, + "50.0" : 2.783771960478709, + "90.0" : 2.849354674928775, + "95.0" : 2.849354674928775, + "99.0" : 2.849354674928775, + "99.9" : 2.849354674928775, + "99.99" : 2.849354674928775, + "99.999" : 2.849354674928775, + "99.9999" : 2.849354674928775, + "100.0" : 2.849354674928775 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.7891072551589513, + 2.783771960478709, + 2.775938651124063 + ], + [ + 2.824776698107879, + 2.840119266609881, + 2.849354674928775 + ], + [ + 2.7456887584408456, + 2.7460592932454695, + 2.7437548197530863 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17712537921057037, + "scoreError" : 0.007302705141392033, + "scoreConfidence" : [ + 0.16982267406917834, + 0.1844280843519624 + ], + "scorePercentiles" : { + "0.0" : 0.17273654465997618, + "50.0" : 0.17481974593989827, + "90.0" : 0.18281082563708823, + "95.0" : 0.18281082563708823, + "99.0" : 0.18281082563708823, + "99.9" : 0.18281082563708823, + "99.99" : 0.18281082563708823, + "99.999" : 0.18281082563708823, + "99.9999" : 0.18281082563708823, + "100.0" : 0.18281082563708823 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1745027607273108, + 0.1769361178187866, + 0.17273654465997618 + ], + [ + 0.17481974593989827, + 0.17345907777700686, + 0.1735599226283453 + ], + [ + 0.18281082563708823, + 0.18277720421106503, + 0.18252621349565598 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.32447753868441737, + "scoreError" : 0.005001733991219815, + "scoreConfidence" : [ + 0.31947580469319753, + 0.3294792726756372 + ], + "scorePercentiles" : { + "0.0" : 0.3203402676660901, + "50.0" : 0.3253693742964047, + "90.0" : 0.32748490490224974, + "95.0" : 0.32748490490224974, + "99.0" : 0.32748490490224974, + "99.9" : 0.32748490490224974, + "99.99" : 0.32748490490224974, + "99.999" : 0.32748490490224974, + "99.9999" : 0.32748490490224974, + "100.0" : 0.32748490490224974 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.32748490490224974, + 0.3271972053396152, + 0.3270538788304935 + ], + [ + 0.3260087019396903, + 0.3252007965269422, + 0.3253693742964047 + ], + [ + 0.321195865324083, + 0.3203402676660901, + 0.3204468533341878 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16340967242962043, + "scoreError" : 0.011490652019065893, + "scoreConfidence" : [ + 0.15191902041055452, + 0.17490032444868633 + ], + "scorePercentiles" : { + "0.0" : 0.15772524404208002, + "50.0" : 0.15996247744577388, + "90.0" : 0.17276041387233307, + "95.0" : 0.17276041387233307, + "99.0" : 0.17276041387233307, + "99.9" : 0.17276041387233307, + "99.99" : 0.17276041387233307, + "99.999" : 0.17276041387233307, + "99.9999" : 0.17276041387233307, + "100.0" : 0.17276041387233307 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15996247744577388, + 0.15985878575995907, + 0.16040340945399717 + ], + [ + 0.15772524404208002, + 0.157725860035961, + 0.1577472638735527 + ], + [ + 0.17276041387233307, + 0.17239612719154584, + 0.17210747019138098 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38778148958174263, + "scoreError" : 0.007870026339949909, + "scoreConfidence" : [ + 0.3799114632417927, + 0.39565151592169256 + ], + "scorePercentiles" : { + "0.0" : 0.38187174053001377, + "50.0" : 0.388548793379439, + "90.0" : 0.39541730797516905, + "95.0" : 0.39541730797516905, + "99.0" : 0.39541730797516905, + "99.9" : 0.39541730797516905, + "99.99" : 0.39541730797516905, + "99.999" : 0.39541730797516905, + "99.9999" : 0.39541730797516905, + "100.0" : 0.39541730797516905 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3931338122026969, + 0.3896887151819811, + 0.38912040210116733 + ], + [ + 0.39541730797516905, + 0.388548793379439, + 0.38593098062673664 + ], + [ + 0.38401105663927504, + 0.38187174053001377, + 0.3823105975992048 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15859959775618343, + "scoreError" : 0.004781731731620883, + "scoreConfidence" : [ + 0.15381786602456254, + 0.16338132948780432 + ], + "scorePercentiles" : { + "0.0" : 0.15511315565379247, + "50.0" : 0.15770749495347736, + "90.0" : 0.16296427483092968, + "95.0" : 0.16296427483092968, + "99.0" : 0.16296427483092968, + "99.9" : 0.16296427483092968, + "99.99" : 0.16296427483092968, + "99.999" : 0.16296427483092968, + "99.9999" : 0.16296427483092968, + "100.0" : 0.16296427483092968 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15585705683961162, + 0.1566942354747728, + 0.15511315565379247 + ], + [ + 0.16296427483092968, + 0.16186691430883782, + 0.16168290255614298 + ], + [ + 0.15766940961765866, + 0.15784093557042742, + 0.15770749495347736 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04710584983796012, + "scoreError" : 5.002445975454384E-4, + "scoreConfidence" : [ + 0.04660560524041468, + 0.047606094435505564 + ], + "scorePercentiles" : { + "0.0" : 0.04662526819408893, + "50.0" : 0.047111269473208144, + "90.0" : 0.04774415838473731, + "95.0" : 0.04774415838473731, + "99.0" : 0.04774415838473731, + "99.9" : 0.04774415838473731, + "99.99" : 0.04774415838473731, + "99.999" : 0.04774415838473731, + "99.9999" : 0.04774415838473731, + "100.0" : 0.04774415838473731 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04774415838473731, + 0.04719217090366819, + 0.04711298183822594 + ], + [ + 0.04718592201198509, + 0.047111269473208144, + 0.046999683827607275 + ], + [ + 0.0470874619162421, + 0.046893731991878115, + 0.04662526819408893 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9443774.941414071, + "scoreError" : 307746.71388554137, + "scoreConfidence" : [ + 9136028.22752853, + 9751521.655299613 + ], + "scorePercentiles" : { + "0.0" : 9286955.811513463, + "50.0" : 9365019.601123596, + "90.0" : 9707768.672162948, + "95.0" : 9707768.672162948, + "99.0" : 9707768.672162948, + "99.9" : 9707768.672162948, + "99.99" : 9707768.672162948, + "99.999" : 9707768.672162948, + "99.9999" : 9707768.672162948, + "100.0" : 9707768.672162948 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9286955.811513463, + 9303999.322790697, + 9307733.983255815 + ], + [ + 9309956.244651163, + 9365232.038389513, + 9365019.601123596 + ], + [ + 9707768.672162948, + 9675951.720502902, + 9671357.078336557 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T04:37:11Z-064de5fd6e70ca895fb1a652ac7d4f27423b2831-jdk17.json b/performance-results/2025-04-03T04:37:11Z-064de5fd6e70ca895fb1a652ac7d4f27423b2831-jdk17.json new file mode 100644 index 000000000..967434fc3 --- /dev/null +++ b/performance-results/2025-04-03T04:37:11Z-064de5fd6e70ca895fb1a652ac7d4f27423b2831-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.398063238727424, + "scoreError" : 0.01846794614525216, + "scoreConfidence" : [ + 3.379595292582172, + 3.4165311848726763 + ], + "scorePercentiles" : { + "0.0" : 3.394463481045468, + "50.0" : 3.3981746276446567, + "90.0" : 3.401440218574916, + "95.0" : 3.401440218574916, + "99.0" : 3.401440218574916, + "99.9" : 3.401440218574916, + "99.99" : 3.401440218574916, + "99.999" : 3.401440218574916, + "99.9999" : 3.401440218574916, + "100.0" : 3.401440218574916 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.394463481045468, + 3.3979334679294224 + ], + [ + 3.398415787359891, + 3.401440218574916 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7155884162836184, + "scoreError" : 0.01669652478284702, + "scoreConfidence" : [ + 1.6988918915007714, + 1.7322849410664654 + ], + "scorePercentiles" : { + "0.0" : 1.7121557905255511, + "50.0" : 1.715993604740984, + "90.0" : 1.7182106651269544, + "95.0" : 1.7182106651269544, + "99.0" : 1.7182106651269544, + "99.9" : 1.7182106651269544, + "99.99" : 1.7182106651269544, + "99.999" : 1.7182106651269544, + "99.9999" : 1.7182106651269544, + "100.0" : 1.7182106651269544 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7121557905255511, + 1.7167149547253382 + ], + [ + 1.7152722547566301, + 1.7182106651269544 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.860582322212074, + "scoreError" : 0.007014266752437115, + "scoreConfidence" : [ + 0.8535680554596369, + 0.8675965889645111 + ], + "scorePercentiles" : { + "0.0" : 0.8590306137321312, + "50.0" : 0.8609782904232638, + "90.0" : 0.8613420942696371, + "95.0" : 0.8613420942696371, + "99.0" : 0.8613420942696371, + "99.9" : 0.8613420942696371, + "99.99" : 0.8613420942696371, + "99.999" : 0.8613420942696371, + "99.9999" : 0.8613420942696371, + "100.0" : 0.8613420942696371 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8613218540335297, + 0.8613420942696371 + ], + [ + 0.8590306137321312, + 0.8606347268129979 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.761189069739004, + "scoreError" : 0.15368336132423224, + "scoreConfidence" : [ + 15.607505708414772, + 15.914872431063236 + ], + "scorePercentiles" : { + "0.0" : 15.647324344216493, + "50.0" : 15.774902689094654, + "90.0" : 15.862001171401516, + "95.0" : 15.862001171401516, + "99.0" : 15.862001171401516, + "99.9" : 15.862001171401516, + "99.99" : 15.862001171401516, + "99.999" : 15.862001171401516, + "99.9999" : 15.862001171401516, + "100.0" : 15.862001171401516 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.691891086008026, + 15.647324344216493, + 15.648750806162413 + ], + [ + 15.691263256496491, + 15.834115149372924, + 15.843618460484318 + ], + [ + 15.862001171401516, + 15.856834664414194, + 15.774902689094654 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2605.564647314867, + "scoreError" : 71.75800348528772, + "scoreConfidence" : [ + 2533.8066438295796, + 2677.322650800155 + ], + "scorePercentiles" : { + "0.0" : 2549.627018607967, + "50.0" : 2605.008813064446, + "90.0" : 2656.065490907737, + "95.0" : 2656.065490907737, + "99.0" : 2656.065490907737, + "99.9" : 2656.065490907737, + "99.99" : 2656.065490907737, + "99.999" : 2656.065490907737, + "99.9999" : 2656.065490907737, + "100.0" : 2656.065490907737 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2656.065490907737, + 2650.5415035008077, + 2639.3811388336094 + ], + [ + 2549.627018607967, + 2554.9937206067393, + 2560.1159714856094 + ], + [ + 2637.7776962860908, + 2596.5704725407954, + 2605.008813064446 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69899.48411961367, + "scoreError" : 1599.6195809567562, + "scoreConfidence" : [ + 68299.86453865691, + 71499.10370057043 + ], + "scorePercentiles" : { + "0.0" : 68635.08400989581, + "50.0" : 70097.78329072687, + "90.0" : 70958.29943121137, + "95.0" : 70958.29943121137, + "99.0" : 70958.29943121137, + "99.9" : 70958.29943121137, + "99.99" : 70958.29943121137, + "99.999" : 70958.29943121137, + "99.9999" : 70958.29943121137, + "100.0" : 70958.29943121137 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70897.41237148685, + 70958.29943121137, + 70827.88010165881 + ], + [ + 70034.7228781272, + 70111.79570507018, + 70097.78329072687 + ], + [ + 68771.26924276495, + 68635.08400989581, + 68761.11004558101 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 318.2890154966056, + "scoreError" : 3.5026047930382624, + "scoreConfidence" : [ + 314.78641070356736, + 321.79162028964384 + ], + "scorePercentiles" : { + "0.0" : 313.54494204120397, + "50.0" : 318.3475360395479, + "90.0" : 321.16303018492044, + "95.0" : 321.16303018492044, + "99.0" : 321.16303018492044, + "99.9" : 321.16303018492044, + "99.99" : 321.16303018492044, + "99.999" : 321.16303018492044, + "99.9999" : 321.16303018492044, + "100.0" : 321.16303018492044 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 319.28675349502834, + 319.88635243263707, + 321.16303018492044 + ], + [ + 318.3475360395479, + 317.7739042163214, + 317.9026036071082 + ], + [ + 318.4421318678474, + 318.25388558483576, + 313.54494204120397 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 99.19790546048765, + "scoreError" : 4.922560682981105, + "scoreConfidence" : [ + 94.27534477750655, + 104.12046614346875 + ], + "scorePercentiles" : { + "0.0" : 95.29875350183407, + "50.0" : 99.31747082669419, + "90.0" : 102.77934146542273, + "95.0" : 102.77934146542273, + "99.0" : 102.77934146542273, + "99.9" : 102.77934146542273, + "99.99" : 102.77934146542273, + "99.999" : 102.77934146542273, + "99.9999" : 102.77934146542273, + "100.0" : 102.77934146542273 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 95.5248125728636, + 95.29875350183407, + 96.26365728304859 + ], + [ + 99.02528655018615, + 100.36379191537276, + 99.31747082669419 + ], + [ + 102.43738296774471, + 102.77934146542273, + 101.77065206122195 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06388822878506939, + "scoreError" : 9.979567518627098E-4, + "scoreConfidence" : [ + 0.06289027203320668, + 0.0648861855369321 + ], + "scorePercentiles" : { + "0.0" : 0.06305835662668836, + "50.0" : 0.06389496701787117, + "90.0" : 0.06479736363636364, + "95.0" : 0.06479736363636364, + "99.0" : 0.06479736363636364, + "99.9" : 0.06479736363636364, + "99.99" : 0.06479736363636364, + "99.999" : 0.06479736363636364, + "99.9999" : 0.06479736363636364, + "100.0" : 0.06479736363636364 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06374456063947781, + 0.06419815483084035, + 0.06389496701787117 + ], + [ + 0.06406173624296935, + 0.06479736363636364, + 0.06459939156217903 + ], + [ + 0.0632592709037082, + 0.06338025760552668, + 0.06305835662668836 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.83019606931175E-4, + "scoreError" : 1.3784581850369122E-5, + "scoreConfidence" : [ + 3.6923502508080585E-4, + 3.968041887815441E-4 + ], + "scorePercentiles" : { + "0.0" : 3.7020701441402385E-4, + "50.0" : 3.844138049114324E-4, + "90.0" : 3.934721148100017E-4, + "95.0" : 3.934721148100017E-4, + "99.0" : 3.934721148100017E-4, + "99.9" : 3.934721148100017E-4, + "99.99" : 3.934721148100017E-4, + "99.999" : 3.934721148100017E-4, + "99.9999" : 3.934721148100017E-4, + "100.0" : 3.934721148100017E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8526200194871147E-4, + 3.8127326824683404E-4, + 3.844138049114324E-4 + ], + [ + 3.934721148100017E-4, + 3.9015963338102455E-4, + 3.9196502741253386E-4 + ], + [ + 3.7619870712614367E-4, + 3.7422489012986976E-4, + 3.7020701441402385E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014507169573223098, + "scoreError" : 5.580762315377476E-4, + "scoreConfidence" : [ + 0.01394909334168535, + 0.015065245804760846 + ], + "scorePercentiles" : { + "0.0" : 0.014197896179254592, + "50.0" : 0.014309983227464544, + "90.0" : 0.014960949395286768, + "95.0" : 0.014960949395286768, + "99.0" : 0.014960949395286768, + "99.9" : 0.014960949395286768, + "99.99" : 0.014960949395286768, + "99.999" : 0.014960949395286768, + "99.9999" : 0.014960949395286768, + "100.0" : 0.014960949395286768 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014448763521694528, + 0.014238935660798879, + 0.014197896179254592 + ], + [ + 0.014309983227464544, + 0.014273343558159617, + 0.014274491531762492 + ], + [ + 0.014931303598997824, + 0.014960949395286768, + 0.01492885948558863 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9907268310671148, + "scoreError" : 0.02012586950490829, + "scoreConfidence" : [ + 0.9706009615622065, + 1.0108527005720231 + ], + "scorePercentiles" : { + "0.0" : 0.9740569874354729, + "50.0" : 0.9971856530062818, + "90.0" : 1.0045795006529383, + "95.0" : 1.0045795006529383, + "99.0" : 1.0045795006529383, + "99.9" : 1.0045795006529383, + "99.99" : 1.0045795006529383, + "99.999" : 1.0045795006529383, + "99.9999" : 1.0045795006529383, + "100.0" : 1.0045795006529383 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9986444846215299, + 0.9971856530062818, + 1.0045795006529383 + ], + [ + 0.9973045451735142, + 0.9972825439768648, + 0.9962513022213367 + ], + [ + 0.9757165716655284, + 0.9755198908505658, + 0.9740569874354729 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013343001108488255, + "scoreError" : 1.603246869937958E-4, + "scoreConfidence" : [ + 0.01318267642149446, + 0.01350332579548205 + ], + "scorePercentiles" : { + "0.0" : 0.013283585089821314, + "50.0" : 0.013325930652973463, + "90.0" : 0.01342174419659634, + "95.0" : 0.01342174419659634, + "99.0" : 0.01342174419659634, + "99.9" : 0.01342174419659634, + "99.99" : 0.01342174419659634, + "99.999" : 0.01342174419659634, + "99.9999" : 0.01342174419659634, + "100.0" : 0.01342174419659634 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013296058110407913, + 0.01342174419659634, + 0.013404757948157025 + ], + [ + 0.013328466066544758, + 0.013323395239402168, + 0.013283585089821314 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.9281097096224347, + "scoreError" : 0.19831393229042082, + "scoreConfidence" : [ + 3.729795777332014, + 4.126423641912855 + ], + "scorePercentiles" : { + "0.0" : 3.8423004477726574, + "50.0" : 3.9272893627166936, + "90.0" : 3.9999446554756197, + "95.0" : 3.9999446554756197, + "99.0" : 3.9999446554756197, + "99.9" : 3.9999446554756197, + "99.99" : 3.9999446554756197, + "99.999" : 3.9999446554756197, + "99.9999" : 3.9999446554756197, + "100.0" : 3.9999446554756197 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.9999446554756197, + 3.978067418456643, + 3.9959317412140574 + ], + [ + 3.8423004477726574, + 3.8765113069767443, + 3.8759026878388845 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.1320001021459305, + "scoreError" : 0.1305735498002403, + "scoreConfidence" : [ + 3.00142655234569, + 3.262573651946171 + ], + "scorePercentiles" : { + "0.0" : 3.0153515375339164, + "50.0" : 3.1369162976787957, + "90.0" : 3.216451787459807, + "95.0" : 3.216451787459807, + "99.0" : 3.216451787459807, + "99.9" : 3.216451787459807, + "99.99" : 3.216451787459807, + "99.999" : 3.216451787459807, + "99.9999" : 3.216451787459807, + "100.0" : 3.216451787459807 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.160231842022117, + 3.1369162976787957, + 3.1275856741713572 + ], + [ + 3.216451787459807, + 3.2145117405978785, + 3.214671719061395 + ], + [ + 3.0153515375339164, + 3.052139432102533, + 3.0501408886855748 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1797257930507823, + "scoreError" : 0.006638397579902533, + "scoreConfidence" : [ + 0.17308739547087976, + 0.18636419063068482 + ], + "scorePercentiles" : { + "0.0" : 0.1743994850107253, + "50.0" : 0.18180634640487228, + "90.0" : 0.18315693981574754, + "95.0" : 0.18315693981574754, + "99.0" : 0.18315693981574754, + "99.9" : 0.18315693981574754, + "99.99" : 0.18315693981574754, + "99.999" : 0.18315693981574754, + "99.9999" : 0.18315693981574754, + "100.0" : 0.18315693981574754 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.18180634640487228, + 0.1818186315703351, + 0.18180463257885646 + ], + [ + 0.1746522944566698, + 0.1743994850107253, + 0.1744420070472901 + ], + [ + 0.18315693981574754, + 0.18280616558204152, + 0.18264563499050263 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3383194540641472, + "scoreError" : 0.020423803604438278, + "scoreConfidence" : [ + 0.3178956504597089, + 0.3587432576685855 + ], + "scorePercentiles" : { + "0.0" : 0.3253307799863366, + "50.0" : 0.3337108633163146, + "90.0" : 0.355636786656709, + "95.0" : 0.355636786656709, + "99.0" : 0.355636786656709, + "99.9" : 0.355636786656709, + "99.99" : 0.355636786656709, + "99.999" : 0.355636786656709, + "99.9999" : 0.355636786656709, + "100.0" : 0.355636786656709 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3275824299331761, + 0.3281772648661066, + 0.3253307799863366 + ], + [ + 0.3352680090854231, + 0.3337108633163146, + 0.33307845443645084 + ], + [ + 0.3517657857117732, + 0.354324712585034, + 0.355636786656709 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16835279831565275, + "scoreError" : 0.008841408090625332, + "scoreConfidence" : [ + 0.15951139022502742, + 0.1771942064062781 + ], + "scorePercentiles" : { + "0.0" : 0.16128091963551328, + "50.0" : 0.1713425613734494, + "90.0" : 0.1726306326992128, + "95.0" : 0.1726306326992128, + "99.0" : 0.1726306326992128, + "99.9" : 0.1726306326992128, + "99.99" : 0.1726306326992128, + "99.999" : 0.1726306326992128, + "99.9999" : 0.1726306326992128, + "100.0" : 0.1726306326992128 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1713425613734494, + 0.17160019881254718, + 0.17104700237749082 + ], + [ + 0.17248626498439038, + 0.1726306326992128, + 0.17196016485538398 + ], + [ + 0.16128091963551328, + 0.16137944565655912, + 0.16144799444632796 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3952465346387055, + "scoreError" : 0.003297160570744365, + "scoreConfidence" : [ + 0.39194937406796115, + 0.3985436952094499 + ], + "scorePercentiles" : { + "0.0" : 0.39318401466540853, + "50.0" : 0.3945501908387911, + "90.0" : 0.3986785879843725, + "95.0" : 0.3986785879843725, + "99.0" : 0.3986785879843725, + "99.9" : 0.3986785879843725, + "99.99" : 0.3986785879843725, + "99.999" : 0.3986785879843725, + "99.9999" : 0.3986785879843725, + "100.0" : 0.3986785879843725 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3945501908387911, + 0.39391868401150193, + 0.3934821552626402 + ], + [ + 0.3986785879843725, + 0.39347827231949634, + 0.39318401466540853 + ], + [ + 0.3968952295999365, + 0.39692631868698897, + 0.39610535837921335 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1593310385581499, + "scoreError" : 0.0028442450259137868, + "scoreConfidence" : [ + 0.1564867935322361, + 0.1621752835840637 + ], + "scorePercentiles" : { + "0.0" : 0.15777442514554377, + "50.0" : 0.15874837003524145, + "90.0" : 0.1624385157156084, + "95.0" : 0.1624385157156084, + "99.0" : 0.1624385157156084, + "99.9" : 0.1624385157156084, + "99.99" : 0.1624385157156084, + "99.999" : 0.1624385157156084, + "99.9999" : 0.1624385157156084, + "100.0" : 0.1624385157156084 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1624385157156084, + 0.16167678781950753, + 0.16008429511109687 + ], + [ + 0.15874837003524145, + 0.1587637378548295, + 0.1582909996992529 + ], + [ + 0.1581139882998403, + 0.1580882273424285, + 0.15777442514554377 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04777432791293147, + "scoreError" : 0.0013125816839008406, + "scoreConfidence" : [ + 0.04646174622903063, + 0.04908690959683231 + ], + "scorePercentiles" : { + "0.0" : 0.04719819954218289, + "50.0" : 0.04727648992076549, + "90.0" : 0.04886981457571789, + "95.0" : 0.04886981457571789, + "99.0" : 0.04886981457571789, + "99.9" : 0.04886981457571789, + "99.99" : 0.04886981457571789, + "99.999" : 0.04886981457571789, + "99.9999" : 0.04886981457571789, + "100.0" : 0.04886981457571789 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04727648992076549, + 0.04726375017723625, + 0.04729652034904344 + ], + [ + 0.047260753382641366, + 0.04722931846261382, + 0.04719819954218289 + ], + [ + 0.04878328790044441, + 0.04886981457571789, + 0.04879081690573771 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9854902.347201487, + "scoreError" : 395549.2532945072, + "scoreConfidence" : [ + 9459353.09390698, + 1.0250451600495994E7 + ], + "scorePercentiles" : { + "0.0" : 9519942.573739296, + "50.0" : 9846367.802165354, + "90.0" : 1.0131742660931174E7, + "95.0" : 1.0131742660931174E7, + "99.0" : 1.0131742660931174E7, + "99.9" : 1.0131742660931174E7, + "99.99" : 1.0131742660931174E7, + "99.999" : 1.0131742660931174E7, + "99.9999" : 1.0131742660931174E7, + "100.0" : 1.0131742660931174E7 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9718148.198058253, + 9563246.647227533, + 9519942.573739296 + ], + [ + 9846367.802165354, + 9882046.2023692, + 9784536.290322581 + ], + [ + 1.012611225708502E7, + 1.0131742660931174E7, + 1.012197849291498E7 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-03T04:39:22Z-064de5fd6e70ca895fb1a652ac7d4f27423b2831-jdk17.json b/performance-results/2025-04-03T04:39:22Z-064de5fd6e70ca895fb1a652ac7d4f27423b2831-jdk17.json new file mode 100644 index 000000000..083153027 --- /dev/null +++ b/performance-results/2025-04-03T04:39:22Z-064de5fd6e70ca895fb1a652ac7d4f27423b2831-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4028158052032147, + "scoreError" : 0.02698436626698203, + "scoreConfidence" : [ + 3.3758314389362325, + 3.429800171470197 + ], + "scorePercentiles" : { + "0.0" : 3.3984327814572493, + "50.0" : 3.4024482494709245, + "90.0" : 3.40793394041376, + "95.0" : 3.40793394041376, + "99.0" : 3.40793394041376, + "99.9" : 3.40793394041376, + "99.99" : 3.40793394041376, + "99.999" : 3.40793394041376, + "99.9999" : 3.40793394041376, + "100.0" : 3.40793394041376 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.3984327814572493, + 3.400626569701109 + ], + [ + 3.40426992924074, + 3.40793394041376 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7217318691895986, + "scoreError" : 0.010243454629387177, + "scoreConfidence" : [ + 1.7114884145602114, + 1.731975323818986 + ], + "scorePercentiles" : { + "0.0" : 1.719393836215952, + "50.0" : 1.7223979685910846, + "90.0" : 1.722737703360273, + "95.0" : 1.722737703360273, + "99.0" : 1.722737703360273, + "99.9" : 1.722737703360273, + "99.99" : 1.722737703360273, + "99.999" : 1.722737703360273, + "99.9999" : 1.722737703360273, + "100.0" : 1.722737703360273 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7221038886454691, + 1.722737703360273 + ], + [ + 1.719393836215952, + 1.7226920485366999 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8654434507790818, + "scoreError" : 0.008438986629075771, + "scoreConfidence" : [ + 0.8570044641500061, + 0.8738824374081575 + ], + "scorePercentiles" : { + "0.0" : 0.8645342532584883, + "50.0" : 0.8649425572522541, + "90.0" : 0.8673544353533303, + "95.0" : 0.8673544353533303, + "99.0" : 0.8673544353533303, + "99.9" : 0.8673544353533303, + "99.99" : 0.8673544353533303, + "99.999" : 0.8673544353533303, + "99.9999" : 0.8673544353533303, + "100.0" : 0.8673544353533303 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8645342532584883, + 0.8652034852013738 + ], + [ + 0.8646816293031344, + 0.8673544353533303 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.856852526851778, + "scoreError" : 0.22239508840105984, + "scoreConfidence" : [ + 15.634457438450719, + 16.07924761525284 + ], + "scorePercentiles" : { + "0.0" : 15.655595185675983, + "50.0" : 15.897855959962087, + "90.0" : 16.075434896788032, + "95.0" : 16.075434896788032, + "99.0" : 16.075434896788032, + "99.9" : 16.075434896788032, + "99.99" : 16.075434896788032, + "99.999" : 16.075434896788032, + "99.9999" : 16.075434896788032, + "100.0" : 16.075434896788032 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.795514884463312, + 15.734436696789428, + 15.655595185675983 + ], + [ + 15.961511976581217, + 15.748292618608652, + 15.933875666964484 + ], + [ + 16.075434896788032, + 15.897855959962087, + 15.909154855832826 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2627.694997644631, + "scoreError" : 100.4623977422994, + "scoreConfidence" : [ + 2527.2325999023315, + 2728.15739538693 + ], + "scorePercentiles" : { + "0.0" : 2546.832028910364, + "50.0" : 2617.358010776736, + "90.0" : 2726.1959070049306, + "95.0" : 2726.1959070049306, + "99.0" : 2726.1959070049306, + "99.9" : 2726.1959070049306, + "99.99" : 2726.1959070049306, + "99.999" : 2726.1959070049306, + "99.9999" : 2726.1959070049306, + "100.0" : 2726.1959070049306 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2682.3819623737045, + 2686.3172658046005, + 2726.1959070049306 + ], + [ + 2617.358010776736, + 2566.8713813030668, + 2611.7854559352445 + ], + [ + 2626.9936504978727, + 2546.832028910364, + 2584.5193161951593 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69994.63854814746, + "scoreError" : 914.8097763908709, + "scoreConfidence" : [ + 69079.82877175658, + 70909.44832453833 + ], + "scorePercentiles" : { + "0.0" : 68967.6464426141, + "50.0" : 70207.4304985715, + "90.0" : 70500.16253561925, + "95.0" : 70500.16253561925, + "99.0" : 70500.16253561925, + "99.9" : 70500.16253561925, + "99.99" : 70500.16253561925, + "99.999" : 70500.16253561925, + "99.9999" : 70500.16253561925, + "100.0" : 70500.16253561925 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 69828.42820603953, + 69413.01432131404, + 69734.47790099871 + ], + [ + 70448.36211536035, + 70207.4304985715, + 70500.16253561925 + ], + [ + 70468.08488030932, + 68967.6464426141, + 70384.14003250026 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 346.7931852807508, + "scoreError" : 3.3342629800102954, + "scoreConfidence" : [ + 343.4589223007405, + 350.12744826076107 + ], + "scorePercentiles" : { + "0.0" : 343.7680474475259, + "50.0" : 346.25243329497414, + "90.0" : 349.58594626041577, + "95.0" : 349.58594626041577, + "99.0" : 349.58594626041577, + "99.9" : 349.58594626041577, + "99.99" : 349.58594626041577, + "99.999" : 349.58594626041577, + "99.9999" : 349.58594626041577, + "100.0" : 349.58594626041577 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 343.7680474475259, + 345.8715452517336, + 347.96462884988966 + ], + [ + 346.07920593473517, + 346.25243329497414, + 347.765244689211 + ], + [ + 344.63011611183293, + 349.22149968643856, + 349.58594626041577 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 103.84830895680096, + "scoreError" : 2.853451773658508, + "scoreConfidence" : [ + 100.99485718314246, + 106.70176073045947 + ], + "scorePercentiles" : { + "0.0" : 101.71035761699841, + "50.0" : 103.04915723582602, + "90.0" : 106.43837078897053, + "95.0" : 106.43837078897053, + "99.0" : 106.43837078897053, + "99.9" : 106.43837078897053, + "99.99" : 106.43837078897053, + "99.999" : 106.43837078897053, + "99.9999" : 106.43837078897053, + "100.0" : 106.43837078897053 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 101.71035761699841, + 102.96619234811652, + 103.04915723582602 + ], + [ + 106.43837078897053, + 106.37364400433496, + 105.10326118216283 + ], + [ + 103.40392088198075, + 102.76412725260485, + 102.82574930021367 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06326091308772883, + "scoreError" : 6.878635265646218E-4, + "scoreConfidence" : [ + 0.0625730495611642, + 0.06394877661429345 + ], + "scorePercentiles" : { + "0.0" : 0.06274002661396574, + "50.0" : 0.06328955167525284, + "90.0" : 0.06400515197772658, + "95.0" : 0.06400515197772658, + "99.0" : 0.06400515197772658, + "99.9" : 0.06400515197772658, + "99.99" : 0.06400515197772658, + "99.999" : 0.06400515197772658, + "99.9999" : 0.06400515197772658, + "100.0" : 0.06400515197772658 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06287397867350723, + 0.06279671892543612, + 0.06346642787149512 + ], + [ + 0.06337502196548643, + 0.06274002661396574, + 0.06328955167525284 + ], + [ + 0.06356635234142094, + 0.06400515197772658, + 0.06323498774526852 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.855581819461642E-4, + "scoreError" : 6.921607125895276E-6, + "scoreConfidence" : [ + 3.786365748202689E-4, + 3.924797890720594E-4 + ], + "scorePercentiles" : { + "0.0" : 3.7792593484907937E-4, + "50.0" : 3.8691700719416E-4, + "90.0" : 3.913857062366774E-4, + "95.0" : 3.913857062366774E-4, + "99.0" : 3.913857062366774E-4, + "99.9" : 3.913857062366774E-4, + "99.99" : 3.913857062366774E-4, + "99.999" : 3.913857062366774E-4, + "99.9999" : 3.913857062366774E-4, + "100.0" : 3.913857062366774E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7792593484907937E-4, + 3.8200901836640285E-4, + 3.8237432355374515E-4 + ], + [ + 3.855961513716939E-4, + 3.877975459473206E-4, + 3.913857062366774E-4 + ], + [ + 3.8691700719416E-4, + 3.8703300435309726E-4, + 3.8898494564330134E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.01446867119144881, + "scoreError" : 3.071290232277809E-4, + "scoreConfidence" : [ + 0.01416154216822103, + 0.014775800214676591 + ], + "scorePercentiles" : { + "0.0" : 0.01424524991666643, + "50.0" : 0.014418233085102549, + "90.0" : 0.01471546875142554, + "95.0" : 0.01471546875142554, + "99.0" : 0.01471546875142554, + "99.9" : 0.01471546875142554, + "99.99" : 0.01471546875142554, + "99.999" : 0.01471546875142554, + "99.9999" : 0.01471546875142554, + "100.0" : 0.01471546875142554 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01441417423497701, + 0.014418233085102549, + 0.014425451218720563 + ], + [ + 0.014347761017875667, + 0.01427606893824538, + 0.01424524991666643 + ], + [ + 0.01471291030230269, + 0.01471546875142554, + 0.014662723257723494 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 1.0029323812394497, + "scoreError" : 0.008664048351075164, + "scoreConfidence" : [ + 0.9942683328883746, + 1.0115964295905249 + ], + "scorePercentiles" : { + "0.0" : 0.995025286240175, + "50.0" : 1.0018026926775518, + "90.0" : 1.0113044462534129, + "95.0" : 1.0113044462534129, + "99.0" : 1.0113044462534129, + "99.9" : 1.0113044462534129, + "99.99" : 1.0113044462534129, + "99.999" : 1.0113044462534129, + "99.9999" : 1.0113044462534129, + "100.0" : 1.0113044462534129 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0113044462534129, + 0.9978523330672521, + 1.0008790364291433 + ], + [ + 1.0075035067499496, + 1.0012708366039247, + 1.0079401847409797 + ], + [ + 0.995025286240175, + 1.0018026926775518, + 1.0028131083926601 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01299504090943715, + "scoreError" : 5.276041924888734E-4, + "scoreConfidence" : [ + 0.012467436716948277, + 0.013522645101926023 + ], + "scorePercentiles" : { + "0.0" : 0.012795588516489282, + "50.0" : 0.01293060720421979, + "90.0" : 0.013293538975678752, + "95.0" : 0.013293538975678752, + "99.0" : 0.013293538975678752, + "99.9" : 0.013293538975678752, + "99.99" : 0.013293538975678752, + "99.999" : 0.013293538975678752, + "99.9999" : 0.013293538975678752, + "100.0" : 0.013293538975678752 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012966117529756502, + 0.013293538975678752, + 0.01314568560822162 + ], + [ + 0.012795588516489282, + 0.012874217947793667, + 0.01289509687868308 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.734757970815448, + "scoreError" : 0.10371285218767395, + "scoreConfidence" : [ + 3.631045118627774, + 3.838470823003122 + ], + "scorePercentiles" : { + "0.0" : 3.6964419098300074, + "50.0" : 3.7301802576484198, + "90.0" : 3.8028869977186313, + "95.0" : 3.8028869977186313, + "99.0" : 3.8028869977186313, + "99.9" : 3.8028869977186313, + "99.99" : 3.8028869977186313, + "99.999" : 3.8028869977186313, + "99.9999" : 3.8028869977186313, + "100.0" : 3.8028869977186313 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.726333251117735, + 3.7340272641791046, + 3.8028869977186313 + ], + [ + 3.6964419098300074, + 3.7393437959641256, + 3.709514606083086 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.915910361825667, + "scoreError" : 0.07793360653432067, + "scoreConfidence" : [ + 2.837976755291346, + 2.993843968359988 + ], + "scorePercentiles" : { + "0.0" : 2.867956468597648, + "50.0" : 2.8936321148726853, + "90.0" : 2.9790791128984213, + "95.0" : 2.9790791128984213, + "99.0" : 2.9790791128984213, + "99.9" : 2.9790791128984213, + "99.99" : 2.9790791128984213, + "99.999" : 2.9790791128984213, + "99.9999" : 2.9790791128984213, + "100.0" : 2.9790791128984213 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.896652921227918, + 2.89269080075188, + 2.8936321148726853 + ], + [ + 2.9790791128984213, + 2.9724285346210997, + 2.977471262578148 + ], + [ + 2.867956468597648, + 2.8722168515221136, + 2.891065189361087 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1781156711732394, + "scoreError" : 0.006079830536500371, + "scoreConfidence" : [ + 0.17203584063673902, + 0.18419550170973978 + ], + "scorePercentiles" : { + "0.0" : 0.17460855640528697, + "50.0" : 0.17648928387631924, + "90.0" : 0.1839968523827047, + "95.0" : 0.1839968523827047, + "99.0" : 0.1839968523827047, + "99.9" : 0.1839968523827047, + "99.99" : 0.1839968523827047, + "99.999" : 0.1839968523827047, + "99.9999" : 0.1839968523827047, + "100.0" : 0.1839968523827047 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17637950940966896, + 0.17687212596614726, + 0.17648928387631924 + ], + [ + 0.17460855640528697, + 0.17498917958633722, + 0.17535292089989304 + ], + [ + 0.1825232611473106, + 0.18182935088548674, + 0.1839968523827047 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.33701370251603385, + "scoreError" : 0.009438468960818618, + "scoreConfidence" : [ + 0.32757523355521523, + 0.3464521714768525 + ], + "scorePercentiles" : { + "0.0" : 0.3287976433010028, + "50.0" : 0.3379593185197702, + "90.0" : 0.34396548885602257, + "95.0" : 0.34396548885602257, + "99.0" : 0.34396548885602257, + "99.9" : 0.34396548885602257, + "99.99" : 0.34396548885602257, + "99.999" : 0.34396548885602257, + "99.9999" : 0.34396548885602257, + "100.0" : 0.34396548885602257 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3379593185197702, + 0.33675483223329744, + 0.3381346030092984 + ], + [ + 0.3313426720453265, + 0.33083449103480217, + 0.3287976433010028 + ], + [ + 0.34284380513558915, + 0.34396548885602257, + 0.3424904685091955 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16854884601881842, + "scoreError" : 0.009004225213796735, + "scoreConfidence" : [ + 0.1595446208050217, + 0.17755307123261516 + ], + "scorePercentiles" : { + "0.0" : 0.1625799294249622, + "50.0" : 0.16720458142723382, + "90.0" : 0.17602810589684914, + "95.0" : 0.17602810589684914, + "99.0" : 0.17602810589684914, + "99.9" : 0.17602810589684914, + "99.99" : 0.17602810589684914, + "99.999" : 0.17602810589684914, + "99.9999" : 0.17602810589684914, + "100.0" : 0.17602810589684914 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16455403246560915, + 0.16276767064893635, + 0.1625799294249622 + ], + [ + 0.17602810589684914, + 0.17495130307907628, + 0.1749156841460855 + ], + [ + 0.1674244847647748, + 0.16720458142723382, + 0.16651382231583856 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.391641101994612, + "scoreError" : 0.005342483206538888, + "scoreConfidence" : [ + 0.3862986187880731, + 0.3969835852011509 + ], + "scorePercentiles" : { + "0.0" : 0.38694450398545116, + "50.0" : 0.39131360545468774, + "90.0" : 0.3956067646965741, + "95.0" : 0.3956067646965741, + "99.0" : 0.3956067646965741, + "99.9" : 0.3956067646965741, + "99.99" : 0.3956067646965741, + "99.999" : 0.3956067646965741, + "99.9999" : 0.3956067646965741, + "100.0" : 0.3956067646965741 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39131360545468774, + 0.3917293123114889, + 0.39113433987797247 + ], + [ + 0.3896956932818954, + 0.3879598262792412, + 0.38694450398545116 + ], + [ + 0.3956067646965741, + 0.3949321541347445, + 0.3954537179294527 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1615410805047081, + "scoreError" : 0.0036366686572976447, + "scoreConfidence" : [ + 0.15790441184741047, + 0.16517774916200575 + ], + "scorePercentiles" : { + "0.0" : 0.158518118710966, + "50.0" : 0.16221693251901959, + "90.0" : 0.16381021045734503, + "95.0" : 0.16381021045734503, + "99.0" : 0.16381021045734503, + "99.9" : 0.16381021045734503, + "99.99" : 0.16381021045734503, + "99.999" : 0.16381021045734503, + "99.9999" : 0.16381021045734503, + "100.0" : 0.16381021045734503 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1627364314819938, + 0.16221693251901959, + 0.16200593401590876 + ], + [ + 0.15881188489574236, + 0.15897466935330026, + 0.158518118710966 + ], + [ + 0.16381021045734503, + 0.1636706063666121, + 0.16312493674148507 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.048394316920121444, + "scoreError" : 9.371383005411213E-4, + "scoreConfidence" : [ + 0.04745717861958032, + 0.04933145522066257 + ], + "scorePercentiles" : { + "0.0" : 0.047463494195318284, + "50.0" : 0.04846126208487398, + "90.0" : 0.04896047807333206, + "95.0" : 0.04896047807333206, + "99.0" : 0.04896047807333206, + "99.9" : 0.04896047807333206, + "99.99" : 0.04896047807333206, + "99.999" : 0.04896047807333206, + "99.9999" : 0.04896047807333206, + "100.0" : 0.04896047807333206 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04894498875750071, + 0.04896047807333206, + 0.04881620786612839 + ], + [ + 0.048715233678231475, + 0.04844254924358024, + 0.04846126208487398 + ], + [ + 0.04815959974379596, + 0.04758503863833189, + 0.047463494195318284 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9323662.9841781, + "scoreError" : 138556.00966994776, + "scoreConfidence" : [ + 9185106.974508151, + 9462218.993848048 + ], + "scorePercentiles" : { + "0.0" : 9180911.86055046, + "50.0" : 9361837.434050515, + "90.0" : 9421453.089453861, + "95.0" : 9421453.089453861, + "99.0" : 9421453.089453861, + "99.9" : 9421453.089453861, + "99.99" : 9421453.089453861, + "99.999" : 9421453.089453861, + "99.9999" : 9421453.089453861, + "100.0" : 9421453.089453861 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9370760.92977528, + 9361837.434050515, + 9305615.085581396 + ], + [ + 9421453.089453861, + 9368289.597378276, + 9369009.029026218 + ], + [ + 9180911.86055046, + 9338604.646125117, + 9196485.185661765 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-04T00:51:24Z-95742271c556d7833837a8bb84b519969b097d10-jdk17.json b/performance-results/2025-04-04T00:51:24Z-95742271c556d7833837a8bb84b519969b097d10-jdk17.json new file mode 100644 index 000000000..1158c0d2e --- /dev/null +++ b/performance-results/2025-04-04T00:51:24Z-95742271c556d7833837a8bb84b519969b097d10-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.410055263437113, + "scoreError" : 0.044175216312736174, + "scoreConfidence" : [ + 3.3658800471243766, + 3.454230479749849 + ], + "scorePercentiles" : { + "0.0" : 3.4022423915588753, + "50.0" : 3.4096308464644025, + "90.0" : 3.4187169692607715, + "95.0" : 3.4187169692607715, + "99.0" : 3.4187169692607715, + "99.9" : 3.4187169692607715, + "99.99" : 3.4187169692607715, + "99.999" : 3.4187169692607715, + "99.9999" : 3.4187169692607715, + "100.0" : 3.4187169692607715 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.411004350188826, + 3.4187169692607715 + ], + [ + 3.4022423915588753, + 3.4082573427399785 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7222751587969176, + "scoreError" : 0.020331821722778594, + "scoreConfidence" : [ + 1.701943337074139, + 1.7426069805196962 + ], + "scorePercentiles" : { + "0.0" : 1.7197942687239545, + "50.0" : 1.7213092858607992, + "90.0" : 1.7266877947421173, + "95.0" : 1.7266877947421173, + "99.0" : 1.7266877947421173, + "99.9" : 1.7266877947421173, + "99.99" : 1.7266877947421173, + "99.999" : 1.7266877947421173, + "99.9999" : 1.7266877947421173, + "100.0" : 1.7266877947421173 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7202588154580092, + 1.7197942687239545 + ], + [ + 1.722359756263589, + 1.7266877947421173 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8674677837492119, + "scoreError" : 0.0032325394754821957, + "scoreConfidence" : [ + 0.8642352442737297, + 0.870700323224694 + ], + "scorePercentiles" : { + "0.0" : 0.8667362217669433, + "50.0" : 0.8676693253640158, + "90.0" : 0.8677962625018725, + "95.0" : 0.8677962625018725, + "99.0" : 0.8677962625018725, + "99.9" : 0.8677962625018725, + "99.99" : 0.8677962625018725, + "99.999" : 0.8677962625018725, + "99.9999" : 0.8677962625018725, + "100.0" : 0.8677962625018725 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8677962625018725, + 0.8677842124557796 + ], + [ + 0.8667362217669433, + 0.867554438272252 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.2586900425068, + "scoreError" : 0.13636078587224731, + "scoreConfidence" : [ + 16.12232925663455, + 16.39505082837905 + ], + "scorePercentiles" : { + "0.0" : 16.135512844186522, + "50.0" : 16.273833465528117, + "90.0" : 16.34983499696942, + "95.0" : 16.34983499696942, + "99.0" : 16.34983499696942, + "99.9" : 16.34983499696942, + "99.99" : 16.34983499696942, + "99.999" : 16.34983499696942, + "99.9999" : 16.34983499696942, + "100.0" : 16.34983499696942 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.303901131535557, + 16.273833465528117, + 16.24110655705213 + ], + [ + 16.176868280921056, + 16.135512844186522, + 16.17233484324961 + ], + [ + 16.33151180545686, + 16.34983499696942, + 16.343306457661935 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2672.9855538524826, + "scoreError" : 14.616387865211415, + "scoreConfidence" : [ + 2658.369165987271, + 2687.601941717694 + ], + "scorePercentiles" : { + "0.0" : 2661.079080442354, + "50.0" : 2671.607818200002, + "90.0" : 2687.040356143568, + "95.0" : 2687.040356143568, + "99.0" : 2687.040356143568, + "99.9" : 2687.040356143568, + "99.99" : 2687.040356143568, + "99.999" : 2687.040356143568, + "99.9999" : 2687.040356143568, + "100.0" : 2687.040356143568 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2661.079080442354, + 2663.538227857365, + 2666.4540926531217 + ], + [ + 2671.607818200002, + 2671.283841175784, + 2674.8653706116493 + ], + [ + 2683.025033592116, + 2677.9761639963845, + 2687.040356143568 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 70775.80766872116, + "scoreError" : 742.2818518809171, + "scoreConfidence" : [ + 70033.52581684024, + 71518.08952060208 + ], + "scorePercentiles" : { + "0.0" : 70142.75578283423, + "50.0" : 70954.80008396578, + "90.0" : 71195.13156890463, + "95.0" : 71195.13156890463, + "99.0" : 71195.13156890463, + "99.9" : 71195.13156890463, + "99.99" : 71195.13156890463, + "99.999" : 71195.13156890463, + "99.9999" : 71195.13156890463, + "100.0" : 71195.13156890463 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70142.75578283423, + 70226.43035099976, + 70232.69147423247 + ], + [ + 70950.31244706645, + 70954.80008396578, + 70973.0529781649 + ], + [ + 71173.35377017567, + 71133.74056214653, + 71195.13156890463 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 354.3389211609874, + "scoreError" : 5.666682962041467, + "scoreConfidence" : [ + 348.67223819894593, + 360.0056041230289 + ], + "scorePercentiles" : { + "0.0" : 349.8278019785032, + "50.0" : 356.1210976315482, + "90.0" : 357.67017227481824, + "95.0" : 357.67017227481824, + "99.0" : 357.67017227481824, + "99.9" : 357.67017227481824, + "99.99" : 357.67017227481824, + "99.999" : 357.67017227481824, + "99.9999" : 357.67017227481824, + "100.0" : 357.67017227481824 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 349.8548042520111, + 349.98260316975643, + 349.8278019785032 + ], + [ + 356.2227738236618, + 356.0560147982399, + 356.1210976315482 + ], + [ + 356.57428086763986, + 356.74074165270775, + 357.67017227481824 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.66346338200165, + "scoreError" : 0.9408238124872885, + "scoreConfidence" : [ + 106.72263956951436, + 108.60428719448895 + ], + "scorePercentiles" : { + "0.0" : 106.93014223867108, + "50.0" : 107.65326652205152, + "90.0" : 108.490211199469, + "95.0" : 108.490211199469, + "99.0" : 108.490211199469, + "99.9" : 108.490211199469, + "99.99" : 108.490211199469, + "99.999" : 108.490211199469, + "99.9999" : 108.490211199469, + "100.0" : 108.490211199469 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 107.65326652205152, + 107.71425907277816, + 107.6000277167281 + ], + [ + 107.89863468304631, + 108.45276519843372, + 108.490211199469 + ], + [ + 106.93014223867108, + 107.14562496679335, + 107.08623884004336 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.061783570798361755, + "scoreError" : 2.919212182128583E-4, + "scoreConfidence" : [ + 0.0614916495801489, + 0.06207549201657461 + ], + "scorePercentiles" : { + "0.0" : 0.06148453356082265, + "50.0" : 0.061730150100618525, + "90.0" : 0.06201947467161161, + "95.0" : 0.06201947467161161, + "99.0" : 0.06201947467161161, + "99.9" : 0.06201947467161161, + "99.99" : 0.06201947467161161, + "99.999" : 0.06201947467161161, + "99.9999" : 0.06201947467161161, + "100.0" : 0.06201947467161161 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06167753843070015, + 0.0616939214339916, + 0.06148453356082265 + ], + [ + 0.061730150100618525, + 0.06168849578981784, + 0.06183821364878737 + ], + [ + 0.0619587773110285, + 0.06201947467161161, + 0.061961032237877495 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.7475232240008607E-4, + "scoreError" : 1.2599051816234049E-5, + "scoreConfidence" : [ + 3.62153270583852E-4, + 3.873513742163201E-4 + ], + "scorePercentiles" : { + "0.0" : 3.6686498471328336E-4, + "50.0" : 3.731783481611584E-4, + "90.0" : 3.8423162303683427E-4, + "95.0" : 3.8423162303683427E-4, + "99.0" : 3.8423162303683427E-4, + "99.9" : 3.8423162303683427E-4, + "99.99" : 3.8423162303683427E-4, + "99.999" : 3.8423162303683427E-4, + "99.9999" : 3.8423162303683427E-4, + "100.0" : 3.8423162303683427E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7298764866361634E-4, + 3.731783481611584E-4, + 3.735189434301613E-4 + ], + [ + 3.8423162303683427E-4, + 3.84173949945471E-4, + 3.8379800995952856E-4 + ], + [ + 3.6686498471328336E-4, + 3.6702205385880045E-4, + 3.6699533983192086E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014140536648291398, + "scoreError" : 2.9374731934949075E-5, + "scoreConfidence" : [ + 0.01411116191635645, + 0.014169911380226347 + ], + "scorePercentiles" : { + "0.0" : 0.014115446296996832, + "50.0" : 0.014134114425519104, + "90.0" : 0.014178302476496185, + "95.0" : 0.014178302476496185, + "99.0" : 0.014178302476496185, + "99.9" : 0.014178302476496185, + "99.99" : 0.014178302476496185, + "99.999" : 0.014178302476496185, + "99.9999" : 0.014178302476496185, + "100.0" : 0.014178302476496185 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014115446296996832, + 0.01413876408802675, + 0.014134114425519104 + ], + [ + 0.014178302476496185, + 0.014151227157331673, + 0.014148102450991488 + ], + [ + 0.01413344815772737, + 0.014132977418616285, + 0.014132447362916902 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9932611928230904, + "scoreError" : 0.024257323453275522, + "scoreConfidence" : [ + 0.969003869369815, + 1.017518516276366 + ], + "scorePercentiles" : { + "0.0" : 0.9739963147643164, + "50.0" : 0.9965134862495018, + "90.0" : 1.0099352177337912, + "95.0" : 1.0099352177337912, + "99.0" : 1.0099352177337912, + "99.9" : 1.0099352177337912, + "99.99" : 1.0099352177337912, + "99.999" : 1.0099352177337912, + "99.9999" : 1.0099352177337912, + "100.0" : 1.0099352177337912 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9739963147643164, + 0.9766263461914062, + 0.9746201055452685 + ], + [ + 1.0033032107744784, + 1.0099352177337912, + 1.0079804976312872 + ], + [ + 0.9952722825437899, + 0.9965134862495018, + 1.001103273973974 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.012913305599668646, + "scoreError" : 1.3451547784434068E-4, + "scoreConfidence" : [ + 0.012778790121824306, + 0.013047821077512987 + ], + "scorePercentiles" : { + "0.0" : 0.012815936662497309, + "50.0" : 0.012931272408566084, + "90.0" : 0.012941176037145452, + "95.0" : 0.012941176037145452, + "99.0" : 0.012941176037145452, + "99.9" : 0.012941176037145452, + "99.99" : 0.012941176037145452, + "99.999" : 0.012941176037145452, + "99.9999" : 0.012941176037145452, + "100.0" : 0.012941176037145452 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.012815936662497309, + 0.012941176037145452, + 0.012925974531250405 + ], + [ + 0.012934201549986549, + 0.012932876422251133, + 0.012929668394881038 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.621569585832803, + "scoreError" : 0.06695805853852926, + "scoreConfidence" : [ + 3.554611527294274, + 3.6885276443713324 + ], + "scorePercentiles" : { + "0.0" : 3.5804726342161777, + "50.0" : 3.619984607755292, + "90.0" : 3.646612061953353, + "95.0" : 3.646612061953353, + "99.0" : 3.646612061953353, + "99.9" : 3.646612061953353, + "99.99" : 3.646612061953353, + "99.999" : 3.646612061953353, + "99.9999" : 3.646612061953353, + "100.0" : 3.646612061953353 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.6192033798842256, + 3.64428997596504, + 3.646612061953353 + ], + [ + 3.5804726342161777, + 3.620765835626358, + 3.6180736273516643 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.817315562985054, + "scoreError" : 0.06309278853592672, + "scoreConfidence" : [ + 2.754222774449127, + 2.880408351520981 + ], + "scorePercentiles" : { + "0.0" : 2.7663685322268328, + "50.0" : 2.8407819358136894, + "90.0" : 2.8458255546385884, + "95.0" : 2.8458255546385884, + "99.0" : 2.8458255546385884, + "99.9" : 2.8458255546385884, + "99.99" : 2.8458255546385884, + "99.999" : 2.8458255546385884, + "99.9999" : 2.8458255546385884, + "100.0" : 2.8458255546385884 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.8458255546385884, + 2.842856151506538, + 2.845687959601707 + ], + [ + 2.7663685322268328, + 2.7678247785773595, + 2.768014618045945 + ], + [ + 2.8407819358136894, + 2.84237150951975, + 2.8361090269350724 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17466291628472425, + "scoreError" : 0.0010892299205336289, + "scoreConfidence" : [ + 0.17357368636419063, + 0.17575214620525786 + ], + "scorePercentiles" : { + "0.0" : 0.1736334279959718, + "50.0" : 0.17477649892514463, + "90.0" : 0.17539436958046864, + "95.0" : 0.17539436958046864, + "99.0" : 0.17539436958046864, + "99.9" : 0.17539436958046864, + "99.99" : 0.17539436958046864, + "99.999" : 0.17539436958046864, + "99.9999" : 0.17539436958046864, + "100.0" : 0.17539436958046864 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17439916790777976, + 0.17477649892514463, + 0.1743388813479542 + ], + [ + 0.17520865829770832, + 0.17515058082143795, + 0.17524262767020066 + ], + [ + 0.17539436958046864, + 0.17382203401585206, + 0.1736334279959718 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3274353774579488, + "scoreError" : 0.016014656619373645, + "scoreConfidence" : [ + 0.3114207208385752, + 0.34345003407732244 + ], + "scorePercentiles" : { + "0.0" : 0.31721999308485327, + "50.0" : 0.32569945065789474, + "90.0" : 0.33981387947262903, + "95.0" : 0.33981387947262903, + "99.0" : 0.33981387947262903, + "99.9" : 0.33981387947262903, + "99.99" : 0.33981387947262903, + "99.999" : 0.33981387947262903, + "99.9999" : 0.33981387947262903, + "100.0" : 0.33981387947262903 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.31730455720903666, + 0.31721999308485327, + 0.31775410793721404 + ], + [ + 0.3257833393927548, + 0.3255280544596354, + 0.32569945065789474 + ], + [ + 0.33981387947262903, + 0.3387748820759511, + 0.33904013283157036 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16641532323284058, + "scoreError" : 0.017350118915669347, + "scoreConfidence" : [ + 0.14906520431717124, + 0.18376544214850993 + ], + "scorePercentiles" : { + "0.0" : 0.15270957588760786, + "50.0" : 0.17205132084853073, + "90.0" : 0.174647807174418, + "95.0" : 0.174647807174418, + "99.0" : 0.174647807174418, + "99.9" : 0.174647807174418, + "99.99" : 0.174647807174418, + "99.999" : 0.174647807174418, + "99.9999" : 0.174647807174418, + "100.0" : 0.174647807174418 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17205132084853073, + 0.17206169996558843, + 0.17200997505934157 + ], + [ + 0.1527471536910599, + 0.1527100326945102, + 0.15270957588760786 + ], + [ + 0.17458898942020637, + 0.174647807174418, + 0.17421135435430204 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.38986128538799675, + "scoreError" : 0.00979797094307402, + "scoreConfidence" : [ + 0.38006331444492275, + 0.39965925633107074 + ], + "scorePercentiles" : { + "0.0" : 0.3846523111393184, + "50.0" : 0.3872767771280304, + "90.0" : 0.3985590201665936, + "95.0" : 0.3985590201665936, + "99.0" : 0.3985590201665936, + "99.9" : 0.3985590201665936, + "99.99" : 0.3985590201665936, + "99.999" : 0.3985590201665936, + "99.9999" : 0.3985590201665936, + "100.0" : 0.3985590201665936 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3872767771280304, + 0.38737736459422817, + 0.3867428934565705 + ], + [ + 0.3985590201665936, + 0.39697225658939345, + 0.39697280100035726 + ], + [ + 0.38533757949291, + 0.384860564924569, + 0.3846523111393184 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15609274809169155, + "scoreError" : 0.0036412484112455373, + "scoreConfidence" : [ + 0.15245149968044602, + 0.15973399650293707 + ], + "scorePercentiles" : { + "0.0" : 0.15436526028433387, + "50.0" : 0.15480616190903743, + "90.0" : 0.15913727148313175, + "95.0" : 0.15913727148313175, + "99.0" : 0.15913727148313175, + "99.9" : 0.15913727148313175, + "99.99" : 0.15913727148313175, + "99.999" : 0.15913727148313175, + "99.9999" : 0.15913727148313175, + "100.0" : 0.15913727148313175 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15436526028433387, + 0.1544817916550808, + 0.15470838450471078 + ], + [ + 0.15882465640683566, + 0.15913727148313175, + 0.15895154913928758 + ], + [ + 0.15495011549784624, + 0.1546095419449598, + 0.15480616190903743 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04758667191926049, + "scoreError" : 0.0023739868350441734, + "scoreConfidence" : [ + 0.04521268508421632, + 0.049960658754304665 + ], + "scorePercentiles" : { + "0.0" : 0.04611377217810733, + "50.0" : 0.04710306553369477, + "90.0" : 0.04951102378960189, + "95.0" : 0.04951102378960189, + "99.0" : 0.04951102378960189, + "99.9" : 0.04951102378960189, + "99.99" : 0.04951102378960189, + "99.999" : 0.04951102378960189, + "99.9999" : 0.04951102378960189, + "100.0" : 0.04951102378960189 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04951102378960189, + 0.049440907275109386, + 0.0491906721874339 + ], + [ + 0.047310086098574095, + 0.04710306553369477, + 0.047064187063192126 + ], + [ + 0.04642925747502136, + 0.04611377217810733, + 0.04611707567260955 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9395685.427692974, + "scoreError" : 239163.15498882558, + "scoreConfidence" : [ + 9156522.272704149, + 9634848.5826818 + ], + "scorePercentiles" : { + "0.0" : 9199383.375919119, + "50.0" : 9405962.368421054, + "90.0" : 9559300.52244508, + "95.0" : 9559300.52244508, + "99.0" : 9559300.52244508, + "99.9" : 9559300.52244508, + "99.99" : 9559300.52244508, + "99.999" : 9559300.52244508, + "99.9999" : 9559300.52244508, + "100.0" : 9559300.52244508 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9410055.000940735, + 9405962.368421054, + 9405348.242481204 + ], + [ + 9268332.786839666, + 9214277.049723757, + 9199383.375919119 + ], + [ + 9559300.52244508, + 9544774.91793893, + 9553734.58452722 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-04T05:27:30Z-6eb2616cb700661d6c433a8ffbc7e0feb045b19a-jdk17.json b/performance-results/2025-04-04T05:27:30Z-6eb2616cb700661d6c433a8ffbc7e0feb045b19a-jdk17.json new file mode 100644 index 000000000..863d559e5 --- /dev/null +++ b/performance-results/2025-04-04T05:27:30Z-6eb2616cb700661d6c433a8ffbc7e0feb045b19a-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.41547431211834, + "scoreError" : 0.02013445470791421, + "scoreConfidence" : [ + 3.395339857410426, + 3.4356087668262543 + ], + "scorePercentiles" : { + "0.0" : 3.411373024163593, + "50.0" : 3.415796403863652, + "90.0" : 3.418931416582463, + "95.0" : 3.418931416582463, + "99.0" : 3.418931416582463, + "99.9" : 3.418931416582463, + "99.99" : 3.418931416582463, + "99.999" : 3.418931416582463, + "99.9999" : 3.418931416582463, + "100.0" : 3.418931416582463 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4160661756130946, + 3.418931416582463 + ], + [ + 3.411373024163593, + 3.4155266321142097 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7257794060486682, + "scoreError" : 0.014829676059242635, + "scoreConfidence" : [ + 1.7109497299894256, + 1.7406090821079108 + ], + "scorePercentiles" : { + "0.0" : 1.7229459392720967, + "50.0" : 1.7260640883842262, + "90.0" : 1.728043508154123, + "95.0" : 1.728043508154123, + "99.0" : 1.728043508154123, + "99.9" : 1.728043508154123, + "99.99" : 1.728043508154123, + "99.999" : 1.728043508154123, + "99.9999" : 1.728043508154123, + "100.0" : 1.728043508154123 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7229459392720967, + 1.7249498535300087 + ], + [ + 1.728043508154123, + 1.727178323238444 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8670239652165881, + "scoreError" : 0.0038232692313808036, + "scoreConfidence" : [ + 0.8632006959852073, + 0.8708472344479689 + ], + "scorePercentiles" : { + "0.0" : 0.8664786283013596, + "50.0" : 0.8669751735844602, + "90.0" : 0.8676668853960727, + "95.0" : 0.8676668853960727, + "99.0" : 0.8676668853960727, + "99.9" : 0.8676668853960727, + "99.99" : 0.8676668853960727, + "99.999" : 0.8676668853960727, + "99.9999" : 0.8676668853960727, + "100.0" : 0.8676668853960727 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8664786283013596, + 0.8665661091157533 + ], + [ + 0.867384238053167, + 0.8676668853960727 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.257614896779337, + "scoreError" : 0.2156823417456936, + "scoreConfidence" : [ + 16.041932555033643, + 16.47329723852503 + ], + "scorePercentiles" : { + "0.0" : 16.046117112775594, + "50.0" : 16.351278502311153, + "90.0" : 16.358823560420063, + "95.0" : 16.358823560420063, + "99.0" : 16.358823560420063, + "99.9" : 16.358823560420063, + "99.99" : 16.358823560420063, + "99.999" : 16.358823560420063, + "99.9999" : 16.358823560420063, + "100.0" : 16.358823560420063 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 16.132712758895906, + 16.105581835399015, + 16.046117112775594 + ], + [ + 16.356463835561264, + 16.358823560420063, + 16.351278502311153 + ], + [ + 16.254642767027285, + 16.35464668287753, + 16.3582670157462 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2657.7695720704037, + "scoreError" : 148.2972269158939, + "scoreConfidence" : [ + 2509.4723451545096, + 2806.0667989862977 + ], + "scorePercentiles" : { + "0.0" : 2539.768121859389, + "50.0" : 2706.007591520502, + "90.0" : 2728.2643986587595, + "95.0" : 2728.2643986587595, + "99.0" : 2728.2643986587595, + "99.9" : 2728.2643986587595, + "99.99" : 2728.2643986587595, + "99.999" : 2728.2643986587595, + "99.9999" : 2728.2643986587595, + "100.0" : 2728.2643986587595 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2702.1623484921656, + 2707.919946005747, + 2706.007591520502 + ], + [ + 2540.1588945402596, + 2539.768121859389, + 2542.476993406105 + ], + [ + 2725.722525637147, + 2728.2643986587595, + 2727.4453285135583 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69187.62949561818, + "scoreError" : 1950.2487427776907, + "scoreConfidence" : [ + 67237.38075284049, + 71137.87823839588 + ], + "scorePercentiles" : { + "0.0" : 67811.69749602833, + "50.0" : 69182.75188864459, + "90.0" : 70554.04343863564, + "95.0" : 70554.04343863564, + "99.0" : 70554.04343863564, + "99.9" : 70554.04343863564, + "99.99" : 70554.04343863564, + "99.999" : 70554.04343863564, + "99.9999" : 70554.04343863564, + "100.0" : 70554.04343863564 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70489.37946132944, + 70554.04343863564, + 70515.75586998963 + ], + [ + 67864.5403327218, + 67811.69749602833, + 67845.50582086251 + ], + [ + 69182.75188864459, + 69171.5162798034, + 69253.47487254828 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 351.14686595143564, + "scoreError" : 12.402276547808718, + "scoreConfidence" : [ + 338.74458940362695, + 363.54914249924434 + ], + "scorePercentiles" : { + "0.0" : 341.4050740261924, + "50.0" : 350.9959831827741, + "90.0" : 361.14535751562823, + "95.0" : 361.14535751562823, + "99.0" : 361.14535751562823, + "99.9" : 361.14535751562823, + "99.99" : 361.14535751562823, + "99.999" : 361.14535751562823, + "99.9999" : 361.14535751562823, + "100.0" : 361.14535751562823 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 341.4050740261924, + 341.75306137898, + 345.9414385143761 + ], + [ + 349.9015669158507, + 350.9959831827741, + 351.72342119398223 + ], + [ + 360.81338018128395, + 361.14535751562823, + 356.64251065385264 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 105.33465576346994, + "scoreError" : 5.16876703445678, + "scoreConfidence" : [ + 100.16588872901316, + 110.50342279792672 + ], + "scorePercentiles" : { + "0.0" : 101.2422526340046, + "50.0" : 105.98517929748999, + "90.0" : 108.60769860695804, + "95.0" : 108.60769860695804, + "99.0" : 108.60769860695804, + "99.9" : 108.60769860695804, + "99.99" : 108.60769860695804, + "99.999" : 108.60769860695804, + "99.9999" : 108.60769860695804, + "100.0" : 108.60769860695804 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 108.47585305815755, + 108.51299893266345, + 108.60769860695804 + ], + [ + 101.2422526340046, + 101.66996889742603, + 101.63790810097589 + ], + [ + 105.88856190695395, + 105.98517929748999, + 105.99148043659996 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.0613835700776904, + "scoreError" : 5.30970211986948E-4, + "scoreConfidence" : [ + 0.060852599865703454, + 0.06191454028967735 + ], + "scorePercentiles" : { + "0.0" : 0.06095189772408665, + "50.0" : 0.061378639564216665, + "90.0" : 0.06184695769116592, + "95.0" : 0.06184695769116592, + "99.0" : 0.06184695769116592, + "99.9" : 0.06184695769116592, + "99.99" : 0.06184695769116592, + "99.999" : 0.06184695769116592, + "99.9999" : 0.06184695769116592, + "100.0" : 0.06184695769116592 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06144970979555971, + 0.06122663911100226, + 0.061378639564216665 + ], + [ + 0.061581722824346624, + 0.06179943338112424, + 0.06184695769116592 + ], + [ + 0.06095189772408665, + 0.06105782843047466, + 0.06115930217723686 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.6792774673077264E-4, + "scoreError" : 9.52400144527695E-6, + "scoreConfidence" : [ + 3.584037452854957E-4, + 3.774517481760496E-4 + ], + "scorePercentiles" : { + "0.0" : 3.601947262437733E-4, + "50.0" : 3.710066787160918E-4, + "90.0" : 3.7284325731862846E-4, + "95.0" : 3.7284325731862846E-4, + "99.0" : 3.7284325731862846E-4, + "99.9" : 3.7284325731862846E-4, + "99.99" : 3.7284325731862846E-4, + "99.999" : 3.7284325731862846E-4, + "99.9999" : 3.7284325731862846E-4, + "100.0" : 3.7284325731862846E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.606764144071223E-4, + 3.601947262437733E-4, + 3.603632293866587E-4 + ], + [ + 3.716483250039227E-4, + 3.721081112498685E-4, + 3.7284325731862846E-4 + ], + [ + 3.70884520477737E-4, + 3.71624457773151E-4, + 3.710066787160918E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.01402845854457803, + "scoreError" : 4.044676667384548E-5, + "scoreConfidence" : [ + 0.013988011777904185, + 0.014068905311251876 + ], + "scorePercentiles" : { + "0.0" : 0.013993197164454371, + "50.0" : 0.01404240319713314, + "90.0" : 0.014049538132783347, + "95.0" : 0.014049538132783347, + "99.0" : 0.014049538132783347, + "99.9" : 0.014049538132783347, + "99.99" : 0.014049538132783347, + "99.999" : 0.014049538132783347, + "99.9999" : 0.014049538132783347, + "100.0" : 0.014049538132783347 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014000710592155463, + 0.013993197164454371, + 0.013996113428682996 + ], + [ + 0.014042536027781405, + 0.014049538132783347, + 0.01404240319713314 + ], + [ + 0.0140474361495304, + 0.014043828995948403, + 0.014040363212732769 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9794412564438721, + "scoreError" : 0.01637443287226072, + "scoreConfidence" : [ + 0.9630668235716114, + 0.9958156893161328 + ], + "scorePercentiles" : { + "0.0" : 0.9663152830225142, + "50.0" : 0.9845775188539924, + "90.0" : 0.9877359903209877, + "95.0" : 0.9877359903209877, + "99.0" : 0.9877359903209877, + "99.9" : 0.9877359903209877, + "99.99" : 0.9877359903209877, + "99.999" : 0.9877359903209877, + "99.9999" : 0.9877359903209877, + "100.0" : 0.9877359903209877 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9665899604678136, + 0.9669146041767379, + 0.9663152830225142 + ], + [ + 0.9829151665028504, + 0.9853623369790128, + 0.9845775188539924 + ], + [ + 0.9871915410661402, + 0.9873689066047981, + 0.9877359903209877 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013066821965947481, + "scoreError" : 1.4899924544193566E-4, + "scoreConfidence" : [ + 0.012917822720505545, + 0.013215821211389417 + ], + "scorePercentiles" : { + "0.0" : 0.013011505698910181, + "50.0" : 0.01306633020899141, + "90.0" : 0.013123710692154048, + "95.0" : 0.013123710692154048, + "99.0" : 0.013123710692154048, + "99.9" : 0.013123710692154048, + "99.99" : 0.013123710692154048, + "99.999" : 0.013123710692154048, + "99.9999" : 0.013123710692154048, + "100.0" : 0.013123710692154048 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.0131095357868546, + 0.013123710692154048, + 0.013111727565707873 + ], + [ + 0.01302312463112822, + 0.013011505698910181, + 0.01302132742092996 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.6016004776114623, + "scoreError" : 0.04408562358601525, + "scoreConfidence" : [ + 3.557514854025447, + 3.6456861011974775 + ], + "scorePercentiles" : { + "0.0" : 3.5702578772305498, + "50.0" : 3.6067730656092287, + "90.0" : 3.613936494219653, + "95.0" : 3.613936494219653, + "99.0" : 3.613936494219653, + "99.9" : 3.613936494219653, + "99.99" : 3.613936494219653, + "99.999" : 3.613936494219653, + "99.9999" : 3.613936494219653, + "100.0" : 3.613936494219653 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.5702578772305498, + 3.613936494219653, + 3.6067297692862295 + ], + [ + 3.608194422077922, + 3.606816361932228, + 3.60366794092219 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.7855132821873965, + "scoreError" : 0.026726483277009803, + "scoreConfidence" : [ + 2.7587867989103865, + 2.8122397654644065 + ], + "scorePercentiles" : { + "0.0" : 2.759536437637969, + "50.0" : 2.786476934522151, + "90.0" : 2.8075433060078607, + "95.0" : 2.8075433060078607, + "99.0" : 2.8075433060078607, + "99.9" : 2.8075433060078607, + "99.99" : 2.8075433060078607, + "99.999" : 2.8075433060078607, + "99.9999" : 2.8075433060078607, + "100.0" : 2.8075433060078607 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.786476934522151, + 2.7926873155543146, + 2.7885715913019236 + ], + [ + 2.759536437637969, + 2.7736968960066557, + 2.7713081041839844 + ], + [ + 2.8075433060078607, + 2.806818850687623, + 2.7829801037840847 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1761613666321471, + "scoreError" : 0.002516338259768568, + "scoreConfidence" : [ + 0.17364502837237852, + 0.17867770489191567 + ], + "scorePercentiles" : { + "0.0" : 0.17409059075953554, + "50.0" : 0.1760895962564491, + "90.0" : 0.17804075546574563, + "95.0" : 0.17804075546574563, + "99.0" : 0.17804075546574563, + "99.9" : 0.17804075546574563, + "99.99" : 0.17804075546574563, + "99.999" : 0.17804075546574563, + "99.9999" : 0.17804075546574563, + "100.0" : 0.17804075546574563 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17804075546574563, + 0.1777888090954345, + 0.17770007303290924 + ], + [ + 0.17501571777594988, + 0.17409059075953554, + 0.1742418977227188 + ], + [ + 0.1764508362211949, + 0.1760895962564491, + 0.176034023359386 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.32730021817444466, + "scoreError" : 0.017163920712541466, + "scoreConfidence" : [ + 0.3101362974619032, + 0.3444641388869861 + ], + "scorePercentiles" : { + "0.0" : 0.31596479819905215, + "50.0" : 0.3256441752906314, + "90.0" : 0.3405568089562404, + "95.0" : 0.3405568089562404, + "99.0" : 0.3405568089562404, + "99.9" : 0.3405568089562404, + "99.99" : 0.3405568089562404, + "99.999" : 0.3405568089562404, + "99.9999" : 0.3405568089562404, + "100.0" : 0.3405568089562404 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3388611753244553, + 0.3405568089562404, + 0.33991513701563564 + ], + [ + 0.3256005505160681, + 0.3259885275287675, + 0.3256441752906314 + ], + [ + 0.31713970326324803, + 0.316031087475903, + 0.31596479819905215 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.1652042889286885, + "scoreError" : 0.0017617414374246191, + "scoreConfidence" : [ + 0.16344254749126388, + 0.1669660303661131 + ], + "scorePercentiles" : { + "0.0" : 0.163923576657651, + "50.0" : 0.16483931719579337, + "90.0" : 0.16660534148007464, + "95.0" : 0.16660534148007464, + "99.0" : 0.16660534148007464, + "99.9" : 0.16660534148007464, + "99.99" : 0.16660534148007464, + "99.999" : 0.16660534148007464, + "99.9999" : 0.16660534148007464, + "100.0" : 0.16660534148007464 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16660534148007464, + 0.16656146767934177, + 0.1663387481328698 + ], + [ + 0.16394726561962064, + 0.163923576657651, + 0.16483931719579337 + ], + [ + 0.16482515006922469, + 0.16480627729527514, + 0.16499145622834516 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.39010744239973744, + "scoreError" : 0.01670421567031333, + "scoreConfidence" : [ + 0.3734032267294241, + 0.40681165807005076 + ], + "scorePercentiles" : { + "0.0" : 0.37962961616430035, + "50.0" : 0.38764850711323023, + "90.0" : 0.40918921207905395, + "95.0" : 0.40918921207905395, + "99.0" : 0.40918921207905395, + "99.9" : 0.40918921207905395, + "99.99" : 0.40918921207905395, + "99.999" : 0.40918921207905395, + "99.9999" : 0.40918921207905395, + "100.0" : 0.40918921207905395 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3897532790552654, + 0.3830618254807324, + 0.38492263564280216 + ], + [ + 0.40918921207905395, + 0.3987026886213221, + 0.39790933049498645 + ], + [ + 0.38764850711323023, + 0.38014988694594387, + 0.37962961616430035 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15589403072362684, + "scoreError" : 0.0019617589008532423, + "scoreConfidence" : [ + 0.1539322718227736, + 0.15785578962448008 + ], + "scorePercentiles" : { + "0.0" : 0.15429051936310056, + "50.0" : 0.15572938609359183, + "90.0" : 0.15757248833984622, + "95.0" : 0.15757248833984622, + "99.0" : 0.15757248833984622, + "99.9" : 0.15757248833984622, + "99.99" : 0.15757248833984622, + "99.999" : 0.15757248833984622, + "99.9999" : 0.15757248833984622, + "100.0" : 0.15757248833984622 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15757248833984622, + 0.15724325976068054, + 0.15697942648813262 + ], + [ + 0.1552752374578824, + 0.15445985558284292, + 0.15429051936310056 + ], + [ + 0.15580430851445043, + 0.1556917949121141, + 0.15572938609359183 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.046893268004107674, + "scoreError" : 0.001162133260808305, + "scoreConfidence" : [ + 0.045731134743299366, + 0.04805540126491598 + ], + "scorePercentiles" : { + "0.0" : 0.04607961999179795, + "50.0" : 0.04681437227603189, + "90.0" : 0.04772420759282237, + "95.0" : 0.04772420759282237, + "99.0" : 0.04772420759282237, + "99.9" : 0.04772420759282237, + "99.99" : 0.04772420759282237, + "99.999" : 0.04772420759282237, + "99.9999" : 0.04772420759282237, + "100.0" : 0.04772420759282237 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.047255712641233925, + 0.04681437227603189, + 0.04675393894029146 + ], + [ + 0.04772420759282237, + 0.0476040818683385, + 0.0476215452255324 + ], + [ + 0.04608960344652766, + 0.04609633005439292, + 0.04607961999179795 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9247386.677157959, + "scoreError" : 103775.56890511974, + "scoreConfidence" : [ + 9143611.10825284, + 9351162.246063078 + ], + "scorePercentiles" : { + "0.0" : 9170927.29422548, + "50.0" : 9251081.91119334, + "90.0" : 9346239.112149533, + "95.0" : 9346239.112149533, + "99.0" : 9346239.112149533, + "99.9" : 9346239.112149533, + "99.99" : 9346239.112149533, + "99.999" : 9346239.112149533, + "99.9999" : 9346239.112149533, + "100.0" : 9346239.112149533 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9251081.91119334, + 9249757.321626617, + 9258786.827012027 + ], + [ + 9170927.29422548, + 9172337.738771768, + 9183301.19651056 + ], + [ + 9346239.112149533, + 9303166.288104089, + 9290882.404828226 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-06T04:21:24Z-31b5f1b83c785c1acaff247c88aca6763328b754-jdk17.json b/performance-results/2025-04-06T04:21:24Z-31b5f1b83c785c1acaff247c88aca6763328b754-jdk17.json new file mode 100644 index 000000000..1399ed895 --- /dev/null +++ b/performance-results/2025-04-06T04:21:24Z-31b5f1b83c785c1acaff247c88aca6763328b754-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.405781402066154, + "scoreError" : 0.04629911913002043, + "scoreConfidence" : [ + 3.3594822829361335, + 3.4520805211961743 + ], + "scorePercentiles" : { + "0.0" : 3.396624620926415, + "50.0" : 3.4062908345364202, + "90.0" : 3.4139193182653607, + "95.0" : 3.4139193182653607, + "99.0" : 3.4139193182653607, + "99.9" : 3.4139193182653607, + "99.99" : 3.4139193182653607, + "99.999" : 3.4139193182653607, + "99.9999" : 3.4139193182653607, + "100.0" : 3.4139193182653607 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.4049844214875487, + 3.4139193182653607 + ], + [ + 3.396624620926415, + 3.407597247585292 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7201965667995456, + "scoreError" : 0.014319793782545227, + "scoreConfidence" : [ + 1.7058767730170004, + 1.7345163605820908 + ], + "scorePercentiles" : { + "0.0" : 1.717273001278032, + "50.0" : 1.7204317124975719, + "90.0" : 1.722649840925006, + "95.0" : 1.722649840925006, + "99.0" : 1.722649840925006, + "99.9" : 1.722649840925006, + "99.99" : 1.722649840925006, + "99.999" : 1.722649840925006, + "99.9999" : 1.722649840925006, + "100.0" : 1.722649840925006 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.722649840925006, + 1.717273001278032 + ], + [ + 1.7205985118976679, + 1.7202649130974759 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8645438475526157, + "scoreError" : 0.006962670109372867, + "scoreConfidence" : [ + 0.8575811774432428, + 0.8715065176619886 + ], + "scorePercentiles" : { + "0.0" : 0.8630685172427868, + "50.0" : 0.8647808022374026, + "90.0" : 0.8655452684928708, + "95.0" : 0.8655452684928708, + "99.0" : 0.8655452684928708, + "99.9" : 0.8655452684928708, + "99.99" : 0.8655452684928708, + "99.999" : 0.8655452684928708, + "99.9999" : 0.8655452684928708, + "100.0" : 0.8655452684928708 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8630685172427868, + 0.8650899598383918 + ], + [ + 0.8644716446364135, + 0.8655452684928708 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 16.05989386004153, + "scoreError" : 0.3259215020951166, + "scoreConfidence" : [ + 15.733972357946413, + 16.385815362136647 + ], + "scorePercentiles" : { + "0.0" : 15.72532512446189, + "50.0" : 16.158593388145643, + "90.0" : 16.20446067632027, + "95.0" : 16.20446067632027, + "99.0" : 16.20446067632027, + "99.9" : 16.20446067632027, + "99.99" : 16.20446067632027, + "99.999" : 16.20446067632027, + "99.9999" : 16.20446067632027, + "100.0" : 16.20446067632027 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.967443811944504, + 15.72532512446189, + 15.760029346712017 + ], + [ + 16.150287625332755, + 16.19410303415797, + 16.20446067632027 + ], + [ + 16.198468930460553, + 16.180332802838194, + 16.158593388145643 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2756.8020116085313, + "scoreError" : 91.39304598010132, + "scoreConfidence" : [ + 2665.40896562843, + 2848.1950575886326 + ], + "scorePercentiles" : { + "0.0" : 2690.356683491557, + "50.0" : 2750.4605046843676, + "90.0" : 2845.5252577614933, + "95.0" : 2845.5252577614933, + "99.0" : 2845.5252577614933, + "99.9" : 2845.5252577614933, + "99.99" : 2845.5252577614933, + "99.999" : 2845.5252577614933, + "99.9999" : 2845.5252577614933, + "100.0" : 2845.5252577614933 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2791.045225296556, + 2741.798957219609, + 2783.3375517726395 + ], + [ + 2690.7068308911184, + 2709.71805278636, + 2690.356683491557 + ], + [ + 2845.5252577614933, + 2808.2690405730837, + 2750.4605046843676 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 68533.4742069145, + "scoreError" : 2439.3220251166053, + "scoreConfidence" : [ + 66094.1521817979, + 70972.7962320311 + ], + "scorePercentiles" : { + "0.0" : 66835.83632727223, + "50.0" : 68487.06242377267, + "90.0" : 70252.10139834581, + "95.0" : 70252.10139834581, + "99.0" : 70252.10139834581, + "99.9" : 70252.10139834581, + "99.99" : 70252.10139834581, + "99.999" : 70252.10139834581, + "99.9999" : 70252.10139834581, + "100.0" : 70252.10139834581 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70219.46335615995, + 70252.10139834581, + 70226.14046013122 + ], + [ + 66900.3928975727, + 66835.83632727223, + 66909.21094385958 + ], + [ + 68454.6761328727, + 68516.38392224368, + 68487.06242377267 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 337.52855496465264, + "scoreError" : 9.658309838793654, + "scoreConfidence" : [ + 327.870245125859, + 347.18686480344627 + ], + "scorePercentiles" : { + "0.0" : 327.3231459328245, + "50.0" : 339.70911503866444, + "90.0" : 342.52691897035885, + "95.0" : 342.52691897035885, + "99.0" : 342.52691897035885, + "99.9" : 342.52691897035885, + "99.99" : 342.52691897035885, + "99.999" : 342.52691897035885, + "99.9999" : 342.52691897035885, + "100.0" : 342.52691897035885 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 340.36259544413855, + 339.3679710278199, + 339.70911503866444 + ], + [ + 327.3231459328245, + 329.51373715892254, + 334.41701909854896 + ], + [ + 342.02520640669826, + 342.52691897035885, + 342.5112856038977 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 107.56678718393282, + "scoreError" : 0.8035552983655688, + "scoreConfidence" : [ + 106.76323188556725, + 108.37034248229838 + ], + "scorePercentiles" : { + "0.0" : 106.96254754530847, + "50.0" : 107.6430612124555, + "90.0" : 108.25459860591951, + "95.0" : 108.25459860591951, + "99.0" : 108.25459860591951, + "99.9" : 108.25459860591951, + "99.99" : 108.25459860591951, + "99.999" : 108.25459860591951, + "99.9999" : 108.25459860591951, + "100.0" : 108.25459860591951 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 107.75910317895423, + 108.16501022003597, + 108.25459860591951 + ], + [ + 107.47077297938178, + 107.6430612124555, + 107.75656223064789 + ], + [ + 106.96254754530847, + 107.04988075523372, + 107.03954792745826 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06282593834342524, + "scoreError" : 0.00124014987561755, + "scoreConfidence" : [ + 0.0615857884678077, + 0.06406608821904279 + ], + "scorePercentiles" : { + "0.0" : 0.061971611277398725, + "50.0" : 0.06275012118093684, + "90.0" : 0.06380773513779088, + "95.0" : 0.06380773513779088, + "99.0" : 0.06380773513779088, + "99.9" : 0.06380773513779088, + "99.99" : 0.06380773513779088, + "99.999" : 0.06380773513779088, + "99.9999" : 0.06380773513779088, + "100.0" : 0.06380773513779088 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06380773513779088, + 0.06360714405566828, + 0.06368026652317607 + ], + [ + 0.06204686022919756, + 0.061971611277398725, + 0.06207596931003445 + ], + [ + 0.0630071047979082, + 0.06275012118093684, + 0.06248663257871617 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.7645891824443105E-4, + "scoreError" : 7.420531364522643E-6, + "scoreConfidence" : [ + 3.690383868799084E-4, + 3.838794496089537E-4 + ], + "scorePercentiles" : { + "0.0" : 3.7083719638183197E-4, + "50.0" : 3.784746061574875E-4, + "90.0" : 3.81487875620763E-4, + "95.0" : 3.81487875620763E-4, + "99.0" : 3.81487875620763E-4, + "99.9" : 3.81487875620763E-4, + "99.99" : 3.81487875620763E-4, + "99.999" : 3.81487875620763E-4, + "99.9999" : 3.81487875620763E-4, + "100.0" : 3.81487875620763E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.81487875620763E-4, + 3.7847707489032533E-4, + 3.758967400060188E-4 + ], + [ + 3.784746061574875E-4, + 3.799740420807843E-4, + 3.808930146034486E-4 + ], + [ + 3.709759403254721E-4, + 3.7083719638183197E-4, + 3.711137741337483E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014170195070241436, + "scoreError" : 1.5374022955591253E-4, + "scoreConfidence" : [ + 0.014016454840685524, + 0.014323935299797348 + ], + "scorePercentiles" : { + "0.0" : 0.014048208614820965, + "50.0" : 0.014181384624438778, + "90.0" : 0.014275301442216413, + "95.0" : 0.014275301442216413, + "99.0" : 0.014275301442216413, + "99.9" : 0.014275301442216413, + "99.99" : 0.014275301442216413, + "99.999" : 0.014275301442216413, + "99.9999" : 0.014275301442216413, + "100.0" : 0.014275301442216413 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.01408180109132642, + 0.014048208614820965, + 0.014050356922169065 + ], + [ + 0.014182106285153491, + 0.014179868830771063, + 0.014181384624438778 + ], + [ + 0.014275301442216413, + 0.014266937955287974, + 0.014265789865988764 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9853098955367946, + "scoreError" : 0.021446285031264112, + "scoreConfidence" : [ + 0.9638636105055305, + 1.0067561805680587 + ], + "scorePercentiles" : { + "0.0" : 0.9752768992588258, + "50.0" : 0.9783446756016435, + "90.0" : 1.0023353015936654, + "95.0" : 1.0023353015936654, + "99.0" : 1.0023353015936654, + "99.9" : 1.0023353015936654, + "99.99" : 1.0023353015936654, + "99.999" : 1.0023353015936654, + "99.9999" : 1.0023353015936654, + "100.0" : 1.0023353015936654 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0022688939667268, + 1.0023353015936654, + 1.0022084627718209 + ], + [ + 0.9752768992588258, + 0.9762894800351459, + 0.9758775303473849 + ], + [ + 0.9767574471139759, + 0.9784303691419626, + 0.9783446756016435 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.013155312270424532, + "scoreError" : 2.2122281273061355E-4, + "scoreConfidence" : [ + 0.012934089457693919, + 0.013376535083155146 + ], + "scorePercentiles" : { + "0.0" : 0.01308103762286097, + "50.0" : 0.013132885895183091, + "90.0" : 0.013261304114086875, + "95.0" : 0.013261304114086875, + "99.0" : 0.013261304114086875, + "99.9" : 0.013261304114086875, + "99.99" : 0.013261304114086875, + "99.999" : 0.013261304114086875, + "99.9999" : 0.013261304114086875, + "100.0" : 0.013261304114086875 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013170846136420509, + 0.013233967485032793, + 0.013261304114086875 + ], + [ + 0.013089792610200374, + 0.013094925653945672, + 0.01308103762286097 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.775777798225155, + "scoreError" : 0.054194193911174686, + "scoreConfidence" : [ + 3.7215836043139805, + 3.8299719921363296 + ], + "scorePercentiles" : { + "0.0" : 3.7556604196696695, + "50.0" : 3.7757238366945414, + "90.0" : 3.8012071276595742, + "95.0" : 3.8012071276595742, + "99.0" : 3.8012071276595742, + "99.9" : 3.8012071276595742, + "99.99" : 3.8012071276595742, + "99.999" : 3.8012071276595742, + "99.9999" : 3.8012071276595742, + "100.0" : 3.8012071276595742 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.7556604196696695, + 3.788914986363636, + 3.788116437121212 + ], + [ + 3.8012071276595742, + 3.7574365822689706, + 3.7633312362678706 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.997883209839679, + "scoreError" : 0.09377215361018633, + "scoreConfidence" : [ + 2.9041110562294925, + 3.091655363449865 + ], + "scorePercentiles" : { + "0.0" : 2.9241853023391813, + "50.0" : 3.0141105696202533, + "90.0" : 3.0615126179981633, + "95.0" : 3.0615126179981633, + "99.0" : 3.0615126179981633, + "99.9" : 3.0615126179981633, + "99.99" : 3.0615126179981633, + "99.999" : 3.0615126179981633, + "99.9999" : 3.0615126179981633, + "100.0" : 3.0615126179981633 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 2.9241853023391813, + 2.9325244403400763, + 2.925960527501463 + ], + [ + 3.051239873703478, + 3.0029951573101172, + 3.0444756797564687 + ], + [ + 3.0239447199879046, + 3.0141105696202533, + 3.0615126179981633 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.177529407092993, + "scoreError" : 0.0055248675533280875, + "scoreConfidence" : [ + 0.1720045395396649, + 0.1830542746463211 + ], + "scorePercentiles" : { + "0.0" : 0.17486462843603554, + "50.0" : 0.1756732380324989, + "90.0" : 0.18216117268388649, + "95.0" : 0.18216117268388649, + "99.0" : 0.18216117268388649, + "99.9" : 0.18216117268388649, + "99.99" : 0.18216117268388649, + "99.999" : 0.18216117268388649, + "99.9999" : 0.18216117268388649, + "100.0" : 0.18216117268388649 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17616140713794987, + 0.17548674602533956, + 0.1750206234314017 + ], + [ + 0.18172378042885698, + 0.18174547134834523, + 0.18216117268388649 + ], + [ + 0.1756732380324989, + 0.17492759631262245, + 0.17486462843603554 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.32976828318298224, + "scoreError" : 0.010628414016052913, + "scoreConfidence" : [ + 0.3191398691669293, + 0.34039669719903515 + ], + "scorePercentiles" : { + "0.0" : 0.3216373301492345, + "50.0" : 0.33094866118410166, + "90.0" : 0.3368310063659941, + "95.0" : 0.3368310063659941, + "99.0" : 0.3368310063659941, + "99.9" : 0.3368310063659941, + "99.99" : 0.3368310063659941, + "99.999" : 0.3368310063659941, + "99.9999" : 0.3368310063659941, + "100.0" : 0.3368310063659941 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3368310063659941, + 0.33574312472302426, + 0.33595367309436625 + ], + [ + 0.33283418678027027, + 0.32985339994062735, + 0.33094866118410166 + ], + [ + 0.32246368138140075, + 0.3216373301492345, + 0.32164948502782154 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16037060522180674, + "scoreError" : 0.011186335452461017, + "scoreConfidence" : [ + 0.14918426976934573, + 0.17155694067426774 + ], + "scorePercentiles" : { + "0.0" : 0.15342508020865295, + "50.0" : 0.15895105458244588, + "90.0" : 0.16888263868341946, + "95.0" : 0.16888263868341946, + "99.0" : 0.16888263868341946, + "99.9" : 0.16888263868341946, + "99.99" : 0.16888263868341946, + "99.999" : 0.16888263868341946, + "99.9999" : 0.16888263868341946, + "100.0" : 0.16888263868341946 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16888263868341946, + 0.16861914202610193, + 0.16854025700273031 + ], + [ + 0.1535660718980344, + 0.15342508020865295, + 0.15356292708957173 + ], + [ + 0.15895105458244588, + 0.15883483265565437, + 0.15895344284964952 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3861324143689894, + "scoreError" : 0.003575572767244633, + "scoreConfidence" : [ + 0.38255684160174475, + 0.389707987136234 + ], + "scorePercentiles" : { + "0.0" : 0.38304099191818597, + "50.0" : 0.38653313933982686, + "90.0" : 0.3896898799002416, + "95.0" : 0.3896898799002416, + "99.0" : 0.3896898799002416, + "99.9" : 0.3896898799002416, + "99.99" : 0.3896898799002416, + "99.999" : 0.3896898799002416, + "99.9999" : 0.3896898799002416, + "100.0" : 0.3896898799002416 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.38653313933982686, + 0.38562719511818916, + 0.38522279780431434 + ], + [ + 0.38747809643922665, + 0.38698291312591904, + 0.3874144294735211 + ], + [ + 0.3896898799002416, + 0.3832022862014791, + 0.38304099191818597 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15756813557818247, + "scoreError" : 0.0065165439758813224, + "scoreConfidence" : [ + 0.15105159160230114, + 0.1640846795540638 + ], + "scorePercentiles" : { + "0.0" : 0.15212867388757892, + "50.0" : 0.15919887802470709, + "90.0" : 0.16154582684199473, + "95.0" : 0.16154582684199473, + "99.0" : 0.16154582684199473, + "99.9" : 0.16154582684199473, + "99.99" : 0.16154582684199473, + "99.999" : 0.16154582684199473, + "99.9999" : 0.16154582684199473, + "100.0" : 0.16154582684199473 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1531477717234831, + 0.1522394138807697, + 0.15212867388757892 + ], + [ + 0.16154582684199473, + 0.1602374568251374, + 0.1601357834358186 + ], + [ + 0.16049824886449354, + 0.15898116671965914, + 0.15919887802470709 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.04687713978540145, + "scoreError" : 0.0010612687857045062, + "scoreConfidence" : [ + 0.045815870999696945, + 0.047938408571105956 + ], + "scorePercentiles" : { + "0.0" : 0.04606025472801806, + "50.0" : 0.04693274996010775, + "90.0" : 0.04757975261209653, + "95.0" : 0.04757975261209653, + "99.0" : 0.04757975261209653, + "99.9" : 0.04757975261209653, + "99.99" : 0.04757975261209653, + "99.999" : 0.04757975261209653, + "99.9999" : 0.04757975261209653, + "100.0" : 0.04757975261209653 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04755243152779165, + 0.04757975261209653, + 0.04754639047849984 + ], + [ + 0.04707834560177012, + 0.04693274996010775, + 0.04685888061946488 + ], + [ + 0.046183133010363364, + 0.04610231953050085, + 0.04606025472801806 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9360297.634597164, + "scoreError" : 175391.63757937515, + "scoreConfidence" : [ + 9184905.997017788, + 9535689.27217654 + ], + "scorePercentiles" : { + "0.0" : 9260010.685185185, + "50.0" : 9321470.84249767, + "90.0" : 9536754.620591039, + "95.0" : 9536754.620591039, + "99.0" : 9536754.620591039, + "99.9" : 9536754.620591039, + "99.99" : 9536754.620591039, + "99.999" : 9536754.620591039, + "99.9999" : 9536754.620591039, + "100.0" : 9536754.620591039 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9536754.620591039, + 9475862.076704545, + 9467337.743614001 + ], + [ + 9321470.84249767, + 9315488.694599628, + 9326853.998136068 + ], + [ + 9270368.858202038, + 9260010.685185185, + 9268531.1918443 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-06T11:33:26Z-14c9136a6a33103f69f86f39bcd486bcae2ff525-jdk17.json b/performance-results/2025-04-06T11:33:26Z-14c9136a6a33103f69f86f39bcd486bcae2ff525-jdk17.json new file mode 100644 index 000000000..3751f422c --- /dev/null +++ b/performance-results/2025-04-06T11:33:26Z-14c9136a6a33103f69f86f39bcd486bcae2ff525-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.3957352409364385, + "scoreError" : 0.015684974253292697, + "scoreConfidence" : [ + 3.380050266683146, + 3.411420215189731 + ], + "scorePercentiles" : { + "0.0" : 3.392976664184572, + "50.0" : 3.395705894477954, + "90.0" : 3.3985525106052745, + "95.0" : 3.3985525106052745, + "99.0" : 3.3985525106052745, + "99.9" : 3.3985525106052745, + "99.99" : 3.3985525106052745, + "99.999" : 3.3985525106052745, + "99.9999" : 3.3985525106052745, + "100.0" : 3.3985525106052745 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.394674778427625, + 3.3967370105282826 + ], + [ + 3.392976664184572, + 3.3985525106052745 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.715366014713939, + "scoreError" : 0.022445605539527534, + "scoreConfidence" : [ + 1.6929204091744114, + 1.7378116202534664 + ], + "scorePercentiles" : { + "0.0" : 1.7114341422770996, + "50.0" : 1.7154414395911841, + "90.0" : 1.7191470373962887, + "95.0" : 1.7191470373962887, + "99.0" : 1.7191470373962887, + "99.9" : 1.7191470373962887, + "99.99" : 1.7191470373962887, + "99.999" : 1.7191470373962887, + "99.9999" : 1.7191470373962887, + "100.0" : 1.7191470373962887 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7114341422770996, + 1.7136486614788984 + ], + [ + 1.7172342177034698, + 1.7191470373962887 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8623839906524824, + "scoreError" : 0.017881712405582097, + "scoreConfidence" : [ + 0.8445022782469003, + 0.8802657030580645 + ], + "scorePercentiles" : { + "0.0" : 0.8590144212325085, + "50.0" : 0.8627068784950527, + "90.0" : 0.865107784387316, + "95.0" : 0.865107784387316, + "99.0" : 0.865107784387316, + "99.9" : 0.865107784387316, + "99.99" : 0.865107784387316, + "99.999" : 0.865107784387316, + "99.9999" : 0.865107784387316, + "100.0" : 0.865107784387316 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8641194770854608, + 0.865107784387316 + ], + [ + 0.8590144212325085, + 0.8612942799046445 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.964369759761347, + "scoreError" : 0.14949247492861661, + "scoreConfidence" : [ + 15.81487728483273, + 16.113862234689964 + ], + "scorePercentiles" : { + "0.0" : 15.811852078065343, + "50.0" : 15.958841605607912, + "90.0" : 16.068686757278652, + "95.0" : 16.068686757278652, + "99.0" : 16.068686757278652, + "99.9" : 16.068686757278652, + "99.99" : 16.068686757278652, + "99.999" : 16.068686757278652, + "99.9999" : 16.068686757278652, + "100.0" : 16.068686757278652 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.884122348234245, + 15.892067793051442, + 15.811852078065343 + ], + [ + 16.068686757278652, + 16.02611385854489, + 16.05950077065129 + ], + [ + 16.030228524873884, + 15.958841605607912, + 15.947914101544484 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2632.946473250312, + "scoreError" : 93.99387762333102, + "scoreConfidence" : [ + 2538.952595626981, + 2726.940350873643 + ], + "scorePercentiles" : { + "0.0" : 2573.8895531139106, + "50.0" : 2619.4836853276893, + "90.0" : 2713.525151295088, + "95.0" : 2713.525151295088, + "99.0" : 2713.525151295088, + "99.9" : 2713.525151295088, + "99.99" : 2713.525151295088, + "99.999" : 2713.525151295088, + "99.9999" : 2713.525151295088, + "100.0" : 2713.525151295088 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2621.4226450253977, + 2619.4836853276893, + 2611.349597133837 + ], + [ + 2581.449953604812, + 2578.211708521408, + 2573.8895531139106 + ], + [ + 2697.7887121079466, + 2713.525151295088, + 2699.397253122716 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 69534.66430141217, + "scoreError" : 2801.5518349881327, + "scoreConfidence" : [ + 66733.11246642403, + 72336.2161364003 + ], + "scorePercentiles" : { + "0.0" : 65567.4080996611, + "50.0" : 69961.79605161793, + "90.0" : 71051.43139625118, + "95.0" : 71051.43139625118, + "99.0" : 71051.43139625118, + "99.9" : 71051.43139625118, + "99.99" : 71051.43139625118, + "99.999" : 71051.43139625118, + "99.9999" : 71051.43139625118, + "100.0" : 71051.43139625118 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 68854.52710104783, + 68971.27421927753, + 65567.4080996611 + ], + [ + 69961.79605161793, + 69908.7846493282, + 70055.8954803111 + ], + [ + 70651.62694371553, + 71051.43139625118, + 70789.23477149908 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 324.37714013322415, + "scoreError" : 6.953692403364356, + "scoreConfidence" : [ + 317.4234477298598, + 331.3308325365885 + ], + "scorePercentiles" : { + "0.0" : 317.9794415797697, + "50.0" : 325.6979033805179, + "90.0" : 329.47163983902743, + "95.0" : 329.47163983902743, + "99.0" : 329.47163983902743, + "99.9" : 329.47163983902743, + "99.99" : 329.47163983902743, + "99.999" : 329.47163983902743, + "99.9999" : 329.47163983902743, + "100.0" : 329.47163983902743 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 325.6979033805179, + 326.8589024612708, + 327.71947283667845 + ], + [ + 319.1493847905536, + 317.9794415797697, + 320.4422634820272 + ], + [ + 329.47163983902743, + 327.1995344627017, + 324.87571836647084 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 102.959790420029, + "scoreError" : 2.6836297682130374, + "scoreConfidence" : [ + 100.27616065181596, + 105.64342018824203 + ], + "scorePercentiles" : { + "0.0" : 101.06488807701024, + "50.0" : 102.31342535678377, + "90.0" : 105.815826229701, + "95.0" : 105.815826229701, + "99.0" : 105.815826229701, + "99.9" : 105.815826229701, + "99.99" : 105.815826229701, + "99.999" : 105.815826229701, + "99.9999" : 105.815826229701, + "100.0" : 105.815826229701 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 101.6268312221908, + 102.22420517816848, + 101.06488807701024 + ], + [ + 101.94574008326629, + 102.31342535678377, + 102.68228515975018 + ], + [ + 104.18470572687318, + 104.78020674651705, + 105.815826229701 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06385212124215954, + "scoreError" : 3.980491241938138E-4, + "scoreConfidence" : [ + 0.06345407211796572, + 0.06425017036635336 + ], + "scorePercentiles" : { + "0.0" : 0.06360682266025519, + "50.0" : 0.06375608461533558, + "90.0" : 0.06420885625770495, + "95.0" : 0.06420885625770495, + "99.0" : 0.06420885625770495, + "99.9" : 0.06420885625770495, + "99.99" : 0.06420885625770495, + "99.999" : 0.06420885625770495, + "99.9999" : 0.06420885625770495, + "100.0" : 0.06420885625770495 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.0636074658720113, + 0.06368320890912564, + 0.06400144288283445 + ], + [ + 0.0640410836295172, + 0.06411013171222689, + 0.06420885625770495 + ], + [ + 0.06365399464042469, + 0.06360682266025519, + 0.06375608461533558 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.9662898037091357E-4, + "scoreError" : 2.4763194628361096E-5, + "scoreConfidence" : [ + 3.718657857425525E-4, + 4.2139217499927465E-4 + ], + "scorePercentiles" : { + "0.0" : 3.815935281333288E-4, + "50.0" : 3.910863244286691E-4, + "90.0" : 4.1596443371843373E-4, + "95.0" : 4.1596443371843373E-4, + "99.0" : 4.1596443371843373E-4, + "99.9" : 4.1596443371843373E-4, + "99.99" : 4.1596443371843373E-4, + "99.999" : 4.1596443371843373E-4, + "99.9999" : 4.1596443371843373E-4, + "100.0" : 4.1596443371843373E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 4.1507248171887697E-4, + 4.1596443371843373E-4, + 4.158961915449522E-4 + ], + [ + 3.9249085467373625E-4, + 3.910863244286691E-4, + 3.9028536381353695E-4 + ], + [ + 3.815935281333288E-4, + 3.83322489934839E-4, + 3.839491553718492E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.014256156575693513, + "scoreError" : 1.1832459269240048E-4, + "scoreConfidence" : [ + 0.014137831983001113, + 0.014374481168385913 + ], + "scorePercentiles" : { + "0.0" : 0.014160325917188587, + "50.0" : 0.014281502312143682, + "90.0" : 0.01434438235319431, + "95.0" : 0.01434438235319431, + "99.0" : 0.01434438235319431, + "99.9" : 0.01434438235319431, + "99.99" : 0.01434438235319431, + "99.999" : 0.01434438235319431, + "99.9999" : 0.01434438235319431, + "100.0" : 0.01434438235319431 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014294949020667335, + 0.014281502312143682, + 0.014222103556901898 + ], + [ + 0.01434438235319431, + 0.01433649228420283, + 0.014300185563870207 + ], + [ + 0.01419311983093378, + 0.014160325917188587, + 0.014172348342138978 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9824788631918102, + "scoreError" : 0.015282153141593577, + "scoreConfidence" : [ + 0.9671967100502167, + 0.9977610163334037 + ], + "scorePercentiles" : { + "0.0" : 0.971180237253569, + "50.0" : 0.9812488621467818, + "90.0" : 0.9941125791252485, + "95.0" : 0.9941125791252485, + "99.0" : 0.9941125791252485, + "99.9" : 0.9941125791252485, + "99.99" : 0.9941125791252485, + "99.999" : 0.9941125791252485, + "99.9999" : 0.9941125791252485, + "100.0" : 0.9941125791252485 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.9812488621467818, + 0.9805092572801255, + 0.9850614140070922 + ], + [ + 0.9910779913784561, + 0.9941125791252485, + 0.9935723269746647 + ], + [ + 0.9720085908251531, + 0.9735385097352025, + 0.971180237253569 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01313513390633781, + "scoreError" : 1.7088782952539693E-4, + "scoreConfidence" : [ + 0.012964246076812413, + 0.013306021735863208 + ], + "scorePercentiles" : { + "0.0" : 0.013032883220601843, + "50.0" : 0.013130920356492343, + "90.0" : 0.013206380218375443, + "95.0" : 0.013206380218375443, + "99.0" : 0.013206380218375443, + "99.9" : 0.013206380218375443, + "99.99" : 0.013206380218375443, + "99.999" : 0.013206380218375443, + "99.9999" : 0.013206380218375443, + "100.0" : 0.013206380218375443 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013032883220601843, + 0.01318755262359721, + 0.013206380218375443 + ], + [ + 0.013137456023499675, + 0.013122146662467688, + 0.013124384689485012 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.867786864317754, + "scoreError" : 0.048553694236964026, + "scoreConfidence" : [ + 3.81923317008079, + 3.916340558554718 + ], + "scorePercentiles" : { + "0.0" : 3.8529737359507314, + "50.0" : 3.8585532311495188, + "90.0" : 3.8924816739299613, + "95.0" : 3.8924816739299613, + "99.0" : 3.8924816739299613, + "99.9" : 3.8924816739299613, + "99.99" : 3.8924816739299613, + "99.999" : 3.8924816739299613, + "99.9999" : 3.8924816739299613, + "100.0" : 3.8924816739299613 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8569471233616035, + 3.8600316018518517, + 3.8529737359507314 + ], + [ + 3.857074860447186, + 3.88721219036519, + 3.8924816739299613 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.0750627687740564, + "scoreError" : 0.05511820982963315, + "scoreConfidence" : [ + 3.0199445589444234, + 3.1301809786036894 + ], + "scorePercentiles" : { + "0.0" : 3.0299908679188126, + "50.0" : 3.064409943627451, + "90.0" : 3.135634054231975, + "95.0" : 3.135634054231975, + "99.0" : 3.135634054231975, + "99.9" : 3.135634054231975, + "99.99" : 3.135634054231975, + "99.999" : 3.135634054231975, + "99.9999" : 3.135634054231975, + "100.0" : 3.135634054231975 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.0817256949152543, + 3.0892173233477456, + 3.1099776281094527 + ], + [ + 3.0299908679188126, + 3.064409943627451, + 3.135634054231975 + ], + [ + 3.063156679019908, + 3.051907723527617, + 3.0495450042682926 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.17707974113798844, + "scoreError" : 0.001753183598704396, + "scoreConfidence" : [ + 0.17532655753928406, + 0.17883292473669282 + ], + "scorePercentiles" : { + "0.0" : 0.17542807671256908, + "50.0" : 0.17744374794612913, + "90.0" : 0.17834795757165023, + "95.0" : 0.17834795757165023, + "99.0" : 0.17834795757165023, + "99.9" : 0.17834795757165023, + "99.99" : 0.17834795757165023, + "99.999" : 0.17834795757165023, + "99.9999" : 0.17834795757165023, + "100.0" : 0.17834795757165023 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.17542807671256908, + 0.17567099878790007, + 0.17622787493391603 + ], + [ + 0.17834795757165023, + 0.17778623739088695, + 0.1777325394021256 + ], + [ + 0.17783960020984493, + 0.17744374794612913, + 0.17724063728687392 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3291669764763291, + "scoreError" : 0.007571788356830977, + "scoreConfidence" : [ + 0.3215951881194981, + 0.33673876483316006 + ], + "scorePercentiles" : { + "0.0" : 0.3241040484848485, + "50.0" : 0.32796601954611043, + "90.0" : 0.3354437538239635, + "95.0" : 0.3354437538239635, + "99.0" : 0.3354437538239635, + "99.9" : 0.3354437538239635, + "99.99" : 0.3354437538239635, + "99.999" : 0.3354437538239635, + "99.9999" : 0.3354437538239635, + "100.0" : 0.3354437538239635 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3354437538239635, + 0.3346651346964728, + 0.3344965017894772 + ], + [ + 0.3279725352399069, + 0.3277535350353959, + 0.32796601954611043 + ], + [ + 0.32507591015180576, + 0.3241040484848485, + 0.32502534951898077 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16062776080834268, + "scoreError" : 0.005431148276752742, + "scoreConfidence" : [ + 0.15519661253158995, + 0.1660589090850954 + ], + "scorePercentiles" : { + "0.0" : 0.1560528020661028, + "50.0" : 0.16137011350470382, + "90.0" : 0.16436436313730646, + "95.0" : 0.16436436313730646, + "99.0" : 0.16436436313730646, + "99.9" : 0.16436436313730646, + "99.99" : 0.16436436313730646, + "99.999" : 0.16436436313730646, + "99.9999" : 0.16436436313730646, + "100.0" : 0.16436436313730646 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1570186333689235, + 0.1567735383614473, + 0.1560528020661028 + ], + [ + 0.16436436313730646, + 0.16383697162423408, + 0.16358005905157608 + ], + [ + 0.161679944674384, + 0.16137011350470382, + 0.160973421486406 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3903617858409897, + "scoreError" : 0.009828721884524704, + "scoreConfidence" : [ + 0.38053306395646497, + 0.4001905077255144 + ], + "scorePercentiles" : { + "0.0" : 0.3824873031821311, + "50.0" : 0.3917676618349918, + "90.0" : 0.39610914148776044, + "95.0" : 0.39610914148776044, + "99.0" : 0.39610914148776044, + "99.9" : 0.39610914148776044, + "99.99" : 0.39610914148776044, + "99.999" : 0.39610914148776044, + "99.9999" : 0.39610914148776044, + "100.0" : 0.39610914148776044 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.39610914148776044, + 0.3953911683536296, + 0.39527777813352305 + ], + [ + 0.3824873031821311, + 0.38368207650399017, + 0.3827536854212118 + ], + [ + 0.39533068979285263, + 0.3917676618349918, + 0.39045656785881616 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15819162474581686, + "scoreError" : 0.0048135868130951606, + "scoreConfidence" : [ + 0.1533780379327217, + 0.163005211558912 + ], + "scorePercentiles" : { + "0.0" : 0.15527001720363326, + "50.0" : 0.15726231035241944, + "90.0" : 0.16197077154565037, + "95.0" : 0.16197077154565037, + "99.0" : 0.16197077154565037, + "99.9" : 0.16197077154565037, + "99.99" : 0.16197077154565037, + "99.999" : 0.16197077154565037, + "99.9999" : 0.16197077154565037, + "100.0" : 0.16197077154565037 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.15765723094386025, + 0.15726231035241944, + 0.15718987414137287 + ], + [ + 0.16197077154565037, + 0.16175013906995553, + 0.1617629850048528 + ], + [ + 0.15536635726936582, + 0.15549493718124144, + 0.15527001720363326 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.047076397918228714, + "scoreError" : 9.393130932661902E-4, + "scoreConfidence" : [ + 0.046137084824962524, + 0.048015711011494905 + ], + "scorePercentiles" : { + "0.0" : 0.04660691954381909, + "50.0" : 0.04679847674848492, + "90.0" : 0.04791543753354033, + "95.0" : 0.04791543753354033, + "99.0" : 0.04791543753354033, + "99.9" : 0.04791543753354033, + "99.99" : 0.04791543753354033, + "99.999" : 0.04791543753354033, + "99.9999" : 0.04791543753354033, + "100.0" : 0.04791543753354033 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04681345522126048, + 0.04679847674848492, + 0.046763169458395294 + ], + [ + 0.046641739345997954, + 0.04660691954381909, + 0.04662555677971633 + ], + [ + 0.047764110466837977, + 0.047758716166006014, + 0.04791543753354033 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9813602.948911339, + "scoreError" : 123718.98750194644, + "scoreConfidence" : [ + 9689883.961409392, + 9937321.936413286 + ], + "scorePercentiles" : { + "0.0" : 9679557.92843327, + "50.0" : 9822463.236506378, + "90.0" : 9927081.881944444, + "95.0" : 9927081.881944444, + "99.0" : 9927081.881944444, + "99.9" : 9927081.881944444, + "99.99" : 9927081.881944444, + "99.999" : 9927081.881944444, + "99.9999" : 9927081.881944444, + "100.0" : 9927081.881944444 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9872000.78183613, + 9822463.236506378, + 9927081.881944444 + ], + [ + 9853020.666995075, + 9853184.431527093, + 9790321.015655577 + ], + [ + 9679557.92843327, + 9754578.18031189, + 9770218.416992188 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/performance-results/2025-04-07T01:27:42Z-154bb89d14e9701d1b9f0764cbf813ba3a3c050a-jdk17.json b/performance-results/2025-04-07T01:27:42Z-154bb89d14e9701d1b9f0764cbf813ba3a3c050a-jdk17.json new file mode 100644 index 000000000..fb66c0751 --- /dev/null +++ b/performance-results/2025-04-07T01:27:42Z-154bb89d14e9701d1b9f0764cbf813ba3a3c050a-jdk17.json @@ -0,0 +1,1310 @@ +[ + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "5" + }, + "primaryMetric" : { + "score" : 3.4102846934427835, + "scoreError" : 0.029120215772332664, + "scoreConfidence" : [ + 3.381164477670451, + 3.439404909215116 + ], + "scorePercentiles" : { + "0.0" : 3.40421431924695, + "50.0" : 3.411477217299319, + "90.0" : 3.4139700199255474, + "95.0" : 3.4139700199255474, + "99.0" : 3.4139700199255474, + "99.9" : 3.4139700199255474, + "99.99" : 3.4139700199255474, + "99.999" : 3.4139700199255474, + "99.9999" : 3.4139700199255474, + "100.0" : 3.4139700199255474 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 3.40421431924695, + 3.4139700199255474 + ], + [ + 3.4095218102136196, + 3.4134326243850186 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "10" + }, + "primaryMetric" : { + "score" : 1.7221652033520922, + "scoreError" : 0.009478621744532833, + "scoreConfidence" : [ + 1.7126865816075594, + 1.731643825096625 + ], + "scorePercentiles" : { + "0.0" : 1.7203619756019852, + "50.0" : 1.722271370931328, + "90.0" : 1.723756095943728, + "95.0" : 1.723756095943728, + "99.0" : 1.723756095943728, + "99.9" : 1.723756095943728, + "99.99" : 1.723756095943728, + "99.999" : 1.723756095943728, + "99.9999" : 1.723756095943728, + "100.0" : 1.723756095943728 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 1.7228412979004932, + 1.723756095943728 + ], + [ + 1.7203619756019852, + 1.7217014439621625 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ComplexQueryPerformance.benchMarkSimpleQueriesThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 2, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "howManyItems" : "20" + }, + "primaryMetric" : { + "score" : 0.8638167830583094, + "scoreError" : 0.005432486996052623, + "scoreConfidence" : [ + 0.8583842960622569, + 0.869249270054362 + ], + "scorePercentiles" : { + "0.0" : 0.8627272504566224, + "50.0" : 0.8639140939295744, + "90.0" : 0.8647116939174667, + "95.0" : 0.8647116939174667, + "99.0" : 0.8647116939174667, + "99.9" : 0.8647116939174667, + "99.99" : 0.8647116939174667, + "99.999" : 0.8647116939174667, + "99.9999" : 0.8647116939174667, + "100.0" : 0.8647116939174667 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 0.8627272504566224, + 0.8647116939174667 + ], + [ + 0.8641521696201839, + 0.863676018238965 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 15.856427557514358, + "scoreError" : 0.21807549856382044, + "scoreConfidence" : [ + 15.638352058950538, + 16.07450305607818 + ], + "scorePercentiles" : { + "0.0" : 15.681327891325898, + "50.0" : 15.904269221101467, + "90.0" : 16.02142911448296, + "95.0" : 16.02142911448296, + "99.0" : 16.02142911448296, + "99.9" : 16.02142911448296, + "99.99" : 16.02142911448296, + "99.999" : 16.02142911448296, + "99.9999" : 16.02142911448296, + "100.0" : 16.02142911448296 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 15.904269221101467, + 16.02142911448296, + 15.943726644806675 + ], + [ + 15.681327891325898, + 15.700241982223265, + 15.6913767022947 + ], + [ + 15.881763309316872, + 15.936401461123317, + 15.947311690954091 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkThroughput_getImmediateFields", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2615.3268175518824, + "scoreError" : 85.27331964422102, + "scoreConfidence" : [ + 2530.0534979076615, + 2700.6001371961033 + ], + "scorePercentiles" : { + "0.0" : 2550.521812924825, + "50.0" : 2603.3546349283893, + "90.0" : 2682.250838153494, + "95.0" : 2682.250838153494, + "99.0" : 2682.250838153494, + "99.9" : 2682.250838153494, + "99.99" : 2682.250838153494, + "99.999" : 2682.250838153494, + "99.9999" : 2682.250838153494, + "100.0" : 2682.250838153494 + }, + "scoreUnit" : "ops/ms", + "rawData" : [ + [ + 2682.250838153494, + 2674.2071330474264, + 2676.491646172537 + ], + [ + 2573.055142655825, + 2564.6397919711726, + 2550.521812924825 + ], + [ + 2612.447308343581, + 2603.3546349283893, + 2600.9730497696914 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 68682.74721165966, + "scoreError" : 1904.0986389262905, + "scoreConfidence" : [ + 66778.64857273338, + 70586.84585058595 + ], + "scorePercentiles" : { + "0.0" : 67315.78978042262, + "50.0" : 68558.57912756453, + "90.0" : 70108.49357429743, + "95.0" : 70108.49357429743, + "99.0" : 70108.49357429743, + "99.9" : 70108.49357429743, + "99.99" : 70108.49357429743, + "99.999" : 70108.49357429743, + "99.9999" : 70108.49357429743, + "100.0" : 70108.49357429743 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 70081.54631565987, + 69908.33092759324, + 70108.49357429743 + ], + [ + 68695.19237810129, + 68558.57912756453, + 68502.6084660597 + ], + [ + 67315.78978042262, + 67441.95616624445, + 67532.22816899384 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 341.9660588620118, + "scoreError" : 5.428672335615734, + "scoreConfidence" : [ + 336.53738652639606, + 347.3947311976275 + ], + "scorePercentiles" : { + "0.0" : 336.4476621680284, + "50.0" : 342.2783710532269, + "90.0" : 345.6060043253826, + "95.0" : 345.6060043253826, + "99.0" : 345.6060043253826, + "99.9" : 345.6060043253826, + "99.99" : 345.6060043253826, + "99.999" : 345.6060043253826, + "99.9999" : 345.6060043253826, + "100.0" : 345.6060043253826 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 344.6308661866658, + 342.2263703728633, + 339.18226799196634 + ], + [ + 343.869334695566, + 344.96989920298415, + 345.6060043253826 + ], + [ + 342.2783710532269, + 336.4476621680284, + 338.48375376142235 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationThroughput", + "mode" : "thrpt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 102.86025606846653, + "scoreError" : 1.38084080828978, + "scoreConfidence" : [ + 101.47941526017675, + 104.2410968767563 + ], + "scorePercentiles" : { + "0.0" : 101.80541629343892, + "50.0" : 102.80111987931467, + "90.0" : 104.77421204891745, + "95.0" : 104.77421204891745, + "99.0" : 104.77421204891745, + "99.9" : 104.77421204891745, + "99.99" : 104.77421204891745, + "99.999" : 104.77421204891745, + "99.9999" : 104.77421204891745, + "100.0" : 104.77421204891745 + }, + "scoreUnit" : "ops/s", + "rawData" : [ + [ + 102.3242423337249, + 101.80541629343892, + 102.80111987931467 + ], + [ + 104.77421204891745, + 102.62377671322751, + 102.42665569290861 + ], + [ + 102.93712545820337, + 102.90042617995776, + 103.14933001650559 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.06299738431052335, + "scoreError" : 3.244688347044825E-4, + "scoreConfidence" : [ + 0.06267291547581887, + 0.06332185314522783 + ], + "scorePercentiles" : { + "0.0" : 0.06275631095268876, + "50.0" : 0.06303528535589117, + "90.0" : 0.06329175614711299, + "95.0" : 0.06329175614711299, + "99.0" : 0.06329175614711299, + "99.9" : 0.06329175614711299, + "99.99" : 0.06329175614711299, + "99.999" : 0.06329175614711299, + "99.9999" : 0.06329175614711299, + "100.0" : 0.06329175614711299 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.06309860325332525, + 0.06324095105863604, + 0.06305016569991047 + ], + [ + 0.06283930007917657, + 0.06329175614711299, + 0.06303528535589117 + ], + [ + 0.0628358286427014, + 0.06275631095268876, + 0.06282825760526746 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.DFSelectionSetPerformance.benchMarkAvgTime_getImmediateFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 3.733489768801373E-4, + "scoreError" : 7.710948014590726E-6, + "scoreConfidence" : [ + 3.6563802886554656E-4, + 3.81059924894728E-4 + ], + "scorePercentiles" : { + "0.0" : 3.682361400802075E-4, + "50.0" : 3.729608204948727E-4, + "90.0" : 3.8100045308045563E-4, + "95.0" : 3.8100045308045563E-4, + "99.0" : 3.8100045308045563E-4, + "99.9" : 3.8100045308045563E-4, + "99.99" : 3.8100045308045563E-4, + "99.999" : 3.8100045308045563E-4, + "99.9999" : 3.8100045308045563E-4, + "100.0" : 3.8100045308045563E-4 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.682361400802075E-4, + 3.70625831766964E-4, + 3.692070808996729E-4 + ], + [ + 3.6864684928719307E-4, + 3.729608204948727E-4, + 3.7460464471704793E-4 + ], + [ + 3.784421620702325E-4, + 3.8100045308045563E-4, + 3.7641680952458926E-4 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF1Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.01435726879619418, + "scoreError" : 4.0347910114715526E-4, + "scoreConfidence" : [ + 0.013953789695047025, + 0.014760747897341334 + ], + "scorePercentiles" : { + "0.0" : 0.014138349409377849, + "50.0" : 0.01422107446198828, + "90.0" : 0.014705323339239892, + "95.0" : 0.014705323339239892, + "99.0" : 0.014705323339239892, + "99.9" : 0.014705323339239892, + "99.99" : 0.014705323339239892, + "99.999" : 0.014705323339239892, + "99.9999" : 0.014705323339239892, + "100.0" : 0.014705323339239892 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.014220843329512714, + 0.014249974604034115, + 0.01422107446198828 + ], + [ + 0.01465220841904762, + 0.0146646087476152, + 0.014705323339239892 + ], + [ + 0.014192360439900428, + 0.014170676415031508, + 0.014138349409377849 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENF2Performance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 0.9895251951545363, + "scoreError" : 0.011617451159531738, + "scoreConfidence" : [ + 0.9779077439950046, + 1.001142646314068 + ], + "scorePercentiles" : { + "0.0" : 0.9812811987047395, + "50.0" : 0.9870416658112909, + "90.0" : 1.0005223407703852, + "95.0" : 1.0005223407703852, + "99.0" : 1.0005223407703852, + "99.9" : 1.0005223407703852, + "99.99" : 1.0005223407703852, + "99.999" : 1.0005223407703852, + "99.9999" : 1.0005223407703852, + "100.0" : 1.0005223407703852 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 1.0005223407703852, + 0.9968223352272727, + 0.9975727868541792 + ], + [ + 0.9870416658112909, + 0.9846626468097677, + 0.9872980485734031 + ], + [ + 0.9837904186915888, + 0.9867353149481993, + 0.9812811987047395 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "2" + }, + "primaryMetric" : { + "score" : 0.01330986014742821, + "scoreError" : 9.891136536444913E-5, + "scoreConfidence" : [ + 0.013210948782063761, + 0.013408771512792659 + ], + "scorePercentiles" : { + "0.0" : 0.01327384584671746, + "50.0" : 0.013299086737854359, + "90.0" : 0.013362976738343782, + "95.0" : 0.013362976738343782, + "99.0" : 0.013362976738343782, + "99.9" : 0.013362976738343782, + "99.99" : 0.013362976738343782, + "99.999" : 0.013362976738343782, + "99.9999" : 0.013362976738343782, + "100.0" : 0.013362976738343782 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.013294660619516086, + 0.01327384584671746, + 0.01330351285619263 + ], + [ + 0.013281905929416514, + 0.01334225889438279, + 0.013362976738343782 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFDeepIntrospectionPerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 2, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "5 s", + "measurementBatchSize" : 1, + "params" : { + "howDeep" : "10" + }, + "primaryMetric" : { + "score" : 3.8025668235689842, + "scoreError" : 0.06390927980432547, + "scoreConfidence" : [ + 3.738657543764659, + 3.8664761033733095 + ], + "scorePercentiles" : { + "0.0" : 3.7659801807228916, + "50.0" : 3.806910667222677, + "90.0" : 3.8267197444529457, + "95.0" : 3.8267197444529457, + "99.0" : 3.8267197444529457, + "99.9" : 3.8267197444529457, + "99.99" : 3.8267197444529457, + "99.999" : 3.8267197444529457, + "99.9999" : 3.8267197444529457, + "100.0" : 3.8267197444529457 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.8143089107551487, + 3.7659801807228916, + 3.820578360580596 + ], + [ + 3.788301321212121, + 3.799512423690205, + 3.8267197444529457 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.ENFExtraLargePerformance.benchMarkAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "primaryMetric" : { + "score" : 2.9759041347139985, + "scoreError" : 0.10713863758918146, + "scoreConfidence" : [ + 2.868765497124817, + 3.08304277230318 + ], + "scorePercentiles" : { + "0.0" : 2.884954732621863, + "50.0" : 3.000250045290942, + "90.0" : 3.0388375967790946, + "95.0" : 3.0388375967790946, + "99.0" : 3.0388375967790946, + "99.9" : 3.0388375967790946, + "99.99" : 3.0388375967790946, + "99.999" : 3.0388375967790946, + "99.9999" : 3.0388375967790946, + "100.0" : 3.0388375967790946 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 3.0026239456619632, + 3.000250045290942, + 2.9838356843675418 + ], + [ + 2.9118269863173216, + 2.884954732621863, + 2.8888414780473717 + ], + [ + 3.0388375967790946, + 3.038463558323208, + 3.033503185016682 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkDeepAbstractConcrete", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.18603597518816295, + "scoreError" : 0.012679982126799527, + "scoreConfidence" : [ + 0.17335599306136343, + 0.19871595731496247 + ], + "scorePercentiles" : { + "0.0" : 0.17767118692369194, + "50.0" : 0.18524742478187578, + "90.0" : 0.19535688841352633, + "95.0" : 0.19535688841352633, + "99.0" : 0.19535688841352633, + "99.9" : 0.19535688841352633, + "99.99" : 0.19535688841352633, + "99.999" : 0.19535688841352633, + "99.9999" : 0.19535688841352633, + "100.0" : 0.19535688841352633 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.18528033961425158, + 0.18524742478187578, + 0.185177052070217 + ], + [ + 0.17788650417133609, + 0.17767118692369194, + 0.1776996488734096 + ], + [ + 0.19535688841352633, + 0.19508885146312915, + 0.19491588038202903 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.32826031013776114, + "scoreError" : 0.011022615826861565, + "scoreConfidence" : [ + 0.31723769431089954, + 0.33928292596462273 + ], + "scorePercentiles" : { + "0.0" : 0.320983046477291, + "50.0" : 0.32681424316198815, + "90.0" : 0.3371025889769088, + "95.0" : 0.3371025889769088, + "99.0" : 0.3371025889769088, + "99.9" : 0.3371025889769088, + "99.99" : 0.3371025889769088, + "99.999" : 0.3371025889769088, + "99.9999" : 0.3371025889769088, + "100.0" : 0.3371025889769088 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3223364937467767, + 0.320983046477291, + 0.3219397327366964 + ], + [ + 0.3371025889769088, + 0.3363084072305364, + 0.3361761716811779 + ], + [ + 0.32709179727210286, + 0.32681424316198815, + 0.32559030995637167 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkNoOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.16457991754255474, + "scoreError" : 0.010323140494181456, + "scoreConfidence" : [ + 0.1542567770483733, + 0.1749030580367362 + ], + "scorePercentiles" : { + "0.0" : 0.1599626444910103, + "50.0" : 0.1606458390200803, + "90.0" : 0.1729952570276956, + "95.0" : 0.1729952570276956, + "99.0" : 0.1729952570276956, + "99.9" : 0.1729952570276956, + "99.99" : 0.1729952570276956, + "99.999" : 0.1729952570276956, + "99.9999" : 0.1729952570276956, + "100.0" : 0.1729952570276956 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.1729952570276956, + 0.17261480054890047, + 0.17268161886342837 + ], + [ + 0.16080234687248754, + 0.1606458390200803, + 0.16053277127813273 + ], + [ + 0.16059716269732932, + 0.16038681708392807, + 0.1599626444910103 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.3934084316923969, + "scoreError" : 0.008778638315417864, + "scoreConfidence" : [ + 0.38462979337697906, + 0.4021870700078148 + ], + "scorePercentiles" : { + "0.0" : 0.3879532519300151, + "50.0" : 0.39231844958807377, + "90.0" : 0.4034614294359719, + "95.0" : 0.4034614294359719, + "99.0" : 0.4034614294359719, + "99.9" : 0.4034614294359719, + "99.99" : 0.4034614294359719, + "99.999" : 0.4034614294359719, + "99.9999" : 0.4034614294359719, + "100.0" : 0.4034614294359719 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.3972338251439921, + 0.3963039667512087, + 0.3955053498516907 + ], + [ + 0.4034614294359719, + 0.39231844958807377, + 0.3916460862771207 + ], + [ + 0.3881032016144681, + 0.3879532519300151, + 0.3881503246390312 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkOverlapNoFrag", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.15900952508569965, + "scoreError" : 0.0023946034846080585, + "scoreConfidence" : [ + 0.15661492160109158, + 0.16140412857030773 + ], + "scorePercentiles" : { + "0.0" : 0.15720717609884927, + "50.0" : 0.15895266305850936, + "90.0" : 0.16082181456048375, + "95.0" : 0.16082181456048375, + "99.0" : 0.16082181456048375, + "99.9" : 0.16082181456048375, + "99.99" : 0.16082181456048375, + "99.999" : 0.16082181456048375, + "99.9999" : 0.16082181456048375, + "100.0" : 0.16082181456048375 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.16082181456048375, + 0.16076233775419982, + 0.1602524095476179 + ], + [ + 0.15938672460233974, + 0.15895266305850936, + 0.15877954825188148 + ], + [ + 0.15768934277334512, + 0.15723370912407036, + 0.15720717609884927 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.benchmarkRepeatedFields", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 0.047361120540854944, + "scoreError" : 0.0011842744715550232, + "scoreConfidence" : [ + 0.04617684606929992, + 0.04854539501240997 + ], + "scorePercentiles" : { + "0.0" : 0.046548068140666095, + "50.0" : 0.04735400536040686, + "90.0" : 0.04889141967751714, + "95.0" : 0.04889141967751714, + "99.0" : 0.04889141967751714, + "99.9" : 0.04889141967751714, + "99.99" : 0.04889141967751714, + "99.999" : 0.04889141967751714, + "99.9999" : 0.04889141967751714, + "100.0" : 0.04889141967751714 + }, + "scoreUnit" : "ms/op", + "rawData" : [ + [ + 0.04889141967751714, + 0.047445435486855404, + 0.04735400536040686 + ], + [ + 0.047628977833767544, + 0.046628790649202896, + 0.046548068140666095 + ], + [ + 0.04771143517321336, + 0.047044408982495095, + 0.046997543563570054 + ] + ] + }, + "secondaryMetrics" : { + } + }, + { + "jmhVersion" : "1.37", + "benchmark" : "performance.OverlappingFieldValidationPerformance.overlappingFieldValidationAvgTime", + "mode" : "avgt", + "threads" : 1, + "forks" : 3, + "jvm" : "/home/ec2-user/.sdkman/candidates/java/17.0.10-amzn/bin/java", + "jvmArgs" : [ + ], + "jdkVersion" : "17.0.10", + "vmName" : "OpenJDK 64-Bit Server VM", + "vmVersion" : "17.0.10+7-LTS", + "warmupIterations" : 2, + "warmupTime" : "5 s", + "warmupBatchSize" : 1, + "measurementIterations" : 3, + "measurementTime" : "10 s", + "measurementBatchSize" : 1, + "params" : { + "size" : "100" + }, + "primaryMetric" : { + "score" : 9484339.070811357, + "scoreError" : 303876.42890579335, + "scoreConfidence" : [ + 9180462.641905565, + 9788215.49971715 + ], + "scorePercentiles" : { + "0.0" : 9283828.396103896, + "50.0" : 9397674.42629108, + "90.0" : 9777845.836754642, + "95.0" : 9777845.836754642, + "99.0" : 9777845.836754642, + "99.9" : 9777845.836754642, + "99.99" : 9777845.836754642, + "99.999" : 9777845.836754642, + "99.9999" : 9777845.836754642, + "100.0" : 9777845.836754642 + }, + "scoreUnit" : "ns/op", + "rawData" : [ + [ + 9380661.102155576, + 9355213.106641721, + 9283828.396103896 + ], + [ + 9397674.42629108, + 9401537.636278195, + 9390028.017840376 + ], + [ + 9777845.836754642, + 9646593.927675989, + 9725669.187560739 + ] + ] + }, + "secondaryMetrics" : { + } + } +] + + diff --git a/security/SECURITY_README.md b/security/SECURITY_README.md new file mode 100644 index 000000000..ecb543ef0 --- /dev/null +++ b/security/SECURITY_README.md @@ -0,0 +1,9 @@ +## Submitting CVE records + +Use https://vulnogram.github.io/ as a UI to write, validate, and submit CVE records. + +In this Vulnogram UI, you'll be able to view a JSON preview of the CVE payload. You'll find a sample payload in this directory. + +It's better to use the Vulnogram UI as it'll provide extra validation of input. + +Also note, as a CNA we do not need to provide a CVSS score for CVEs. This will be done by security vendors instead. diff --git a/security/cve-sample.json b/security/cve-sample.json new file mode 100644 index 000000000..715d58320 --- /dev/null +++ b/security/cve-sample.json @@ -0,0 +1,75 @@ +{ + "dataType": "CVE_RECORD", + "dataVersion": "5.1", + "cveMetadata": { + "cveId": "", + "assignerOrgId": "00000000-0000-4000-9000-000000000000", + "requesterUserId": "00000000-0000-4000-9000-000000000000", + "serial": 1, + "state": "PUBLISHED" + }, + "containers": { + "cna": { + "providerMetadata": { + "orgId": "00000000-0000-4000-9000-000000000000" + }, + "problemTypes": [ + { + "descriptions": [ + { + "lang": "en", + "description": "" + } + ] + } + ], + "impacts": [ + { + "descriptions": [ + { + "lang": "en", + "value": "" + } + ] + } + ], + "affected": [ + { + "vendor": "GraphQL Java", + "product": "GraphQL Java [or other library]", + "versions": [ + { + "status": "affected", + "version": "" + } + ], + "defaultStatus": "unaffected" + } + ], + "descriptions": [ + { + "lang": "en", + "value": "[PROBLEMTYPE] in [COMPONENT] in [VENDOR] [PRODUCT] [VERSION] on [PLATFORMS] allows [ATTACKER] to [IMPACT] via [VECTOR]", + "supportingMedia": [ + { + "type": "text/html", + "base64": false, + "value": "[PROBLEMTYPE] in [COMPONENT] in [VENDOR] [PRODUCT] [VERSION] on [PLATFORMS] allows [ATTACKER] to [IMPACT] via [VECTOR]" + } + ] + } + ], + "references": [ + { + "url": "https://add-github-links-here" + } + ], + "source": { + "discovery": "UNKNOWN" + }, + "x_generator": { + "engine": "Vulnogram 0.2.0" + } + } + } +} \ No newline at end of file diff --git a/src/main/java/graphql/Directives.java b/src/main/java/graphql/Directives.java index da5bfc80b..37f2b2855 100644 --- a/src/main/java/graphql/Directives.java +++ b/src/main/java/graphql/Directives.java @@ -7,6 +7,8 @@ import graphql.language.StringValue; import graphql.schema.GraphQLDirective; +import java.util.concurrent.atomic.AtomicBoolean; + import static graphql.Scalars.GraphQLBoolean; import static graphql.Scalars.GraphQLString; import static graphql.introspection.Introspection.DirectiveLocation.ARGUMENT_DEFINITION; @@ -17,7 +19,10 @@ import static graphql.introspection.Introspection.DirectiveLocation.INLINE_FRAGMENT; import static graphql.introspection.Introspection.DirectiveLocation.INPUT_FIELD_DEFINITION; import static graphql.introspection.Introspection.DirectiveLocation.INPUT_OBJECT; +import static graphql.introspection.Introspection.DirectiveLocation.MUTATION; +import static graphql.introspection.Introspection.DirectiveLocation.QUERY; import static graphql.introspection.Introspection.DirectiveLocation.SCALAR; +import static graphql.introspection.Introspection.DirectiveLocation.SUBSCRIPTION; import static graphql.language.DirectiveLocation.newDirectiveLocation; import static graphql.language.InputValueDefinition.newInputValueDefinition; import static graphql.language.NonNullType.newNonNullType; @@ -37,6 +42,7 @@ public class Directives { private static final String SPECIFIED_BY = "specifiedBy"; private static final String ONE_OF = "oneOf"; private static final String DEFER = "defer"; + private static final String EXPERIMENTAL_DISABLE_ERROR_PROPAGATION = "experimental_disableErrorPropagation"; public static final DirectiveDefinition DEPRECATED_DIRECTIVE_DEFINITION; public static final DirectiveDefinition INCLUDE_DIRECTIVE_DEFINITION; @@ -46,6 +52,8 @@ public class Directives { public static final DirectiveDefinition ONE_OF_DIRECTIVE_DEFINITION; @ExperimentalApi public static final DirectiveDefinition DEFER_DIRECTIVE_DEFINITION; + @ExperimentalApi + public static final DirectiveDefinition EXPERIMENTAL_DISABLE_ERROR_PROPAGATION_DIRECTIVE_DEFINITION; public static final String BOOLEAN = "Boolean"; public static final String STRING = "String"; @@ -63,7 +71,7 @@ public class Directives { newInputValueDefinition() .name("reason") .description(createDescription("The reason for the deprecation")) - .type(newTypeName().name(STRING).build()) + .type(newNonNullType(newTypeName().name(STRING).build()).build()) .defaultValue(StringValue.newStringValue().value(NO_LONGER_SUPPORTED).build()) .build()) .build(); @@ -133,6 +141,13 @@ public class Directives { .type(newTypeName().name(STRING).build()) .build()) .build(); + EXPERIMENTAL_DISABLE_ERROR_PROPAGATION_DIRECTIVE_DEFINITION = DirectiveDefinition.newDirectiveDefinition() + .name(EXPERIMENTAL_DISABLE_ERROR_PROPAGATION) + .directiveLocation(newDirectiveLocation().name(QUERY.name()).build()) + .directiveLocation(newDirectiveLocation().name(MUTATION.name()).build()) + .directiveLocation(newDirectiveLocation().name(SUBSCRIPTION.name()).build()) + .description(createDescription("This directive allows returning null in non-null positions that have an associated error")) + .build(); } /** @@ -197,7 +212,7 @@ public class Directives { .description("Marks the field, argument, input field or enum value as deprecated") .argument(newArgument() .name("reason") - .type(GraphQLString) + .type(nonNull(GraphQLString)) .defaultValueProgrammatic(NO_LONGER_SUPPORTED) .description("The reason for the deprecation")) .validLocations(FIELD_DEFINITION, ENUM_VALUE, ARGUMENT_DEFINITION, INPUT_FIELD_DEFINITION) @@ -226,7 +241,35 @@ public class Directives { .definition(ONE_OF_DIRECTIVE_DEFINITION) .build(); + @ExperimentalApi + public static final GraphQLDirective ExperimentalDisableErrorPropagationDirective = GraphQLDirective.newDirective() + .name(EXPERIMENTAL_DISABLE_ERROR_PROPAGATION) + .description("This directive disables error propagation when a non nullable field returns null for the given operation.") + .validLocations(QUERY, MUTATION, SUBSCRIPTION) + .definition(EXPERIMENTAL_DISABLE_ERROR_PROPAGATION_DIRECTIVE_DEFINITION) + .build(); + private static Description createDescription(String s) { return new Description(s, null, false); } + + private static final AtomicBoolean EXPERIMENTAL_DISABLE_ERROR_PROPAGATION_DIRECTIVE_ENABLED = new AtomicBoolean(true); + + /** + * This can be used to get the state the `@experimental_disableErrorPropagation` directive support on a JVM wide basis . + * @return true if the `@experimental_disableErrorPropagation` directive will be respected + */ + public static boolean isExperimentalDisableErrorPropagationDirectiveEnabled() { + return EXPERIMENTAL_DISABLE_ERROR_PROPAGATION_DIRECTIVE_ENABLED.get(); + } + + /** + * This can be used to disable the `@experimental_disableErrorPropagation` directive support on a JVM wide basis in case your server + * implementation does NOT want to act on this directive ever. + * + * @param flag the desired state of the flag + */ + public static void setExperimentalDisableErrorPropagationEnabled(boolean flag) { + EXPERIMENTAL_DISABLE_ERROR_PROPAGATION_DIRECTIVE_ENABLED.set(flag); + } } diff --git a/src/main/java/graphql/DuckTyped.java b/src/main/java/graphql/DuckTyped.java new file mode 100644 index 000000000..83e298b6e --- /dev/null +++ b/src/main/java/graphql/DuckTyped.java @@ -0,0 +1,22 @@ +package graphql; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; + +/** + * An annotation that marks a method return value or method parameter as returning a duck type value. + *

+ * For efficiency reasons, the graphql engine methods can return {@link Object} values + * which maybe two well known types of values. Often a {@link java.util.concurrent.CompletableFuture} + * or a plain old {@link Object}, to represent an async value or a materialised value. + */ +@Internal +@Retention(RetentionPolicy.RUNTIME) +@Target(value = {METHOD, PARAMETER}) +public @interface DuckTyped { + String shape(); +} diff --git a/src/main/java/graphql/EngineRunningState.java b/src/main/java/graphql/EngineRunningState.java new file mode 100644 index 000000000..965fdb59f --- /dev/null +++ b/src/main/java/graphql/EngineRunningState.java @@ -0,0 +1,209 @@ +package graphql; + +import graphql.execution.EngineRunningObserver; +import graphql.execution.ExecutionId; +import org.jspecify.annotations.Nullable; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionStage; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Function; +import java.util.function.Supplier; + +import static graphql.Assert.assertTrue; +import static graphql.execution.EngineRunningObserver.RunningState.NOT_RUNNING; +import static graphql.execution.EngineRunningObserver.RunningState.RUNNING; + +@Internal +public class EngineRunningState { + + @Nullable + private final EngineRunningObserver engineRunningObserver; + @Nullable + private final GraphQLContext graphQLContext; + @Nullable + private volatile ExecutionId executionId; + + private final AtomicInteger isRunning = new AtomicInteger(0); + + @VisibleForTesting + public EngineRunningState() { + this.engineRunningObserver = null; + this.graphQLContext = null; + this.executionId = null; + } + + public EngineRunningState(ExecutionInput executionInput) { + EngineRunningObserver engineRunningObserver = executionInput.getGraphQLContext().get(EngineRunningObserver.ENGINE_RUNNING_OBSERVER_KEY); + if (engineRunningObserver != null) { + this.engineRunningObserver = engineRunningObserver; + this.graphQLContext = executionInput.getGraphQLContext(); + this.executionId = executionInput.getExecutionId(); + } else { + this.engineRunningObserver = null; + this.graphQLContext = null; + this.executionId = null; + } + } + + public CompletableFuture handle(CompletableFuture src, BiFunction fn) { + if (engineRunningObserver == null) { + return src.handle(fn); + } + src = observeCompletableFutureStart(src); + CompletableFuture result = src.handle((t, throwable) -> { + // because we added an artificial dependent CF on src (in observeCompletableFutureStart) , a throwable is a CompletionException + // that needs to be unwrapped + if (throwable != null) { + throwable = throwable.getCause(); + } + return fn.apply(t, throwable); + }); + observerCompletableFutureEnd(src); + return result; + } + + public CompletableFuture whenComplete(CompletableFuture src, BiConsumer fn) { + if (engineRunningObserver == null) { + return src.whenComplete(fn); + } + src = observeCompletableFutureStart(src); + CompletableFuture result = src.whenComplete((t, throwable) -> { + // because we added an artificial dependent CF on src (in observeCompletableFutureStart) , a throwable is a CompletionException + // that needs to be unwrapped + if (throwable != null) { + throwable = throwable.getCause(); + } + fn.accept(t, throwable); + }); + observerCompletableFutureEnd(src); + return result; + } + + public CompletableFuture compose(CompletableFuture src, Function> fn) { + if (engineRunningObserver == null) { + return src.thenCompose(fn); + } + CompletableFuture result = new CompletableFuture<>(); + src = observeCompletableFutureStart(src); + src.whenComplete((u, t) -> { + CompletionStage innerCF; + try { + innerCF = fn.apply(u).toCompletableFuture(); + } catch (Throwable e) { + innerCF = CompletableFuture.failedFuture(e); + } + // this run is needed to wrap around the result.complete()/result.completeExceptionally() call + innerCF.whenComplete((u1, t1) -> run(() -> { + if (t1 != null) { + result.completeExceptionally(t1); + } else { + result.complete(u1); + } + })); + }); + observerCompletableFutureEnd(src); + return result; + } + + + private CompletableFuture observeCompletableFutureStart(CompletableFuture future) { + if (engineRunningObserver == null) { + return future; + } + // the completion order of dependent CFs is in stack order for + // directly dependent CFs, but in reverse stack order for indirect dependent ones + // By creating one dependent CF on originalFetchValue, we make sure the order it is always + // in reverse stack order + future = future.thenApply(Function.identity()); + incrementRunningWhenCompleted(future); + return future; + } + + private void observerCompletableFutureEnd(CompletableFuture future) { + if (engineRunningObserver == null) { + return; + } + decrementRunningWhenCompleted(future); + } + + + private void incrementRunningWhenCompleted(CompletableFuture cf) { + cf.whenComplete((result, throwable) -> { + incrementRunning(); + }); + } + + private void decrementRunningWhenCompleted(CompletableFuture cf) { + cf.whenComplete((result, throwable) -> { + decrementRunning(); + }); + + } + + private void decrementRunning() { + if (engineRunningObserver == null) { + return; + } + assertTrue(isRunning.get() > 0); + if (isRunning.decrementAndGet() == 0) { + changeOfState(NOT_RUNNING); + } + } + + + private void incrementRunning() { + if (engineRunningObserver == null) { + return; + } + assertTrue(isRunning.get() >= 0); + if (isRunning.incrementAndGet() == 1) { + changeOfState(RUNNING); + } + + } + + + public void updateExecutionId(ExecutionId executionId) { + if (engineRunningObserver == null) { + return; + } + this.executionId = executionId; + } + + private void changeOfState(EngineRunningObserver.RunningState runningState) { + engineRunningObserver.runningStateChanged(executionId, graphQLContext, runningState); + } + + private void run(Runnable runnable) { + if (engineRunningObserver == null) { + runnable.run(); + return; + } + incrementRunning(); + try { + runnable.run(); + } finally { + decrementRunning(); + } + } + + /** + * Only used once outside of this class: when the execution starts + */ + public T call(Supplier supplier) { + if (engineRunningObserver == null) { + return supplier.get(); + } + incrementRunning(); + try { + return supplier.get(); + } finally { + decrementRunning(); + } + } + + +} diff --git a/src/main/java/graphql/ExecutionInput.java b/src/main/java/graphql/ExecutionInput.java index 18456034c..59efc4f48 100644 --- a/src/main/java/graphql/ExecutionInput.java +++ b/src/main/java/graphql/ExecutionInput.java @@ -7,8 +7,8 @@ import java.util.Locale; import java.util.Map; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; -import java.util.function.UnaryOperator; import static graphql.Assert.assertNotNull; import static graphql.execution.instrumentation.dataloader.EmptyDataLoaderRegistryInstance.EMPTY_DATALOADER_REGISTRY; @@ -29,6 +29,8 @@ public class ExecutionInput { private final DataLoaderRegistry dataLoaderRegistry; private final ExecutionId executionId; private final Locale locale; + // this is currently not used but we want it back soon after the v23 release + private final AtomicBoolean cancelled; @Internal @@ -44,6 +46,7 @@ private ExecutionInput(Builder builder) { this.locale = builder.locale != null ? builder.locale : Locale.getDefault(); // always have a locale in place this.localContext = builder.localContext; this.extensions = builder.extensions; + this.cancelled = builder.cancelled; } /** @@ -152,7 +155,8 @@ public ExecutionInput transform(Consumer builderConsumer) { .query(this.query) .operationName(this.operationName) .context(this.context) - .transfer(this.graphQLContext) + .internalTransferContext(this.graphQLContext) + .internalTransferCancelBoolean(this.cancelled) .localContext(this.localContext) .root(this.root) .dataLoaderRegistry(this.dataLoaderRegistry) @@ -208,7 +212,7 @@ public static class Builder { private Object localContext; private Object root; private RawVariables rawVariables = RawVariables.emptyVariables(); - public Map extensions = ImmutableKit.emptyMap(); + private Map extensions = ImmutableKit.emptyMap(); // // this is important - it allows code to later known if we never really set a dataloader and hence it can optimize // dataloader field tracking away. @@ -216,6 +220,7 @@ public static class Builder { private DataLoaderRegistry dataLoaderRegistry = EMPTY_DATALOADER_REGISTRY; private Locale locale = Locale.getDefault(); private ExecutionId executionId; + private AtomicBoolean cancelled = new AtomicBoolean(false); public Builder query(String query) { this.query = assertNotNull(query, () -> "query can't be null"); @@ -306,11 +311,18 @@ public Builder graphQLContext(Map mapOfContext) { } // hidden on purpose - private Builder transfer(GraphQLContext graphQLContext) { + private Builder internalTransferContext(GraphQLContext graphQLContext) { this.graphQLContext = Assert.assertNotNull(graphQLContext); return this; } + // hidden on purpose + private Builder internalTransferCancelBoolean(AtomicBoolean cancelled) { + this.cancelled = cancelled; + return this; + } + + public Builder root(Object root) { this.root = root; return this; diff --git a/src/main/java/graphql/ExecutionResult.java b/src/main/java/graphql/ExecutionResult.java index 4870144fe..f2e94765b 100644 --- a/src/main/java/graphql/ExecutionResult.java +++ b/src/main/java/graphql/ExecutionResult.java @@ -56,6 +56,16 @@ public interface ExecutionResult { */ Map toSpecification(); + /** + * This allows you to turn a map of results from {@link #toSpecification()} and turn it back into a {@link ExecutionResult} + * + * @param specificationMap the specification result map + * + * @return a new {@link ExecutionResult} from that map + */ + static ExecutionResult fromSpecification(Map specificationMap) { + return ExecutionResultImpl.fromSpecification(specificationMap); + } /** * This helps you transform the current {@link ExecutionResult} object into another one by starting a builder with all diff --git a/src/main/java/graphql/ExecutionResultImpl.java b/src/main/java/graphql/ExecutionResultImpl.java index 62419a63a..d39dbda15 100644 --- a/src/main/java/graphql/ExecutionResultImpl.java +++ b/src/main/java/graphql/ExecutionResultImpl.java @@ -97,6 +97,24 @@ private Object errorsToSpec(List errors) { return map(errors, GraphQLError::toSpecification); } + @SuppressWarnings("unchecked") + static ExecutionResult fromSpecification(Map specificationMap) { + ExecutionResult.Builder builder = ExecutionResult.newExecutionResult(); + Object data = specificationMap.get("data"); + if (data != null) { + builder.data(data); + } + List> errors = (List>) specificationMap.get("errors"); + if (errors != null) { + builder.errors(GraphqlErrorHelper.fromSpecification(errors)); + } + Map extensions = (Map) specificationMap.get("extensions"); + if (extensions != null) { + builder.extensions(extensions); + } + return builder.build(); + } + @Override public String toString() { return "ExecutionResultImpl{" + diff --git a/src/main/java/graphql/GraphQL.java b/src/main/java/graphql/GraphQL.java index 096a4f7e2..8c077a2a5 100644 --- a/src/main/java/graphql/GraphQL.java +++ b/src/main/java/graphql/GraphQL.java @@ -412,41 +412,44 @@ public CompletableFuture executeAsync(UnaryOperator executeAsync(ExecutionInput executionInput) { - ExecutionInput executionInputWithId = ensureInputHasId(executionInput); - - CompletableFuture instrumentationStateCF = instrumentation.createStateAsync(new InstrumentationCreateStateParameters(this.graphQLSchema, executionInputWithId)); - return Async.orNullCompletedFuture(instrumentationStateCF).thenCompose(instrumentationState -> { - try { - InstrumentationExecutionParameters inputInstrumentationParameters = new InstrumentationExecutionParameters(executionInputWithId, this.graphQLSchema); - ExecutionInput instrumentedExecutionInput = instrumentation.instrumentExecutionInput(executionInputWithId, inputInstrumentationParameters, instrumentationState); - - InstrumentationExecutionParameters instrumentationParameters = new InstrumentationExecutionParameters(instrumentedExecutionInput, this.graphQLSchema); - InstrumentationContext executionInstrumentation = nonNullCtx(instrumentation.beginExecution(instrumentationParameters, instrumentationState)); - executionInstrumentation.onDispatched(); - - GraphQLSchema graphQLSchema = instrumentation.instrumentSchema(this.graphQLSchema, instrumentationParameters, instrumentationState); - - CompletableFuture executionResult = parseValidateAndExecute(instrumentedExecutionInput, graphQLSchema, instrumentationState); - // - // finish up instrumentation - executionResult = executionResult.whenComplete(completeInstrumentationCtxCF(executionInstrumentation)); - // - // allow instrumentation to tweak the result - executionResult = executionResult.thenCompose(result -> instrumentation.instrumentExecutionResult(result, instrumentationParameters, instrumentationState)); - return executionResult; - } catch (AbortExecutionException abortException) { - return handleAbortException(executionInput, instrumentationState, abortException); - } + EngineRunningState engineRunningState = new EngineRunningState(executionInput); + return engineRunningState.call(() -> { + ExecutionInput executionInputWithId = ensureInputHasId(executionInput); + engineRunningState.updateExecutionId(executionInputWithId.getExecutionId()); + + CompletableFuture instrumentationStateCF = instrumentation.createStateAsync(new InstrumentationCreateStateParameters(this.graphQLSchema, executionInputWithId)); + instrumentationStateCF = Async.orNullCompletedFuture(instrumentationStateCF); + + return engineRunningState.compose(instrumentationStateCF, (instrumentationState -> { + try { + InstrumentationExecutionParameters inputInstrumentationParameters = new InstrumentationExecutionParameters(executionInputWithId, this.graphQLSchema); + ExecutionInput instrumentedExecutionInput = instrumentation.instrumentExecutionInput(executionInputWithId, inputInstrumentationParameters, instrumentationState); + + InstrumentationExecutionParameters instrumentationParameters = new InstrumentationExecutionParameters(instrumentedExecutionInput, this.graphQLSchema); + InstrumentationContext executionInstrumentation = nonNullCtx(instrumentation.beginExecution(instrumentationParameters, instrumentationState)); + executionInstrumentation.onDispatched(); + + GraphQLSchema graphQLSchema = instrumentation.instrumentSchema(this.graphQLSchema, instrumentationParameters, instrumentationState); + + CompletableFuture executionResult = parseValidateAndExecute(instrumentedExecutionInput, graphQLSchema, instrumentationState, engineRunningState); + // + // finish up instrumentation + executionResult = executionResult.whenComplete(completeInstrumentationCtxCF(executionInstrumentation)); + // + // allow instrumentation to tweak the result + executionResult = engineRunningState.compose(executionResult, (result -> instrumentation.instrumentExecutionResult(result, instrumentationParameters, instrumentationState))); + return executionResult; + } catch (AbortExecutionException abortException) { + return handleAbortException(executionInput, instrumentationState, abortException); + } + })); }); } + private CompletableFuture handleAbortException(ExecutionInput executionInput, InstrumentationState instrumentationState, AbortExecutionException abortException) { - CompletableFuture executionResult = CompletableFuture.completedFuture(abortException.toExecutionResult()); InstrumentationExecutionParameters instrumentationParameters = new InstrumentationExecutionParameters(executionInput, this.graphQLSchema); - // - // allow instrumentation to tweak the result - executionResult = executionResult.thenCompose(result -> instrumentation.instrumentExecutionResult(result, instrumentationParameters, instrumentationState)); - return executionResult; + return instrumentation.instrumentExecutionResult(abortException.toExecutionResult(), instrumentationParameters, instrumentationState); } private ExecutionInput ensureInputHasId(ExecutionInput executionInput) { @@ -460,7 +463,7 @@ private ExecutionInput ensureInputHasId(ExecutionInput executionInput) { } - private CompletableFuture parseValidateAndExecute(ExecutionInput executionInput, GraphQLSchema graphQLSchema, InstrumentationState instrumentationState) { + private CompletableFuture parseValidateAndExecute(ExecutionInput executionInput, GraphQLSchema graphQLSchema, InstrumentationState instrumentationState, EngineRunningState engineRunningState) { AtomicReference executionInputRef = new AtomicReference<>(executionInput); Function computeFunction = transformedInput -> { // if they change the original query in the pre-parser, then we want to see it downstream from then on @@ -468,22 +471,21 @@ private CompletableFuture parseValidateAndExecute(ExecutionInpu return parseAndValidate(executionInputRef, graphQLSchema, instrumentationState); }; CompletableFuture preparsedDoc = preparsedDocumentProvider.getDocumentAsync(executionInput, computeFunction); - return preparsedDoc.thenCompose(preparsedDocumentEntry -> { + return engineRunningState.compose(preparsedDoc, (preparsedDocumentEntry -> { if (preparsedDocumentEntry.hasErrors()) { return CompletableFuture.completedFuture(new ExecutionResultImpl(preparsedDocumentEntry.getErrors())); } try { - return execute(executionInputRef.get(), preparsedDocumentEntry.getDocument(), graphQLSchema, instrumentationState); + return execute(executionInputRef.get(), preparsedDocumentEntry.getDocument(), graphQLSchema, instrumentationState, engineRunningState); } catch (AbortExecutionException e) { return CompletableFuture.completedFuture(e.toExecutionResult()); } - }); + })); } private PreparsedDocumentEntry parseAndValidate(AtomicReference executionInputRef, GraphQLSchema graphQLSchema, InstrumentationState instrumentationState) { ExecutionInput executionInput = executionInputRef.get(); - String query = executionInput.getQuery(); ParseAndValidateResult parseResult = parse(executionInput, graphQLSchema, instrumentationState); if (parseResult.isFailure()) { @@ -537,13 +539,14 @@ private List validate(ExecutionInput executionInput, Document d private CompletableFuture execute(ExecutionInput executionInput, Document document, GraphQLSchema graphQLSchema, - InstrumentationState instrumentationState + InstrumentationState instrumentationState, + EngineRunningState engineRunningState ) { Execution execution = new Execution(queryStrategy, mutationStrategy, subscriptionStrategy, instrumentation, valueUnboxer, doNotAutomaticallyDispatchDataLoader); ExecutionId executionId = executionInput.getExecutionId(); - return execution.execute(document, graphQLSchema, executionId, executionInput, instrumentationState); + return execution.execute(document, graphQLSchema, executionId, executionInput, instrumentationState, engineRunningState); } } diff --git a/src/main/java/graphql/GraphQLError.java b/src/main/java/graphql/GraphQLError.java index c18752b14..90c3527b5 100644 --- a/src/main/java/graphql/GraphQLError.java +++ b/src/main/java/graphql/GraphQLError.java @@ -3,7 +3,7 @@ import graphql.execution.ResultPath; import graphql.language.SourceLocation; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.io.Serializable; import java.util.List; @@ -70,6 +70,17 @@ default Map getExtensions() { return null; } + /** + * This can be called to turn a specification error map into {@link GraphQLError} + * + * @param specificationMap the map of values that should have come via {@link GraphQLError#toSpecification()} + * + * @return a {@link GraphQLError} + */ + static GraphQLError fromSpecification(Map specificationMap) { + return GraphqlErrorHelper.fromSpecification(specificationMap); + } + /** * @return a new builder of {@link GraphQLError}s */ diff --git a/src/main/java/graphql/GraphqlErrorBuilder.java b/src/main/java/graphql/GraphqlErrorBuilder.java index 4cef5beab..eccaadb44 100644 --- a/src/main/java/graphql/GraphqlErrorBuilder.java +++ b/src/main/java/graphql/GraphqlErrorBuilder.java @@ -4,11 +4,12 @@ import graphql.execution.ResultPath; import graphql.language.SourceLocation; import graphql.schema.DataFetchingEnvironment; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import static graphql.Assert.assertNotNull; @@ -132,6 +133,18 @@ public GraphQLError build() { return new GraphqlErrorImpl(message, locations, errorType, path, extensions); } + /** + * A simple implementation of a {@link GraphQLError}. + *

+ * This provides {@link #hashCode()} and {@link #equals(Object)} methods that afford comparison with other + * {@link GraphQLError} implementations. However, the values provided in the following fields must + * in turn implement {@link #hashCode()} and {@link #equals(Object)} for this to function correctly: + *

+ */ private static class GraphqlErrorImpl implements GraphQLError { private final String message; private final List locations; @@ -176,6 +189,28 @@ public Map getExtensions() { public String toString() { return message; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof GraphQLError)) return false; + GraphQLError that = (GraphQLError) o; + return Objects.equals(getMessage(), that.getMessage()) + && Objects.equals(getLocations(), that.getLocations()) + && Objects.equals(getErrorType(), that.getErrorType()) + && Objects.equals(getPath(), that.getPath()) + && Objects.equals(getExtensions(), that.getExtensions()); + } + + @Override + public int hashCode() { + return Objects.hash( + getMessage(), + getLocations(), + getErrorType(), + getPath(), + getExtensions()); + } } /** diff --git a/src/main/java/graphql/GraphqlErrorHelper.java b/src/main/java/graphql/GraphqlErrorHelper.java index 5b2aaa134..35a20d03f 100644 --- a/src/main/java/graphql/GraphqlErrorHelper.java +++ b/src/main/java/graphql/GraphqlErrorHelper.java @@ -2,18 +2,20 @@ import graphql.language.SourceLocation; +import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; -import static graphql.collect.ImmutableKit.map; +import static graphql.collect.ImmutableKit.mapAndDropNulls; /** * This little helper allows GraphQlErrors to implement * common things (hashcode/ equals ) and to specification more easily */ -@SuppressWarnings("SimplifiableIfStatement") +@SuppressWarnings({"SimplifiableIfStatement", "unchecked"}) @Internal public class GraphqlErrorHelper { @@ -51,14 +53,80 @@ public static Map toSpecification(GraphQLError error) { } public static Object locations(List locations) { - return map(locations, GraphqlErrorHelper::location); + return mapAndDropNulls(locations, GraphqlErrorHelper::location); } + /** + * Positive integers starting from 1 required for error locations, + * from the spec ... + * + * @param location the source location in play + * + * @return a value for source location of the error + */ public static Object location(SourceLocation location) { - Map map = new LinkedHashMap<>(); - map.put("line", location.getLine()); - map.put("column", location.getColumn()); - return map; + if (location == null) { + return null; + } + int line = location.getLine(); + int column = location.getColumn(); + if (line < 1 || column < 1) { + return null; + } + return Map.of("line", line, "column", column); + } + + static List fromSpecification(List> specificationMaps) { + return specificationMaps.stream() + .map(GraphqlErrorHelper::fromSpecification).collect(Collectors.toList()); + } + + static GraphQLError fromSpecification(Map specificationMap) { + GraphQLError.Builder errorBuilder = GraphQLError.newError(); + // builder will enforce not null message + errorBuilder.message((String) specificationMap.get("message")); + extractLocations(errorBuilder, specificationMap); + extractPath(errorBuilder, specificationMap); + extractExtensions(errorBuilder, specificationMap); + return errorBuilder.build(); + } + + private static void extractPath(GraphQLError.Builder errorBuilder, Map rawError) { + List path = (List) rawError.get("path"); + if (path != null) { + errorBuilder.path(path); + } + } + + private static void extractExtensions(GraphQLError.Builder errorBuilder, Map rawError) { + Map extensions = (Map) rawError.get("extensions"); + if (extensions != null) { + errorBuilder.extensions(extensions); + Object classification = extensions.get("classification"); + if (classification != null) { + ErrorClassification errorClassification = ErrorClassification.errorClassification((String) classification); + errorBuilder.errorType(errorClassification); + } + } + + } + + private static void extractLocations(GraphQLError.Builder errorBuilder, Map rawError) { + List locations = (List) rawError.get("locations"); + if (locations != null) { + List sourceLocations = new ArrayList<>(); + for (Object locationObj : locations) { + Map location = (Map) locationObj; + if (location != null) { + Integer line = (Integer) location.get("line"); + Integer column = (Integer) location.get("column"); + if (line != null && column != null) { + sourceLocations.add(new SourceLocation(line, column)); + } + } + } + errorBuilder.locations(sourceLocations); + } } public static int hashCode(GraphQLError dis) { @@ -74,7 +142,9 @@ public static boolean equals(GraphQLError dis, Object o) { if (dis == o) { return true; } - if (o == null || dis.getClass() != o.getClass()) return false; + if (o == null || dis.getClass() != o.getClass()) { + return false; + } GraphQLError dat = (GraphQLError) o; diff --git a/src/main/java/graphql/Internal.java b/src/main/java/graphql/Internal.java index 9ba6a340f..cf9d0c3e4 100644 --- a/src/main/java/graphql/Internal.java +++ b/src/main/java/graphql/Internal.java @@ -4,6 +4,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import static java.lang.annotation.ElementType.ANNOTATION_TYPE; import static java.lang.annotation.ElementType.CONSTRUCTOR; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.METHOD; @@ -17,6 +18,6 @@ * In general unnecessary changes will be avoided but you should not depend on internal classes being stable */ @Retention(RetentionPolicy.RUNTIME) -@Target(value = {CONSTRUCTOR, METHOD, TYPE, FIELD, PACKAGE}) +@Target(value = {CONSTRUCTOR, METHOD, TYPE, FIELD, PACKAGE, ANNOTATION_TYPE}) public @interface Internal { } diff --git a/src/main/java/graphql/ParseAndValidate.java b/src/main/java/graphql/ParseAndValidate.java index 9410a5ec1..0ecb17947 100644 --- a/src/main/java/graphql/ParseAndValidate.java +++ b/src/main/java/graphql/ParseAndValidate.java @@ -8,7 +8,7 @@ import graphql.schema.GraphQLSchema; import graphql.validation.ValidationError; import graphql.validation.Validator; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.List; import java.util.Locale; @@ -42,7 +42,7 @@ public class ParseAndValidate { * * @return a result object that indicates how this operation went */ - public static ParseAndValidateResult parseAndValidate(@NotNull GraphQLSchema graphQLSchema, @NotNull ExecutionInput executionInput) { + public static ParseAndValidateResult parseAndValidate(@NonNull GraphQLSchema graphQLSchema, @NonNull ExecutionInput executionInput) { ParseAndValidateResult result = parse(executionInput); if (!result.isFailure()) { List errors = validate(graphQLSchema, result.getDocument(), executionInput.getLocale()); @@ -58,7 +58,7 @@ public static ParseAndValidateResult parseAndValidate(@NotNull GraphQLSchema gra * * @return a result object that indicates how this operation went */ - public static ParseAndValidateResult parse(@NotNull ExecutionInput executionInput) { + public static ParseAndValidateResult parse(@NonNull ExecutionInput executionInput) { try { // // we allow the caller to specify new parser options by context @@ -87,7 +87,7 @@ public static ParseAndValidateResult parse(@NotNull ExecutionInput executionInpu * * @return a result object that indicates how this operation went */ - public static List validate(@NotNull GraphQLSchema graphQLSchema, @NotNull Document parsedDocument, @NotNull Locale locale) { + public static List validate(@NonNull GraphQLSchema graphQLSchema, @NonNull Document parsedDocument, @NonNull Locale locale) { return validate(graphQLSchema, parsedDocument, ruleClass -> true, locale); } @@ -99,7 +99,7 @@ public static List validate(@NotNull GraphQLSchema graphQLSchem * * @return a result object that indicates how this operation went */ - public static List validate(@NotNull GraphQLSchema graphQLSchema, @NotNull Document parsedDocument) { + public static List validate(@NonNull GraphQLSchema graphQLSchema, @NonNull Document parsedDocument) { return validate(graphQLSchema, parsedDocument, ruleClass -> true, Locale.getDefault()); } @@ -113,7 +113,7 @@ public static List validate(@NotNull GraphQLSchema graphQLSchem * * @return a result object that indicates how this operation went */ - public static List validate(@NotNull GraphQLSchema graphQLSchema, @NotNull Document parsedDocument, @NotNull Predicate> rulePredicate, @NotNull Locale locale) { + public static List validate(@NonNull GraphQLSchema graphQLSchema, @NonNull Document parsedDocument, @NonNull Predicate> rulePredicate, @NonNull Locale locale) { Validator validator = new Validator(); return validator.validateDocument(graphQLSchema, parsedDocument, rulePredicate, locale); } @@ -127,7 +127,7 @@ public static List validate(@NotNull GraphQLSchema graphQLSchem * * @return a result object that indicates how this operation went */ - public static List validate(@NotNull GraphQLSchema graphQLSchema, @NotNull Document parsedDocument, @NotNull Predicate> rulePredicate) { + public static List validate(@NonNull GraphQLSchema graphQLSchema, @NonNull Document parsedDocument, @NonNull Predicate> rulePredicate) { Validator validator = new Validator(); return validator.validateDocument(graphQLSchema, parsedDocument, rulePredicate, Locale.getDefault()); } diff --git a/src/main/java/graphql/analysis/MaxQueryComplexityInstrumentation.java b/src/main/java/graphql/analysis/MaxQueryComplexityInstrumentation.java index 6e47e92bb..64a79612d 100644 --- a/src/main/java/graphql/analysis/MaxQueryComplexityInstrumentation.java +++ b/src/main/java/graphql/analysis/MaxQueryComplexityInstrumentation.java @@ -11,7 +11,7 @@ import graphql.execution.instrumentation.parameters.InstrumentationExecuteOperationParameters; import graphql.execution.instrumentation.parameters.InstrumentationValidationParameters; import graphql.validation.ValidationError; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/src/main/java/graphql/analysis/MaxQueryDepthInstrumentation.java b/src/main/java/graphql/analysis/MaxQueryDepthInstrumentation.java index f1cee8822..f242baf33 100644 --- a/src/main/java/graphql/analysis/MaxQueryDepthInstrumentation.java +++ b/src/main/java/graphql/analysis/MaxQueryDepthInstrumentation.java @@ -8,9 +8,7 @@ import graphql.execution.instrumentation.InstrumentationState; import graphql.execution.instrumentation.SimplePerformantInstrumentation; import graphql.execution.instrumentation.parameters.InstrumentationExecuteOperationParameters; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.jspecify.annotations.Nullable; import java.util.function.Function; @@ -25,7 +23,6 @@ @PublicApi public class MaxQueryDepthInstrumentation extends SimplePerformantInstrumentation { - private static final Logger log = LoggerFactory.getLogger(MaxQueryDepthInstrumentation.class); private final int maxDepth; private final Function maxQueryDepthExceededFunction; @@ -54,9 +51,6 @@ public MaxQueryDepthInstrumentation(int maxDepth, Function beginExecuteOperation(InstrumentationExecuteOperationParameters parameters, InstrumentationState state) { QueryTraverser queryTraverser = newQueryTraverser(parameters.getExecutionContext()); int depth = queryTraverser.reducePreOrder((env, acc) -> Math.max(getPathLength(env.getParentEnvironment()), acc), 0); - if (log.isDebugEnabled()) { - log.debug("Query depth info: {}", depth); - } if (depth > maxDepth) { QueryDepthInfo queryDepthInfo = QueryDepthInfo.newQueryDepthInfo() .depth(depth) diff --git a/src/main/java/graphql/analysis/values/ValueVisitor.java b/src/main/java/graphql/analysis/values/ValueVisitor.java index 21ae97c0a..b8ea0a221 100644 --- a/src/main/java/graphql/analysis/values/ValueVisitor.java +++ b/src/main/java/graphql/analysis/values/ValueVisitor.java @@ -10,7 +10,7 @@ import graphql.schema.GraphQLInputValueDefinition; import graphql.schema.GraphQLList; import graphql.schema.GraphQLScalarType; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Map; diff --git a/src/main/java/graphql/execution/AbstractAsyncExecutionStrategy.java b/src/main/java/graphql/execution/AbstractAsyncExecutionStrategy.java index 863e0d6fa..6ae7f851e 100644 --- a/src/main/java/graphql/execution/AbstractAsyncExecutionStrategy.java +++ b/src/main/java/graphql/execution/AbstractAsyncExecutionStrategy.java @@ -5,7 +5,6 @@ import graphql.ExecutionResultImpl; import graphql.PublicSpi; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.concurrent.CompletableFuture; @@ -28,6 +27,7 @@ protected BiConsumer, Throwable> handleResults(ExecutionContext exe handleNonNullException(executionContext, overallResult, exception); return; } + Map resolvedValuesByField = Maps.newLinkedHashMapWithExpectedSize(fieldNames.size()); int ix = 0; for (Object result : results) { diff --git a/src/main/java/graphql/execution/Async.java b/src/main/java/graphql/execution/Async.java index aa05f6ee4..aefe80595 100644 --- a/src/main/java/graphql/execution/Async.java +++ b/src/main/java/graphql/execution/Async.java @@ -2,8 +2,8 @@ import graphql.Assert; import graphql.Internal; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.Arrays; @@ -230,7 +230,7 @@ public CompletableFuture> await() { } @SuppressWarnings("unchecked") - @NotNull + @NonNull private CompletableFuture[] copyOnlyCFsToArray() { if (cfCount == array.length) { // if it's all CFs - make a type safe copy via C code @@ -258,7 +258,7 @@ public Object awaitPolymorphic() { } } - @NotNull + @NonNull private List materialisedList(Object[] array) { List results = new ArrayList<>(array.length); for (Object object : array) { @@ -405,7 +405,7 @@ public static CompletableFuture exceptionallyCompletedFuture(Throwable ex * * @return the completableFuture if it's not null or one that always resoles to null */ - public static @NotNull CompletableFuture orNullCompletedFuture(@Nullable CompletableFuture completableFuture) { + public static @NonNull CompletableFuture orNullCompletedFuture(@Nullable CompletableFuture completableFuture) { return completableFuture != null ? completableFuture : CompletableFuture.completedFuture(null); } -} \ No newline at end of file +} diff --git a/src/main/java/graphql/execution/AsyncExecutionStrategy.java b/src/main/java/graphql/execution/AsyncExecutionStrategy.java index 27e24ace8..f7734df9f 100644 --- a/src/main/java/graphql/execution/AsyncExecutionStrategy.java +++ b/src/main/java/graphql/execution/AsyncExecutionStrategy.java @@ -72,14 +72,14 @@ public CompletableFuture execute(ExecutionContext executionCont for (FieldValueInfo completeValueInfo : completeValueInfos) { fieldValuesFutures.addObject(completeValueInfo.getFieldValueObject()); } - dataLoaderDispatcherStrategy.executionStrategyOnFieldValuesInfo(completeValueInfos, parameters); + dataLoaderDispatcherStrategy.executionStrategyOnFieldValuesInfo(completeValueInfos); executionStrategyCtx.onFieldValuesInfo(completeValueInfos); fieldValuesFutures.await().whenComplete(handleResultsConsumer); }).exceptionally((ex) -> { // if there are any issues with combining/handling the field results, // complete the future at all costs and bubble up any thrown exception so // the execution does not hang. - dataLoaderDispatcherStrategy.executionStrategyOnFieldValuesException(ex, parameters); + dataLoaderDispatcherStrategy.executionStrategyOnFieldValuesException(ex); executionStrategyCtx.onFieldValuesException(); overallResult.completeExceptionally(ex); return null; @@ -88,4 +88,5 @@ public CompletableFuture execute(ExecutionContext executionCont overallResult.whenComplete(executionStrategyCtx::onCompleted); return overallResult; } + } diff --git a/src/main/java/graphql/execution/AsyncSerialExecutionStrategy.java b/src/main/java/graphql/execution/AsyncSerialExecutionStrategy.java index 6f64b8cd8..545d0fb0a 100644 --- a/src/main/java/graphql/execution/AsyncSerialExecutionStrategy.java +++ b/src/main/java/graphql/execution/AsyncSerialExecutionStrategy.java @@ -32,7 +32,7 @@ public AsyncSerialExecutionStrategy(DataFetcherExceptionHandler exceptionHandler @Override @SuppressWarnings({"TypeParameterUnusedInFormals", "FutureReturnValueIgnored"}) public CompletableFuture execute(ExecutionContext executionContext, ExecutionStrategyParameters parameters) throws NonNullableFieldWasNullException { - executionContext.getDataLoaderDispatcherStrategy().executionStrategy(executionContext, parameters); + DataLoaderDispatchStrategy dataLoaderDispatcherStrategy = executionContext.getDataLoaderDispatcherStrategy(); Instrumentation instrumentation = executionContext.getInstrumentation(); InstrumentationExecutionStrategyParameters instrumentationParameters = new InstrumentationExecutionStrategyParameters(executionContext, parameters); @@ -54,7 +54,9 @@ public CompletableFuture execute(ExecutionContext executionCont ResultPath fieldPath = parameters.getPath().segment(mkNameForPath(currentField)); ExecutionStrategyParameters newParameters = parameters .transform(builder -> builder.field(currentField).path(fieldPath)); - return resolveField(executionContext, newParameters); + + Object resolveSerialField = resolveSerialField(executionContext, dataLoaderDispatcherStrategy, newParameters); + return resolveSerialField; }); CompletableFuture overallResult = new CompletableFuture<>(); @@ -65,4 +67,23 @@ public CompletableFuture execute(ExecutionContext executionCont return overallResult; } + private Object resolveSerialField(ExecutionContext executionContext, + DataLoaderDispatchStrategy dataLoaderDispatcherStrategy, + ExecutionStrategyParameters newParameters) { + dataLoaderDispatcherStrategy.executionSerialStrategy(executionContext, newParameters); + + Object fieldWithInfo = resolveFieldWithInfo(executionContext, newParameters); + if (fieldWithInfo instanceof CompletableFuture) { + //noinspection unchecked + return ((CompletableFuture) fieldWithInfo).thenCompose(fvi -> { + dataLoaderDispatcherStrategy.executionStrategyOnFieldValuesInfo(List.of(fvi)); + CompletableFuture fieldValueFuture = fvi.getFieldValueFuture(); + return fieldValueFuture; + }); + } else { + FieldValueInfo fvi = (FieldValueInfo) fieldWithInfo; + dataLoaderDispatcherStrategy.executionStrategyOnFieldValuesInfo(List.of(fvi)); + return fvi.getFieldValueObject(); + } + } } diff --git a/src/main/java/graphql/execution/CoercedVariables.java b/src/main/java/graphql/execution/CoercedVariables.java index feeed4fb5..6123aeec8 100644 --- a/src/main/java/graphql/execution/CoercedVariables.java +++ b/src/main/java/graphql/execution/CoercedVariables.java @@ -11,6 +11,7 @@ */ @PublicApi public class CoercedVariables { + private static final CoercedVariables EMPTY = CoercedVariables.of(ImmutableKit.emptyMap()); private final ImmutableMapWithNullValues coercedVariables; public CoercedVariables(Map coercedVariables) { @@ -30,7 +31,7 @@ public Object get(String key) { } public static CoercedVariables emptyVariables() { - return new CoercedVariables(ImmutableKit.emptyMap()); + return EMPTY; } public static CoercedVariables of(Map coercedVariables) { diff --git a/src/main/java/graphql/execution/DataFetcherResult.java b/src/main/java/graphql/execution/DataFetcherResult.java index 3baa4f4fe..cbf0a0363 100644 --- a/src/main/java/graphql/execution/DataFetcherResult.java +++ b/src/main/java/graphql/execution/DataFetcherResult.java @@ -39,20 +39,6 @@ public class DataFetcherResult { private final Object localContext; private final Map extensions; - /** - * Creates a data fetcher result - * - * @param data the data - * @param errors the errors - * - * @deprecated use the {@link #newResult()} builder instead - */ - @Internal - @Deprecated(since = "2019-01-11") - public DataFetcherResult(T data, List errors) { - this(data, errors, null, null); - } - private DataFetcherResult(T data, List errors, Object localContext, Map extensions) { this.data = data; this.errors = ImmutableList.copyOf(assertNotNull(errors)); diff --git a/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java b/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java index 9e21b94bf..5101ae3a5 100644 --- a/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java +++ b/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java @@ -16,11 +16,15 @@ default void executionStrategy(ExecutionContext executionContext, ExecutionStrat } - default void executionStrategyOnFieldValuesInfo(List fieldValueInfoList, ExecutionStrategyParameters parameters) { + default void executionSerialStrategy(ExecutionContext executionContext, ExecutionStrategyParameters parameters) { } - default void executionStrategyOnFieldValuesException(Throwable t, ExecutionStrategyParameters parameters) { + default void executionStrategyOnFieldValuesInfo(List fieldValueInfoList) { + + } + + default void executionStrategyOnFieldValuesException(Throwable t) { } diff --git a/src/main/java/graphql/execution/EngineRunningObserver.java b/src/main/java/graphql/execution/EngineRunningObserver.java new file mode 100644 index 000000000..008623eed --- /dev/null +++ b/src/main/java/graphql/execution/EngineRunningObserver.java @@ -0,0 +1,38 @@ +package graphql.execution; + +import graphql.ExperimentalApi; +import graphql.GraphQLContext; +import org.jspecify.annotations.NullMarked; + +/** + * This class lets you observe the running state of the graphql-java engine. As it processes and dispatches graphql fields, + * the engine moves in and out of a running and not running state. As it does this, the callback is called with information telling you the current + * state. + */ +@ExperimentalApi +@NullMarked +public interface EngineRunningObserver { + + enum RunningState { + /** + * Represents that the engine code is actively running its own code + */ + RUNNING, + /** + * Represents that the engine code is asynchronously waiting for fetching to happen + */ + NOT_RUNNING, + } + + + String ENGINE_RUNNING_OBSERVER_KEY = "__ENGINE_RUNNING_OBSERVER"; + + + /** + * This will be called when the running state of the graphql-java engine changes. + * + * @param executionId the id of the current execution + * @param graphQLContext the graphql context + */ + void runningStateChanged(ExecutionId executionId, GraphQLContext graphQLContext, RunningState runningState); +} diff --git a/src/main/java/graphql/execution/Execution.java b/src/main/java/graphql/execution/Execution.java index cf805a84f..a784325f3 100644 --- a/src/main/java/graphql/execution/Execution.java +++ b/src/main/java/graphql/execution/Execution.java @@ -1,6 +1,8 @@ package graphql.execution; +import graphql.Directives; +import graphql.EngineRunningState; import graphql.ExecutionInput; import graphql.ExecutionResult; import graphql.ExecutionResultImpl; @@ -20,14 +22,16 @@ import graphql.extensions.ExtensionsBuilder; import graphql.incremental.DelayedIncrementalPartialResult; import graphql.incremental.IncrementalExecutionResultImpl; +import graphql.language.Directive; import graphql.language.Document; -import graphql.language.FragmentDefinition; import graphql.language.NodeUtil; import graphql.language.OperationDefinition; import graphql.language.VariableDefinition; import graphql.schema.GraphQLObjectType; import graphql.schema.GraphQLSchema; import graphql.schema.impl.SchemaUtil; +import graphql.util.FpKit; +import org.jspecify.annotations.NonNull; import org.reactivestreams.Publisher; import java.util.Collections; @@ -35,7 +39,9 @@ import java.util.Map; import java.util.Optional; import java.util.concurrent.CompletableFuture; +import java.util.function.Supplier; +import static graphql.Directives.EXPERIMENTAL_DISABLE_ERROR_PROPAGATION_DIRECTIVE_DEFINITION; import static graphql.execution.ExecutionContextBuilder.newExecutionContextBuilder; import static graphql.execution.ExecutionStepInfo.newExecutionStepInfo; import static graphql.execution.ExecutionStrategyParameters.newParameters; @@ -67,18 +73,14 @@ public Execution(ExecutionStrategy queryStrategy, this.doNotAutomaticallyDispatchDataLoader = doNotAutomaticallyDispatchDataLoader; } - public CompletableFuture execute(Document document, GraphQLSchema graphQLSchema, ExecutionId executionId, ExecutionInput executionInput, InstrumentationState instrumentationState) { - - NodeUtil.GetOperationResult getOperationResult = NodeUtil.getOperation(document, executionInput.getOperationName()); - Map fragmentsByName = getOperationResult.fragmentsByName; - OperationDefinition operationDefinition = getOperationResult.operationDefinition; - - RawVariables inputVariables = executionInput.getRawVariables(); - List variableDefinitions = operationDefinition.getVariableDefinitions(); - + public CompletableFuture execute(Document document, GraphQLSchema graphQLSchema, ExecutionId executionId, ExecutionInput executionInput, InstrumentationState instrumentationState, EngineRunningState engineRunningState) { + NodeUtil.GetOperationResult getOperationResult; CoercedVariables coercedVariables; + Supplier normalizedVariableValues; try { - coercedVariables = ValuesResolver.coerceVariableValues(graphQLSchema, variableDefinitions, inputVariables, executionInput.getGraphQLContext(), executionInput.getLocale()); + getOperationResult = NodeUtil.getOperation(document, executionInput.getOperationName()); + coercedVariables = coerceVariableValues(graphQLSchema, executionInput, getOperationResult.operationDefinition); + normalizedVariableValues = normalizedVariableValues(graphQLSchema, executionInput, getOperationResult); } catch (RuntimeException rte) { if (rte instanceof GraphQLError) { return completedFuture(new ExecutionResultImpl((GraphQLError) rte)); @@ -86,6 +88,8 @@ public CompletableFuture execute(Document document, GraphQLSche throw rte; } + boolean propagateErrorsOnNonNullContractFailure = propagateErrorsOnNonNullContractFailure(getOperationResult.operationDefinition.getDirectives()); + ExecutionContext executionContext = newExecutionContextBuilder() .instrumentation(instrumentation) .instrumentationState(instrumentationState) @@ -98,14 +102,17 @@ public CompletableFuture execute(Document document, GraphQLSche .graphQLContext(executionInput.getGraphQLContext()) .localContext(executionInput.getLocalContext()) .root(executionInput.getRoot()) - .fragmentsByName(fragmentsByName) + .fragmentsByName(getOperationResult.fragmentsByName) .coercedVariables(coercedVariables) + .normalizedVariableValues(normalizedVariableValues) .document(document) - .operationDefinition(operationDefinition) + .operationDefinition(getOperationResult.operationDefinition) .dataLoaderRegistry(executionInput.getDataLoaderRegistry()) .locale(executionInput.getLocale()) .valueUnboxer(valueUnboxer) .executionInput(executionInput) + .propagapropagateErrorsOnNonNullContractFailureeErrors(propagateErrorsOnNonNullContractFailure) + .engineRunningState(engineRunningState) .build(); executionContext.getGraphQLContext().put(ResultNodesInfo.RESULT_NODES_INFO, executionContext.getResultNodesInfo()); @@ -117,6 +124,25 @@ public CompletableFuture execute(Document document, GraphQLSche return executeOperation(executionContext, executionInput.getRoot(), executionContext.getOperationDefinition()); } + private static @NonNull CoercedVariables coerceVariableValues(GraphQLSchema graphQLSchema, ExecutionInput executionInput, OperationDefinition operationDefinition) { + RawVariables inputVariables = executionInput.getRawVariables(); + List variableDefinitions = operationDefinition.getVariableDefinitions(); + return ValuesResolver.coerceVariableValues(graphQLSchema, variableDefinitions, inputVariables, executionInput.getGraphQLContext(), executionInput.getLocale()); + } + + private static @NonNull Supplier normalizedVariableValues(GraphQLSchema graphQLSchema, ExecutionInput executionInput, NodeUtil.GetOperationResult getOperationResult) { + Supplier normalizedVariableValues; + RawVariables inputVariables = executionInput.getRawVariables(); + List variableDefinitions = getOperationResult.operationDefinition.getVariableDefinitions(); + + normalizedVariableValues = FpKit.intraThreadMemoize(() -> + ValuesResolver.getNormalizedVariableValues(graphQLSchema, + variableDefinitions, + inputVariables, + executionInput.getGraphQLContext(), executionInput.getLocale())); + return normalizedVariableValues; + } + private CompletableFuture executeOperation(ExecutionContext executionContext, Object root, OperationDefinition operationDefinition) { @@ -228,7 +254,7 @@ private DataLoaderDispatchStrategy createDataLoaderDispatchStrategy(ExecutionCon if (executionContext.getDataLoaderRegistry() == EMPTY_DATALOADER_REGISTRY || doNotAutomaticallyDispatchDataLoader) { return DataLoaderDispatchStrategy.NO_OP; } - if (executionStrategy instanceof AsyncExecutionStrategy) { + if (!executionContext.isSubscriptionOperation()) { boolean deferEnabled = Optional.ofNullable(executionContext.getGraphQLContext()) .map(graphqlContext -> graphqlContext.getBoolean(ExperimentalApi.ENABLE_INCREMENTAL_SUPPORT)) .orElse(false); @@ -262,4 +288,13 @@ private ExecutionResult mergeExtensionsBuilderIfPresent(ExecutionResult executio } return executionResult; } + + private boolean propagateErrorsOnNonNullContractFailure(List directives) { + boolean jvmWideEnabled = Directives.isExperimentalDisableErrorPropagationDirectiveEnabled(); + if (! jvmWideEnabled) { + return true; + } + Directive foundDirective = NodeUtil.findNodeByName(directives, EXPERIMENTAL_DISABLE_ERROR_PROPAGATION_DIRECTIVE_DEFINITION.getName()); + return foundDirective == null; + } } diff --git a/src/main/java/graphql/execution/ExecutionContext.java b/src/main/java/graphql/execution/ExecutionContext.java index c122f9d2c..a53ae621e 100644 --- a/src/main/java/graphql/execution/ExecutionContext.java +++ b/src/main/java/graphql/execution/ExecutionContext.java @@ -3,7 +3,9 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import graphql.EngineRunningState; import graphql.ExecutionInput; +import graphql.ExperimentalApi; import graphql.GraphQLContext; import graphql.GraphQLError; import graphql.Internal; @@ -27,6 +29,7 @@ import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; import java.util.function.Supplier; @@ -45,6 +48,7 @@ public class ExecutionContext { private final OperationDefinition operationDefinition; private final Document document; private final CoercedVariables coercedVariables; + private final Supplier normalizedVariables; private final Object root; private final Object context; private final GraphQLContext graphQLContext; @@ -59,11 +63,15 @@ public class ExecutionContext { private final ValueUnboxer valueUnboxer; private final ExecutionInput executionInput; private final Supplier queryTree; + private final boolean propagateErrorsOnNonNullContractFailure; + + private final AtomicInteger isRunning = new AtomicInteger(0); // this is modified after creation so it needs to be volatile to ensure visibility across Threads private volatile DataLoaderDispatchStrategy dataLoaderDispatcherStrategy = DataLoaderDispatchStrategy.NO_OP; private final ResultNodesInfo resultNodesInfo = new ResultNodesInfo(); + private final EngineRunningState engineRunningState; ExecutionContext(ExecutionContextBuilder builder) { this.graphQLSchema = builder.graphQLSchema; @@ -74,6 +82,7 @@ public class ExecutionContext { this.subscriptionStrategy = builder.subscriptionStrategy; this.fragmentsByName = builder.fragmentsByName; this.coercedVariables = builder.coercedVariables; + this.normalizedVariables = builder.normalizedVariables; this.document = builder.document; this.operationDefinition = builder.operationDefinition; this.context = builder.context; @@ -88,6 +97,8 @@ public class ExecutionContext { this.executionInput = builder.executionInput; this.dataLoaderDispatcherStrategy = builder.dataLoaderDispatcherStrategy; this.queryTree = FpKit.interThreadMemoize(() -> ExecutableNormalizedOperationFactory.createExecutableNormalizedOperation(graphQLSchema, operationDefinition, fragmentsByName, coercedVariables)); + this.propagateErrorsOnNonNullContractFailure = builder.propagateErrorsOnNonNullContractFailure; + this.engineRunningState = builder.engineRunningState; } @@ -127,6 +138,13 @@ public CoercedVariables getCoercedVariables() { return coercedVariables; } + /** + * @return a supplier that will give out the operations variables in normalized form + */ + public Supplier getNormalizedVariables() { + return normalizedVariables; + } + /** * @param for two * @@ -170,6 +188,46 @@ public ValueUnboxer getValueUnboxer() { return valueUnboxer; } + /** + * @return true if the current operation should propagate errors in non-null positions + * Propagating errors is the default. Error aware clients may opt in returning null in non-null positions + * by using the `@experimental_disableErrorPropagation` directive. + * + * @see graphql.Directives#setExperimentalDisableErrorPropagationEnabled(boolean) to change the JVM wide default + */ + @ExperimentalApi + public boolean propagateErrorsOnNonNullContractFailure() { + return propagateErrorsOnNonNullContractFailure; + } + + /** + * @return true if the current operation is a Query + */ + public boolean isQueryOperation() { + return isOpType(OperationDefinition.Operation.QUERY); + } + + /** + * @return true if the current operation is a Mutation + */ + public boolean isMutationOperation() { + return isOpType(OperationDefinition.Operation.MUTATION); + } + + /** + * @return true if the current operation is a Subscription + */ + public boolean isSubscriptionOperation() { + return isOpType(OperationDefinition.Operation.SUBSCRIPTION); + } + + private boolean isOpType(OperationDefinition.Operation operation) { + if (operationDefinition != null) { + return operation.equals(operationDefinition.getOperation()); + } + return false; + } + /** * This method will only put one error per field path. * @@ -301,4 +359,10 @@ public ExecutionContext transform(Consumer builderConsu public ResultNodesInfo getResultNodesInfo() { return resultNodesInfo; } + + @Internal + public EngineRunningState getEngineRunningState() { + return engineRunningState; + } + } diff --git a/src/main/java/graphql/execution/ExecutionContextBuilder.java b/src/main/java/graphql/execution/ExecutionContextBuilder.java index b60c793b2..014bab516 100644 --- a/src/main/java/graphql/execution/ExecutionContextBuilder.java +++ b/src/main/java/graphql/execution/ExecutionContextBuilder.java @@ -2,11 +2,12 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import graphql.EngineRunningState; import graphql.ExecutionInput; +import graphql.ExperimentalApi; import graphql.GraphQLContext; import graphql.GraphQLError; import graphql.Internal; -import graphql.PublicApi; import graphql.collect.ImmutableKit; import graphql.execution.instrumentation.Instrumentation; import graphql.execution.instrumentation.InstrumentationState; @@ -15,14 +16,16 @@ import graphql.language.OperationDefinition; import graphql.schema.GraphQLSchema; import org.dataloader.DataLoaderRegistry; +import org.jspecify.annotations.Nullable; import java.util.Locale; import java.util.Map; +import java.util.function.Supplier; import static graphql.Assert.assertNotNull; import static graphql.collect.ImmutableKit.emptyList; -@PublicApi +@Internal public class ExecutionContextBuilder { Instrumentation instrumentation; @@ -38,6 +41,7 @@ public class ExecutionContextBuilder { Document document; OperationDefinition operationDefinition; CoercedVariables coercedVariables = CoercedVariables.emptyVariables(); + Supplier normalizedVariables = NormalizedVariables::emptyVariables; ImmutableMap fragmentsByName = ImmutableKit.emptyMap(); DataLoaderRegistry dataLoaderRegistry; Locale locale; @@ -46,6 +50,8 @@ public class ExecutionContextBuilder { Object localContext; ExecutionInput executionInput; DataLoaderDispatchStrategy dataLoaderDispatcherStrategy = DataLoaderDispatchStrategy.NO_OP; + boolean propagateErrorsOnNonNullContractFailure = true; + EngineRunningState engineRunningState; /** * @return a new builder of {@link graphql.execution.ExecutionContext}s @@ -92,6 +98,8 @@ public ExecutionContextBuilder() { valueUnboxer = other.getValueUnboxer(); executionInput = other.getExecutionInput(); dataLoaderDispatcherStrategy = other.getDataLoaderDispatcherStrategy(); + propagateErrorsOnNonNullContractFailure = other.propagateErrorsOnNonNullContractFailure(); + engineRunningState = other.getEngineRunningState(); } public ExecutionContextBuilder instrumentation(Instrumentation instrumentation) { @@ -133,7 +141,7 @@ public ExecutionContextBuilder subscriptionStrategy(ExecutionStrategy subscripti * @deprecated use {@link #graphQLContext(GraphQLContext)} instead */ @Deprecated(since = "2021-07-05") - public ExecutionContextBuilder context(Object context) { + public ExecutionContextBuilder context(@Nullable Object context) { this.context = context; return this; } @@ -170,6 +178,11 @@ public ExecutionContextBuilder coercedVariables(CoercedVariables coercedVariable return this; } + public ExecutionContextBuilder normalizedVariableValues(Supplier normalizedVariables) { + this.normalizedVariables = normalizedVariables; + return this; + } + public ExecutionContextBuilder fragmentsByName(Map fragmentsByName) { this.fragmentsByName = ImmutableMap.copyOf(fragmentsByName); return this; @@ -216,9 +229,21 @@ public ExecutionContextBuilder resetErrors() { return this; } + @ExperimentalApi + public ExecutionContextBuilder propagapropagateErrorsOnNonNullContractFailureeErrors(boolean propagateErrorsOnNonNullContractFailure) { + this.propagateErrorsOnNonNullContractFailure = propagateErrorsOnNonNullContractFailure; + return this; + } + + public ExecutionContext build() { // preconditions assertNotNull(executionId, () -> "You must provide a query identifier"); return new ExecutionContext(this); } + + public ExecutionContextBuilder engineRunningState(EngineRunningState engineRunningState) { + this.engineRunningState = engineRunningState; + return this; + } } diff --git a/src/main/java/graphql/execution/ExecutionStepInfo.java b/src/main/java/graphql/execution/ExecutionStepInfo.java index 27313bb96..6ecf42c5f 100644 --- a/src/main/java/graphql/execution/ExecutionStepInfo.java +++ b/src/main/java/graphql/execution/ExecutionStepInfo.java @@ -77,17 +77,6 @@ private ExecutionStepInfo(Builder builder) { this.fieldContainer = builder.fieldContainer; } - /** - * @return the GraphQLObjectType defining the {@link #getFieldDefinition()} - * - * @see ExecutionStepInfo#getObjectType() - * @deprecated use {@link #getObjectType()} instead as it is named better - */ - @Deprecated(since = "2022-02-03") - public GraphQLObjectType getFieldContainer() { - return fieldContainer; - } - /** * The GraphQLObjectType where fieldDefinition is defined. * Note: diff --git a/src/main/java/graphql/execution/ExecutionStrategy.java b/src/main/java/graphql/execution/ExecutionStrategy.java index f2cccd407..f9370d1e9 100644 --- a/src/main/java/graphql/execution/ExecutionStrategy.java +++ b/src/main/java/graphql/execution/ExecutionStrategy.java @@ -2,6 +2,8 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; +import graphql.DuckTyped; +import graphql.EngineRunningState; import graphql.ExecutionResult; import graphql.ExecutionResultImpl; import graphql.ExperimentalApi; @@ -24,6 +26,7 @@ import graphql.execution.instrumentation.parameters.InstrumentationFieldCompleteParameters; import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters; import graphql.execution.instrumentation.parameters.InstrumentationFieldParameters; +import graphql.execution.reactive.ReactiveSupport; import graphql.extensions.ExtensionsBuilder; import graphql.introspection.Introspection; import graphql.language.Argument; @@ -46,7 +49,7 @@ import graphql.schema.GraphQLType; import graphql.schema.LightDataFetcher; import graphql.util.FpKit; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.ArrayList; import java.util.Collections; @@ -197,8 +200,8 @@ public static String mkNameForPath(List currentField) { * @throws NonNullableFieldWasNullException in the {@link CompletableFuture} if a non-null field resolved to a null value */ @SuppressWarnings("unchecked") - protected Object /* CompletableFuture> | Map */ - executeObject(ExecutionContext executionContext, ExecutionStrategyParameters parameters) throws NonNullableFieldWasNullException { + @DuckTyped(shape = "CompletableFuture> | Map") + protected Object executeObject(ExecutionContext executionContext, ExecutionStrategyParameters parameters) throws NonNullableFieldWasNullException { DataLoaderDispatchStrategy dataLoaderDispatcherStrategy = executionContext.getDataLoaderDispatcherStrategy(); dataLoaderDispatcherStrategy.executeObject(executionContext, parameters); Instrumentation instrumentation = executionContext.getInstrumentation(); @@ -264,8 +267,7 @@ public static String mkNameForPath(List currentField) { } } - @NotNull - private static Async.CombinedBuilder fieldValuesCombinedBuilder(List completeValueInfos) { + private static Async.@NonNull CombinedBuilder fieldValuesCombinedBuilder(List completeValueInfos) { Async.CombinedBuilder resultFutures = Async.ofExpectedSize(completeValueInfos.size()); for (FieldValueInfo completeValueInfo : completeValueInfos) { resultFutures.addObject(completeValueInfo.getFieldValueObject()); @@ -284,7 +286,7 @@ private BiConsumer, Throwable> buildFieldValueMap(List fiel }; } - @NotNull + @NonNull private static Map buildFieldValueMap(List fieldNames, List results) { Map resolvedValuesByField = Maps.newLinkedHashMapWithExpectedSize(fieldNames.size()); int ix = 0; @@ -310,8 +312,7 @@ DeferredExecutionSupport createDeferredExecutionSupport(ExecutionContext executi } - @NotNull - Async.CombinedBuilder getAsyncFieldValueInfo( + Async.@NonNull CombinedBuilder getAsyncFieldValueInfo( ExecutionContext executionContext, ExecutionStrategyParameters parameters, DeferredExecutionSupport deferredExecutionSupport @@ -339,33 +340,6 @@ Async.CombinedBuilder getAsyncFieldValueInfo( return futures; } - /** - * Called to fetch a value for a field and resolve it further in terms of the graphql query. This will call - * #fetchField followed by #completeField and the completed Object is returned. - *

- * An execution strategy can iterate the fields to be executed and call this method for each one - *

- * Graphql fragments mean that for any give logical field can have one or more {@link Field} values associated with it - * in the query, hence the fieldList. However, the first entry is representative of the field for most purposes. - * - * @param executionContext contains the top level execution parameters - * @param parameters contains the parameters holding the fields to be executed and source object - * - * @return a {@link CompletableFuture} promise to an {@link Object} or the materialized {@link Object} - * - * @throws NonNullableFieldWasNullException in the future if a non-null field resolved to a null value - */ - @SuppressWarnings("unchecked") - protected Object /* CompletableFuture | Object */ - resolveField(ExecutionContext executionContext, ExecutionStrategyParameters parameters) { - Object fieldWithInfo = resolveFieldWithInfo(executionContext, parameters); - if (fieldWithInfo instanceof CompletableFuture) { - return ((CompletableFuture) fieldWithInfo).thenCompose(FieldValueInfo::getFieldValueFuture); - } else { - return ((FieldValueInfo) fieldWithInfo).getFieldValueObject(); - } - } - /** * Called to fetch a value for a field and its extra runtime info and resolve it further in terms of the graphql query. This will call * #fetchField followed by #completeField and the completed {@link graphql.execution.FieldValueInfo} is returned. @@ -384,8 +358,8 @@ Async.CombinedBuilder getAsyncFieldValueInfo( * if a nonnull field resolves to a null value */ @SuppressWarnings("unchecked") - protected Object /* CompletableFuture | FieldValueInfo */ - resolveFieldWithInfo(ExecutionContext executionContext, ExecutionStrategyParameters parameters) { + @DuckTyped(shape = "CompletableFuture | FieldValueInfo") + protected Object resolveFieldWithInfo(ExecutionContext executionContext, ExecutionStrategyParameters parameters) { GraphQLFieldDefinition fieldDef = getFieldDef(executionContext, parameters, parameters.getField().getSingleField()); Supplier executionStepInfo = FpKit.intraThreadMemoize(() -> createExecutionStepInfo(executionContext, parameters, fieldDef, null)); @@ -430,16 +404,16 @@ Async.CombinedBuilder getAsyncFieldValueInfo( * * @throws NonNullableFieldWasNullException in the future if a non null field resolves to a null value */ - protected Object /*CompletableFuture | FetchedValue>*/ - fetchField(ExecutionContext executionContext, ExecutionStrategyParameters parameters) { + @DuckTyped(shape = "CompletableFuture | FetchedValue") + protected Object fetchField(ExecutionContext executionContext, ExecutionStrategyParameters parameters) { MergedField field = parameters.getField(); GraphQLObjectType parentType = (GraphQLObjectType) parameters.getExecutionStepInfo().getUnwrappedNonNullType(); GraphQLFieldDefinition fieldDef = getFieldDef(executionContext.getGraphQLSchema(), parentType, field.getSingleField()); return fetchField(fieldDef, executionContext, parameters); } - private Object /*CompletableFuture | FetchedValue>*/ - fetchField(GraphQLFieldDefinition fieldDef, ExecutionContext executionContext, ExecutionStrategyParameters parameters) { + @DuckTyped(shape = "CompletableFuture | FetchedValue") + private Object fetchField(GraphQLFieldDefinition fieldDef, ExecutionContext executionContext, ExecutionStrategyParameters parameters) { if (incrementAndCheckMaxNodesExceeded(executionContext)) { return new FetchedValue(null, Collections.emptyList(), null); @@ -463,7 +437,8 @@ Async.CombinedBuilder getAsyncFieldValueInfo( DataFetchingFieldSelectionSet fieldCollector = DataFetchingFieldSelectionSetImpl.newCollector(executionContext.getGraphQLSchema(), fieldDef.getType(), normalizedFieldSupplier); QueryDirectives queryDirectives = new QueryDirectivesImpl(field, executionContext.getGraphQLSchema(), - executionContext.getCoercedVariables().toMap(), + executionContext.getCoercedVariables(), + executionContext.getNormalizedVariables(), executionContext.getGraphQLContext(), executionContext.getLocale()); @@ -498,21 +473,31 @@ Async.CombinedBuilder getAsyncFieldValueInfo( executionContext.getDataLoaderDispatcherStrategy().fieldFetched(executionContext, parameters, dataFetcher, fetchedObject); fetchCtx.onDispatched(); fetchCtx.onFetchedValue(fetchedObject); + // if it's a subscription, leave any reactive objects alone + if (!executionContext.isSubscriptionOperation()) { + // possible convert reactive objects into CompletableFutures + fetchedObject = ReactiveSupport.fetchedObject(fetchedObject); + } if (fetchedObject instanceof CompletableFuture) { @SuppressWarnings("unchecked") CompletableFuture fetchedValue = (CompletableFuture) fetchedObject; - return fetchedValue - .handle((result, exception) -> { - fetchCtx.onCompleted(result, exception); - if (exception != null) { - return handleFetchingException(dataFetchingEnvironment.get(), parameters, exception); - } else { - // we can simply return the fetched value CF and avoid a allocation - return fetchedValue; - } - }) - .thenCompose(Function.identity()) + EngineRunningState engineRunningState = executionContext.getEngineRunningState(); + + CompletableFuture> handleCF = engineRunningState.handle(fetchedValue, (result, exception) -> { + // because we added an artificial CF, we need to unwrap the exception + fetchCtx.onCompleted(result, exception); + if (exception != null) { + CompletableFuture handleFetchingExceptionResult = handleFetchingException(dataFetchingEnvironment.get(), parameters, exception); + return handleFetchingExceptionResult; + } else { + // we can simply return the fetched value CF and avoid a allocation + return fetchedValue; + } + }); + CompletableFuture rawResultCF = engineRunningState.compose(handleCF, Function.identity()); + CompletableFuture fetchedValueCF = rawResultCF .thenApply(result -> unboxPossibleDataFetcherResult(executionContext, parameters, result)); + return fetchedValueCF; } else { fetchCtx.onCompleted(fetchedObject, null); return unboxPossibleDataFetcherResult(executionContext, parameters, fetchedObject); @@ -547,7 +532,6 @@ protected Supplier getNormalizedField(ExecutionContex protected FetchedValue unboxPossibleDataFetcherResult(ExecutionContext executionContext, ExecutionStrategyParameters parameters, Object result) { - if (result instanceof DataFetcherResult) { DataFetcherResult dataFetcherResult = (DataFetcherResult) result; @@ -737,8 +721,8 @@ private FieldValueInfo getFieldValueInfoForNull(ExecutionStrategyParameters para * * @throws NonNullableFieldWasNullException inside the {@link CompletableFuture} if a non-null field resolves to a null value */ - protected Object /* CompletableFuture | Object */ - completeValueForNull(ExecutionStrategyParameters parameters) { + @DuckTyped(shape = "CompletableFuture | Object") + protected Object completeValueForNull(ExecutionStrategyParameters parameters) { try { return parameters.getNonNullFieldValidator().validate(parameters, null); } catch (Exception e) { @@ -876,8 +860,8 @@ protected void handleValueException(CompletableFuture overallResult, Thro * * @return a materialized scalar value or exceptionally completed {@link CompletableFuture} if there is a problem */ - protected Object /* CompletableFuture | Object */ - completeValueForScalar(ExecutionContext executionContext, ExecutionStrategyParameters parameters, GraphQLScalarType scalarType, Object result) { + @DuckTyped(shape = "CompletableFuture | Object") + protected Object completeValueForScalar(ExecutionContext executionContext, ExecutionStrategyParameters parameters, GraphQLScalarType scalarType, Object result) { Object serialized; try { serialized = scalarType.getCoercing().serialize(result, executionContext.getGraphQLContext(), executionContext.getLocale()); @@ -903,8 +887,8 @@ protected void handleValueException(CompletableFuture overallResult, Thro * * @return a materialized enum value or exceptionally completed {@link CompletableFuture} if there is a problem */ - protected Object /* CompletableFuture | Object */ - completeValueForEnum(ExecutionContext executionContext, ExecutionStrategyParameters parameters, GraphQLEnumType enumType, Object result) { + @DuckTyped(shape = "CompletableFuture | Object") + protected Object completeValueForEnum(ExecutionContext executionContext, ExecutionStrategyParameters parameters, GraphQLEnumType enumType, Object result) { Object serialized; try { serialized = enumType.serialize(result, executionContext.getGraphQLContext(), executionContext.getLocale()); @@ -929,8 +913,8 @@ protected void handleValueException(CompletableFuture overallResult, Thro * * @return a {@link CompletableFuture} promise to a map of object field values or a materialized map of object field values */ - protected Object /* CompletableFuture> | Map */ - completeValueForObject(ExecutionContext executionContext, ExecutionStrategyParameters parameters, GraphQLObjectType resolvedObjectType, Object result) { + @DuckTyped(shape = "CompletableFuture> | Map") + protected Object completeValueForObject(ExecutionContext executionContext, ExecutionStrategyParameters parameters, GraphQLObjectType resolvedObjectType, Object result) { ExecutionStepInfo executionStepInfo = parameters.getExecutionStepInfo(); FieldCollectorParameters collectorParameters = newParameters() @@ -1131,7 +1115,7 @@ protected ExecutionStepInfo createExecutionStepInfo(ExecutionContext executionCo .build(); } - @NotNull + @NonNull private static Supplier> getArgumentValues(ExecutionContext executionContext, List fieldArgDefs, List fieldArgs) { diff --git a/src/main/java/graphql/execution/ExecutionStrategyParameters.java b/src/main/java/graphql/execution/ExecutionStrategyParameters.java index f74336bad..c2e46b9a6 100644 --- a/src/main/java/graphql/execution/ExecutionStrategyParameters.java +++ b/src/main/java/graphql/execution/ExecutionStrategyParameters.java @@ -2,7 +2,7 @@ import graphql.PublicApi; import graphql.execution.incremental.DeferredCallContext; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.function.Consumer; diff --git a/src/main/java/graphql/execution/FieldValueInfo.java b/src/main/java/graphql/execution/FieldValueInfo.java index 283cad42c..6dfc2faab 100644 --- a/src/main/java/graphql/execution/FieldValueInfo.java +++ b/src/main/java/graphql/execution/FieldValueInfo.java @@ -74,17 +74,6 @@ public CompletableFuture getFieldValueFuture() { return Async.toCompletableFuture(fieldValueObject); } - /** - * Kept for legacy reasons - this method is no longer sensible and is no longer used by the graphql-java engine - * and is kept only for backwards compatible API reasons. - * - * @return a promise to the {@link ExecutionResult} that wraps the field value. - */ - @Deprecated(since = "2023-09-11") - public CompletableFuture getFieldValue() { - return getFieldValueFuture().thenApply(fv -> ExecutionResultImpl.newExecutionResult().data(fv).build()); - } - /** * @return true if the value is a {@link CompletableFuture} promise to a value */ diff --git a/src/main/java/graphql/execution/MergedField.java b/src/main/java/graphql/execution/MergedField.java index f7e654505..64eb43361 100644 --- a/src/main/java/graphql/execution/MergedField.java +++ b/src/main/java/graphql/execution/MergedField.java @@ -6,7 +6,7 @@ import graphql.execution.incremental.DeferredExecution; import graphql.language.Argument; import graphql.language.Field; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Objects; diff --git a/src/main/java/graphql/execution/NonNullableFieldValidator.java b/src/main/java/graphql/execution/NonNullableFieldValidator.java index 3241fa247..d7e14900a 100644 --- a/src/main/java/graphql/execution/NonNullableFieldValidator.java +++ b/src/main/java/graphql/execution/NonNullableFieldValidator.java @@ -56,7 +56,9 @@ public T validate(ExecutionStrategyParameters parameters, T result) throws N } else { executionContext.addError(error, path); } - throw nonNullException; + if (executionContext.propagateErrorsOnNonNullContractFailure()) { + throw nonNullException; + } } } return result; diff --git a/src/main/java/graphql/execution/NormalizedVariables.java b/src/main/java/graphql/execution/NormalizedVariables.java new file mode 100644 index 000000000..ef16fec3c --- /dev/null +++ b/src/main/java/graphql/execution/NormalizedVariables.java @@ -0,0 +1,45 @@ +package graphql.execution; + +import graphql.PublicApi; +import graphql.collect.ImmutableKit; +import graphql.collect.ImmutableMapWithNullValues; +import graphql.normalized.NormalizedInputValue; + +import java.util.Map; + +/** + * Holds coerced variables, that is their values are now in a normalized {@link graphql.normalized.NormalizedInputValue} form. + */ +@PublicApi +public class NormalizedVariables { + private final ImmutableMapWithNullValues normalisedVariables; + + public NormalizedVariables(Map normalisedVariables) { + this.normalisedVariables = ImmutableMapWithNullValues.copyOf(normalisedVariables); + } + + public Map toMap() { + return normalisedVariables; + } + + public boolean containsKey(String key) { + return normalisedVariables.containsKey(key); + } + + public Object get(String key) { + return normalisedVariables.get(key); + } + + public static NormalizedVariables emptyVariables() { + return new NormalizedVariables(ImmutableKit.emptyMap()); + } + + public static NormalizedVariables of(Map normalisedVariables) { + return new NormalizedVariables(normalisedVariables); + } + + @Override + public String toString() { + return normalisedVariables.toString(); + } +} diff --git a/src/main/java/graphql/execution/RawVariables.java b/src/main/java/graphql/execution/RawVariables.java index 02e1acabe..d7c1fba61 100644 --- a/src/main/java/graphql/execution/RawVariables.java +++ b/src/main/java/graphql/execution/RawVariables.java @@ -11,6 +11,7 @@ */ @PublicApi public class RawVariables { + private static final RawVariables EMPTY = RawVariables.of(ImmutableKit.emptyMap()); private final ImmutableMapWithNullValues rawVariables; public RawVariables(Map rawVariables) { @@ -30,7 +31,7 @@ public Object get(String key) { } public static RawVariables emptyVariables() { - return RawVariables.of(ImmutableKit.emptyMap()); + return EMPTY; } public static RawVariables of(Map rawVariables) { diff --git a/src/main/java/graphql/execution/ResultPath.java b/src/main/java/graphql/execution/ResultPath.java index 472b5fa52..c4441b332 100644 --- a/src/main/java/graphql/execution/ResultPath.java +++ b/src/main/java/graphql/execution/ResultPath.java @@ -149,8 +149,10 @@ public static ResultPath fromList(List objects) { for (Object object : objects) { if (object instanceof String) { path = path.segment(((String) object)); - } else { + } else if (object instanceof Integer) { path = path.segment((int) object); + } else if (object != null) { + path = path.segment(object.toString()); } } return path; diff --git a/src/main/java/graphql/execution/SubscriptionExecutionStrategy.java b/src/main/java/graphql/execution/SubscriptionExecutionStrategy.java index 4cc43963b..464f72594 100644 --- a/src/main/java/graphql/execution/SubscriptionExecutionStrategy.java +++ b/src/main/java/graphql/execution/SubscriptionExecutionStrategy.java @@ -56,7 +56,6 @@ public SubscriptionExecutionStrategy(DataFetcherExceptionHandler dataFetcherExce @Override public CompletableFuture execute(ExecutionContext executionContext, ExecutionStrategyParameters parameters) throws NonNullableFieldWasNullException { - Instrumentation instrumentation = executionContext.getInstrumentation(); InstrumentationExecutionStrategyParameters instrumentationParameters = new InstrumentationExecutionStrategyParameters(executionContext, parameters); ExecutionStrategyInstrumentationContext executionStrategyCtx = ExecutionStrategyInstrumentationContext.nonNullCtx(instrumentation.beginExecutionStrategy( @@ -68,20 +67,22 @@ public CompletableFuture execute(ExecutionContext executionCont // // when the upstream source event stream completes, subscribe to it and wire in our adapter - CompletableFuture overallResult = sourceEventStream.thenApply((publisher) -> { + CompletableFuture overallResult = sourceEventStream.thenApply((publisher) -> + { if (publisher == null) { - return new ExecutionResultImpl(null, executionContext.getErrors()); + ExecutionResultImpl executionResult = new ExecutionResultImpl(null, executionContext.getErrors()); + return executionResult; } Function> mapperFunction = eventPayload -> executeSubscriptionEvent(executionContext, parameters, eventPayload); boolean keepOrdered = keepOrdered(executionContext.getGraphQLContext()); SubscriptionPublisher mapSourceToResponse = new SubscriptionPublisher(publisher, mapperFunction, keepOrdered); - return new ExecutionResultImpl(mapSourceToResponse, executionContext.getErrors()); + ExecutionResultImpl executionResult = new ExecutionResultImpl(mapSourceToResponse, executionContext.getErrors()); + return executionResult; }); // dispatched the subscription query executionStrategyCtx.onDispatched(); overallResult.whenComplete(executionStrategyCtx::onCompleted); - return overallResult; } diff --git a/src/main/java/graphql/execution/ValuesResolver.java b/src/main/java/graphql/execution/ValuesResolver.java index 94073cbe6..11de33ea0 100644 --- a/src/main/java/graphql/execution/ValuesResolver.java +++ b/src/main/java/graphql/execution/ValuesResolver.java @@ -27,8 +27,8 @@ import graphql.schema.GraphQLType; import graphql.schema.InputValueWithState; import graphql.schema.visibility.GraphqlFieldVisibility; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.Collections; @@ -101,7 +101,7 @@ public static CoercedVariables coerceVariableValues(GraphQLSchema schema, * * @return a map of the normalised values */ - public static Map getNormalizedVariableValues( + public static NormalizedVariables getNormalizedVariableValues( GraphQLSchema schema, List variableDefinitions, RawVariables rawVariables, @@ -131,9 +131,7 @@ public static Map getNormalizedVariableValues( } } } - - return result; - + return NormalizedVariables.of(result); } @@ -198,7 +196,7 @@ public static Map getNormalizedArgumentValues( return result; } - @NotNull + @NonNull public static Map getArgumentValues( GraphQLCodeRegistry codeRegistry, List argumentTypes, @@ -225,9 +223,9 @@ public static Map getArgumentValues( * @return a value converted to a literal */ public static Value valueToLiteral( - @NotNull GraphqlFieldVisibility fieldVisibility, - @NotNull InputValueWithState inputValueWithState, - @NotNull GraphQLType type, + @NonNull GraphqlFieldVisibility fieldVisibility, + @NonNull InputValueWithState inputValueWithState, + @NonNull GraphQLType type, GraphQLContext graphqlContext, Locale locale ) { @@ -241,8 +239,8 @@ public static Value valueToLiteral( } public static Value valueToLiteral( - @NotNull InputValueWithState inputValueWithState, - @NotNull GraphQLType type, + @NonNull InputValueWithState inputValueWithState, + @NonNull GraphQLType type, GraphQLContext graphqlContext, Locale locale ) { @@ -318,7 +316,7 @@ public static T getInputValueImpl( } - @NotNull + @NonNull private static Map getArgumentValuesImpl( InputInterceptor inputInterceptor, GraphqlFieldVisibility fieldVisibility, diff --git a/src/main/java/graphql/execution/ValuesResolverConversion.java b/src/main/java/graphql/execution/ValuesResolverConversion.java index 66b84bb19..c53eeb64e 100644 --- a/src/main/java/graphql/execution/ValuesResolverConversion.java +++ b/src/main/java/graphql/execution/ValuesResolverConversion.java @@ -26,8 +26,8 @@ import graphql.schema.visibility.DefaultGraphqlFieldVisibility; import graphql.schema.visibility.GraphqlFieldVisibility; import graphql.util.FpKit; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.Collections; @@ -220,7 +220,7 @@ private static Value externalValueToLiteralForScalar( GraphQLScalarType scalarType, Object value, GraphQLContext graphqlContext, - @NotNull Locale locale + @NonNull Locale locale ) { return scalarType.getCoercing().valueToLiteral(value, graphqlContext, locale); @@ -253,20 +253,23 @@ private static Object externalValueToLiteralForList( Locale locale ) { GraphQLInputType wrappedType = (GraphQLInputType) listType.getWrappedType(); - List result = FpKit.toListOrSingletonList(value) - .stream() - .map(val -> externalValueToLiteral( - fieldVisibility, - val, - wrappedType, - valueMode, - graphqlContext, - locale)) - .collect(toList()); + List valueList = FpKit.toListOrSingletonList(value); + ImmutableList.Builder resultBuilder = ImmutableList.builderWithExpectedSize(valueList.size()); + for (Object item : valueList) { + resultBuilder.add(externalValueToLiteral( + fieldVisibility, + item, + wrappedType, + valueMode, + graphqlContext, + locale)); + } + ImmutableList result = resultBuilder.build(); + if (valueMode == NORMALIZED) { return result; } else { - return ArrayValue.newArrayValue().values((List) result).build(); + return ArrayValue.newArrayValue().values((ImmutableList) result).build(); } } @@ -282,7 +285,7 @@ private static Object externalValueToLiteralForObject( GraphQLContext graphqlContext, Locale locale ) { - assertTrue(inputValue instanceof Map, () -> "Expect Map as input"); + assertTrue(inputValue instanceof Map, "Expect Map as input"); Map inputMap = (Map) inputValue; List fieldDefinitions = fieldVisibility.getFieldDefinitions(inputObjectType); @@ -711,7 +714,7 @@ private static Object literalToInternalValueForScalar( GraphQLScalarType scalarType, CoercedVariables coercedVariables, GraphQLContext graphqlContext, - @NotNull Locale locale + @NonNull Locale locale ) { // the CoercingParseLiteralException exception that could happen here has been validated earlier via ValidationUtil return scalarType.getCoercing().parseLiteral( diff --git a/src/main/java/graphql/execution/conditional/ConditionalNodeDecisionEnvironment.java b/src/main/java/graphql/execution/conditional/ConditionalNodeDecisionEnvironment.java index e0e116a1b..8851e2df4 100644 --- a/src/main/java/graphql/execution/conditional/ConditionalNodeDecisionEnvironment.java +++ b/src/main/java/graphql/execution/conditional/ConditionalNodeDecisionEnvironment.java @@ -5,7 +5,7 @@ import graphql.language.Directive; import graphql.language.DirectivesContainer; import graphql.schema.GraphQLSchema; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; @@ -39,7 +39,8 @@ default List getDirectives() { /** * @return the {@link GraphQLSchema} in question - this can be null for certain call paths */ - @Nullable GraphQLSchema getGraphQlSchema(); + @Nullable + GraphQLSchema getGraphQlSchema(); /** * @return a graphql context diff --git a/src/main/java/graphql/execution/conditional/ConditionalNodes.java b/src/main/java/graphql/execution/conditional/ConditionalNodes.java index 7013c53bf..e922eeb42 100644 --- a/src/main/java/graphql/execution/conditional/ConditionalNodes.java +++ b/src/main/java/graphql/execution/conditional/ConditionalNodes.java @@ -4,14 +4,16 @@ import graphql.GraphQLContext; import graphql.Internal; import graphql.execution.CoercedVariables; -import graphql.execution.ValuesResolver; +import graphql.language.Argument; +import graphql.language.BooleanValue; import graphql.language.Directive; import graphql.language.DirectivesContainer; import graphql.language.NodeUtil; +import graphql.language.VariableReference; import graphql.schema.GraphQLSchema; +import org.jspecify.annotations.Nullable; import java.util.List; -import java.util.Locale; import java.util.Map; import static graphql.Directives.IncludeDirective; @@ -20,11 +22,17 @@ @Internal public class ConditionalNodes { + /** + * return null if skip/include argument contains a variable and therefore could not be resolved + */ + public Boolean shouldIncludeWithoutVariables(DirectivesContainer element) { + return shouldInclude(null, element.getDirectives()); + } public boolean shouldInclude(DirectivesContainer element, Map variables, GraphQLSchema graphQLSchema, - GraphQLContext graphQLContext + @Nullable GraphQLContext graphQLContext ) { // // call the base @include / @skip first @@ -75,12 +83,15 @@ public GraphQLContext getGraphQLContext() { } - private boolean shouldInclude(Map variables, List directives) { + private @Nullable Boolean shouldInclude(Map variables, List directives) { // shortcut on no directives if (directives.isEmpty()) { return true; } - boolean skip = getDirectiveResult(variables, directives, SkipDirective.getName(), false); + Boolean skip = getDirectiveResult(variables, directives, SkipDirective.getName(), false); + if (skip == null) { + return null; + } if (skip) { return false; } @@ -88,15 +99,58 @@ private boolean shouldInclude(Map variables, List dir return getDirectiveResult(variables, directives, IncludeDirective.getName(), true); } - private boolean getDirectiveResult(Map variables, List directives, String directiveName, boolean defaultValue) { + public boolean containsSkipOrIncludeDirective(DirectivesContainer directivesContainer) { + return NodeUtil.findNodeByName(directivesContainer.getDirectives(), SkipDirective.getName()) != null || + NodeUtil.findNodeByName(directivesContainer.getDirectives(), IncludeDirective.getName()) != null; + } + + + public String getSkipVariableName(DirectivesContainer directivesContainer) { + Directive skipDirective = NodeUtil.findNodeByName(directivesContainer.getDirectives(), SkipDirective.getName()); + if (skipDirective == null) { + return null; + } + Argument argument = skipDirective.getArgument("if"); + if (argument.getValue() instanceof VariableReference) { + return ((VariableReference) argument.getValue()).getName(); + } + return null; + } + + public String getIncludeVariableName(DirectivesContainer directivesContainer) { + Directive skipDirective = NodeUtil.findNodeByName(directivesContainer.getDirectives(), IncludeDirective.getName()); + if (skipDirective == null) { + return null; + } + Argument argument = skipDirective.getArgument("if"); + if (argument.getValue() instanceof VariableReference) { + return ((VariableReference) argument.getValue()).getName(); + } + return null; + } + + + private @Nullable Boolean getDirectiveResult(Map variables, List directives, String directiveName, boolean defaultValue) { Directive foundDirective = NodeUtil.findNodeByName(directives, directiveName); if (foundDirective != null) { - Map argumentValues = ValuesResolver.getArgumentValues(SkipDirective.getArguments(), foundDirective.getArguments(), CoercedVariables.of(variables), GraphQLContext.getDefault(), Locale.getDefault()); - Object flag = argumentValues.get("if"); - Assert.assertTrue(flag instanceof Boolean, "The '%s' directive MUST have a value for the 'if' argument", directiveName); - return (Boolean) flag; + return getIfValue(foundDirective.getArguments(), variables); } return defaultValue; } + private @Nullable Boolean getIfValue(List arguments, @Nullable Map variables) { + for (Argument argument : arguments) { + if (argument.getName().equals("if")) { + Object value = argument.getValue(); + if (value instanceof BooleanValue) { + return ((BooleanValue) value).isValue(); + } + if (value instanceof VariableReference && variables != null) { + return (boolean) variables.get(((VariableReference) value).getName()); + } + return null; + } + } + return Assert.assertShouldNeverHappen("The 'if' argument must be present"); + } } diff --git a/src/main/java/graphql/execution/directives/DirectivesResolver.java b/src/main/java/graphql/execution/directives/DirectivesResolver.java index 4163c268c..4f177052e 100644 --- a/src/main/java/graphql/execution/directives/DirectivesResolver.java +++ b/src/main/java/graphql/execution/directives/DirectivesResolver.java @@ -1,6 +1,8 @@ package graphql.execution.directives; -import com.google.common.collect.ImmutableMap; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; +import com.google.common.collect.ImmutableBiMap; import graphql.GraphQLContext; import graphql.Internal; import graphql.execution.CoercedVariables; @@ -11,8 +13,6 @@ import graphql.schema.GraphQLDirective; import graphql.schema.GraphQLSchema; -import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -26,27 +26,27 @@ public class DirectivesResolver { public DirectivesResolver() { } - public Map> resolveDirectives(List directives, GraphQLSchema schema, Map variables, GraphQLContext graphQLContext, Locale locale) { + public BiMap resolveDirectives(List directives, GraphQLSchema schema, CoercedVariables variables, GraphQLContext graphQLContext, Locale locale) { GraphQLCodeRegistry codeRegistry = schema.getCodeRegistry(); - Map> directiveMap = new LinkedHashMap<>(); + BiMap directiveMap = HashBiMap.create(); directives.forEach(directive -> { GraphQLDirective protoType = schema.getDirective(directive.getName()); if (protoType != null) { - GraphQLDirective newDirective = protoType.transform(builder -> buildArguments(builder, codeRegistry, protoType, directive, variables, graphQLContext, locale)); - directiveMap.computeIfAbsent(newDirective.getName(), k -> new ArrayList<>()).add(newDirective); + GraphQLDirective graphQLDirective = protoType.transform(builder -> buildArguments(builder, codeRegistry, protoType, directive, variables, graphQLContext, locale)); + directiveMap.put(graphQLDirective, directive); } }); - return ImmutableMap.copyOf(directiveMap); + return ImmutableBiMap.copyOf(directiveMap); } private void buildArguments(GraphQLDirective.Builder directiveBuilder, GraphQLCodeRegistry codeRegistry, GraphQLDirective protoType, Directive fieldDirective, - Map variables, + CoercedVariables variables, GraphQLContext graphQLContext, Locale locale) { - Map argumentValues = ValuesResolver.getArgumentValues(codeRegistry, protoType.getArguments(), fieldDirective.getArguments(), CoercedVariables.of(variables), graphQLContext, locale); + Map argumentValues = ValuesResolver.getArgumentValues(codeRegistry, protoType.getArguments(), fieldDirective.getArguments(), variables, graphQLContext, locale); directiveBuilder.clearArguments(); protoType.getArguments().forEach(protoArg -> { if (argumentValues.containsKey(protoArg.getName())) { diff --git a/src/main/java/graphql/execution/directives/QueryAppliedDirective.java b/src/main/java/graphql/execution/directives/QueryAppliedDirective.java index d2e0e6689..18e4e7be6 100644 --- a/src/main/java/graphql/execution/directives/QueryAppliedDirective.java +++ b/src/main/java/graphql/execution/directives/QueryAppliedDirective.java @@ -7,9 +7,9 @@ import graphql.schema.GraphQLArgument; import graphql.schema.GraphQLDirective; import graphql.schema.GraphqlTypeBuilder; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; @@ -47,7 +47,7 @@ private QueryAppliedDirective(String name, Directive definition, Collection value) { + public Builder valueLiteral(@NonNull Value value) { this.value = InputValueWithState.newLiteralValue(value); return this; } @@ -181,7 +181,7 @@ public Builder valueProgrammatic(@Nullable Object value) { return this; } - public Builder inputValueWithState(@NotNull InputValueWithState value) { + public Builder inputValueWithState(@NonNull InputValueWithState value) { this.value = Assert.assertNotNull(value); return this; } diff --git a/src/main/java/graphql/execution/directives/QueryDirectives.java b/src/main/java/graphql/execution/directives/QueryDirectives.java index 162b6f3c5..6eee9f932 100644 --- a/src/main/java/graphql/execution/directives/QueryDirectives.java +++ b/src/main/java/graphql/execution/directives/QueryDirectives.java @@ -4,13 +4,16 @@ import graphql.PublicApi; import graphql.execution.CoercedVariables; import graphql.execution.MergedField; +import graphql.execution.NormalizedVariables; import graphql.language.Field; +import graphql.normalized.NormalizedInputValue; import graphql.schema.GraphQLDirective; import graphql.schema.GraphQLSchema; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.function.Supplier; /** * This gives you access to the immediate directives on a {@link graphql.execution.MergedField}. This does not include directives on parent @@ -66,6 +69,16 @@ public interface QueryDirectives { */ Map> getImmediateAppliedDirectivesByField(); + /** + * This will return a map of {@link QueryAppliedDirective} to a map of their argument values in {@link NormalizedInputValue} form + *

+ * NOTE : This will only be available when {@link graphql.normalized.ExecutableNormalizedOperationFactory} is used + * to create the {@link QueryAppliedDirective} information + * + * @return a map of applied directive to named argument values + */ + Map> getNormalizedInputValueByImmediateAppliedDirectives(); + /** * This will return a list of the named directives that are immediately on this merged field. * @@ -108,6 +121,8 @@ interface Builder { Builder coercedVariables(CoercedVariables coercedVariables); + Builder normalizedVariables(Supplier normalizedVariables); + Builder graphQLContext(GraphQLContext graphQLContext); Builder locale(Locale locale); diff --git a/src/main/java/graphql/execution/directives/QueryDirectivesBuilder.java b/src/main/java/graphql/execution/directives/QueryDirectivesBuilder.java index 80f80d1a0..78b699858 100644 --- a/src/main/java/graphql/execution/directives/QueryDirectivesBuilder.java +++ b/src/main/java/graphql/execution/directives/QueryDirectivesBuilder.java @@ -4,10 +4,12 @@ import graphql.Internal; import graphql.execution.CoercedVariables; import graphql.execution.MergedField; +import graphql.execution.NormalizedVariables; import graphql.language.Field; import graphql.schema.GraphQLSchema; import java.util.Locale; +import java.util.function.Supplier; @Internal public class QueryDirectivesBuilder implements QueryDirectives.Builder { @@ -15,6 +17,7 @@ public class QueryDirectivesBuilder implements QueryDirectives.Builder { private MergedField mergedField; private GraphQLSchema schema; private CoercedVariables coercedVariables = CoercedVariables.emptyVariables(); + private Supplier normalizedVariables = NormalizedVariables::emptyVariables; private GraphQLContext graphQLContext = GraphQLContext.getDefault(); private Locale locale = Locale.getDefault(); @@ -42,6 +45,12 @@ public QueryDirectives.Builder coercedVariables(CoercedVariables coercedVariable return this; } + @Override + public QueryDirectives.Builder normalizedVariables(Supplier normalizedVariables) { + this.normalizedVariables = normalizedVariables; + return this; + } + @Override public QueryDirectives.Builder graphQLContext(GraphQLContext graphQLContext) { this.graphQLContext = graphQLContext; @@ -57,6 +66,6 @@ public QueryDirectives.Builder locale(Locale locale) { @Override public QueryDirectives build() { - return new QueryDirectivesImpl(mergedField, schema, coercedVariables.toMap(), graphQLContext, locale); + return new QueryDirectivesImpl(mergedField, schema, coercedVariables, normalizedVariables, graphQLContext, locale); } } diff --git a/src/main/java/graphql/execution/directives/QueryDirectivesImpl.java b/src/main/java/graphql/execution/directives/QueryDirectivesImpl.java index 68c9b46b5..4b3fde5f4 100644 --- a/src/main/java/graphql/execution/directives/QueryDirectivesImpl.java +++ b/src/main/java/graphql/execution/directives/QueryDirectivesImpl.java @@ -1,17 +1,22 @@ package graphql.execution.directives; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import graphql.Assert; import graphql.GraphQLContext; import graphql.Internal; -import graphql.collect.ImmutableKit; +import graphql.execution.CoercedVariables; import graphql.execution.MergedField; +import graphql.execution.NormalizedVariables; +import graphql.execution.ValuesResolver; import graphql.language.Directive; import graphql.language.Field; +import graphql.normalized.NormalizedInputValue; import graphql.schema.GraphQLArgument; import graphql.schema.GraphQLDirective; import graphql.schema.GraphQLSchema; -import graphql.util.FpKit; import graphql.util.LockKit; import java.util.ArrayList; @@ -19,7 +24,9 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.function.Supplier; +import static graphql.Assert.assertNotNull; import static graphql.collect.ImmutableKit.emptyList; /** @@ -33,7 +40,8 @@ public class QueryDirectivesImpl implements QueryDirectives { private final DirectivesResolver directivesResolver = new DirectivesResolver(); private final MergedField mergedField; private final GraphQLSchema schema; - private final Map variables; + private final CoercedVariables coercedVariables; + private final Supplier normalizedVariableValues; private final GraphQLContext graphQLContext; private final Locale locale; @@ -42,13 +50,15 @@ public class QueryDirectivesImpl implements QueryDirectives { private volatile ImmutableMap> fieldDirectivesByName; private volatile ImmutableMap> fieldAppliedDirectivesByField; private volatile ImmutableMap> fieldAppliedDirectivesByName; - - public QueryDirectivesImpl(MergedField mergedField, GraphQLSchema schema, Map variables, GraphQLContext graphQLContext, Locale locale) { - this.mergedField = mergedField; - this.schema = schema; - this.variables = variables; - this.graphQLContext = graphQLContext; - this.locale = locale; + private volatile ImmutableMap> normalizedValuesByAppliedDirective; + + public QueryDirectivesImpl(MergedField mergedField, GraphQLSchema schema, CoercedVariables coercedVariables, Supplier normalizedVariableValues, GraphQLContext graphQLContext, Locale locale) { + this.mergedField = assertNotNull(mergedField); + this.schema = assertNotNull(schema); + this.coercedVariables = assertNotNull(coercedVariables); + this.normalizedVariableValues = assertNotNull(normalizedVariableValues); + this.graphQLContext = assertNotNull(graphQLContext); + this.locale = assertNotNull(locale); } private void computeValuesLazily() { @@ -56,16 +66,28 @@ private void computeValuesLazily() { final Map> byField = new LinkedHashMap<>(); final Map> byFieldApplied = new LinkedHashMap<>(); + + BiMap directiveCounterParts = HashBiMap.create(); + BiMap gqlDirectiveCounterParts = HashBiMap.create(); + BiMap gqlDirectiveCounterPartsInverse = gqlDirectiveCounterParts.inverse(); mergedField.getFields().forEach(field -> { List directives = field.getDirectives(); - ImmutableList resolvedDirectives = ImmutableList.copyOf(FpKit.flatList( - directivesResolver - .resolveDirectives(directives, schema, variables, graphQLContext, locale) - .values() - )); + BiMap directivesMap = directivesResolver + .resolveDirectives(directives, schema, coercedVariables, graphQLContext, locale); + + directiveCounterParts.putAll(directivesMap); + + ImmutableList resolvedDirectives = ImmutableList.copyOf(directivesMap.keySet()); + + ImmutableList.Builder appliedDirectiveBuilder = ImmutableList.builder(); + for (GraphQLDirective resolvedDirective : resolvedDirectives) { + QueryAppliedDirective appliedDirective = toAppliedDirective(resolvedDirective); + appliedDirectiveBuilder.add(appliedDirective); + gqlDirectiveCounterParts.put(resolvedDirective, appliedDirective); + } byField.put(field, resolvedDirectives); // at some point we will only use applied - byFieldApplied.put(field, ImmutableKit.map(resolvedDirectives, this::toAppliedDirective)); + byFieldApplied.put(field, appliedDirectiveBuilder.build()); }); Map> byName = new LinkedHashMap<>(); @@ -74,13 +96,33 @@ private void computeValuesLazily() { String name = directive.getName(); byName.computeIfAbsent(name, k -> new ArrayList<>()).add(directive); // at some point we will only use applied - byNameApplied.computeIfAbsent(name, k -> new ArrayList<>()).add(toAppliedDirective(directive)); + QueryAppliedDirective appliedDirective = gqlDirectiveCounterParts.get(directive); + byNameApplied.computeIfAbsent(name, k -> new ArrayList<>()).add(appliedDirective); })); + // create NormalizedInputValue values for directive arguments + Map> normalizedValuesByAppliedDirective = new LinkedHashMap<>(); + NormalizedVariables normalizedVariableValues = this.normalizedVariableValues.get(); + if (normalizedVariableValues != null) { + byNameApplied.values().forEach(directiveList -> { + for (QueryAppliedDirective queryAppliedDirective : directiveList) { + GraphQLDirective graphQLDirective = gqlDirectiveCounterPartsInverse.get(queryAppliedDirective); + // we need this counterpart because the ValuesResolver needs the runtime and AST element + Directive directive = directiveCounterParts.get(graphQLDirective); + if (directive != null) { + Map normalizedVariables = normalizedVariableValues.toMap(); + Map normalizedArgumentValues = ValuesResolver.getNormalizedArgumentValues(graphQLDirective.getArguments(), directive.getArguments(), normalizedVariables); + normalizedValuesByAppliedDirective.put(queryAppliedDirective, normalizedArgumentValues); + } + } + }); + } + this.fieldDirectivesByName = ImmutableMap.copyOf(byName); this.fieldDirectivesByField = ImmutableMap.copyOf(byField); this.fieldAppliedDirectivesByName = ImmutableMap.copyOf(byNameApplied); this.fieldAppliedDirectivesByField = ImmutableMap.copyOf(byFieldApplied); + this.normalizedValuesByAppliedDirective = ImmutableMap.copyOf(normalizedValuesByAppliedDirective); }); } @@ -114,6 +156,12 @@ public Map> getImmediateAppliedDirectivesByFi return fieldAppliedDirectivesByField; } + @Override + public Map> getNormalizedInputValueByImmediateAppliedDirectives() { + computeValuesLazily(); + return normalizedValuesByAppliedDirective; + } + @Override public Map> getImmediateDirectivesByName() { computeValuesLazily(); diff --git a/src/main/java/graphql/execution/incremental/DeferredExecution.java b/src/main/java/graphql/execution/incremental/DeferredExecution.java index 6bc05973c..321ecc160 100644 --- a/src/main/java/graphql/execution/incremental/DeferredExecution.java +++ b/src/main/java/graphql/execution/incremental/DeferredExecution.java @@ -2,7 +2,7 @@ import graphql.ExperimentalApi; import graphql.normalized.incremental.NormalizedDeferredExecution; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; /** * Represents details about the defer execution that can be associated with a {@link graphql.execution.MergedField}. diff --git a/src/main/java/graphql/execution/incremental/IncrementalUtils.java b/src/main/java/graphql/execution/incremental/IncrementalUtils.java index 2a89ade3f..5dc1ac171 100644 --- a/src/main/java/graphql/execution/incremental/IncrementalUtils.java +++ b/src/main/java/graphql/execution/incremental/IncrementalUtils.java @@ -7,6 +7,7 @@ import graphql.execution.ValuesResolver; import graphql.language.Directive; import graphql.language.NodeUtil; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Locale; @@ -20,7 +21,7 @@ public class IncrementalUtils { private IncrementalUtils() { } - public static T createDeferredExecution( + public static @Nullable T createDeferredExecution( Map variables, List directives, Function builderFunction diff --git a/src/main/java/graphql/execution/instrumentation/ChainedInstrumentation.java b/src/main/java/graphql/execution/instrumentation/ChainedInstrumentation.java index f0577aeab..daca12293 100644 --- a/src/main/java/graphql/execution/instrumentation/ChainedInstrumentation.java +++ b/src/main/java/graphql/execution/instrumentation/ChainedInstrumentation.java @@ -20,8 +20,8 @@ import graphql.schema.DataFetcher; import graphql.schema.GraphQLSchema; import graphql.validation.ValidationError; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.AbstractMap; import java.util.Arrays; @@ -111,7 +111,7 @@ protected void chainedConsume(InstrumentationState state, BiConsumer createStateAsync(InstrumentationCreateStateParameters parameters) { + public @NonNull CompletableFuture createStateAsync(InstrumentationCreateStateParameters parameters) { return ChainedInstrumentationState.combineAll(instrumentations, parameters); } @@ -212,41 +212,41 @@ public FieldFetchingInstrumentationContext beginFieldFetching(InstrumentationFie return chainedCtx(state, (instrumentation, specificState) -> instrumentation.beginFieldListCompletion(parameters, specificState)); } - @NotNull + @NonNull @Override public ExecutionInput instrumentExecutionInput(ExecutionInput executionInput, InstrumentationExecutionParameters parameters, InstrumentationState state) { return chainedInstrument(state, executionInput, (instrumentation, specificState, accumulator) -> instrumentation.instrumentExecutionInput(accumulator, parameters, specificState)); } - @NotNull + @NonNull @Override public DocumentAndVariables instrumentDocumentAndVariables(DocumentAndVariables documentAndVariables, InstrumentationExecutionParameters parameters, InstrumentationState state) { return chainedInstrument(state, documentAndVariables, (instrumentation, specificState, accumulator) -> instrumentation.instrumentDocumentAndVariables(accumulator, parameters, specificState)); } - @NotNull + @NonNull @Override public GraphQLSchema instrumentSchema(GraphQLSchema schema, InstrumentationExecutionParameters parameters, InstrumentationState state) { return chainedInstrument(state, schema, (instrumentation, specificState, accumulator) -> instrumentation.instrumentSchema(accumulator, parameters, specificState)); } - @NotNull + @NonNull @Override public ExecutionContext instrumentExecutionContext(ExecutionContext executionContext, InstrumentationExecutionParameters parameters, InstrumentationState state) { return chainedInstrument(state, executionContext, (instrumentation, specificState, accumulator) -> instrumentation.instrumentExecutionContext(accumulator, parameters, specificState)); } - @NotNull + @NonNull @Override public DataFetcher instrumentDataFetcher(DataFetcher dataFetcher, InstrumentationFieldFetchParameters parameters, InstrumentationState state) { return chainedInstrument(state, dataFetcher, (Instrumentation instrumentation, InstrumentationState specificState, DataFetcher accumulator) -> instrumentation.instrumentDataFetcher(accumulator, parameters, specificState)); } - @NotNull + @NonNull @Override public CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters, InstrumentationState state) { ImmutableList> entries = chainedMapAndDropNulls(state, AbstractMap.SimpleEntry::new); diff --git a/src/main/java/graphql/execution/instrumentation/ExecuteObjectInstrumentationContext.java b/src/main/java/graphql/execution/instrumentation/ExecuteObjectInstrumentationContext.java index 4e100238d..a9d841775 100644 --- a/src/main/java/graphql/execution/instrumentation/ExecuteObjectInstrumentationContext.java +++ b/src/main/java/graphql/execution/instrumentation/ExecuteObjectInstrumentationContext.java @@ -3,11 +3,10 @@ import graphql.Internal; import graphql.PublicSpi; import graphql.execution.FieldValueInfo; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.List; import java.util.Map; -import java.util.concurrent.CompletableFuture; @PublicSpi public interface ExecuteObjectInstrumentationContext extends InstrumentationContext> { @@ -30,7 +29,7 @@ public void onCompleted(Map result, Throwable t) { * * @return a non null {@link InstrumentationContext} that maybe a no-op */ - @NotNull + @NonNull @Internal static ExecuteObjectInstrumentationContext nonNullCtx(ExecuteObjectInstrumentationContext nullableContext) { return nullableContext == null ? NOOP : nullableContext; diff --git a/src/main/java/graphql/execution/instrumentation/ExecutionStrategyInstrumentationContext.java b/src/main/java/graphql/execution/instrumentation/ExecutionStrategyInstrumentationContext.java index 7fc0a3e0d..5b9abac71 100644 --- a/src/main/java/graphql/execution/instrumentation/ExecutionStrategyInstrumentationContext.java +++ b/src/main/java/graphql/execution/instrumentation/ExecutionStrategyInstrumentationContext.java @@ -4,10 +4,9 @@ import graphql.Internal; import graphql.PublicSpi; import graphql.execution.FieldValueInfo; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.List; -import java.util.concurrent.CompletableFuture; @PublicSpi public interface ExecutionStrategyInstrumentationContext extends InstrumentationContext { @@ -27,7 +26,7 @@ default void onFieldValuesException() { * * @return a non null {@link InstrumentationContext} that maybe a no-op */ - @NotNull + @NonNull @Internal static ExecutionStrategyInstrumentationContext nonNullCtx(ExecutionStrategyInstrumentationContext nullableContext) { return nullableContext == null ? NOOP : nullableContext; diff --git a/src/main/java/graphql/execution/instrumentation/FieldFetchingInstrumentationContext.java b/src/main/java/graphql/execution/instrumentation/FieldFetchingInstrumentationContext.java index c64ea80ba..38984c6f9 100644 --- a/src/main/java/graphql/execution/instrumentation/FieldFetchingInstrumentationContext.java +++ b/src/main/java/graphql/execution/instrumentation/FieldFetchingInstrumentationContext.java @@ -3,8 +3,8 @@ import graphql.Internal; import graphql.PublicSpi; import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; /** * FieldFetchingInstrumentationContext is returned back from the {@link Instrumentation#beginFieldFetching(InstrumentationFieldFetchParameters, InstrumentationState)} @@ -43,7 +43,7 @@ public void onCompleted(Object result, Throwable t) { * @param nullableContext a {@link InstrumentationContext} that can be null * @return a non-null {@link InstrumentationContext} that maybe a no-op */ - @NotNull + @NonNull @Internal static FieldFetchingInstrumentationContext nonNullCtx(FieldFetchingInstrumentationContext nullableContext) { return nullableContext == null ? NOOP : nullableContext; diff --git a/src/main/java/graphql/execution/instrumentation/Instrumentation.java b/src/main/java/graphql/execution/instrumentation/Instrumentation.java index 4f7767a76..714f96fe3 100644 --- a/src/main/java/graphql/execution/instrumentation/Instrumentation.java +++ b/src/main/java/graphql/execution/instrumentation/Instrumentation.java @@ -17,8 +17,8 @@ import graphql.schema.DataFetcher; import graphql.schema.GraphQLSchema; import graphql.validation.ValidationError; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -262,7 +262,7 @@ default InstrumentationContext beginFieldListCompletion(InstrumentationF * * @return a non-null instrumented ExecutionInput, the default is to return to the same object */ - @NotNull + @NonNull default ExecutionInput instrumentExecutionInput(ExecutionInput executionInput, InstrumentationExecutionParameters parameters, InstrumentationState state) { return executionInput; } @@ -276,7 +276,7 @@ default ExecutionInput instrumentExecutionInput(ExecutionInput executionInput, I * * @return a non-null instrumented DocumentAndVariables, the default is to return to the same objects */ - @NotNull + @NonNull default DocumentAndVariables instrumentDocumentAndVariables(DocumentAndVariables documentAndVariables, InstrumentationExecutionParameters parameters, InstrumentationState state) { return documentAndVariables; } @@ -291,7 +291,7 @@ default DocumentAndVariables instrumentDocumentAndVariables(DocumentAndVariables * * @return a non-null instrumented GraphQLSchema, the default is to return to the same object */ - @NotNull + @NonNull default GraphQLSchema instrumentSchema(GraphQLSchema schema, InstrumentationExecutionParameters parameters, InstrumentationState state) { return schema; } @@ -306,7 +306,7 @@ default GraphQLSchema instrumentSchema(GraphQLSchema schema, InstrumentationExec * * @return a non-null instrumented ExecutionContext, the default is to return to the same object */ - @NotNull + @NonNull default ExecutionContext instrumentExecutionContext(ExecutionContext executionContext, InstrumentationExecutionParameters parameters, InstrumentationState state) { return executionContext; } @@ -323,7 +323,7 @@ default ExecutionContext instrumentExecutionContext(ExecutionContext executionCo * * @return a non-null instrumented DataFetcher, the default is to return to the same object */ - @NotNull + @NonNull default DataFetcher instrumentDataFetcher(DataFetcher dataFetcher, InstrumentationFieldFetchParameters parameters, InstrumentationState state) { return dataFetcher; } @@ -337,7 +337,7 @@ default DataFetcher instrumentDataFetcher(DataFetcher dataFetcher, Instrum * * @return a new execution result completable future */ - @NotNull + @NonNull default CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters, InstrumentationState state) { return CompletableFuture.completedFuture(executionResult); } diff --git a/src/main/java/graphql/execution/instrumentation/NoContextChainedInstrumentation.java b/src/main/java/graphql/execution/instrumentation/NoContextChainedInstrumentation.java index 8d8d3cd95..89e91b6e5 100644 --- a/src/main/java/graphql/execution/instrumentation/NoContextChainedInstrumentation.java +++ b/src/main/java/graphql/execution/instrumentation/NoContextChainedInstrumentation.java @@ -11,7 +11,7 @@ import graphql.execution.instrumentation.parameters.InstrumentationValidationParameters; import graphql.language.Document; import graphql.validation.ValidationError; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.function.BiConsumer; diff --git a/src/main/java/graphql/execution/instrumentation/SimpleInstrumentationContext.java b/src/main/java/graphql/execution/instrumentation/SimpleInstrumentationContext.java index 68c70b214..0abfc744d 100644 --- a/src/main/java/graphql/execution/instrumentation/SimpleInstrumentationContext.java +++ b/src/main/java/graphql/execution/instrumentation/SimpleInstrumentationContext.java @@ -1,11 +1,9 @@ package graphql.execution.instrumentation; import graphql.PublicApi; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; -import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; -import java.util.function.Consumer; /** * A simple implementation of {@link InstrumentationContext} @@ -43,7 +41,7 @@ public static InstrumentationContext noOp() { * * @return a non null {@link InstrumentationContext} that maybe a no-op */ - @NotNull + @NonNull public static InstrumentationContext nonNullCtx(InstrumentationContext nullableContext) { return nullableContext == null ? noOp() : nullableContext; } diff --git a/src/main/java/graphql/execution/instrumentation/SimplePerformantInstrumentation.java b/src/main/java/graphql/execution/instrumentation/SimplePerformantInstrumentation.java index b46cedf9c..26f30714f 100644 --- a/src/main/java/graphql/execution/instrumentation/SimplePerformantInstrumentation.java +++ b/src/main/java/graphql/execution/instrumentation/SimplePerformantInstrumentation.java @@ -16,13 +16,12 @@ import graphql.schema.DataFetcher; import graphql.schema.GraphQLSchema; import graphql.validation.ValidationError; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.concurrent.CompletableFuture; -import static graphql.Assert.assertShouldNeverHappen; import static graphql.execution.instrumentation.SimpleInstrumentationContext.noOp; /** @@ -113,32 +112,32 @@ public class SimplePerformantInstrumentation implements Instrumentation { } @Override - public @NotNull ExecutionInput instrumentExecutionInput(ExecutionInput executionInput, InstrumentationExecutionParameters parameters, InstrumentationState state) { + public @NonNull ExecutionInput instrumentExecutionInput(ExecutionInput executionInput, InstrumentationExecutionParameters parameters, InstrumentationState state) { return executionInput; } @Override - public @NotNull DocumentAndVariables instrumentDocumentAndVariables(DocumentAndVariables documentAndVariables, InstrumentationExecutionParameters parameters, InstrumentationState state) { + public @NonNull DocumentAndVariables instrumentDocumentAndVariables(DocumentAndVariables documentAndVariables, InstrumentationExecutionParameters parameters, InstrumentationState state) { return documentAndVariables; } @Override - public @NotNull GraphQLSchema instrumentSchema(GraphQLSchema schema, InstrumentationExecutionParameters parameters, InstrumentationState state) { + public @NonNull GraphQLSchema instrumentSchema(GraphQLSchema schema, InstrumentationExecutionParameters parameters, InstrumentationState state) { return schema; } @Override - public @NotNull ExecutionContext instrumentExecutionContext(ExecutionContext executionContext, InstrumentationExecutionParameters parameters, InstrumentationState state) { + public @NonNull ExecutionContext instrumentExecutionContext(ExecutionContext executionContext, InstrumentationExecutionParameters parameters, InstrumentationState state) { return executionContext; } @Override - public @NotNull DataFetcher instrumentDataFetcher(DataFetcher dataFetcher, InstrumentationFieldFetchParameters parameters, InstrumentationState state) { + public @NonNull DataFetcher instrumentDataFetcher(DataFetcher dataFetcher, InstrumentationFieldFetchParameters parameters, InstrumentationState state) { return dataFetcher; } @Override - public @NotNull CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters, InstrumentationState state) { + public @NonNull CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters, InstrumentationState state) { return CompletableFuture.completedFuture(executionResult); } } diff --git a/src/main/java/graphql/execution/instrumentation/dataloader/FallbackDataLoaderDispatchStrategy.java b/src/main/java/graphql/execution/instrumentation/dataloader/FallbackDataLoaderDispatchStrategy.java index dba437804..f33657cb6 100644 --- a/src/main/java/graphql/execution/instrumentation/dataloader/FallbackDataLoaderDispatchStrategy.java +++ b/src/main/java/graphql/execution/instrumentation/dataloader/FallbackDataLoaderDispatchStrategy.java @@ -7,7 +7,7 @@ /** - * Used when the execution strategy is not an AsyncExecutionStrategy: simply dispatch always after each DF. + * Used when we cant guarantee the fields will be counted right: simply dispatch always after each DF. */ @Internal public class FallbackDataLoaderDispatchStrategy implements DataLoaderDispatchStrategy { diff --git a/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java b/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java index 60bd36e6f..0d1903eaa 100644 --- a/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java +++ b/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java @@ -6,7 +6,6 @@ import graphql.execution.ExecutionContext; import graphql.execution.ExecutionStrategyParameters; import graphql.execution.FieldValueInfo; -import graphql.execution.MergedField; import graphql.schema.DataFetcher; import graphql.util.LockKit; import org.dataloader.DataLoaderRegistry; @@ -27,55 +26,81 @@ private static class CallStack { private final LockKit.ReentrantLock lock = new LockKit.ReentrantLock(); private final LevelMap expectedFetchCountPerLevel = new LevelMap(); private final LevelMap fetchCountPerLevel = new LevelMap(); - private final LevelMap expectedStrategyCallsPerLevel = new LevelMap(); - private final LevelMap happenedStrategyCallsPerLevel = new LevelMap(); + + private final LevelMap expectedExecuteObjectCallsPerLevel = new LevelMap(); + private final LevelMap happenedExecuteObjectCallsPerLevel = new LevelMap(); + private final LevelMap happenedOnFieldValueCallsPerLevel = new LevelMap(); private final Set dispatchedLevels = new LinkedHashSet<>(); public CallStack() { - expectedStrategyCallsPerLevel.set(1, 1); + expectedExecuteObjectCallsPerLevel.set(1, 1); } void increaseExpectedFetchCount(int level, int count) { expectedFetchCountPerLevel.increment(level, count); } + void clearExpectedFetchCount() { + expectedFetchCountPerLevel.clear(); + } + void increaseFetchCount(int level) { fetchCountPerLevel.increment(level, 1); } - void increaseExpectedStrategyCalls(int level, int count) { - expectedStrategyCallsPerLevel.increment(level, count); + void clearFetchCount() { + fetchCountPerLevel.clear(); + } + + void increaseExpectedExecuteObjectCalls(int level, int count) { + expectedExecuteObjectCallsPerLevel.increment(level, count); } - void increaseHappenedStrategyCalls(int level) { - happenedStrategyCallsPerLevel.increment(level, 1); + void clearExpectedObjectCalls() { + expectedExecuteObjectCallsPerLevel.clear(); + } + + void increaseHappenedExecuteObjectCalls(int level) { + happenedExecuteObjectCallsPerLevel.increment(level, 1); + } + + void clearHappenedExecuteObjectCalls() { + happenedExecuteObjectCallsPerLevel.clear(); } void increaseHappenedOnFieldValueCalls(int level) { happenedOnFieldValueCallsPerLevel.increment(level, 1); } - boolean allStrategyCallsHappened(int level) { - return happenedStrategyCallsPerLevel.get(level) == expectedStrategyCallsPerLevel.get(level); + void clearHappenedOnFieldValueCalls() { + happenedOnFieldValueCallsPerLevel.clear(); + } + + boolean allExecuteObjectCallsHappened(int level) { + return happenedExecuteObjectCallsPerLevel.get(level) == expectedExecuteObjectCallsPerLevel.get(level); } boolean allOnFieldCallsHappened(int level) { - return happenedOnFieldValueCallsPerLevel.get(level) == expectedStrategyCallsPerLevel.get(level); + return happenedOnFieldValueCallsPerLevel.get(level) == expectedExecuteObjectCallsPerLevel.get(level); } boolean allFetchesHappened(int level) { return fetchCountPerLevel.get(level) == expectedFetchCountPerLevel.get(level); } + void clearDispatchLevels() { + dispatchedLevels.clear(); + } + @Override public String toString() { return "CallStack{" + "expectedFetchCountPerLevel=" + expectedFetchCountPerLevel + ", fetchCountPerLevel=" + fetchCountPerLevel + - ", expectedStrategyCallsPerLevel=" + expectedStrategyCallsPerLevel + - ", happenedStrategyCallsPerLevel=" + happenedStrategyCallsPerLevel + + ", expectedExecuteObjectCallsPerLevel=" + expectedExecuteObjectCallsPerLevel + + ", happenedExecuteObjectCallsPerLevel=" + happenedExecuteObjectCallsPerLevel + ", happenedOnFieldValueCallsPerLevel=" + happenedOnFieldValueCallsPerLevel + ", dispatchedLevels" + dispatchedLevels + '}'; @@ -105,19 +130,23 @@ public void executeDeferredOnFieldValueInfo(FieldValueInfo fieldValueInfo, Execu @Override public void executionStrategy(ExecutionContext executionContext, ExecutionStrategyParameters parameters) { int curLevel = parameters.getExecutionStepInfo().getPath().getLevel() + 1; - increaseCallCounts(curLevel, parameters); + increaseHappenedExecuteObjectAndIncreaseExpectedFetchCount(curLevel, parameters); } @Override - public void executionStrategyOnFieldValuesInfo(List fieldValueInfoList, ExecutionStrategyParameters parameters) { - int curLevel = parameters.getPath().getLevel() + 1; - onFieldValuesInfoDispatchIfNeeded(fieldValueInfoList, curLevel, parameters); + public void executionSerialStrategy(ExecutionContext executionContext, ExecutionStrategyParameters parameters) { + resetCallStack(); + increaseHappenedExecuteObjectAndIncreaseExpectedFetchCount(1, 1); + } + + @Override + public void executionStrategyOnFieldValuesInfo(List fieldValueInfoList) { + onFieldValuesInfoDispatchIfNeeded(fieldValueInfoList, 1); } - public void executionStrategyOnFieldValuesException(Throwable t, ExecutionStrategyParameters executionStrategyParameters) { - int curLevel = executionStrategyParameters.getPath().getLevel() + 1; + public void executionStrategyOnFieldValuesException(Throwable t) { callStack.lock.runLocked(() -> - callStack.increaseHappenedOnFieldValueCalls(curLevel) + callStack.increaseHappenedOnFieldValueCalls(1) ); } @@ -125,13 +154,13 @@ public void executionStrategyOnFieldValuesException(Throwable t, ExecutionStrate @Override public void executeObject(ExecutionContext executionContext, ExecutionStrategyParameters parameters) { int curLevel = parameters.getExecutionStepInfo().getPath().getLevel() + 1; - increaseCallCounts(curLevel, parameters); + increaseHappenedExecuteObjectAndIncreaseExpectedFetchCount(curLevel, parameters); } @Override public void executeObjectOnFieldValuesInfo(List fieldValueInfoList, ExecutionStrategyParameters parameters) { int curLevel = parameters.getPath().getLevel() + 1; - onFieldValuesInfoDispatchIfNeeded(fieldValueInfoList, curLevel, parameters); + onFieldValuesInfoDispatchIfNeeded(fieldValueInfoList, curLevel); } @@ -143,16 +172,30 @@ public void executeObjectOnFieldValuesException(Throwable t, ExecutionStrategyPa ); } + private void increaseHappenedExecuteObjectAndIncreaseExpectedFetchCount(int curLevel, ExecutionStrategyParameters executionStrategyParameters) { + increaseHappenedExecuteObjectAndIncreaseExpectedFetchCount(curLevel, executionStrategyParameters.getFields().size()); + } - private void increaseCallCounts(int curLevel, ExecutionStrategyParameters executionStrategyParameters) { - int fieldCount = executionStrategyParameters.getFields().size(); + private void increaseHappenedExecuteObjectAndIncreaseExpectedFetchCount(int curLevel, int fieldCount) { callStack.lock.runLocked(() -> { + callStack.increaseHappenedExecuteObjectCalls(curLevel); callStack.increaseExpectedFetchCount(curLevel, fieldCount); - callStack.increaseHappenedStrategyCalls(curLevel); }); } - private void onFieldValuesInfoDispatchIfNeeded(List fieldValueInfoList, int curLevel, ExecutionStrategyParameters parameters) { + private void resetCallStack() { + callStack.lock.runLocked(() -> { + callStack.clearDispatchLevels(); + callStack.clearExpectedObjectCalls(); + callStack.clearExpectedFetchCount(); + callStack.clearFetchCount(); + callStack.clearHappenedExecuteObjectCalls(); + callStack.clearHappenedOnFieldValueCalls(); + callStack.expectedExecuteObjectCallsPerLevel.set(1, 1); + }); + } + + private void onFieldValuesInfoDispatchIfNeeded(List fieldValueInfoList, int curLevel) { boolean dispatchNeeded = callStack.lock.callLocked(() -> handleOnFieldValuesInfo(fieldValueInfoList, curLevel) ); @@ -166,18 +209,21 @@ private void onFieldValuesInfoDispatchIfNeeded(List fieldValueIn // private boolean handleOnFieldValuesInfo(List fieldValueInfos, int curLevel) { callStack.increaseHappenedOnFieldValueCalls(curLevel); - int expectedStrategyCalls = getCountForList(fieldValueInfos); - callStack.increaseExpectedStrategyCalls(curLevel + 1, expectedStrategyCalls); + int expectedOnObjectCalls = getObjectCountForList(fieldValueInfos); + callStack.increaseExpectedExecuteObjectCalls(curLevel + 1, expectedOnObjectCalls); return dispatchIfNeeded(curLevel + 1); } - private int getCountForList(List fieldValueInfos) { + /** + * the amount of (non nullable) objects that will require an execute object call + */ + private int getObjectCountForList(List fieldValueInfos) { int result = 0; for (FieldValueInfo fieldValueInfo : fieldValueInfos) { if (fieldValueInfo.getCompleteValueType() == FieldValueInfo.CompleteValueType.OBJECT) { result += 1; } else if (fieldValueInfo.getCompleteValueType() == FieldValueInfo.CompleteValueType.LIST) { - result += getCountForList(fieldValueInfo.getFieldValueInfos()); + result += getObjectCountForList(fieldValueInfo.getFieldValueInfos()); } } return result; @@ -221,7 +267,7 @@ private boolean levelReady(int level) { return callStack.allFetchesHappened(1); } if (levelReady(level - 1) && callStack.allOnFieldCallsHappened(level - 1) - && callStack.allStrategyCallsHappened(level) && callStack.allFetchesHappened(level)) { + && callStack.allExecuteObjectCallsHappened(level) && callStack.allFetchesHappened(level)) { return true; } diff --git a/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategyWithDeferAlwaysDispatch.java b/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategyWithDeferAlwaysDispatch.java index e81ef3948..26c847b75 100644 --- a/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategyWithDeferAlwaysDispatch.java +++ b/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategyWithDeferAlwaysDispatch.java @@ -137,19 +137,17 @@ public void executeObject(ExecutionContext executionContext, ExecutionStrategyPa } @Override - public void executionStrategyOnFieldValuesInfo(List fieldValueInfoList, ExecutionStrategyParameters parameters) { + public void executionStrategyOnFieldValuesInfo(List fieldValueInfoList) { if (this.startedDeferredExecution.get()) { this.dispatch(); } - int curLevel = parameters.getPath().getLevel() + 1; - onFieldValuesInfoDispatchIfNeeded(fieldValueInfoList, curLevel, parameters); + onFieldValuesInfoDispatchIfNeeded(fieldValueInfoList, 1); } @Override - public void executionStrategyOnFieldValuesException(Throwable t, ExecutionStrategyParameters executionStrategyParameters) { - int curLevel = executionStrategyParameters.getPath().getLevel() + 1; + public void executionStrategyOnFieldValuesException(Throwable t) { callStack.lock.runLocked(() -> - callStack.increaseHappenedOnFieldValueCalls(curLevel) + callStack.increaseHappenedOnFieldValueCalls(1) ); } @@ -159,7 +157,7 @@ public void executeObjectOnFieldValuesInfo(List fieldValueInfoLi this.dispatch(); } int curLevel = parameters.getPath().getLevel() + 1; - onFieldValuesInfoDispatchIfNeeded(fieldValueInfoList, curLevel, parameters); + onFieldValuesInfoDispatchIfNeeded(fieldValueInfoList, curLevel); } @@ -207,7 +205,7 @@ private void increaseCallCounts(int curLevel, ExecutionStrategyParameters parame }); } - private void onFieldValuesInfoDispatchIfNeeded(List fieldValueInfoList, int curLevel, ExecutionStrategyParameters parameters) { + private void onFieldValuesInfoDispatchIfNeeded(List fieldValueInfoList, int curLevel) { boolean dispatchNeeded = callStack.lock.callLocked(() -> handleOnFieldValuesInfo(fieldValueInfoList, curLevel) ); diff --git a/src/main/java/graphql/execution/instrumentation/fieldvalidation/FieldValidationInstrumentation.java b/src/main/java/graphql/execution/instrumentation/fieldvalidation/FieldValidationInstrumentation.java index d1f30fbfb..408fd261b 100644 --- a/src/main/java/graphql/execution/instrumentation/fieldvalidation/FieldValidationInstrumentation.java +++ b/src/main/java/graphql/execution/instrumentation/fieldvalidation/FieldValidationInstrumentation.java @@ -8,7 +8,7 @@ import graphql.execution.instrumentation.InstrumentationState; import graphql.execution.instrumentation.SimplePerformantInstrumentation; import graphql.execution.instrumentation.parameters.InstrumentationExecuteOperationParameters; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; diff --git a/src/main/java/graphql/execution/instrumentation/threadpools/ExecutorInstrumentation.java b/src/main/java/graphql/execution/instrumentation/threadpools/ExecutorInstrumentation.java deleted file mode 100644 index af210df04..000000000 --- a/src/main/java/graphql/execution/instrumentation/threadpools/ExecutorInstrumentation.java +++ /dev/null @@ -1,166 +0,0 @@ -package graphql.execution.instrumentation.threadpools; - -import com.google.common.annotations.Beta; -import graphql.Assert; -import graphql.Internal; -import graphql.TrivialDataFetcher; -import graphql.execution.Async; -import graphql.execution.instrumentation.InstrumentationState; -import graphql.execution.instrumentation.SimplePerformantInstrumentation; -import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters; -import graphql.schema.DataFetcher; -import graphql.schema.DataFetchingEnvironment; -import org.jetbrains.annotations.NotNull; - -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionStage; -import java.util.concurrent.Executor; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Supplier; - -import static graphql.execution.instrumentation.threadpools.ExecutorInstrumentation.Action.FETCHING; -import static graphql.execution.instrumentation.threadpools.ExecutorInstrumentation.Action.PROCESSING; - -/** - * This instrumentation can be used to control on what thread calls to {@link DataFetcher}s happen on. - *

- * If your data fetching is inherently IO bound then you could use a IO oriented thread pool for your fetches and transfer control - * back to a CPU oriented thread pool and allow graphql-java code to run the post-processing of results there. - *

- * An IO oriented thread pool is typically a multiple of {@link Runtime#availableProcessors()} while a CPU oriented thread pool - * is typically no more than {@link Runtime#availableProcessors()}. - *

- * The instrumentation will use the {@link graphql.execution.instrumentation.Instrumentation#instrumentDataFetcher(DataFetcher, InstrumentationFieldFetchParameters, InstrumentationState)} - * method to change your data fetchers, so they are executed on a thread pool dedicated to fetching (if you provide one). - *

- * Once the data fetcher value is returns it will transfer control back to a processing thread pool (if you provide one). - *

- * This code uses {@link CompletableFuture#supplyAsync(Supplier, Executor)} and {@link CompletableFuture#thenApplyAsync(Function, Executor)} to transfer - * control between thread pools. - */ -@Internal -@Beta -public class ExecutorInstrumentation extends SimplePerformantInstrumentation { - - private static final Consumer NOOP = a -> { - }; - - /** - * This describes what action is currently being done. This is mostly intended for testing. - */ - enum Action {FETCHING, PROCESSING} - - private final Executor fetchExecutor; - private final Executor processingExecutor; - private final Consumer actionObserver; - - private ExecutorInstrumentation(Executor fetchExecutor, Executor processingExecutor, Consumer actionObserver) { - this.fetchExecutor = fetchExecutor; - this.processingExecutor = processingExecutor; - this.actionObserver = actionObserver; - } - - public Executor getFetchExecutor() { - return fetchExecutor; - } - - public Executor getProcessingExecutor() { - return processingExecutor; - } - - public static Builder newThreadPoolExecutionInstrumentation() { - return new Builder(); - } - - public static class Builder { - Executor fetchExecutor; - Executor processingExecutor; - private Consumer actionObserver; - - public Builder fetchExecutor(Executor fetchExecutor) { - this.fetchExecutor = fetchExecutor; - return this; - } - - public Builder processingExecutor(Executor processingExecutor) { - this.processingExecutor = processingExecutor; - return this; - } - - /** - * This is really intended for testing but this consumer will be called during - * stages to indicate what is happening. - * - * @param actionObserver the observer code - * - * @return this builder - */ - public Builder actionObserver(Consumer actionObserver) { - this.actionObserver = Assert.assertNotNull(actionObserver); - return this; - } - - public ExecutorInstrumentation build() { - return new ExecutorInstrumentation(fetchExecutor, processingExecutor, actionObserver != null ? actionObserver : NOOP); - } - - } - - @Override - public @NotNull DataFetcher instrumentDataFetcher(DataFetcher originalDataFetcher, InstrumentationFieldFetchParameters parameters, InstrumentationState state) { - if (originalDataFetcher instanceof TrivialDataFetcher) { - return originalDataFetcher; - } - return environment -> { - CompletableFuture> invokedCF; - if (fetchExecutor != null) { - // run the fetch asynchronously via the fetch executor - // the CF will be left running on that fetch executors thread - invokedCF = CompletableFuture.supplyAsync(invokedAsync(originalDataFetcher, environment), fetchExecutor); - } else { - invokedCF = invokedSync(originalDataFetcher, environment); - } - if (processingExecutor != null) { - invokedCF = invokedCF.thenApplyAsync(processingControl(), processingExecutor); - } else { - invokedCF = invokedCF.thenApply(processingControl()); - } - return invokedCF.thenCompose(cs -> cs); - }; - } - - - private Supplier> invokedAsync(DataFetcher originalDataFetcher, DataFetchingEnvironment environment) { - return () -> { - actionObserver.accept(FETCHING); - return invokeOriginalDF(originalDataFetcher, environment); - }; - } - - private CompletableFuture> invokedSync(DataFetcher originalDataFetcher, DataFetchingEnvironment environment) { - actionObserver.accept(FETCHING); - return CompletableFuture.completedFuture(invokeOriginalDF(originalDataFetcher, environment)); - } - - private Function, CompletionStage> processingControl() { - return completionStage -> { - actionObserver.accept(PROCESSING); - return completionStage; - }; - } - - private CompletionStage invokeOriginalDF(DataFetcher originalDataFetcher, DataFetchingEnvironment environment) { - Object value; - try { - value = originalDataFetcher.get(environment); - } catch (Exception e) { - return Async.exceptionallyCompletedFuture(e); - } - if (value instanceof CompletionStage) { - return ((CompletionStage) value); - } else { - return CompletableFuture.completedFuture(value); - } - } -} diff --git a/src/main/java/graphql/execution/instrumentation/tracing/TracingInstrumentation.java b/src/main/java/graphql/execution/instrumentation/tracing/TracingInstrumentation.java index daa67d4ea..ed18f68ab 100644 --- a/src/main/java/graphql/execution/instrumentation/tracing/TracingInstrumentation.java +++ b/src/main/java/graphql/execution/instrumentation/tracing/TracingInstrumentation.java @@ -14,8 +14,8 @@ import graphql.execution.instrumentation.parameters.InstrumentationValidationParameters; import graphql.language.Document; import graphql.validation.ValidationError; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.LinkedHashMap; import java.util.List; @@ -77,7 +77,7 @@ public TracingInstrumentation(Options options) { } @Override - public @NotNull CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters, InstrumentationState rawState) { + public @NonNull CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters, InstrumentationState rawState) { Map currentExt = executionResult.getExtensions(); TracingSupport tracingSupport = ofState(rawState); diff --git a/src/main/java/graphql/execution/reactive/CompletionStageMappingOrderedPublisher.java b/src/main/java/graphql/execution/reactive/CompletionStageMappingOrderedPublisher.java index 4f4e651ca..91915c450 100644 --- a/src/main/java/graphql/execution/reactive/CompletionStageMappingOrderedPublisher.java +++ b/src/main/java/graphql/execution/reactive/CompletionStageMappingOrderedPublisher.java @@ -1,7 +1,7 @@ package graphql.execution.reactive; import graphql.Internal; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import org.reactivestreams.Publisher; import org.reactivestreams.Subscriber; @@ -30,7 +30,7 @@ public CompletionStageMappingOrderedPublisher(Publisher upstreamPublisher, Fu } @Override - protected @NotNull Subscriber createSubscriber(Subscriber downstreamSubscriber) { + protected @NonNull Subscriber createSubscriber(Subscriber downstreamSubscriber) { return new CompletionStageOrderedSubscriber<>(mapper, downstreamSubscriber); } } diff --git a/src/main/java/graphql/execution/reactive/CompletionStageMappingPublisher.java b/src/main/java/graphql/execution/reactive/CompletionStageMappingPublisher.java index 3e913c62a..824e9e084 100644 --- a/src/main/java/graphql/execution/reactive/CompletionStageMappingPublisher.java +++ b/src/main/java/graphql/execution/reactive/CompletionStageMappingPublisher.java @@ -1,7 +1,7 @@ package graphql.execution.reactive; import graphql.Internal; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import org.reactivestreams.Publisher; import org.reactivestreams.Subscriber; @@ -39,7 +39,7 @@ public void subscribe(Subscriber downstreamSubscriber) { upstreamPublisher.subscribe(createSubscriber(downstreamSubscriber)); } - @NotNull + @NonNull protected Subscriber createSubscriber(Subscriber downstreamSubscriber) { return new CompletionStageSubscriber<>(mapper, downstreamSubscriber); } diff --git a/src/main/java/graphql/execution/reactive/CompletionStageSubscriber.java b/src/main/java/graphql/execution/reactive/CompletionStageSubscriber.java index c9db2ae9e..b185ce9bb 100644 --- a/src/main/java/graphql/execution/reactive/CompletionStageSubscriber.java +++ b/src/main/java/graphql/execution/reactive/CompletionStageSubscriber.java @@ -2,7 +2,7 @@ import graphql.Internal; import graphql.util.LockKit; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; @@ -69,7 +69,7 @@ public void onNext(U u) { } } - @NotNull + @NonNull private BiConsumer whenComplete(CompletionStage completionStage) { return (d, throwable) -> { if (isTerminal()) { diff --git a/src/main/java/graphql/execution/reactive/NonBlockingMutexExecutor.java b/src/main/java/graphql/execution/reactive/NonBlockingMutexExecutor.java index a9da42d41..4c2b44f38 100644 --- a/src/main/java/graphql/execution/reactive/NonBlockingMutexExecutor.java +++ b/src/main/java/graphql/execution/reactive/NonBlockingMutexExecutor.java @@ -2,7 +2,7 @@ import graphql.Internal; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicReference; @@ -37,7 +37,7 @@ class NonBlockingMutexExecutor implements Executor { private final AtomicReference last = new AtomicReference<>(); @Override - public void execute(final @NotNull Runnable command) { + public void execute(final @NonNull Runnable command) { final RunNode newNode = new RunNode(assertNotNull(command, () -> "Runnable must not be null")); final RunNode prevLast = last.getAndSet(newNode); if (prevLast != null) { @@ -93,4 +93,4 @@ private RunNode(final Runnable runnable) { } } -} \ No newline at end of file +} diff --git a/src/main/java/graphql/execution/reactive/ReactiveSupport.java b/src/main/java/graphql/execution/reactive/ReactiveSupport.java new file mode 100644 index 000000000..3e02f1159 --- /dev/null +++ b/src/main/java/graphql/execution/reactive/ReactiveSupport.java @@ -0,0 +1,184 @@ +package graphql.execution.reactive; + +import graphql.DuckTyped; +import graphql.Internal; +import org.reactivestreams.Publisher; +import org.reactivestreams.Subscriber; +import org.reactivestreams.Subscription; + +import java.util.Objects; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Flow; +import java.util.concurrent.atomic.AtomicReference; + +/** + * This provides support for a DataFetcher to be able to + * return a reactive streams {@link Publisher} or Java JDK {@link Flow.Publisher} + * as a value, and it can be turned into a {@link CompletableFuture} + * that we can get an async value from. + */ +@Internal +public class ReactiveSupport { + + @DuckTyped(shape = "CompletableFuture | Object") + public static Object fetchedObject(Object fetchedObject) { + if (fetchedObject instanceof Flow.Publisher) { + return flowPublisherToCF((Flow.Publisher) fetchedObject); + } + if (fetchedObject instanceof Publisher) { + return reactivePublisherToCF((Publisher) fetchedObject); + } + return fetchedObject; + } + + private static CompletableFuture reactivePublisherToCF(Publisher publisher) { + ReactivePublisherToCompletableFuture cf = new ReactivePublisherToCompletableFuture<>(); + publisher.subscribe(cf); + return cf; + } + + private static CompletableFuture flowPublisherToCF(Flow.Publisher publisher) { + FlowPublisherToCompletableFuture cf = new FlowPublisherToCompletableFuture<>(); + publisher.subscribe(cf); + return cf; + } + + /** + * The implementations between reactive Publishers and Flow.Publishers are almost exactly the same except the + * subscription class is different. So this is a common class that contains most of the common logic + * + * @param for two + * @param for subscription + */ + private static abstract class PublisherToCompletableFuture extends CompletableFuture { + + private final AtomicReference subscriptionRef = new AtomicReference<>(); + + abstract void doSubscriptionCancel(S s); + + @SuppressWarnings("SameParameterValue") + abstract void doSubscriptionRequest(S s, long n); + + private boolean validateSubscription(S current, S next) { + Objects.requireNonNull(next, "Subscription cannot be null"); + if (current != null) { + doSubscriptionCancel(next); + return false; + } + return true; + } + + /** + * This overrides the {@link CompletableFuture#cancel(boolean)} method + * such that subscription is also cancelled. + * + * @param mayInterruptIfRunning this value has no effect in this + * implementation because interrupts are not used to control + * processing. + * @return a boolean if it was cancelled + */ + @Override + public boolean cancel(boolean mayInterruptIfRunning) { + boolean cancelled = super.cancel(mayInterruptIfRunning); + if (cancelled) { + S s = subscriptionRef.getAndSet(null); + if (s != null) { + doSubscriptionCancel(s); + } + } + return cancelled; + } + + void onSubscribeImpl(S s) { + if (validateSubscription(subscriptionRef.getAndSet(s), s)) { + doSubscriptionRequest(s, Long.MAX_VALUE); + } + } + + void onNextImpl(T t) { + S s = subscriptionRef.getAndSet(null); + if (s != null) { + complete(t); + doSubscriptionCancel(s); + } + } + + void onErrorImpl(Throwable t) { + if (subscriptionRef.getAndSet(null) != null) { + completeExceptionally(t); + } + } + + void onCompleteImpl() { + if (subscriptionRef.getAndSet(null) != null) { + complete(null); + } + } + } + + private static class ReactivePublisherToCompletableFuture extends PublisherToCompletableFuture implements Subscriber { + + @Override + void doSubscriptionCancel(Subscription subscription) { + subscription.cancel(); + } + + @Override + void doSubscriptionRequest(Subscription subscription, long n) { + subscription.request(n); + } + + @Override + public void onSubscribe(Subscription s) { + onSubscribeImpl(s); + } + + @Override + public void onNext(T t) { + onNextImpl(t); + } + + @Override + public void onError(Throwable t) { + onErrorImpl(t); + } + + @Override + public void onComplete() { + onCompleteImpl(); + } + } + + private static class FlowPublisherToCompletableFuture extends PublisherToCompletableFuture implements Flow.Subscriber { + + @Override + void doSubscriptionCancel(Flow.Subscription subscription) { + subscription.cancel(); + } + + @Override + void doSubscriptionRequest(Flow.Subscription subscription, long n) { + subscription.request(n); + } + + @Override + public void onSubscribe(Flow.Subscription s) { + onSubscribeImpl(s); + } + + @Override + public void onNext(T t) { + onNextImpl(t); + } + + @Override + public void onError(Throwable t) { + onErrorImpl(t); + } + + @Override + public void onComplete() { + onCompleteImpl(); + } + } +} diff --git a/src/main/java/graphql/execution/values/InputInterceptor.java b/src/main/java/graphql/execution/values/InputInterceptor.java index b5420e503..0fb7534d5 100644 --- a/src/main/java/graphql/execution/values/InputInterceptor.java +++ b/src/main/java/graphql/execution/values/InputInterceptor.java @@ -3,8 +3,8 @@ import graphql.GraphQLContext; import graphql.Internal; import graphql.schema.GraphQLInputType; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.Locale; @@ -36,7 +36,7 @@ public interface InputInterceptor { * @return a value that may differ from the original value */ Object intercept(@Nullable Object value, - @NotNull GraphQLInputType graphQLType, - @NotNull GraphQLContext graphqlContext, - @NotNull Locale locale); + @NonNull GraphQLInputType graphQLType, + @NonNull GraphQLContext graphqlContext, + @NonNull Locale locale); } diff --git a/src/main/java/graphql/execution/values/legacycoercing/LegacyCoercingInputInterceptor.java b/src/main/java/graphql/execution/values/legacycoercing/LegacyCoercingInputInterceptor.java index e6f9f5d36..6ac9041be 100644 --- a/src/main/java/graphql/execution/values/legacycoercing/LegacyCoercingInputInterceptor.java +++ b/src/main/java/graphql/execution/values/legacycoercing/LegacyCoercingInputInterceptor.java @@ -5,8 +5,8 @@ import graphql.execution.values.InputInterceptor; import graphql.scalar.CoercingUtil; import graphql.schema.GraphQLInputType; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.math.BigDecimal; import java.util.Locale; @@ -77,7 +77,7 @@ private LegacyCoercingInputInterceptor(BiFunction merge(@NotNull Map leftMap, @NotNull Map rightMap) { + @NonNull + public Map merge(@NonNull Map leftMap, @NonNull Map rightMap) { if (leftMap.isEmpty()) { return mapCast(rightMap); } @@ -55,7 +55,7 @@ private Object mergeObjects(Object leftVal, Object rightVal) { } } - @NotNull + @NonNull private List appendLists(Object leftVal, Object rightVal) { List target = new ArrayList<>(listCast(leftVal)); target.addAll(listCast(rightVal)); diff --git a/src/main/java/graphql/extensions/ExtensionsBuilder.java b/src/main/java/graphql/extensions/ExtensionsBuilder.java index fe37c6474..69bd85c47 100644 --- a/src/main/java/graphql/extensions/ExtensionsBuilder.java +++ b/src/main/java/graphql/extensions/ExtensionsBuilder.java @@ -3,8 +3,8 @@ import com.google.common.collect.ImmutableMap; import graphql.ExecutionResult; import graphql.PublicApi; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.Collections; import java.util.LinkedHashMap; @@ -69,7 +69,7 @@ public int getChangeCount() { * * @return this builder for fluent style reasons */ - public ExtensionsBuilder addValues(@NotNull Map newValues) { + public ExtensionsBuilder addValues(@NonNull Map newValues) { assertNotNull(newValues); if (!newValues.isEmpty()) { changes.add(newValues); @@ -85,7 +85,7 @@ public ExtensionsBuilder addValues(@NotNull Map newValues) { * * @return this builder for fluent style reasons */ - public ExtensionsBuilder addValue(@NotNull Object key, @Nullable Object value) { + public ExtensionsBuilder addValue(@NonNull Object key, @Nullable Object value) { assertNotNull(key); return addValues(Collections.singletonMap(key, value)); } diff --git a/src/main/java/graphql/extensions/ExtensionsMerger.java b/src/main/java/graphql/extensions/ExtensionsMerger.java index 7ad57461c..9e4199ff3 100644 --- a/src/main/java/graphql/extensions/ExtensionsMerger.java +++ b/src/main/java/graphql/extensions/ExtensionsMerger.java @@ -1,7 +1,7 @@ package graphql.extensions; import graphql.PublicSpi; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.Map; @@ -40,6 +40,6 @@ public interface ExtensionsMerger { * * @return a non null merged map */ - @NotNull - Map merge(@NotNull Map leftMap, @NotNull Map rightMap); + @NonNull + Map merge(@NonNull Map leftMap, @NonNull Map rightMap); } diff --git a/src/main/java/graphql/incremental/DeferPayload.java b/src/main/java/graphql/incremental/DeferPayload.java index fcfb06c0c..ddec3d531 100644 --- a/src/main/java/graphql/incremental/DeferPayload.java +++ b/src/main/java/graphql/incremental/DeferPayload.java @@ -3,11 +3,12 @@ import graphql.ExecutionResult; import graphql.ExperimentalApi; import graphql.GraphQLError; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Objects; /** * Represents a defer payload @@ -41,6 +42,20 @@ public Map toSpecification() { return map; } + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), data); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + if (!super.equals(obj)) return false; + DeferPayload that = (DeferPayload) obj; + return Objects.equals(data, that.data); + } + /** * @return a {@link DeferPayload.Builder} that can be used to create an instance of {@link DeferPayload} */ diff --git a/src/main/java/graphql/incremental/DelayedIncrementalPartialResult.java b/src/main/java/graphql/incremental/DelayedIncrementalPartialResult.java index e1edaafe0..5992e3c83 100644 --- a/src/main/java/graphql/incremental/DelayedIncrementalPartialResult.java +++ b/src/main/java/graphql/incremental/DelayedIncrementalPartialResult.java @@ -1,7 +1,7 @@ package graphql.incremental; import graphql.ExperimentalApi; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Map; diff --git a/src/main/java/graphql/incremental/IncrementalExecutionResult.java b/src/main/java/graphql/incremental/IncrementalExecutionResult.java index a0bc40c32..7d59fbe95 100644 --- a/src/main/java/graphql/incremental/IncrementalExecutionResult.java +++ b/src/main/java/graphql/incremental/IncrementalExecutionResult.java @@ -2,7 +2,7 @@ import graphql.ExecutionResult; import graphql.ExperimentalApi; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import org.reactivestreams.Publisher; import java.util.List; diff --git a/src/main/java/graphql/incremental/IncrementalExecutionResultImpl.java b/src/main/java/graphql/incremental/IncrementalExecutionResultImpl.java index 704d1b67c..8bd8e62a0 100644 --- a/src/main/java/graphql/incremental/IncrementalExecutionResultImpl.java +++ b/src/main/java/graphql/incremental/IncrementalExecutionResultImpl.java @@ -3,7 +3,7 @@ import graphql.ExecutionResult; import graphql.ExecutionResultImpl; import graphql.ExperimentalApi; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import org.reactivestreams.Publisher; import java.util.LinkedHashMap; diff --git a/src/main/java/graphql/incremental/IncrementalPayload.java b/src/main/java/graphql/incremental/IncrementalPayload.java index 3ca39e183..efeba3929 100644 --- a/src/main/java/graphql/incremental/IncrementalPayload.java +++ b/src/main/java/graphql/incremental/IncrementalPayload.java @@ -3,12 +3,13 @@ import graphql.ExperimentalApi; import graphql.GraphQLError; import graphql.execution.ResultPath; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import static java.util.stream.Collectors.toList; @@ -82,6 +83,19 @@ protected Object errorsToSpec(List errors) { return errors.stream().map(GraphQLError::toSpecification).collect(toList()); } + public int hashCode() { + return Objects.hash(path, label, errors, extensions); + } + + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + IncrementalPayload that = (IncrementalPayload) obj; + return Objects.equals(path, that.path) && + Objects.equals(label, that.label) && + Objects.equals(errors, that.errors) && + Objects.equals(extensions, that.extensions); + } protected static abstract class Builder> { protected List path; diff --git a/src/main/java/graphql/incremental/StreamPayload.java b/src/main/java/graphql/incremental/StreamPayload.java index 299f5ac46..c8b0f652e 100644 --- a/src/main/java/graphql/incremental/StreamPayload.java +++ b/src/main/java/graphql/incremental/StreamPayload.java @@ -2,11 +2,12 @@ import graphql.ExperimentalApi; import graphql.GraphQLError; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Objects; /** * Represents a stream payload @@ -40,6 +41,20 @@ public Map toSpecification() { return map; } + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), items); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + if (!super.equals(obj)) return false; + StreamPayload that = (StreamPayload) obj; + return Objects.equals(items, that.items); + } + /** * @return a {@link Builder} that can be used to create an instance of {@link StreamPayload} */ diff --git a/src/main/java/graphql/introspection/Introspection.java b/src/main/java/graphql/introspection/Introspection.java index 4aea32bda..f9a80f3e8 100644 --- a/src/main/java/graphql/introspection/Introspection.java +++ b/src/main/java/graphql/introspection/Introspection.java @@ -36,7 +36,7 @@ import graphql.schema.GraphQLSchema; import graphql.schema.GraphQLUnionType; import graphql.schema.InputValueWithState; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.ArrayList; import java.util.HashSet; @@ -134,7 +134,7 @@ public static Optional isIntrospectionSensible(MergedSelectionS return Optional.empty(); } - @NotNull + @NonNull private static Optional mkDisabledError(MergedField schemaField) { IntrospectionDisabledError error = new IntrospectionDisabledError(schemaField.getSingleField().getSourceLocation()); return Optional.of(ExecutionResult.newExecutionResult().addError(error).build()); @@ -845,4 +845,4 @@ private static GraphQLFieldDefinition getSystemFieldDef(GraphQLSchema schema, Gr } return null; } -} \ No newline at end of file +} diff --git a/src/main/java/graphql/introspection/IntrospectionWithDirectivesSupport.java b/src/main/java/graphql/introspection/IntrospectionWithDirectivesSupport.java index a533dd1e2..ba939f51d 100644 --- a/src/main/java/graphql/introspection/IntrospectionWithDirectivesSupport.java +++ b/src/main/java/graphql/introspection/IntrospectionWithDirectivesSupport.java @@ -8,8 +8,8 @@ import graphql.language.AstPrinter; import graphql.language.Node; import graphql.schema.DataFetcher; -import graphql.schema.GraphQLAppliedDirectiveArgument; import graphql.schema.GraphQLAppliedDirective; +import graphql.schema.GraphQLAppliedDirectiveArgument; import graphql.schema.GraphQLCodeRegistry; import graphql.schema.GraphQLDirective; import graphql.schema.GraphQLDirectiveContainer; @@ -23,7 +23,7 @@ import graphql.schema.SchemaTransformer; import graphql.util.TraversalControl; import graphql.util.TraverserContext; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.List; import java.util.Set; @@ -238,7 +238,7 @@ private List filterAppliedDirectives(GraphQLSchema sche }).collect(toList()); } - @NotNull + @NonNull private DirectivePredicateEnvironment buildDirectivePredicateEnv(GraphQLSchema schema, boolean isDefinedDirective, GraphQLDirectiveContainer container, String directiveName) { return new DirectivePredicateEnvironment() { @Override diff --git a/src/main/java/graphql/language/AstPrinter.java b/src/main/java/graphql/language/AstPrinter.java index 3315c1302..fe7a848d8 100644 --- a/src/main/java/graphql/language/AstPrinter.java +++ b/src/main/java/graphql/language/AstPrinter.java @@ -3,18 +3,17 @@ import graphql.PublicApi; import graphql.collect.ImmutableKit; -import java.io.PrintWriter; +import java.io.IOException; +import java.io.UncheckedIOException; import java.io.Writer; -import java.util.Collections; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.StringJoiner; import static graphql.Assert.assertShouldNeverHappen; import static graphql.Assert.assertTrue; -import static graphql.util.EscapeUtil.escapeJsonString; -import static java.lang.String.valueOf; +import static graphql.util.EscapeUtil.escapeJsonStringTo; /** * This can take graphql language AST and print it out as a string @@ -75,40 +74,57 @@ public class AstPrinter { private NodePrinter argument() { if (compactMode) { - return (out, node) -> out.append(node.getName()).append(':').append(value(node.getValue())); + return (out, node) -> { + out.append(node.getName()).append(':'); + value(out, node.getValue()); + }; } - return (out, node) -> out.append(node.getName()).append(": ").append(value(node.getValue())); + return (out, node) -> { + out.append(node.getName()).append(": "); + value(out, node.getValue()); + }; } private NodePrinter document() { if (compactMode) { - return (out, node) -> out.append(join(node.getDefinitions(), " ")); + return (out, node) -> join(out, node.getDefinitions(), " "); } - return (out, node) -> out.append(join(node.getDefinitions(), "\n\n")).append("\n"); + return (out, node) -> { + join(out, node.getDefinitions(), "\n\n"); + out.append('\n'); + }; } private NodePrinter directive() { final String argSep = compactMode ? "," : ", "; return (out, node) -> { - String arguments = wrap("(", join(node.getArguments(), argSep), ")"); - out.append('@').append(node.getName()).append(arguments); + out.append('@'); + out.append(node.getName()); + if (!isEmpty(node.getArguments())) { + out.append('('); + join(out, node.getArguments(), argSep); + out.append(')'); + } }; } private NodePrinter directiveDefinition() { final String argSep = compactMode ? "," : ", "; return (out, node) -> { - out.append(description(node)); - String arguments = wrap("(", join(node.getInputValueDefinitions(), argSep), ")"); - String locations = join(node.getDirectiveLocations(), " | "); - String repeatable = node.isRepeatable() ? "repeatable " : ""; - out.append("directive @") - .append(node.getName()) - .append(arguments) - .append(" ") - .append(repeatable) - .append("on ") - .append(locations); + description(out, node); + out.append("directive @"); + out.append(node.getName()); + if (!isEmpty(node.getInputValueDefinitions())) { + out.append('('); + join(out, node.getInputValueDefinitions(), argSep); + out.append(')'); + } + out.append(" "); + if (node.isRepeatable()) { + out.append("repeatable "); + } + out.append("on "); + join(out, node.getDirectiveLocations(), " | "); }; } @@ -118,13 +134,15 @@ private NodePrinter directiveLocation() { private NodePrinter enumTypeDefinition() { return (out, node) -> { - out.append(description(node)); - out.append(spaced( - "enum", - node.getName(), - directives(node.getDirectives()), - block(node.getEnumValueDefinitions()) - )); + description(out, node); + out.append("enum "); + out.append(node.getName()); + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } + out.append(' '); + block(out, node.getEnumValueDefinitions()); }; } @@ -134,11 +152,12 @@ private NodePrinter enumValue() { private NodePrinter enumValueDefinition() { return (out, node) -> { - out.append(description(node)); - out.append(spaced( - node.getName(), - directives(node.getDirectives()) - )); + description(out, node); + out.append(node.getName()); + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } }; } @@ -146,128 +165,131 @@ private NodePrinter field() { final String argSep = compactMode ? "," : ", "; final String aliasSuffix = compactMode ? ":" : ": "; return (out, node) -> { - String alias = wrap("", node.getAlias(), aliasSuffix); String name = node.getName(); - String arguments = wrap("(", join(node.getArguments(), argSep), ")"); - String directives = directives(node.getDirectives()); - String selectionSet = node(node.getSelectionSet()); - - if (compactMode) { - out.append(spaced( - alias + name + arguments, - directives - )); - out.append(selectionSet); - } else { - out.append(spaced( - alias + name + arguments, - directives, - selectionSet - )); - } + if (!isEmpty(node.getAlias())) { + out.append(node.getAlias()); + out.append(aliasSuffix); + } + out.append(name); + if (!isEmpty(node.getArguments())) { + out.append('('); + join(out, node.getArguments(), argSep); + out.append(')'); + } + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } + if (node.getSelectionSet() != null && !isEmpty(node.getSelectionSet().getSelections())) { + if (!compactMode) { + out.append(' '); + } + node(out, node.getSelectionSet()); + } }; } - private NodePrinter fieldDefinition() { final String argSep = compactMode ? "," : ", "; return (out, node) -> { - String args; - if (hasDescription(Collections.singletonList(node)) && !compactMode) { - out.append(description(node)); - args = join(node.getInputValueDefinitions(), "\n"); - out.append(node.getName()) - .append(wrap("(\n", args, ")")) - .append(": ") - .append(spaced( - type(node.getType()), - directives(node.getDirectives()) - )); + if (hasDescription(node) && !compactMode) { + description(out, node); + out.append(node.getName()); + if (!isEmpty(node.getInputValueDefinitions())) { + out.append("(\n"); + join(out, node.getInputValueDefinitions(), "\n"); + out.append(')'); + } + out.append(": "); + type(out, node.getType()); + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } } else { - args = join(node.getInputValueDefinitions(), argSep); - out.append(node.getName()) - .append(wrap("(", args, ")")) - .append(": ") - .append(spaced( - type(node.getType()), - directives(node.getDirectives()) - )); + out.append(node.getName()); + if (!isEmpty(node.getInputValueDefinitions())) { + out.append('('); + join(out, node.getInputValueDefinitions(), argSep); + out.append(')'); + } + out.append(": "); + type(out, node.getType()); + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } } }; } - private boolean hasDescription(List nodes) { - for (Node node : nodes) { - if (node instanceof AbstractDescribedNode) { - AbstractDescribedNode describedNode = (AbstractDescribedNode) node; - if (describedNode.getDescription() != null) { - return true; - } - } + private static boolean hasDescription(Node node) { + if (node instanceof AbstractDescribedNode) { + AbstractDescribedNode describedNode = (AbstractDescribedNode) node; + return describedNode.getDescription() != null; } - return false; } private NodePrinter fragmentDefinition() { return (out, node) -> { - String name = node.getName(); - String typeCondition = type(node.getTypeCondition()); - String directives = directives(node.getDirectives()); - String selectionSet = node(node.getSelectionSet()); - - out.append("fragment ").append(name).append(" on ").append(typeCondition) - .append(' ') - .append(directives) - .append(selectionSet); + out.append("fragment "); + out.append(node.getName()); + out.append(" on "); + type(out, node.getTypeCondition()); + out.append(' '); + directives(out, node.getDirectives()); + node(out, node.getSelectionSet()); }; } private NodePrinter fragmentSpread() { return (out, node) -> { - String name = node.getName(); - String directives = directives(node.getDirectives()); - - out.append("...").append(name).append(directives); + out.append("..."); + out.append(node.getName()); + directives(out, node.getDirectives()); }; } private NodePrinter inlineFragment() { return (out, node) -> { - TypeName typeName = node.getTypeCondition(); - //Inline fragments may not have a type condition - String typeCondition = typeName == null ? "" : wrap("on ", type(typeName), ""); - String directives = directives(node.getDirectives()); - String selectionSet = node(node.getSelectionSet()); - + out.append("..."); if (compactMode) { // believe it or not but "...on Foo" is valid syntax - out.append("..."); - out.append(spaced( - typeCondition, - directives - )); - out.append(selectionSet); + if (node.getTypeCondition() != null) { + out.append("on "); + type(out, node.getTypeCondition()); + } + directives(out, node.getDirectives()); + node(out, node.getSelectionSet()); } else { - out.append(spaced( - "...", - typeCondition, - directives, - selectionSet - )); + if (node.getTypeCondition() != null) { + out.append(" on "); + type(out, node.getTypeCondition()); + } + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } + out.append(' '); + node(out, node.getSelectionSet()); } }; } private NodePrinter inputObjectTypeDefinition() { return (out, node) -> { - out.append(description(node)); - out.append(spaced( - "input", - node.getName(), - directives(node.getDirectives()), - block(node.getInputValueDefinitions()) - )); + description(out, node); + out.append("input "); + out.append(node.getName()); + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } + if (!isEmpty(node.getInputValueDefinitions())) { + out.append(' '); + block(out, node.getInputValueDefinitions()); + } }; } @@ -275,192 +297,272 @@ private NodePrinter inputValueDefinition() { String nameTypeSep = compactMode ? ":" : ": "; String defaultValueEquals = compactMode ? "=" : "= "; return (out, node) -> { - Value defaultValue = node.getDefaultValue(); - out.append(description(node)); - out.append(spaced( - node.getName() + nameTypeSep + type(node.getType()), - wrap(defaultValueEquals, defaultValue, ""), - directives(node.getDirectives()) - )); + Value defaultValue = node.getDefaultValue(); + description(out, node); + out.append(node.getName()); + out.append(nameTypeSep); + type(out, node.getType()); + if (defaultValue != null) { + out.append(' '); + out.append(defaultValueEquals); + node(out, defaultValue); + } + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } }; } private NodePrinter interfaceTypeDefinition() { return (out, node) -> { - out.append(description(node)); - out.append(spaced( - "interface", - node.getName(), - wrap("implements ", join(node.getImplements(), " & "), ""), - directives(node.getDirectives()), - block(node.getFieldDefinitions()) - )); + description(out, node); + out.append("interface "); + out.append(node.getName()); + if (!isEmpty(node.getImplements())) { + out.append(" implements "); + join(out, node.getImplements(), " & "); + } + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } + if (!isEmpty(node.getFieldDefinitions())) { + out.append(' '); + block(out, node.getFieldDefinitions()); + } }; } private NodePrinter objectField() { String nameValueSep = compactMode ? ":" : " : "; - return (out, node) -> out.append(node.getName()).append(nameValueSep).append(value(node.getValue())); + return (out, node) -> { + out.append(node.getName()); + out.append(nameValueSep); + value(out, node.getValue()); + }; } private NodePrinter operationDefinition() { final String argSep = compactMode ? "," : ", "; return (out, node) -> { - String op = node.getOperation().toString().toLowerCase(); String name = node.getName(); - String varDefinitions = wrap("(", join(nvl(node.getVariableDefinitions()), argSep), ")"); - String directives = directives(node.getDirectives()); - String selectionSet = node(node.getSelectionSet()); - // Anonymous queries with no directives or variable definitions can use // the query short form. - if (isEmpty(name) && isEmpty(directives) && isEmpty(varDefinitions) && op.equals("query")) { - out.append(selectionSet); + if (isEmpty(name) && isEmpty(node.getDirectives()) && isEmpty(node.getVariableDefinitions()) + && node.getOperation() == OperationDefinition.Operation.QUERY) { + node(out, node.getSelectionSet()); } else { - if (compactMode) { - out.append(spaced(op, smooshed(name, varDefinitions), directives)); - out.append(selectionSet); - } else { - out.append(spaced(op, smooshed(name, varDefinitions), directives, selectionSet)); + out.append(node.getOperation().toString().toLowerCase()); + if (!isEmpty(name)) { + out.append(' '); + out.append(name); } + if (!isEmpty(node.getVariableDefinitions())) { + if (isEmpty(name)) { + out.append(' '); + } + out.append('('); + join(out, node.getVariableDefinitions(), argSep); + out.append(')'); + } + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } + if (!compactMode) { + out.append(' '); + } + node(out, node.getSelectionSet()); } }; } private NodePrinter operationTypeDefinition() { String nameTypeSep = compactMode ? ":" : ": "; - return (out, node) -> out.append(node.getName()).append(nameTypeSep).append(type(node.getTypeName())); + return (out, node) -> { + out.append(node.getName()); + out.append(nameTypeSep); + type(out, node.getTypeName()); + }; } private NodePrinter objectTypeDefinition() { return (out, node) -> { - out.append(description(node)); - out.append(spaced( - "type", - node.getName(), - wrap("implements ", join(node.getImplements(), " & "), ""), - directives(node.getDirectives()), - block(node.getFieldDefinitions()) - )); + description(out, node); + out.append("type "); + out.append(node.getName()); + if (!isEmpty(node.getImplements())) { + out.append(" implements "); + join(out, node.getImplements(), " & "); + } + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } + if (!isEmpty(node.getFieldDefinitions())) { + out.append(' '); + block(out, node.getFieldDefinitions()); + } }; } private NodePrinter selectionSet() { - return (out, node) -> { - String block = block(node.getSelections()); - out.append(block); - }; + return (out, node) -> block(out, node.getSelections()); } private NodePrinter scalarTypeDefinition() { return (out, node) -> { - out.append(description(node)); - out.append(spaced( - "scalar", - node.getName(), - directives(node.getDirectives()))); + description(out, node); + out.append("scalar "); + out.append(node.getName()); + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } }; } private NodePrinter schemaDefinition() { return (out, node) -> { - out.append(description(node)); - out.append(spaced( - "schema", - directives(node.getDirectives()), - block(node.getOperationTypeDefinitions()) - )); + description(out, node); + out.append("schema "); + if (!isEmpty(node.getDirectives())) { + directives(out, node.getDirectives()); + out.append(' '); + } + block(out, node.getOperationTypeDefinitions()); }; } - private NodePrinter type() { - return (out, node) -> out.append(type(node)); + private NodePrinter> type() { + return this::type; } - private String type(Type type) { + private void type(StringBuilder out, Type type) { if (type instanceof NonNullType) { NonNullType inner = (NonNullType) type; - return wrap("", type(inner.getType()), "!"); + type(out, inner.getType()); + out.append('!'); } else if (type instanceof ListType) { ListType inner = (ListType) type; - return wrap("[", type(inner.getType()), "]"); + out.append('['); + type(out, inner.getType()); + out.append(']'); } else { TypeName inner = (TypeName) type; - return inner.getName(); + out.append(inner.getName()); } } private NodePrinter objectTypeExtensionDefinition() { - return (out, node) -> out.append("extend ").append(node(node, ObjectTypeDefinition.class)); + return (out, node) -> { + out.append("extend "); + node(out, node, ObjectTypeDefinition.class); + }; } private NodePrinter enumTypeExtensionDefinition() { - return (out, node) -> out.append("extend ").append(node(node, EnumTypeDefinition.class)); + return (out, node) -> { + out.append("extend "); + node(out, node, EnumTypeDefinition.class); + }; } private NodePrinter interfaceTypeExtensionDefinition() { - return (out, node) -> out.append("extend ").append(node(node, InterfaceTypeDefinition.class)); + return (out, node) -> { + out.append("extend "); + node(out, node, InterfaceTypeDefinition.class); + }; } private NodePrinter unionTypeExtensionDefinition() { - return (out, node) -> out.append("extend ").append(node(node, UnionTypeDefinition.class)); + return (out, node) -> { + out.append("extend "); + node(out, node, UnionTypeDefinition.class); + }; } private NodePrinter scalarTypeExtensionDefinition() { - return (out, node) -> out.append("extend ").append(node(node, ScalarTypeDefinition.class)); + return (out, node) -> { + out.append("extend "); + node(out, node, ScalarTypeDefinition.class); + }; } private NodePrinter inputObjectTypeExtensionDefinition() { - return (out, node) -> out.append("extend ").append(node(node, InputObjectTypeDefinition.class)); + return (out, node) -> { + out.append("extend "); + node(out, node, InputObjectTypeDefinition.class); + }; } private NodePrinter schemaExtensionDefinition() { - return (out, node) -> out.append("extend ").append(node(node, SchemaDefinition.class)); + return (out, node) -> { + out.append("extend "); + node(out, node, SchemaDefinition.class); + }; } private NodePrinter unionTypeDefinition() { String barSep = compactMode ? "|" : " | "; String equals = compactMode ? "=" : "= "; return (out, node) -> { - out.append(description(node)); - out.append(spaced( - "union", - node.getName(), - directives(node.getDirectives()), - equals + join(node.getMemberTypes(), barSep) - )); + description(out, node); + out.append("union "); + out.append(node.getName()); + if (!isEmpty(node.getDirectives())) { + out.append(' '); + directives(out, node.getDirectives()); + } + out.append(' '); + out.append(equals); + join(out, node.getMemberTypes(), barSep); }; } private NodePrinter variableDefinition() { String nameTypeSep = compactMode ? ":" : ": "; String defaultValueEquals = compactMode ? "=" : " = "; - return (out, node) -> out.append('$') - .append(node.getName()) - .append(nameTypeSep) - .append(type(node.getType())) - .append(wrap(defaultValueEquals, node.getDefaultValue(), "")) - .append(directives(node.getDirectives())); + return (out, node) -> { + out.append('$'); + out.append(node.getName()); + out.append(nameTypeSep); + type(out, node.getType()); + if (node.getDefaultValue() != null) { + out.append(defaultValueEquals); + node(out, node.getDefaultValue()); + } + directives(out, node.getDirectives()); + }; } private NodePrinter variableReference() { return (out, node) -> out.append('$').append(node.getName()); } - private String node(Node node) { + private String node(Node node) { return node(node, null); } - private String node(Node node, Class startClass) { + private void node(StringBuilder out, Node node) { + node(out, node, null); + } + + private String node(Node node, Class startClass) { + StringBuilder builder = new StringBuilder(); + node(builder, node, startClass); + return builder.toString(); + } + + private void node(StringBuilder out, Node node, Class startClass) { if (startClass != null) { assertTrue(startClass.isInstance(node), () -> "The starting class must be in the inherit tree"); } - StringBuilder builder = new StringBuilder(); - NodePrinter printer = _findPrinter(node, startClass); - printer.print(builder, node); - return builder.toString(); + NodePrinter> printer = _findPrinter(node, startClass); + printer.print(out, node); } @SuppressWarnings("unchecked") @@ -473,7 +575,7 @@ NodePrinter _findPrinter(Node node, Class startClass) { return (out, type) -> { }; } - Class clazz = startClass != null ? startClass : node.getClass(); + Class clazz = startClass != null ? startClass : node.getClass(); while (clazz != Object.class) { NodePrinter nodePrinter = printers.get(clazz); if (nodePrinter != null) { @@ -485,67 +587,86 @@ NodePrinter _findPrinter(Node node, Class startClass) { return assertShouldNeverHappen("We have a missing printer implementation for %s : report a bug!", clazz); } - private boolean isEmpty(List list) { + private static boolean isEmpty(List list) { return list == null || list.isEmpty(); } - private boolean isEmpty(String s) { + private static boolean isEmpty(String s) { return s == null || s.isBlank(); } - private List nvl(List list) { + private static List nvl(List list) { return list != null ? list : ImmutableKit.emptyList(); } - private NodePrinter value() { - return (out, node) -> out.append(value(node)); + private NodePrinter> value() { + return this::value; } - private String value(Value value) { + private void value(StringBuilder out, Value value) { String argSep = compactMode ? "," : ", "; if (value instanceof IntValue) { - return valueOf(((IntValue) value).getValue()); + out.append(((IntValue) value).getValue()); } else if (value instanceof FloatValue) { - return valueOf(((FloatValue) value).getValue()); + out.append(((FloatValue) value).getValue()); } else if (value instanceof StringValue) { - return "\"" + escapeJsonString(((StringValue) value).getValue()) + "\""; + out.append('"'); + escapeJsonStringTo(out, ((StringValue) value).getValue()); + out.append('"'); } else if (value instanceof EnumValue) { - return valueOf(((EnumValue) value).getName()); + out.append(((EnumValue) value).getName()); } else if (value instanceof BooleanValue) { - return valueOf(((BooleanValue) value).isValue()); + out.append(((BooleanValue) value).isValue()); } else if (value instanceof NullValue) { - return "null"; + out.append("null"); } else if (value instanceof ArrayValue) { - return "[" + join(((ArrayValue) value).getValues(), argSep) + "]"; + out.append('['); + join(out, ((ArrayValue) value).getValues(), argSep); + out.append(']'); } else if (value instanceof ObjectValue) { - return "{" + join(((ObjectValue) value).getObjectFields(), argSep) + "}"; + out.append('{'); + join(out, ((ObjectValue) value).getObjectFields(), argSep); + out.append('}'); } else if (value instanceof VariableReference) { - return "$" + ((VariableReference) value).getName(); + out.append('$'); + out.append(((VariableReference) value).getName()); } - return ""; } - private String description(Node node) { + private void description(StringBuilder out, Node node) { Description description = ((AbstractDescribedNode) node).getDescription(); if (description == null || description.getContent() == null || compactMode) { - return ""; + return; } - String s; - boolean startNewLine = description.getContent().length() > 0 && description.getContent().charAt(0) == '\n'; +; if (description.isMultiLine()) { - s = "\"\"\"" + (startNewLine ? "" : "\n") + description.getContent() + "\n\"\"\"\n"; + out.append("\"\"\""); + if (description.getContent().isEmpty() || description.getContent().charAt(0) != '\n') { + out.append('\n'); + } + out.append(description.getContent()); + out.append("\n\"\"\"\n"); } else { - s = "\"" + escapeJsonString(description.getContent()) + "\"\n"; + out.append('"'); + escapeJsonStringTo(out, description.getContent()); + out.append("\"\n"); } - return s; } - private String directives(List directives) { - return join(nvl(directives), compactMode ? "" : " "); + private void directives(StringBuilder out, List directives) { + join(out, nvl(directives), compactMode ? "" : " "); } - private String join(List nodes, String delim) { - return join(nodes, delim, "", ""); + private > void join(StringBuilder out, List nodes, String delim) { + if (isEmpty(nodes)) { + return; + } + Iterator iterator = nodes.iterator(); + node(out, iterator.next()); + while (iterator.hasNext()) { + out.append(delim); + node(out, iterator.next()); + } } /* @@ -553,58 +674,22 @@ private String join(List nodes, String delim) { * This encodes that knowledge of those that don't require delimiters */ @SuppressWarnings("SameParameterValue") - private String joinTight(List nodes, String delim, String prefix, String suffix) { - StringBuilder joined = new StringBuilder(); - joined.append(prefix); + private > void joinTight(StringBuilder output, List nodes, String delim, String prefix, String suffix) { + output.append(prefix); - String lastNodeText = ""; boolean first = true; for (T node : nodes) { if (first) { first = false; } else { - boolean canButtTogether = lastNodeText.endsWith("}"); - if (!canButtTogether) { - joined.append(delim); + if (output.charAt(output.length() - 1) != '}') { + output.append(delim); } } - String nodeText = this.node(node); - lastNodeText = nodeText; - joined.append(nodeText); + node(output, node); } - joined.append(suffix); - return joined.toString(); - } - - private String join(List nodes, String delim, String prefix, String suffix) { - StringJoiner joiner = new StringJoiner(delim, prefix, suffix); - - for (T node : nodes) { - joiner.add(node(node)); - } - - return joiner.toString(); - } - - private String spaced(String... args) { - return join(" ", args); - } - - private String smooshed(String... args) { - return join("", args); - } - - private String join(String delim, String... args) { - StringJoiner joiner = new StringJoiner(delim); - - for (final String arg : args) { - if (!isEmpty(arg)) { - joiner.add(arg); - } - } - - return joiner.toString(); + output.append(suffix); } String wrap(String start, String maybeString, String end) { @@ -617,27 +702,31 @@ String wrap(String start, String maybeString, String end) { return start + maybeString + (!isEmpty(end) ? end : ""); } - private String block(List nodes) { + private > void block(StringBuilder out, List nodes) { if (isEmpty(nodes)) { - return ""; + return; } if (compactMode) { - String joinedNodes = joinTight(nodes, " ", "", ""); - return "{" + joinedNodes + "}"; + out.append('{'); + joinTight(out, nodes, " ", "", ""); + out.append('}'); + } else { + int offset = out.length(); + out.append("{\n"); + join(out, nodes, "\n"); + indent(out, offset); + out.append("\n}"); } - return indent(new StringBuilder().append("{\n").append(join(nodes, "\n"))) - + "\n}"; } - private StringBuilder indent(StringBuilder maybeString) { - for (int i = 0; i < maybeString.length(); i++) { + private static void indent(StringBuilder maybeString, int offset) { + for (int i = offset; i < maybeString.length(); i++) { char c = maybeString.charAt(i); if (c == '\n') { maybeString.replace(i, i + 1, "\n "); i += 3; } } - return maybeString; } @SuppressWarnings("SameParameterValue") @@ -657,10 +746,33 @@ String wrap(String start, Node maybeNode, String end) { */ public static String printAst(Node node) { StringBuilder builder = new StringBuilder(); - printImpl(builder, node, false); + printAstTo(node, builder); return builder.toString(); } + /** + * This will pretty print the AST node in graphql language format to the given Appendable + * + * @param node the AST node to print + * @param appendable the Appendable to write the output to + * + */ + public static void printAstTo(Node node, Appendable appendable) { + if (appendable instanceof StringBuilder) { + printImpl((StringBuilder) appendable, node, false); + } else if (appendable instanceof Writer) { + printAst((Writer) appendable, node); + } else { + StringBuilder builder = new StringBuilder(); + printImpl(builder, node, false); + try { + appendable.append(builder); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + } + /** * This will pretty print the AST node in graphql language format * @@ -669,8 +781,11 @@ public static String printAst(Node node) { */ public static void printAst(Writer writer, Node node) { String ast = printAst(node); - PrintWriter printer = new PrintWriter(writer); - printer.write(ast); + try { + writer.write(ast); + } catch (IOException e) { + throw new UncheckedIOException(e); + } } /** @@ -687,7 +802,7 @@ public static String printAstCompact(Node node) { return builder.toString(); } - private static void printImpl(StringBuilder writer, Node node, boolean compactMode) { + private static void printImpl(StringBuilder writer, Node node, boolean compactMode) { AstPrinter astPrinter = new AstPrinter(compactMode); NodePrinter printer = astPrinter._findPrinter(node); printer.print(writer, node); diff --git a/src/main/java/graphql/language/InterfaceTypeDefinition.java b/src/main/java/graphql/language/InterfaceTypeDefinition.java index 51b6ef61e..c86c0fa48 100644 --- a/src/main/java/graphql/language/InterfaceTypeDefinition.java +++ b/src/main/java/graphql/language/InterfaceTypeDefinition.java @@ -21,7 +21,7 @@ import static graphql.language.NodeChildrenContainer.newNodeChildrenContainer; @PublicApi -public class InterfaceTypeDefinition extends AbstractDescribedNode implements ImplementingTypeDefinition, DirectivesContainer, NamedNode, SDLExtensionDefinition { +public class InterfaceTypeDefinition extends AbstractDescribedNode implements ImplementingTypeDefinition, DirectivesContainer, NamedNode { private final String name; private final ImmutableList implementz; diff --git a/src/main/java/graphql/language/InterfaceTypeExtensionDefinition.java b/src/main/java/graphql/language/InterfaceTypeExtensionDefinition.java index a693c5286..2de917065 100644 --- a/src/main/java/graphql/language/InterfaceTypeExtensionDefinition.java +++ b/src/main/java/graphql/language/InterfaceTypeExtensionDefinition.java @@ -14,7 +14,7 @@ import static graphql.collect.ImmutableKit.emptyList; @PublicApi -public class InterfaceTypeExtensionDefinition extends InterfaceTypeDefinition { +public class InterfaceTypeExtensionDefinition extends InterfaceTypeDefinition implements SDLExtensionDefinition { @Internal protected InterfaceTypeExtensionDefinition(String name, diff --git a/src/main/java/graphql/normalized/ArgumentMaker.java b/src/main/java/graphql/normalized/ArgumentMaker.java new file mode 100644 index 000000000..c6ad4868b --- /dev/null +++ b/src/main/java/graphql/normalized/ArgumentMaker.java @@ -0,0 +1,110 @@ +package graphql.normalized; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import graphql.Internal; +import graphql.execution.directives.QueryAppliedDirective; +import graphql.execution.directives.QueryAppliedDirectiveArgument; +import graphql.execution.directives.QueryDirectives; +import graphql.language.Argument; +import graphql.language.ArrayValue; +import graphql.language.NullValue; +import graphql.language.ObjectField; +import graphql.language.ObjectValue; +import graphql.language.Value; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +import java.util.List; +import java.util.Map; + +import static graphql.collect.ImmutableKit.emptyMap; +import static graphql.collect.ImmutableKit.map; +import static graphql.language.Argument.newArgument; + +/** + * This class is a peer class and broken out of {@link ExecutableNormalizedOperationToAstCompiler} to deal with + * argument value making. + */ +@Internal +class ArgumentMaker { + + static List createArguments(ExecutableNormalizedField executableNormalizedField, + VariableAccumulator variableAccumulator) { + ImmutableList.Builder result = ImmutableList.builder(); + ImmutableMap normalizedArguments = executableNormalizedField.getNormalizedArguments(); + for (String argName : normalizedArguments.keySet()) { + NormalizedInputValue normalizedInputValue = normalizedArguments.get(argName); + Value value = argValue(executableNormalizedField, null, argName, normalizedInputValue, variableAccumulator); + Argument argument = newArgument() + .name(argName) + .value(value) + .build(); + result.add(argument); + } + return result.build(); + } + + static List createDirectiveArguments(ExecutableNormalizedField executableNormalizedField, + QueryDirectives queryDirectives, + QueryAppliedDirective queryAppliedDirective, + VariableAccumulator variableAccumulator) { + + Map argValueMap = queryDirectives.getNormalizedInputValueByImmediateAppliedDirectives().getOrDefault(queryAppliedDirective, emptyMap()); + + ImmutableList.Builder result = ImmutableList.builder(); + for (QueryAppliedDirectiveArgument directiveArgument : queryAppliedDirective.getArguments()) { + String argName = directiveArgument.getName(); + if (argValueMap != null && argValueMap.containsKey(argName)) { + NormalizedInputValue normalizedInputValue = argValueMap.get(argName); + Value value = argValue(executableNormalizedField, queryAppliedDirective, argName, normalizedInputValue, variableAccumulator); + Argument argument = newArgument() + .name(argName) + .value(value) + .build(); + result.add(argument); + } + } + return result.build(); + } + + @SuppressWarnings("unchecked") + private static Value argValue(ExecutableNormalizedField executableNormalizedField, + QueryAppliedDirective queryAppliedDirective, + String argName, + @Nullable Object value, + VariableAccumulator variableAccumulator) { + if (value instanceof List) { + ArrayValue.Builder arrayValue = ArrayValue.newArrayValue(); + arrayValue.values(map((List) value, val -> argValue(executableNormalizedField, queryAppliedDirective, argName, val, variableAccumulator))); + return arrayValue.build(); + } + if (value instanceof Map) { + ObjectValue.Builder objectValue = ObjectValue.newObjectValue(); + Map map = (Map) value; + for (String fieldName : map.keySet()) { + Value fieldValue = argValue(executableNormalizedField, queryAppliedDirective, argName, (NormalizedInputValue) map.get(fieldName), variableAccumulator); + objectValue.objectField(ObjectField.newObjectField().name(fieldName).value(fieldValue).build()); + } + return objectValue.build(); + } + if (value == null) { + return NullValue.newNullValue().build(); + } + return (Value) value; + } + + @NonNull + private static Value argValue(ExecutableNormalizedField executableNormalizedField, + QueryAppliedDirective queryAppliedDirective, + String argName, + NormalizedInputValue normalizedInputValue, + VariableAccumulator variableAccumulator) { + if (variableAccumulator.shouldMakeVariable(executableNormalizedField, queryAppliedDirective, argName, normalizedInputValue)) { + VariableValueWithDefinition variableWithDefinition = variableAccumulator.accumulateVariable(normalizedInputValue); + return variableWithDefinition.getVariableReference(); + } else { + return argValue(executableNormalizedField, queryAppliedDirective, argName, normalizedInputValue.getValue(), variableAccumulator); + } + } +} diff --git a/src/main/java/graphql/normalized/ExecutableNormalizedField.java b/src/main/java/graphql/normalized/ExecutableNormalizedField.java index f9db04b00..963c2ae5a 100644 --- a/src/main/java/graphql/normalized/ExecutableNormalizedField.java +++ b/src/main/java/graphql/normalized/ExecutableNormalizedField.java @@ -19,8 +19,8 @@ import graphql.schema.GraphQLUnionType; import graphql.util.FpKit; import graphql.util.MutableRef; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; @@ -136,7 +136,7 @@ private ExecutableNormalizedField(Builder builder) { * * @return true if the field is conditional */ - public boolean isConditional(@NotNull GraphQLSchema schema) { + public boolean isConditional(@NonNull GraphQLSchema schema) { if (parent == null) { return false; } @@ -655,7 +655,7 @@ public Builder resolvedArguments(@Nullable Map arguments) { return this; } - public Builder astArguments(@NotNull List astArguments) { + public Builder astArguments(@NonNull List astArguments) { this.astArguments = ImmutableList.copyOf(astArguments); return this; } diff --git a/src/main/java/graphql/normalized/ExecutableNormalizedOperationFactory.java b/src/main/java/graphql/normalized/ExecutableNormalizedOperationFactory.java index 085fad0af..3becba670 100644 --- a/src/main/java/graphql/normalized/ExecutableNormalizedOperationFactory.java +++ b/src/main/java/graphql/normalized/ExecutableNormalizedOperationFactory.java @@ -12,6 +12,7 @@ import graphql.execution.AbortExecutionException; import graphql.execution.CoercedVariables; import graphql.execution.MergedField; +import graphql.execution.NormalizedVariables; import graphql.execution.RawVariables; import graphql.execution.ValuesResolver; import graphql.execution.conditional.ConditionalNodes; @@ -42,7 +43,7 @@ import graphql.schema.GraphQLUnionType; import graphql.schema.GraphQLUnmodifiedType; import graphql.schema.impl.SchemaUtil; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; @@ -52,6 +53,7 @@ import java.util.Locale; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.function.Function; import java.util.function.Predicate; @@ -423,7 +425,7 @@ public static ExecutableNormalizedOperation createExecutableNormalizedOperationW rawVariables, options.getGraphQLContext(), options.getLocale()); - Map normalizedVariableValues = ValuesResolver.getNormalizedVariableValues(graphQLSchema, + NormalizedVariables normalizedVariableValues = ValuesResolver.getNormalizedVariableValues(graphQLSchema, variableDefinitions, rawVariables, options.getGraphQLContext(), @@ -445,7 +447,7 @@ private static class ExecutableNormalizedOperationFactoryImpl { private final OperationDefinition operationDefinition; private final Map fragments; private final CoercedVariables coercedVariableValues; - private final @Nullable Map normalizedVariableValues; + private final @Nullable NormalizedVariables normalizedVariableValues; private final Options options; private final List possibleMergerList = new ArrayList<>(); @@ -457,12 +459,14 @@ private static class ExecutableNormalizedOperationFactoryImpl { private int fieldCount = 0; private int maxDepthSeen = 0; + private final List rootEnfs = new ArrayList<>(); + private ExecutableNormalizedOperationFactoryImpl( GraphQLSchema graphQLSchema, OperationDefinition operationDefinition, Map fragments, CoercedVariables coercedVariableValues, - @Nullable Map normalizedVariableValues, + @Nullable NormalizedVariables normalizedVariableValues, Options options ) { this.graphQLSchema = graphQLSchema; @@ -477,26 +481,8 @@ private ExecutableNormalizedOperationFactoryImpl( * Creates a new ExecutableNormalizedOperation for the provided query */ private ExecutableNormalizedOperation createNormalizedQueryImpl() { - GraphQLObjectType rootType = SchemaUtil.getOperationRootType(graphQLSchema, operationDefinition); - - CollectNFResult collectFromOperationResult = collectFromOperation(rootType); - - for (ExecutableNormalizedField topLevel : collectFromOperationResult.children) { - ImmutableList fieldAndAstParents = collectFromOperationResult.normalizedFieldToAstFields.get(topLevel); - MergedField mergedField = newMergedField(fieldAndAstParents); + buildEnfsRecursively(null, null, 0); - captureMergedField(topLevel, mergedField); - - updateFieldToNFMap(topLevel, fieldAndAstParents); - updateCoordinatedToNFMap(topLevel); - - int depthSeen = buildFieldWithChildren( - topLevel, - fieldAndAstParents, - 1); - maxDepthSeen = Math.max(maxDepthSeen, depthSeen); - } - // getPossibleMergerList for (PossibleMerger possibleMerger : possibleMergerList) { List childrenWithSameResultKey = possibleMerger.parent.getChildrenWithSameResultKey(possibleMerger.resultKey); ENFMerger.merge(possibleMerger.parent, childrenWithSameResultKey, graphQLSchema, options.deferSupport); @@ -504,7 +490,7 @@ private ExecutableNormalizedOperation createNormalizedQueryImpl() { return new ExecutableNormalizedOperation( operationDefinition.getOperation(), operationDefinition.getName(), - new ArrayList<>(collectFromOperationResult.children), + new ArrayList<>(rootEnfs), fieldToNormalizedField.build(), normalizedFieldToMergedField.build(), normalizedFieldToQueryDirectives.build(), @@ -516,22 +502,74 @@ private ExecutableNormalizedOperation createNormalizedQueryImpl() { private void captureMergedField(ExecutableNormalizedField enf, MergedField mergedFld) { // QueryDirectivesImpl is a lazy object and only computes itself when asked for - QueryDirectives queryDirectives = new QueryDirectivesImpl(mergedFld, graphQLSchema, coercedVariableValues.toMap(), options.getGraphQLContext(), options.getLocale()); + QueryDirectives queryDirectives = new QueryDirectivesImpl(mergedFld, + graphQLSchema, + coercedVariableValues, + () -> normalizedVariableValues, + options.getGraphQLContext(), + options.getLocale()); normalizedFieldToQueryDirectives.put(enf, queryDirectives); normalizedFieldToMergedField.put(enf, mergedFld); } - private int buildFieldWithChildren(ExecutableNormalizedField executableNormalizedField, - ImmutableList fieldAndAstParents, - int curLevel) { - checkMaxDepthExceeded(curLevel); + private void buildEnfsRecursively(@Nullable ExecutableNormalizedField executableNormalizedField, + @Nullable ImmutableList fieldAndAstParents, + int curLevel) { + if (this.maxDepthSeen < curLevel) { + this.maxDepthSeen = curLevel; + checkMaxDepthExceeded(curLevel); + } + Set possibleObjects; + List collectedFields; - CollectNFResult nextLevel = collectFromMergedField(executableNormalizedField, fieldAndAstParents, curLevel + 1); + // special handling for the root selection Set + if (executableNormalizedField == null) { + GraphQLObjectType rootType = SchemaUtil.getOperationRootType(graphQLSchema, operationDefinition); + possibleObjects = ImmutableSet.of(rootType); + collectedFields = new ArrayList<>(); + collectFromSelectionSet(operationDefinition.getSelectionSet(), collectedFields, rootType, possibleObjects, null); + } else { + List fieldDefs = executableNormalizedField.getFieldDefinitions(graphQLSchema); + possibleObjects = resolvePossibleObjects(fieldDefs); + if (possibleObjects.isEmpty()) { + return; + } + collectedFields = new ArrayList<>(); + for (CollectedField fieldAndAstParent : fieldAndAstParents) { + if (fieldAndAstParent.field.getSelectionSet() == null) { + continue; + } + // the AST parent comes from the previous collect from selection set call + // and is the type to which the field belongs (the container type of the field) and output type + // of the field needs to be determined based on the field name + GraphQLFieldDefinition fieldDefinition = Introspection.getFieldDef(graphQLSchema, fieldAndAstParent.astTypeCondition, fieldAndAstParent.field.getName()); + // it must a composite type, because the field has a selection set + GraphQLCompositeType selectionSetType = (GraphQLCompositeType) unwrapAll(fieldDefinition.getType()); + this.collectFromSelectionSet(fieldAndAstParent.field.getSelectionSet(), + collectedFields, + selectionSetType, + possibleObjects, + null + ); + } + } - int maxDepthSeen = curLevel; - for (ExecutableNormalizedField childENF : nextLevel.children) { - executableNormalizedField.addChild(childENF); - ImmutableList childFieldAndAstParents = nextLevel.normalizedFieldToAstFields.get(childENF); + Map> fieldsByName = fieldsByResultKey(collectedFields); + ImmutableList.Builder resultNFs = ImmutableList.builder(); + ImmutableListMultimap.Builder normalizedFieldToAstFields = ImmutableListMultimap.builder(); + createNFs(resultNFs, fieldsByName, normalizedFieldToAstFields, curLevel + 1, executableNormalizedField); + + ImmutableList nextLevelChildren = resultNFs.build(); + ImmutableListMultimap nextLevelNormalizedFieldToAstFields = normalizedFieldToAstFields.build(); + + for (ExecutableNormalizedField childENF : nextLevelChildren) { + if (executableNormalizedField == null) { + // all root ENFs don't have a parent, but are collected in the rootEnfs list + rootEnfs.add(childENF); + } else { + executableNormalizedField.addChild(childENF); + } + ImmutableList childFieldAndAstParents = nextLevelNormalizedFieldToAstFields.get(childENF); MergedField mergedField = newMergedField(childFieldAndAstParents); captureMergedField(childENF, mergedField); @@ -539,14 +577,11 @@ private int buildFieldWithChildren(ExecutableNormalizedField executableNormalize updateFieldToNFMap(childENF, childFieldAndAstParents); updateCoordinatedToNFMap(childENF); - int depthSeen = buildFieldWithChildren(childENF, + // recursive call + buildEnfsRecursively(childENF, childFieldAndAstParents, curLevel + 1); - maxDepthSeen = Math.max(maxDepthSeen, depthSeen); - - checkMaxDepthExceeded(maxDepthSeen); } - return maxDepthSeen; } private void checkMaxDepthExceeded(int depthSeen) { @@ -555,13 +590,13 @@ private void checkMaxDepthExceeded(int depthSeen) { } } - private static MergedField newMergedField(ImmutableList fieldAndAstParents) { + private static MergedField newMergedField(ImmutableList fieldAndAstParents) { return MergedField.newMergedField(map(fieldAndAstParents, fieldAndAstParent -> fieldAndAstParent.field)).build(); } private void updateFieldToNFMap(ExecutableNormalizedField executableNormalizedField, - ImmutableList mergedField) { - for (FieldAndAstParent astField : mergedField) { + ImmutableList mergedField) { + for (CollectedField astField : mergedField) { fieldToNormalizedField.put(astField.field, executableNormalizedField); } } @@ -573,37 +608,6 @@ private void updateCoordinatedToNFMap(ExecutableNormalizedField topLevel) { } } - public CollectNFResult collectFromMergedField(ExecutableNormalizedField executableNormalizedField, - ImmutableList mergedField, - int level) { - List fieldDefs = executableNormalizedField.getFieldDefinitions(graphQLSchema); - Set possibleObjects = resolvePossibleObjects(fieldDefs); - if (possibleObjects.isEmpty()) { - return new CollectNFResult(ImmutableKit.emptyList(), ImmutableListMultimap.of()); - } - - List collectedFields = new ArrayList<>(); - for (FieldAndAstParent fieldAndAstParent : mergedField) { - if (fieldAndAstParent.field.getSelectionSet() == null) { - continue; - } - GraphQLFieldDefinition fieldDefinition = Introspection.getFieldDef(graphQLSchema, fieldAndAstParent.astParentType, fieldAndAstParent.field.getName()); - GraphQLUnmodifiedType astParentType = unwrapAll(fieldDefinition.getType()); - this.collectFromSelectionSet(fieldAndAstParent.field.getSelectionSet(), - collectedFields, - (GraphQLCompositeType) astParentType, - possibleObjects, - null - ); - } - Map> fieldsByName = fieldsByResultKey(collectedFields); - ImmutableList.Builder resultNFs = ImmutableList.builder(); - ImmutableListMultimap.Builder normalizedFieldToAstFields = ImmutableListMultimap.builder(); - - createNFs(resultNFs, fieldsByName, normalizedFieldToAstFields, level, executableNormalizedField); - - return new CollectNFResult(resultNFs.build(), normalizedFieldToAstFields.build()); - } private Map> fieldsByResultKey(List collectedFields) { Map> fieldsByName = new LinkedHashMap<>(); @@ -613,25 +617,10 @@ private Map> fieldsByResultKey(List return fieldsByName; } - public CollectNFResult collectFromOperation(GraphQLObjectType rootType) { - - - Set possibleObjects = ImmutableSet.of(rootType); - List collectedFields = new ArrayList<>(); - collectFromSelectionSet(operationDefinition.getSelectionSet(), collectedFields, rootType, possibleObjects, null); - // group by result key - Map> fieldsByName = fieldsByResultKey(collectedFields); - ImmutableList.Builder resultNFs = ImmutableList.builder(); - ImmutableListMultimap.Builder normalizedFieldToAstFields = ImmutableListMultimap.builder(); - - createNFs(resultNFs, fieldsByName, normalizedFieldToAstFields, 1, null); - - return new CollectNFResult(resultNFs.build(), normalizedFieldToAstFields.build()); - } private void createNFs(ImmutableList.Builder nfListBuilder, Map> fieldsByName, - ImmutableListMultimap.Builder normalizedFieldToAstFields, + ImmutableListMultimap.Builder normalizedFieldToAstFields, int level, ExecutableNormalizedField parent) { for (String resultKey : fieldsByName.keySet()) { @@ -643,7 +632,7 @@ private void createNFs(ImmutableList.Builder nfListBu continue; } for (CollectedField collectedField : fieldGroup.fields) { - normalizedFieldToAstFields.put(nf, new FieldAndAstParent(collectedField.field, collectedField.astTypeCondition)); + normalizedFieldToAstFields.put(nf, collectedField); } nfListBuilder.add(nf); @@ -657,6 +646,7 @@ private void createNFs(ImmutableList.Builder nfListBu } } + // new single ENF private ExecutableNormalizedField createNF(CollectedFieldGroup collectedFieldGroup, int level, ExecutableNormalizedField parent) { @@ -674,7 +664,7 @@ private ExecutableNormalizedField createNF(CollectedFieldGroup collectedFieldGro Map argumentValues = ValuesResolver.getArgumentValues(fieldDefinition.getArguments(), field.getArguments(), CoercedVariables.of(this.coercedVariableValues.toMap()), this.options.graphQLContext, this.options.locale); Map normalizedArgumentValues = null; if (this.normalizedVariableValues != null) { - normalizedArgumentValues = ValuesResolver.getNormalizedArgumentValues(fieldDefinition.getArguments(), field.getArguments(), this.normalizedVariableValues); + normalizedArgumentValues = ValuesResolver.getNormalizedArgumentValues(fieldDefinition.getArguments(), field.getArguments(), this.normalizedVariableValues.toMap()); } ImmutableList objectTypeNames = map(objectTypes, GraphQLObjectType::getName); return ExecutableNormalizedField.newNormalizedField() @@ -847,7 +837,7 @@ private void collectInlineFragment(List result, collectFromSelectionSet(inlineFragment.getSelectionSet(), result, newAstTypeCondition, newPossibleObjects, newDeferredExecution); } - private NormalizedDeferredExecution buildDeferredExecution( + private @Nullable NormalizedDeferredExecution buildDeferredExecution( List directives, Set newPossibleObjects) { if (!options.deferSupport) { @@ -942,26 +932,6 @@ public CollectedField(Field field, Set objectTypes, GraphQLCo } } - public static class CollectNFResult { - private final Collection children; - private final ImmutableListMultimap normalizedFieldToAstFields; - - public CollectNFResult(Collection children, ImmutableListMultimap normalizedFieldToAstFields) { - this.children = children; - this.normalizedFieldToAstFields = normalizedFieldToAstFields; - } - } - - private static class FieldAndAstParent { - final Field field; - final GraphQLCompositeType astParentType; - - private FieldAndAstParent(Field field, GraphQLCompositeType astParentType) { - this.field = field; - this.astParentType = astParentType; - } - } - private static class CollectedFieldGroup { Set objectTypes; Set fields; diff --git a/src/main/java/graphql/normalized/ExecutableNormalizedOperationToAstCompiler.java b/src/main/java/graphql/normalized/ExecutableNormalizedOperationToAstCompiler.java index 877decb76..9509d9554 100644 --- a/src/main/java/graphql/normalized/ExecutableNormalizedOperationToAstCompiler.java +++ b/src/main/java/graphql/normalized/ExecutableNormalizedOperationToAstCompiler.java @@ -1,36 +1,31 @@ package graphql.normalized; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import graphql.Assert; import graphql.Directives; import graphql.ExperimentalApi; import graphql.PublicApi; +import graphql.execution.directives.QueryAppliedDirective; import graphql.execution.directives.QueryDirectives; import graphql.introspection.Introspection; import graphql.language.Argument; -import graphql.language.ArrayValue; import graphql.language.Directive; import graphql.language.Document; import graphql.language.Field; import graphql.language.InlineFragment; -import graphql.language.NullValue; -import graphql.language.ObjectField; -import graphql.language.ObjectValue; import graphql.language.OperationDefinition; import graphql.language.Selection; import graphql.language.SelectionSet; import graphql.language.StringValue; import graphql.language.TypeName; -import graphql.language.Value; import graphql.normalized.incremental.NormalizedDeferredExecution; import graphql.schema.GraphQLCompositeType; import graphql.schema.GraphQLFieldDefinition; import graphql.schema.GraphQLObjectType; import graphql.schema.GraphQLSchema; import graphql.schema.GraphQLUnmodifiedType; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -41,12 +36,12 @@ import java.util.stream.Collectors; import static graphql.collect.ImmutableKit.emptyList; -import static graphql.collect.ImmutableKit.map; import static graphql.language.Argument.newArgument; import static graphql.language.Field.newField; import static graphql.language.InlineFragment.newInlineFragment; import static graphql.language.SelectionSet.newSelectionSet; import static graphql.language.TypeName.newTypeName; +import static graphql.normalized.ArgumentMaker.createArguments; import static graphql.schema.GraphQLTypeUtil.unwrapAll; /** @@ -100,10 +95,10 @@ public Map getVariables() { * * @return a {@link CompilerResult} object */ - public static CompilerResult compileToDocument(@NotNull GraphQLSchema schema, - @NotNull OperationDefinition.Operation operationKind, + public static CompilerResult compileToDocument(@NonNull GraphQLSchema schema, + OperationDefinition.@NonNull Operation operationKind, @Nullable String operationName, - @NotNull List topLevelFields, + @NonNull List topLevelFields, @Nullable VariablePredicate variablePredicate) { return compileToDocument(schema, operationKind, operationName, topLevelFields, Map.of(), variablePredicate); } @@ -123,11 +118,11 @@ public static CompilerResult compileToDocument(@NotNull GraphQLSchema schema, * * @return a {@link CompilerResult} object */ - public static CompilerResult compileToDocument(@NotNull GraphQLSchema schema, - @NotNull OperationDefinition.Operation operationKind, + public static CompilerResult compileToDocument(@NonNull GraphQLSchema schema, + OperationDefinition.@NonNull Operation operationKind, @Nullable String operationName, - @NotNull List topLevelFields, - @NotNull Map normalizedFieldToQueryDirectives, + @NonNull List topLevelFields, + @NonNull Map normalizedFieldToQueryDirectives, @Nullable VariablePredicate variablePredicate) { return compileToDocument(schema, operationKind, operationName, topLevelFields, normalizedFieldToQueryDirectives, variablePredicate, false); } @@ -150,10 +145,10 @@ public static CompilerResult compileToDocument(@NotNull GraphQLSchema schema, * @see ExecutableNormalizedOperationToAstCompiler#compileToDocument(GraphQLSchema, OperationDefinition.Operation, String, List, VariablePredicate) */ @ExperimentalApi - public static CompilerResult compileToDocumentWithDeferSupport(@NotNull GraphQLSchema schema, - @NotNull OperationDefinition.Operation operationKind, + public static CompilerResult compileToDocumentWithDeferSupport(@NonNull GraphQLSchema schema, + OperationDefinition.@NonNull Operation operationKind, @Nullable String operationName, - @NotNull List topLevelFields, + @NonNull List topLevelFields, @Nullable VariablePredicate variablePredicate ) { return compileToDocumentWithDeferSupport(schema, operationKind, operationName, topLevelFields, Map.of(), variablePredicate); @@ -177,21 +172,21 @@ public static CompilerResult compileToDocumentWithDeferSupport(@NotNull GraphQLS * @see ExecutableNormalizedOperationToAstCompiler#compileToDocument(GraphQLSchema, OperationDefinition.Operation, String, List, Map, VariablePredicate) */ @ExperimentalApi - public static CompilerResult compileToDocumentWithDeferSupport(@NotNull GraphQLSchema schema, - @NotNull OperationDefinition.Operation operationKind, + public static CompilerResult compileToDocumentWithDeferSupport(@NonNull GraphQLSchema schema, + OperationDefinition.@NonNull Operation operationKind, @Nullable String operationName, - @NotNull List topLevelFields, - @NotNull Map normalizedFieldToQueryDirectives, + @NonNull List topLevelFields, + @NonNull Map normalizedFieldToQueryDirectives, @Nullable VariablePredicate variablePredicate ) { return compileToDocument(schema, operationKind, operationName, topLevelFields, normalizedFieldToQueryDirectives, variablePredicate, true); } - private static CompilerResult compileToDocument(@NotNull GraphQLSchema schema, - @NotNull OperationDefinition.Operation operationKind, + private static CompilerResult compileToDocument(@NonNull GraphQLSchema schema, + OperationDefinition.@NonNull Operation operationKind, @Nullable String operationName, - @NotNull List topLevelFields, - @NotNull Map normalizedFieldToQueryDirectives, + @NonNull List topLevelFields, + @NonNull Map normalizedFieldToQueryDirectives, @Nullable VariablePredicate variablePredicate, boolean deferSupport) { GraphQLObjectType operationType = getOperationType(schema, operationKind); @@ -216,9 +211,9 @@ private static CompilerResult compileToDocument(@NotNull GraphQLSchema schema, } private static List> subselectionsForNormalizedField(GraphQLSchema schema, - @NotNull String parentOutputType, + @NonNull String parentOutputType, List executableNormalizedFields, - @NotNull Map normalizedFieldToQueryDirectives, + @NonNull Map normalizedFieldToQueryDirectives, VariableAccumulator variableAccumulator, boolean deferSupport) { if (deferSupport) { @@ -229,9 +224,9 @@ private static List> subselectionsForNormalizedField(GraphQLSchema } private static List> subselectionsForNormalizedFieldNoDeferSupport(GraphQLSchema schema, - @NotNull String parentOutputType, + @NonNull String parentOutputType, List executableNormalizedFields, - @NotNull Map normalizedFieldToQueryDirectives, + @NonNull Map normalizedFieldToQueryDirectives, VariableAccumulator variableAccumulator) { ImmutableList.Builder> selections = ImmutableList.builder(); @@ -265,9 +260,9 @@ private static List> subselectionsForNormalizedFieldNoDeferSupport( private static List> subselectionsForNormalizedFieldWithDeferSupport(GraphQLSchema schema, - @NotNull String parentOutputType, + @NonNull String parentOutputType, List executableNormalizedFields, - @NotNull Map normalizedFieldToQueryDirectives, + @NonNull Map normalizedFieldToQueryDirectives, VariableAccumulator variableAccumulator) { ImmutableList.Builder> selections = ImmutableList.builder(); @@ -339,7 +334,7 @@ private static List> subselectionsForNormalizedFieldWithDeferSuppor */ private static Map selectionForNormalizedField(GraphQLSchema schema, ExecutableNormalizedField executableNormalizedField, - @NotNull Map normalizedFieldToQueryDirectives, + @NonNull Map normalizedFieldToQueryDirectives, VariableAccumulator variableAccumulator, boolean deferSupport) { Map groupedFields = new LinkedHashMap<>(); @@ -357,7 +352,7 @@ private static Map selectionForNormalizedField(GraphQLSchema sche private static Field selectionForNormalizedField(GraphQLSchema schema, String objectTypeName, ExecutableNormalizedField executableNormalizedField, - @NotNull Map normalizedFieldToQueryDirectives, + @NonNull Map normalizedFieldToQueryDirectives, VariableAccumulator variableAccumulator, boolean deferSupport) { final List> subSelections; @@ -382,20 +377,34 @@ private static Field selectionForNormalizedField(GraphQLSchema schema, QueryDirectives queryDirectives = normalizedFieldToQueryDirectives.get(executableNormalizedField); - Field.Builder builder = newField() .name(executableNormalizedField.getFieldName()) .alias(executableNormalizedField.getAlias()) .selectionSet(selectionSet) .arguments(arguments); + + List directives = buildDirectives(executableNormalizedField, queryDirectives, variableAccumulator); + return builder + .directives(directives) + .build(); + } + + private static @NonNull List buildDirectives(ExecutableNormalizedField executableNormalizedField, QueryDirectives queryDirectives, VariableAccumulator variableAccumulator) { if (queryDirectives == null || queryDirectives.getImmediateAppliedDirectivesByField().isEmpty()) { - return builder.build(); - } else { - List directives = queryDirectives.getImmediateAppliedDirectivesByField().keySet().stream().flatMap(field -> field.getDirectives().stream()).collect(Collectors.toList()); - return builder - .directives(directives) - .build(); + return emptyList(); } + return queryDirectives.getImmediateAppliedDirectivesByField().entrySet().stream() + .flatMap(entry -> entry.getValue().stream()) + .map(queryAppliedDirective -> buildDirective(executableNormalizedField, queryDirectives, queryAppliedDirective, variableAccumulator)) + .collect(Collectors.toList()); + } + + private static Directive buildDirective(ExecutableNormalizedField executableNormalizedField, QueryDirectives queryDirectives, QueryAppliedDirective queryAppliedDirective, VariableAccumulator variableAccumulator) { + + List arguments = ArgumentMaker.createDirectiveArguments(executableNormalizedField, queryDirectives, queryAppliedDirective, variableAccumulator); + return Directive.newDirective() + .name(queryAppliedDirective.getName()) + .arguments(arguments).build(); } @Nullable @@ -407,61 +416,8 @@ private static SelectionSet selectionSet(List fields) { return newSelectionSet().selections(fields).build(); } - private static List createArguments(ExecutableNormalizedField executableNormalizedField, - VariableAccumulator variableAccumulator) { - ImmutableList.Builder result = ImmutableList.builder(); - ImmutableMap normalizedArguments = executableNormalizedField.getNormalizedArguments(); - for (String argName : normalizedArguments.keySet()) { - NormalizedInputValue normalizedInputValue = normalizedArguments.get(argName); - Value value = argValue(executableNormalizedField, argName, normalizedInputValue, variableAccumulator); - Argument argument = newArgument() - .name(argName) - .value(value) - .build(); - result.add(argument); - } - return result.build(); - } - - @SuppressWarnings("unchecked") - private static Value argValue(ExecutableNormalizedField executableNormalizedField, - String argName, - @Nullable Object value, - VariableAccumulator variableAccumulator) { - if (value instanceof List) { - ArrayValue.Builder arrayValue = ArrayValue.newArrayValue(); - arrayValue.values(map((List) value, val -> argValue(executableNormalizedField, argName, val, variableAccumulator))); - return arrayValue.build(); - } - if (value instanceof Map) { - ObjectValue.Builder objectValue = ObjectValue.newObjectValue(); - Map map = (Map) value; - for (String fieldName : map.keySet()) { - Value fieldValue = argValue(executableNormalizedField, argName, (NormalizedInputValue) map.get(fieldName), variableAccumulator); - objectValue.objectField(ObjectField.newObjectField().name(fieldName).value(fieldValue).build()); - } - return objectValue.build(); - } - if (value == null) { - return NullValue.newNullValue().build(); - } - return (Value) value; - } - - @NotNull - private static Value argValue(ExecutableNormalizedField executableNormalizedField, - String argName, - NormalizedInputValue normalizedInputValue, - VariableAccumulator variableAccumulator) { - if (variableAccumulator.shouldMakeVariable(executableNormalizedField, argName, normalizedInputValue)) { - VariableValueWithDefinition variableWithDefinition = variableAccumulator.accumulateVariable(normalizedInputValue); - return variableWithDefinition.getVariableReference(); - } else { - return argValue(executableNormalizedField, argName, normalizedInputValue.getValue(), variableAccumulator); - } - } - @NotNull + @NonNull private static GraphQLFieldDefinition getFieldDefinition(GraphQLSchema schema, String parentType, ExecutableNormalizedField nf) { @@ -470,8 +426,8 @@ private static GraphQLFieldDefinition getFieldDefinition(GraphQLSchema schema, @Nullable - private static GraphQLObjectType getOperationType(@NotNull GraphQLSchema schema, - @NotNull OperationDefinition.Operation operationKind) { + private static GraphQLObjectType getOperationType(@NonNull GraphQLSchema schema, + OperationDefinition.@NonNull Operation operationKind) { switch (operationKind) { case QUERY: return schema.getQueryType(); diff --git a/src/main/java/graphql/normalized/ValueToVariableValueCompiler.java b/src/main/java/graphql/normalized/ValueToVariableValueCompiler.java index a120c8e70..87144dcc4 100644 --- a/src/main/java/graphql/normalized/ValueToVariableValueCompiler.java +++ b/src/main/java/graphql/normalized/ValueToVariableValueCompiler.java @@ -15,8 +15,8 @@ import graphql.language.VariableDefinition; import graphql.language.VariableReference; import graphql.parser.Parser; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.LinkedHashMap; import java.util.List; @@ -76,7 +76,7 @@ private static List normalisedValueToVariableValues(List arrayVa .collect(toList()); } - @NotNull + @NonNull private static Map normalisedValueToVariableValues(Map objectMap) { Map output = new LinkedHashMap<>(); objectMap.forEach((k, v) -> { @@ -97,7 +97,7 @@ private static Map toVariableValue(ObjectValue objectValue) { return map; } - @NotNull + @NonNull private static List toVariableValues(List arrayValues) { // some values can be null (NullValue) and hence we can use Immutable Lists return arrayValues.stream() diff --git a/src/main/java/graphql/normalized/VariableAccumulator.java b/src/main/java/graphql/normalized/VariableAccumulator.java index ccf1d43e1..08b3db4eb 100644 --- a/src/main/java/graphql/normalized/VariableAccumulator.java +++ b/src/main/java/graphql/normalized/VariableAccumulator.java @@ -1,8 +1,9 @@ package graphql.normalized; import graphql.Internal; +import graphql.execution.directives.QueryAppliedDirective; import graphql.language.VariableDefinition; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -28,8 +29,14 @@ public VariableAccumulator(@Nullable VariablePredicate variablePredicate) { valueWithDefinitions = new ArrayList<>(); } - public boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, String argName, NormalizedInputValue normalizedInputValue) { - return variablePredicate != null && variablePredicate.shouldMakeVariable(executableNormalizedField, argName, normalizedInputValue); + public boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, QueryAppliedDirective queryAppliedDirective, String argName, NormalizedInputValue normalizedInputValue) { + // when a variable is used on the argument to a query directive then the queryAppliedDirective will be nonnull. + // otherwise it must be a field argument + if (queryAppliedDirective != null) { + return variablePredicate != null && variablePredicate.shouldMakeVariable(executableNormalizedField, queryAppliedDirective, argName, normalizedInputValue); + } else { + return variablePredicate != null && variablePredicate.shouldMakeVariable(executableNormalizedField, argName, normalizedInputValue); + } } public VariableValueWithDefinition accumulateVariable(NormalizedInputValue normalizedInputValue) { diff --git a/src/main/java/graphql/normalized/VariablePredicate.java b/src/main/java/graphql/normalized/VariablePredicate.java index e4a034705..a516c308e 100644 --- a/src/main/java/graphql/normalized/VariablePredicate.java +++ b/src/main/java/graphql/normalized/VariablePredicate.java @@ -1,6 +1,7 @@ package graphql.normalized; import graphql.PublicSpi; +import graphql.execution.directives.QueryAppliedDirective; /** * This predicate indicates whether a variable should be made for this field argument OR whether it will be compiled @@ -17,5 +18,25 @@ public interface VariablePredicate { * * @return true if a variable should be made */ - boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, String argName, NormalizedInputValue normalizedInputValue); + boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, + String argName, + NormalizedInputValue normalizedInputValue); + + /** + * Return true if a variable should be made for this query directive argument + * on the specified field + * + * @param executableNormalizedField the field in question + * @param queryAppliedDirective the query directive in question + * @param argName the argument on the directive + * @param normalizedInputValue the input value for that argument + * + * @return true if a variable should be made + */ + default boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, + QueryAppliedDirective queryAppliedDirective, + String argName, + NormalizedInputValue normalizedInputValue) { + return false; + } } diff --git a/src/main/java/graphql/normalized/incremental/NormalizedDeferredExecution.java b/src/main/java/graphql/normalized/incremental/NormalizedDeferredExecution.java index 2f13c4c88..2eab7b504 100644 --- a/src/main/java/graphql/normalized/incremental/NormalizedDeferredExecution.java +++ b/src/main/java/graphql/normalized/incremental/NormalizedDeferredExecution.java @@ -2,7 +2,7 @@ import graphql.ExperimentalApi; import graphql.schema.GraphQLObjectType; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Set; diff --git a/src/main/java/graphql/normalized/nf/NormalizedDocument.java b/src/main/java/graphql/normalized/nf/NormalizedDocument.java new file mode 100644 index 000000000..6bb306fa5 --- /dev/null +++ b/src/main/java/graphql/normalized/nf/NormalizedDocument.java @@ -0,0 +1,47 @@ +package graphql.normalized.nf; + +import graphql.Assert; +import graphql.ExperimentalApi; +import org.jspecify.annotations.Nullable; + +import java.util.List; +import java.util.Map; + +@ExperimentalApi +public class NormalizedDocument { + + private final List normalizedOperations; + + public NormalizedDocument(List normalizedOperations) { + this.normalizedOperations = normalizedOperations; + } + + public List getNormalizedOperations() { + return normalizedOperations; + } + + public NormalizedOperation getSingleNormalizedOperation() { + Assert.assertTrue(normalizedOperations.size() == 1, "Expecting a single normalized operation"); + return normalizedOperations.get(0).getNormalizedOperation(); + } + + public static class NormalizedOperationWithAssumedSkipIncludeVariables { + + Map assumedSkipIncludeVariables; + NormalizedOperation normalizedOperation; + + public NormalizedOperationWithAssumedSkipIncludeVariables(@Nullable Map assumedSkipIncludeVariables, NormalizedOperation normalizedOperation) { + this.assumedSkipIncludeVariables = assumedSkipIncludeVariables; + this.normalizedOperation = normalizedOperation; + } + + public Map getAssumedSkipIncludeVariables() { + return assumedSkipIncludeVariables; + } + + public NormalizedOperation getNormalizedOperation() { + return normalizedOperation; + } + } +} + diff --git a/src/main/java/graphql/normalized/nf/NormalizedDocumentFactory.java b/src/main/java/graphql/normalized/nf/NormalizedDocumentFactory.java new file mode 100644 index 000000000..0d5c5c77b --- /dev/null +++ b/src/main/java/graphql/normalized/nf/NormalizedDocumentFactory.java @@ -0,0 +1,683 @@ +package graphql.normalized.nf; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableListMultimap; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import graphql.Assert; +import graphql.ExperimentalApi; +import graphql.GraphQLContext; +import graphql.collect.ImmutableKit; +import graphql.execution.AbortExecutionException; +import graphql.execution.MergedField; +import graphql.execution.conditional.ConditionalNodes; +import graphql.execution.directives.QueryDirectives; +import graphql.introspection.Introspection; +import graphql.language.Directive; +import graphql.language.Document; +import graphql.language.Field; +import graphql.language.FragmentDefinition; +import graphql.language.FragmentSpread; +import graphql.language.InlineFragment; +import graphql.language.NodeUtil; +import graphql.language.OperationDefinition; +import graphql.language.Selection; +import graphql.language.SelectionSet; +import graphql.schema.FieldCoordinates; +import graphql.schema.GraphQLCompositeType; +import graphql.schema.GraphQLFieldDefinition; +import graphql.schema.GraphQLInterfaceType; +import graphql.schema.GraphQLNamedOutputType; +import graphql.schema.GraphQLObjectType; +import graphql.schema.GraphQLSchema; +import graphql.schema.GraphQLType; +import graphql.schema.GraphQLUnionType; +import graphql.schema.GraphQLUnmodifiedType; +import graphql.schema.impl.SchemaUtil; +import org.jspecify.annotations.Nullable; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import static graphql.Assert.assertNotNull; +import static graphql.Assert.assertShouldNeverHappen; +import static graphql.collect.ImmutableKit.map; +import static graphql.schema.GraphQLTypeUtil.unwrapAll; +import static graphql.util.FpKit.filterSet; +import static graphql.util.FpKit.groupingBy; +import static graphql.util.FpKit.intersection; +import static java.util.Collections.singleton; +import static java.util.Collections.singletonList; + +@ExperimentalApi +public class NormalizedDocumentFactory { + + public static class Options { + + + private final GraphQLContext graphQLContext; + private final Locale locale; + private final int maxChildrenDepth; + private final int maxFieldsCount; + + private final boolean deferSupport; + + /** + * The default max fields count is 100,000. + * This is big enough for even very large queries, but + * can be changed via {#setDefaultOptions + */ + public static final int DEFAULT_MAX_FIELDS_COUNT = 100_000; + private static Options defaultOptions = new Options(GraphQLContext.getDefault(), + Locale.getDefault(), + Integer.MAX_VALUE, + DEFAULT_MAX_FIELDS_COUNT, + false); + + private Options(GraphQLContext graphQLContext, + Locale locale, + int maxChildrenDepth, + int maxFieldsCount, + boolean deferSupport) { + this.graphQLContext = graphQLContext; + this.locale = locale; + this.maxChildrenDepth = maxChildrenDepth; + this.deferSupport = deferSupport; + this.maxFieldsCount = maxFieldsCount; + } + + /** + * Sets new default Options used when creating instances of {@link NormalizedDocument}. + * + * @param options new default options + */ + public static void setDefaultOptions(Options options) { + defaultOptions = Assert.assertNotNull(options); + } + + + /** + * Returns the default options used when creating instances of {@link NormalizedDocument}. + * + * @return the default options + */ + public static Options defaultOptions() { + return defaultOptions; + } + + /** + * Locale to use when parsing the query. + *

+ * e.g. can be passed to {@link graphql.schema.Coercing} for parsing. + * + * @param locale the locale to use + * + * @return new options object to use + */ + public Options locale(Locale locale) { + return new Options(this.graphQLContext, locale, this.maxChildrenDepth, this.maxFieldsCount, this.deferSupport); + } + + /** + * Context object to use when parsing the operation. + *

+ * Can be used to intercept input values e.g. using {@link graphql.execution.values.InputInterceptor}. + * + * @param graphQLContext the context to use + * + * @return new options object to use + */ + public Options graphQLContext(GraphQLContext graphQLContext) { + return new Options(graphQLContext, this.locale, this.maxChildrenDepth, this.maxFieldsCount, this.deferSupport); + } + + /** + * Controls the maximum depth of the operation. Can be used to prevent + * against malicious operations. + * + * @param maxChildrenDepth the max depth + * + * @return new options object to use + */ + public Options maxChildrenDepth(int maxChildrenDepth) { + return new Options(this.graphQLContext, this.locale, maxChildrenDepth, this.maxFieldsCount, this.deferSupport); + } + + /** + * Controls the maximum number of ENFs created. Can be used to prevent + * against malicious operations. + * + * @param maxFieldsCount the max number of ENFs created + * + * @return new options object to use + */ + public Options maxFieldsCount(int maxFieldsCount) { + return new Options(this.graphQLContext, this.locale, this.maxChildrenDepth, maxFieldsCount, this.deferSupport); + } + + /** + * Controls whether defer execution is supported when creating instances of {@link NormalizedDocument}. + * + * @param deferSupport true to enable support for defer + * + * @return new options object to use + */ + @ExperimentalApi + public Options deferSupport(boolean deferSupport) { + return new Options(this.graphQLContext, this.locale, this.maxChildrenDepth, this.maxFieldsCount, deferSupport); + } + + /** + * @return context to use during operation parsing + * + * @see #graphQLContext(GraphQLContext) + */ + public GraphQLContext getGraphQLContext() { + return graphQLContext; + } + + /** + * @return locale to use during operation parsing + * + * @see #locale(Locale) + */ + public Locale getLocale() { + return locale; + } + + /** + * @return maximum children depth before aborting parsing + * + * @see #maxChildrenDepth(int) + */ + public int getMaxChildrenDepth() { + return maxChildrenDepth; + } + + public int getMaxFieldsCount() { + return maxFieldsCount; + } + + } + + private static final ConditionalNodes conditionalNodes = new ConditionalNodes(); + + private NormalizedDocumentFactory() { + + } + + public static NormalizedDocument createNormalizedDocument( + GraphQLSchema graphQLSchema, + Document document) { + return createNormalizedDocument( + graphQLSchema, + document, + Options.defaultOptions()); + } + + + public static NormalizedDocument createNormalizedDocument(GraphQLSchema graphQLSchema, + Document document, + Options options) { + return new NormalizedDocumentFactoryImpl( + graphQLSchema, + document, + options + ).createNormalizedQueryImpl(); + } + + + private static class NormalizedDocumentFactoryImpl { + private final GraphQLSchema graphQLSchema; + private final Document document; + private final Options options; + private final Map fragments; + + private final List possibleMergerList = new ArrayList<>(); + + private ImmutableListMultimap.Builder fieldToNormalizedField = ImmutableListMultimap.builder(); + private ImmutableMap.Builder normalizedFieldToMergedField = ImmutableMap.builder(); + private ImmutableMap.Builder normalizedFieldToQueryDirectives = ImmutableMap.builder(); + private ImmutableListMultimap.Builder coordinatesToNormalizedFields = ImmutableListMultimap.builder(); + + private int fieldCount = 0; + private int maxDepthSeen = 0; + + private final List rootEnfs = new ArrayList<>(); + + private final Set skipIncludeVariableNames = new LinkedHashSet<>(); + + private Map assumedSkipIncludeVariableValues; + + private NormalizedDocumentFactoryImpl( + GraphQLSchema graphQLSchema, + Document document, + Options options + ) { + this.graphQLSchema = graphQLSchema; + this.document = document; + this.options = options; + this.fragments = NodeUtil.getFragmentsByName(document); + } + + /** + * Creates a new NormalizedDocument for the provided query + */ + private NormalizedDocument createNormalizedQueryImpl() { + List normalizedOperations = new ArrayList<>(); + for (OperationDefinition operationDefinition : document.getDefinitionsOfType(OperationDefinition.class)) { + + assumedSkipIncludeVariableValues = null; + skipIncludeVariableNames.clear(); + NormalizedOperation normalizedOperation = createNormalizedOperation(operationDefinition); + + if (skipIncludeVariableNames.size() == 0) { + normalizedOperations.add(new NormalizedDocument.NormalizedOperationWithAssumedSkipIncludeVariables(null, normalizedOperation)); + } else { + int combinations = (int) Math.pow(2, skipIncludeVariableNames.size()); + for (int i = 0; i < combinations; i++) { + assumedSkipIncludeVariableValues = new LinkedHashMap<>(); + int variableIndex = 0; + for (String variableName : skipIncludeVariableNames) { + assumedSkipIncludeVariableValues.put(variableName, (i & (1 << variableIndex++)) != 0); + } + NormalizedOperation operationWithAssumedVariables = createNormalizedOperation(operationDefinition); + normalizedOperations.add(new NormalizedDocument.NormalizedOperationWithAssumedSkipIncludeVariables(assumedSkipIncludeVariableValues, operationWithAssumedVariables)); + } + } + } + + return new NormalizedDocument( + normalizedOperations + ); + } + + private NormalizedOperation createNormalizedOperation(OperationDefinition operationDefinition) { + this.rootEnfs.clear(); + this.fieldCount = 0; + this.maxDepthSeen = 0; + this.possibleMergerList.clear(); + fieldToNormalizedField = ImmutableListMultimap.builder(); + normalizedFieldToMergedField = ImmutableMap.builder(); + normalizedFieldToQueryDirectives = ImmutableMap.builder(); + coordinatesToNormalizedFields = ImmutableListMultimap.builder(); + + buildNormalizedFieldsRecursively(null, operationDefinition, null, 0); + + for (PossibleMerger possibleMerger : possibleMergerList) { + List childrenWithSameResultKey = possibleMerger.parent.getChildrenWithSameResultKey(possibleMerger.resultKey); + NormalizedFieldsMerger.merge(possibleMerger.parent, childrenWithSameResultKey, graphQLSchema); + } + + NormalizedOperation normalizedOperation = new NormalizedOperation( + operationDefinition.getOperation(), + operationDefinition.getName(), + new ArrayList<>(rootEnfs), + fieldToNormalizedField.build(), + normalizedFieldToMergedField.build(), + normalizedFieldToQueryDirectives.build(), + coordinatesToNormalizedFields.build(), + fieldCount, + maxDepthSeen + ); + return normalizedOperation; + } + + + private void captureMergedField(NormalizedField enf, MergedField mergedFld) { +// // QueryDirectivesImpl is a lazy object and only computes itself when asked for +// QueryDirectives queryDirectives = new QueryDirectivesImpl(mergedFld, graphQLSchema, coercedVariableValues.toMap(), options.getGraphQLContext(), options.getLocale()); +// normalizedFieldToQueryDirectives.put(enf, queryDirectives); + normalizedFieldToMergedField.put(enf, mergedFld); + } + + private void buildNormalizedFieldsRecursively(@Nullable NormalizedField normalizedField, + @Nullable OperationDefinition operationDefinition, + @Nullable ImmutableList fieldAndAstParents, + int curLevel) { + if (this.maxDepthSeen < curLevel) { + this.maxDepthSeen = curLevel; + checkMaxDepthExceeded(curLevel); + } + Set possibleObjects; + List collectedFields; + + // special handling for the root selection Set + if (normalizedField == null) { + GraphQLObjectType rootType = SchemaUtil.getOperationRootType(graphQLSchema, operationDefinition); + possibleObjects = ImmutableSet.of(rootType); + collectedFields = new ArrayList<>(); + collectFromSelectionSet(operationDefinition.getSelectionSet(), collectedFields, rootType, possibleObjects); + } else { + List fieldDefs = normalizedField.getFieldDefinitions(graphQLSchema); + possibleObjects = resolvePossibleObjects(fieldDefs); + if (possibleObjects.isEmpty()) { + return; + } + collectedFields = new ArrayList<>(); + for (CollectedField fieldAndAstParent : fieldAndAstParents) { + if (fieldAndAstParent.field.getSelectionSet() == null) { + continue; + } + // the AST parent comes from the previous collect from selection set call + // and is the type to which the field belongs (the container type of the field) and output type + // of the field needs to be determined based on the field name + GraphQLFieldDefinition fieldDefinition = Introspection.getFieldDef(graphQLSchema, fieldAndAstParent.astTypeCondition, fieldAndAstParent.field.getName()); + // it must a composite type, because the field has a selection set + GraphQLCompositeType selectionSetType = (GraphQLCompositeType) unwrapAll(fieldDefinition.getType()); + this.collectFromSelectionSet(fieldAndAstParent.field.getSelectionSet(), + collectedFields, + selectionSetType, + possibleObjects + ); + } + } + + Map> fieldsByName = fieldsByResultKey(collectedFields); + ImmutableList.Builder resultNFs = ImmutableList.builder(); + ImmutableListMultimap.Builder normalizedFieldToAstFields = ImmutableListMultimap.builder(); + createNFs(resultNFs, fieldsByName, normalizedFieldToAstFields, curLevel + 1, normalizedField); + + ImmutableList nextLevelChildren = resultNFs.build(); + ImmutableListMultimap nextLevelNormalizedFieldToAstFields = normalizedFieldToAstFields.build(); + + for (NormalizedField childENF : nextLevelChildren) { + if (normalizedField == null) { + // all root ENFs don't have a parent, but are collected in the rootEnfs list + rootEnfs.add(childENF); + } else { + normalizedField.addChild(childENF); + } + ImmutableList childFieldAndAstParents = nextLevelNormalizedFieldToAstFields.get(childENF); + + MergedField mergedField = newMergedField(childFieldAndAstParents); + captureMergedField(childENF, mergedField); + + updateFieldToNFMap(childENF, childFieldAndAstParents); + updateCoordinatedToNFMap(childENF); + + // recursive call + buildNormalizedFieldsRecursively(childENF, + null, + childFieldAndAstParents, + curLevel + 1); + } + } + + private void checkMaxDepthExceeded(int depthSeen) { + if (depthSeen > this.options.getMaxChildrenDepth()) { + throw new AbortExecutionException("Maximum query depth exceeded. " + depthSeen + " > " + this.options.getMaxChildrenDepth()); + } + } + + private static MergedField newMergedField(ImmutableList fieldAndAstParents) { + return MergedField.newMergedField(map(fieldAndAstParents, fieldAndAstParent -> fieldAndAstParent.field)).build(); + } + + private void updateFieldToNFMap(NormalizedField NormalizedField, + ImmutableList mergedField) { + for (CollectedField astField : mergedField) { + fieldToNormalizedField.put(astField.field, NormalizedField); + } + } + + private void updateCoordinatedToNFMap(NormalizedField topLevel) { + for (String objectType : topLevel.getObjectTypeNames()) { + FieldCoordinates coordinates = FieldCoordinates.coordinates(objectType, topLevel.getFieldName()); + coordinatesToNormalizedFields.put(coordinates, topLevel); + } + } + + + private Map> fieldsByResultKey(List collectedFields) { + Map> fieldsByName = new LinkedHashMap<>(); + for (CollectedField collectedField : collectedFields) { + fieldsByName.computeIfAbsent(collectedField.field.getResultKey(), ignored -> new ArrayList<>()).add(collectedField); + } + return fieldsByName; + } + + + private void createNFs(ImmutableList.Builder nfListBuilder, + Map> fieldsByName, + ImmutableListMultimap.Builder normalizedFieldToAstFields, + int level, + NormalizedField parent) { + for (String resultKey : fieldsByName.keySet()) { + List fieldsWithSameResultKey = fieldsByName.get(resultKey); + List commonParentsGroups = groupByCommonParents(fieldsWithSameResultKey); + for (CollectedFieldGroup fieldGroup : commonParentsGroups) { + NormalizedField nf = createNF(fieldGroup, level, parent); + if (nf == null) { + continue; + } + for (CollectedField collectedField : fieldGroup.fields) { + normalizedFieldToAstFields.put(nf, collectedField); + } + nfListBuilder.add(nf); + + } + if (commonParentsGroups.size() > 1) { + possibleMergerList.add(new PossibleMerger(parent, resultKey)); + } + } + } + + // new single ENF + private NormalizedField createNF(CollectedFieldGroup collectedFieldGroup, + int level, + NormalizedField parent) { + + this.fieldCount++; + if (this.fieldCount > this.options.getMaxFieldsCount()) { + throw new AbortExecutionException("Maximum field count exceeded. " + this.fieldCount + " > " + this.options.getMaxFieldsCount()); + } + Field field; + Set objectTypes = collectedFieldGroup.objectTypes; + field = collectedFieldGroup.fields.iterator().next().field; + List directives = collectedFieldGroup.fields.stream().flatMap(f -> f.field.getDirectives().stream()).collect(Collectors.toList()); + String fieldName = field.getName(); + ImmutableList objectTypeNames = map(objectTypes, GraphQLObjectType::getName); + return NormalizedField.newNormalizedField() + .alias(field.getAlias()) + .astArguments(field.getArguments()) + .astDirectives(directives) + .objectTypeNames(objectTypeNames) + .fieldName(fieldName) + .level(level) + .parent(parent) + .build(); + } + + + private List groupByCommonParents(Collection fields) { + ImmutableSet.Builder objectTypes = ImmutableSet.builder(); + for (CollectedField collectedField : fields) { + objectTypes.addAll(collectedField.objectTypes); + } + Set allRelevantObjects = objectTypes.build(); + Map> groupByAstParent = groupingBy(fields, fieldAndType -> fieldAndType.astTypeCondition); + if (groupByAstParent.size() == 1) { + return singletonList(new CollectedFieldGroup(ImmutableSet.copyOf(fields), allRelevantObjects)); + } + ImmutableList.Builder result = ImmutableList.builder(); + for (GraphQLObjectType objectType : allRelevantObjects) { + Set relevantFields = filterSet(fields, field -> field.objectTypes.contains(objectType)); + result.add(new CollectedFieldGroup(relevantFields, singleton(objectType))); + } + return result.build(); + } + + + private void collectFromSelectionSet(SelectionSet selectionSet, + List result, + GraphQLCompositeType astTypeCondition, + Set possibleObjects + ) { + for (Selection selection : selectionSet.getSelections()) { + if (selection instanceof Field) { + collectField(result, (Field) selection, possibleObjects, astTypeCondition); + } else if (selection instanceof InlineFragment) { + collectInlineFragment(result, (InlineFragment) selection, possibleObjects, astTypeCondition); + } else if (selection instanceof FragmentSpread) { + collectFragmentSpread(result, (FragmentSpread) selection, possibleObjects); + } + } + } + + private void collectFragmentSpread(List result, + FragmentSpread fragmentSpread, + Set possibleObjects + ) { +// if (!conditionalNodes.shouldInclude(fragmentSpread, +// this.coercedVariableValues.toMap(), +// this.graphQLSchema, +// this.options.graphQLContext)) { +// return; +// } + FragmentDefinition fragmentDefinition = assertNotNull(this.fragments.get(fragmentSpread.getName())); + +// if (!conditionalNodes.shouldInclude(fragmentDefinition, +// this.coercedVariableValues.toMap(), +// this.graphQLSchema, +// this.options.graphQLContext)) { +// return; +// } + GraphQLCompositeType newAstTypeCondition = (GraphQLCompositeType) assertNotNull(this.graphQLSchema.getType(fragmentDefinition.getTypeCondition().getName())); + Set newPossibleObjects = narrowDownPossibleObjects(possibleObjects, newAstTypeCondition); + collectFromSelectionSet(fragmentDefinition.getSelectionSet(), result, newAstTypeCondition, newPossibleObjects); + } + + private void collectInlineFragment(List result, + InlineFragment inlineFragment, + Set possibleObjects, + GraphQLCompositeType astTypeCondition + ) { +// if (!conditionalNodes.shouldInclude(inlineFragment, this.coercedVariableValues.toMap(), this.graphQLSchema, this.options.graphQLContext)) { +// return; +// } + Set newPossibleObjects = possibleObjects; + GraphQLCompositeType newAstTypeCondition = astTypeCondition; + + if (inlineFragment.getTypeCondition() != null) { + newAstTypeCondition = (GraphQLCompositeType) this.graphQLSchema.getType(inlineFragment.getTypeCondition().getName()); + newPossibleObjects = narrowDownPossibleObjects(possibleObjects, newAstTypeCondition); + + } + + + collectFromSelectionSet(inlineFragment.getSelectionSet(), result, newAstTypeCondition, newPossibleObjects); + } + + private void collectField(List result, + Field field, + Set possibleObjectTypes, + GraphQLCompositeType astTypeCondition + ) { + Boolean shouldInclude; + if (assumedSkipIncludeVariableValues == null) { + if ((shouldInclude = conditionalNodes.shouldIncludeWithoutVariables(field)) == null) { + + String skipVariableName = conditionalNodes.getSkipVariableName(field); + String includeVariableName = conditionalNodes.getIncludeVariableName(field); + if (skipVariableName != null) { + skipIncludeVariableNames.add(skipVariableName); + } + if (includeVariableName != null) { + skipIncludeVariableNames.add(includeVariableName); + } + } + if (shouldInclude != null && !shouldInclude) { + return; + } + } else { + if (!conditionalNodes.shouldInclude(field, (Map) assumedSkipIncludeVariableValues, graphQLSchema, null)) { + return; + } + } + // this means there is actually no possible type for this field, and we are done + if (possibleObjectTypes.isEmpty()) { + return; + } + result.add(new CollectedField(field, possibleObjectTypes, astTypeCondition)); + } + + private Set narrowDownPossibleObjects(Set currentOnes, + GraphQLCompositeType typeCondition) { + + ImmutableSet resolvedTypeCondition = resolvePossibleObjects(typeCondition); + if (currentOnes.isEmpty()) { + return resolvedTypeCondition; + } + + // Faster intersection, as either set often has a size of 1. + return intersection(currentOnes, resolvedTypeCondition); + } + + private ImmutableSet resolvePossibleObjects(List defs) { + ImmutableSet.Builder builder = ImmutableSet.builder(); + + for (GraphQLFieldDefinition def : defs) { + GraphQLUnmodifiedType outputType = unwrapAll(def.getType()); + if (outputType instanceof GraphQLCompositeType) { + builder.addAll(resolvePossibleObjects((GraphQLCompositeType) outputType)); + } + } + + return builder.build(); + } + + private ImmutableSet resolvePossibleObjects(GraphQLCompositeType type) { + if (type instanceof GraphQLObjectType) { + return ImmutableSet.of((GraphQLObjectType) type); + } else if (type instanceof GraphQLInterfaceType) { + return ImmutableSet.copyOf(graphQLSchema.getImplementations((GraphQLInterfaceType) type)); + } else if (type instanceof GraphQLUnionType) { + List unionTypes = ((GraphQLUnionType) type).getTypes(); + return ImmutableSet.copyOf(ImmutableKit.map(unionTypes, GraphQLObjectType.class::cast)); + } else { + return assertShouldNeverHappen(); + } + } + + private static class PossibleMerger { + NormalizedField parent; + String resultKey; + + public PossibleMerger(NormalizedField parent, String resultKey) { + this.parent = parent; + this.resultKey = resultKey; + } + } + + private static class CollectedField { + Field field; + Set objectTypes; + GraphQLCompositeType astTypeCondition; + + public CollectedField(Field field, Set objectTypes, GraphQLCompositeType astTypeCondition) { + this.field = field; + this.objectTypes = objectTypes; + this.astTypeCondition = astTypeCondition; + } + } + + private static class CollectedFieldGroup { + Set objectTypes; + Set fields; + + public CollectedFieldGroup(Set fields, Set objectTypes) { + this.fields = fields; + this.objectTypes = objectTypes; + } + } + } + +} diff --git a/src/main/java/graphql/normalized/nf/NormalizedField.java b/src/main/java/graphql/normalized/nf/NormalizedField.java new file mode 100644 index 000000000..3b8aa08bd --- /dev/null +++ b/src/main/java/graphql/normalized/nf/NormalizedField.java @@ -0,0 +1,678 @@ +package graphql.normalized.nf; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import graphql.ExperimentalApi; +import graphql.Internal; +import graphql.Mutable; +import graphql.collect.ImmutableKit; +import graphql.introspection.Introspection; +import graphql.language.Argument; +import graphql.language.Directive; +import graphql.normalized.ExecutableNormalizedOperation; +import graphql.normalized.NormalizedInputValue; +import graphql.schema.GraphQLFieldDefinition; +import graphql.schema.GraphQLInterfaceType; +import graphql.schema.GraphQLNamedOutputType; +import graphql.schema.GraphQLObjectType; +import graphql.schema.GraphQLOutputType; +import graphql.schema.GraphQLSchema; +import graphql.schema.GraphQLUnionType; +import graphql.util.FpKit; +import graphql.util.MutableRef; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; + +import static graphql.Assert.assertNotNull; +import static graphql.Assert.assertTrue; +import static graphql.schema.GraphQLTypeUtil.simplePrint; +import static graphql.schema.GraphQLTypeUtil.unwrapAll; +import static java.util.stream.Collectors.joining; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toSet; + +/** + * An {@link NormalizedField} represents a field in an executable graphql operation. Its models what + * could be executed during a given operation. + *

+ * This class is intentionally mutable for performance reasons since building immutable parent child + * objects is too expensive. + */ +@ExperimentalApi +@Mutable +public class NormalizedField { + private final String alias; + private final ImmutableMap normalizedArguments; + private final LinkedHashMap resolvedArguments; + private final ImmutableList astArguments; + private List astDirectives; + + // Mutable List on purpose: it is modified after creation + private final LinkedHashSet objectTypeNames; + private final ArrayList children; + private NormalizedField parent; + + private final String fieldName; + private final int level; + + + private NormalizedField(Builder builder) { + this.alias = builder.alias; + this.resolvedArguments = builder.resolvedArguments; + this.normalizedArguments = builder.normalizedArguments; + this.astArguments = builder.astArguments; + this.objectTypeNames = builder.objectTypeNames; + this.fieldName = assertNotNull(builder.fieldName); + this.children = builder.children; + this.level = builder.level; + this.parent = builder.parent; + this.astDirectives = builder.astDirectives; + } + + /** + * Determines whether this {@link NormalizedField} needs a fragment to select the field. However, it considers the parent + * output type when determining whether it needs a fragment. + *

+ * Consider the following schema + * + *

+     * interface Animal {
+     *     name: String
+     *     parent: Animal
+     * }
+     * type Cat implements Animal {
+     *     name: String
+     *     parent: Cat
+     * }
+     * type Dog implements Animal {
+     *     name: String
+     *     parent: Dog
+     *     isGoodBoy: Boolean
+     * }
+     * type Query {
+     *     animal: Animal
+     * }
+     * 
+ *

+ * and the following query + * + *

+     * {
+     *     animal {
+     *         parent {
+     *             name
+     *         }
+     *     }
+     * }
+     * 
+ *

+ * Then we would get the following {@link ExecutableNormalizedOperation} + * + *

+     * -Query.animal: Animal
+     * --[Cat, Dog].parent: Cat, Dog
+     * ---[Cat, Dog].name: String
+     * 
+ *

+ * If we simply checked the {@link #parent}'s {@link #getFieldDefinitions(GraphQLSchema)} that would + * point us to {@code Cat.parent} and {@code Dog.parent} whose output types would incorrectly answer + * our question whether this is conditional? + *

+ * We MUST consider that the output type of the {@code parent} field is {@code Animal} and + * NOT {@code Cat} or {@code Dog} as their respective implementations would say. + * + * @param schema - the graphql schema in play + * @return true if the field is conditional + */ + public boolean isConditional(@NonNull GraphQLSchema schema) { + if (parent == null) { + return false; + } + + for (GraphQLInterfaceType commonParentOutputInterface : parent.getInterfacesCommonToAllOutputTypes(schema)) { + List implementations = schema.getImplementations(commonParentOutputInterface); + // __typename + if (fieldName.equals(Introspection.TypeNameMetaFieldDef.getName()) && implementations.size() == objectTypeNames.size()) { + return false; + } + if (commonParentOutputInterface.getField(fieldName) == null) { + continue; + } + if (implementations.size() == objectTypeNames.size()) { + return false; + } + } + + // __typename is the only field in a union type that CAN be NOT conditional + GraphQLFieldDefinition parentFieldDef = parent.getOneFieldDefinition(schema); + if (unwrapAll(parentFieldDef.getType()) instanceof GraphQLUnionType) { + GraphQLUnionType parentOutputTypeAsUnion = (GraphQLUnionType) unwrapAll(parentFieldDef.getType()); + if (fieldName.equals(Introspection.TypeNameMetaFieldDef.getName()) && objectTypeNames.size() == parentOutputTypeAsUnion.getTypes().size()) { + return false; // Not conditional + } + } + + // This means there is no Union or Interface which could serve as unconditional parent + if (objectTypeNames.size() > 1) { + return true; // Conditional + } + if (parent.objectTypeNames.size() > 1) { + return true; + } + + GraphQLObjectType oneObjectType = (GraphQLObjectType) schema.getType(objectTypeNames.iterator().next()); + return unwrapAll(parentFieldDef.getType()) != oneObjectType; + } + + public boolean hasChildren() { + return children.size() > 0; + } + + public GraphQLOutputType getType(GraphQLSchema schema) { + List fieldDefinitions = getFieldDefinitions(schema); + Set fieldTypes = fieldDefinitions.stream().map(fd -> simplePrint(fd.getType())).collect(toSet()); + assertTrue(fieldTypes.size() == 1, () -> "More than one type ... use getTypes"); + return fieldDefinitions.get(0).getType(); + } + + public List getTypes(GraphQLSchema schema) { + return ImmutableKit.map(getFieldDefinitions(schema), fd -> fd.getType()); + } + + public void forEachFieldDefinition(GraphQLSchema schema, Consumer consumer) { + var fieldDefinition = resolveIntrospectionField(schema, objectTypeNames, fieldName); + if (fieldDefinition != null) { + consumer.accept(fieldDefinition); + return; + } + + for (String objectTypeName : objectTypeNames) { + GraphQLObjectType type = (GraphQLObjectType) assertNotNull(schema.getType(objectTypeName)); + consumer.accept(assertNotNull(type.getField(fieldName), "No field %s found for type %s", fieldName, objectTypeName)); + } + } + + public List getFieldDefinitions(GraphQLSchema schema) { + ImmutableList.Builder builder = ImmutableList.builder(); + forEachFieldDefinition(schema, builder::add); + return builder.build(); + } + + /** + * This is NOT public as it is not recommended usage. + *

+ * Internally there are cases where we know it is safe to use this, so this exists. + */ + private GraphQLFieldDefinition getOneFieldDefinition(GraphQLSchema schema) { + var fieldDefinition = resolveIntrospectionField(schema, objectTypeNames, fieldName); + if (fieldDefinition != null) { + return fieldDefinition; + } + + String objectTypeName = objectTypeNames.iterator().next(); + GraphQLObjectType type = (GraphQLObjectType) assertNotNull(schema.getType(objectTypeName)); + return assertNotNull(type.getField(fieldName), "No field %s found for type %s", fieldName, objectTypeName); + } + + private static GraphQLFieldDefinition resolveIntrospectionField(GraphQLSchema schema, Set objectTypeNames, String fieldName) { + if (fieldName.equals(schema.getIntrospectionTypenameFieldDefinition().getName())) { + return schema.getIntrospectionTypenameFieldDefinition(); + } else if (objectTypeNames.size() == 1 && objectTypeNames.iterator().next().equals(schema.getQueryType().getName())) { + if (fieldName.equals(schema.getIntrospectionSchemaFieldDefinition().getName())) { + return schema.getIntrospectionSchemaFieldDefinition(); + } else if (fieldName.equals(schema.getIntrospectionTypeFieldDefinition().getName())) { + return schema.getIntrospectionTypeFieldDefinition(); + } + } + return null; + } + + @Internal + public void addObjectTypeNames(Collection objectTypeNames) { + this.objectTypeNames.addAll(objectTypeNames); + } + + @Internal + public void setObjectTypeNames(Collection objectTypeNames) { + this.objectTypeNames.clear(); + this.objectTypeNames.addAll(objectTypeNames); + } + + @Internal + public void addChild(NormalizedField normalizedField) { + this.children.add(normalizedField); + } + + @Internal + public void clearChildren() { + this.children.clear(); + } + + + /** + * All merged fields have the same name so this is the name of the {@link NormalizedField}. + *

+ * WARNING: This is not always the key in the execution result, because of possible field aliases. + * + * @return the name of this {@link NormalizedField} + * @see #getResultKey() + * @see #getAlias() + */ + public String getName() { + return getFieldName(); + } + + /** + * @return the same value as {@link #getName()} + * @see #getResultKey() + * @see #getAlias() + */ + public String getFieldName() { + return fieldName; + } + + /** + * Returns the result key of this {@link NormalizedField} within the overall result. + * This is either a field alias or the value of {@link #getName()} + * + * @return the result key for this {@link NormalizedField}. + * @see #getName() + */ + public String getResultKey() { + if (alias != null) { + return alias; + } + return getName(); + } + + /** + * @return the field alias used or null if there is none + * @see #getResultKey() + * @see #getName() + */ + public String getAlias() { + return alias; + } + + /** + * @return a list of the {@link Argument}s on the field + */ + public ImmutableList getAstArguments() { + return astArguments; + } + + public List getAstDirectives() { + return astDirectives; + } + + public void setAstDirectives(List astDirectives) { + this.astDirectives = astDirectives; + } + + + /** + * Returns an argument value as a {@link NormalizedInputValue} which contains its type name and its current value + * + * @param name the name of the argument + * @return an argument value + */ + public NormalizedInputValue getNormalizedArgument(String name) { + return normalizedArguments.get(name); + } + + /** + * @return a map of all the arguments in {@link NormalizedInputValue} form + */ + public ImmutableMap getNormalizedArguments() { + return normalizedArguments; + } + + /** + * @return a map of the resolved argument values + */ + public LinkedHashMap getResolvedArguments() { + return resolvedArguments; + } + + + /** + * A {@link NormalizedField} can sometimes (for non-concrete types like interfaces and unions) + * have more than one object type it could be when executed. There is no way to know what it will be until + * the field is executed over data and the type is resolved via a {@link graphql.schema.TypeResolver}. + *

+ * This method returns all the possible types a field can be which is one or more {@link GraphQLObjectType} + * names. + *

+ * Warning: This returns a Mutable Set. No defensive copy is made for performance reasons. + * + * @return a set of the possible type names this field could be. + */ + public Set getObjectTypeNames() { + return objectTypeNames; + } + + + /** + * This returns the first entry in {@link #getObjectTypeNames()}. Sometimes you know a field cant be more than one + * type and this method is a shortcut one to help you. + * + * @return the first entry from + */ + public String getSingleObjectTypeName() { + return objectTypeNames.iterator().next(); + } + + /** + * @return a helper method show field details + */ + public String printDetails() { + StringBuilder result = new StringBuilder(); + if (getAlias() != null) { + result.append(getAlias()).append(": "); + } + return result + objectTypeNamesToString() + "." + fieldName; + } + + /** + * @return a helper method to show the object types names as a string + */ + public String objectTypeNamesToString() { + if (objectTypeNames.size() == 1) { + return objectTypeNames.iterator().next(); + } else { + return objectTypeNames.toString(); + } + } + + /** + * This returns the list of the result keys (see {@link #getResultKey()} that lead from this field upwards to + * its parent field + * + * @return a list of the result keys from this {@link NormalizedField} to the top of the operation via parent fields + */ + public List getListOfResultKeys() { + LinkedList list = new LinkedList<>(); + NormalizedField current = this; + while (current != null) { + list.addFirst(current.getResultKey()); + current = current.parent; + } + return list; + } + + /** + * @return the children of the {@link NormalizedField} + */ + public List getChildren() { + return children; + } + + /** + * Returns the list of child fields that would have the same result key + * + * @param resultKey the result key to check + * @return a list of all direct {@link NormalizedField} children with the specified result key + */ + public List getChildrenWithSameResultKey(String resultKey) { + return FpKit.filterList(children, child -> child.getResultKey().equals(resultKey)); + } + + public List getChildren(int includingRelativeLevel) { + List result = new ArrayList<>(); + assertTrue(includingRelativeLevel >= 1, () -> "relative level must be >= 1"); + + this.getChildren().forEach(child -> { + traverseImpl(child, result::add, 1, includingRelativeLevel); + }); + return result; + } + + /** + * This returns the child fields that can be used if the object is of the specified object type + * + * @param objectTypeName the object type + * @return a list of child fields that would apply to that object type + */ + public List getChildren(String objectTypeName) { + return children.stream() + .filter(cld -> cld.objectTypeNames.contains(objectTypeName)) + .collect(toList()); + } + + /** + * the level of the {@link NormalizedField} in the operation hierarchy with top level fields + * starting at 1 + * + * @return the level of the {@link NormalizedField} in the operation hierarchy + */ + public int getLevel() { + return level; + } + + /** + * @return the parent of this {@link NormalizedField} or null if it's a top level field + */ + public NormalizedField getParent() { + return parent; + } + + + @Internal + public void replaceParent(NormalizedField newParent) { + this.parent = newParent; + } + + + @Override + public String toString() { + return "NormalizedField{" + + objectTypeNamesToString() + "." + fieldName + + ", alias=" + alias + + ", level=" + level + + ", children=" + children.stream().map(NormalizedField::toString).collect(joining("\n")) + + '}'; + } + + + /** + * Traverse from this {@link NormalizedField} down into itself and all of its children + * + * @param consumer the callback for each {@link NormalizedField} in the hierarchy. + */ + public void traverseSubTree(Consumer consumer) { + this.getChildren().forEach(child -> { + traverseImpl(child, consumer, 1, Integer.MAX_VALUE); + }); + } + + private void traverseImpl(NormalizedField root, + Consumer consumer, + int curRelativeLevel, + int abortAfter) { + if (curRelativeLevel > abortAfter) { + return; + } + consumer.accept(root); + root.getChildren().forEach(child -> { + traverseImpl(child, consumer, curRelativeLevel + 1, abortAfter); + }); + } + + /** + * This tries to find interfaces common to all the field output types. + *

+ * i.e. goes through {@link #getFieldDefinitions(GraphQLSchema)} and finds interfaces that + * all the field's unwrapped output types are assignable to. + */ + @SuppressWarnings({"unchecked", "rawtypes"}) + private Set getInterfacesCommonToAllOutputTypes(GraphQLSchema schema) { + // Shortcut for performance + if (objectTypeNames.size() == 1) { + var fieldDef = getOneFieldDefinition(schema); + var outputType = unwrapAll(fieldDef.getType()); + + if (outputType instanceof GraphQLObjectType) { + return new LinkedHashSet<>((List) ((GraphQLObjectType) outputType).getInterfaces()); + } else if (outputType instanceof GraphQLInterfaceType) { + var result = new LinkedHashSet<>((List) ((GraphQLInterfaceType) outputType).getInterfaces()); + result.add(outputType); + return result; + } else { + return Collections.emptySet(); + } + } + + MutableRef> commonInterfaces = new MutableRef<>(); + forEachFieldDefinition(schema, (fieldDef) -> { + var outputType = unwrapAll(fieldDef.getType()); + + List outputTypeInterfaces; + if (outputType instanceof GraphQLObjectType) { + outputTypeInterfaces = (List) ((GraphQLObjectType) outputType).getInterfaces(); + } else if (outputType instanceof GraphQLInterfaceType) { + // This interface and superinterfaces + List superInterfaces = ((GraphQLInterfaceType) outputType).getInterfaces(); + + outputTypeInterfaces = new ArrayList<>(superInterfaces.size() + 1); + outputTypeInterfaces.add((GraphQLInterfaceType) outputType); + + if (!superInterfaces.isEmpty()) { + outputTypeInterfaces.addAll((List) superInterfaces); + } + } else { + outputTypeInterfaces = Collections.emptyList(); + } + + if (commonInterfaces.value == null) { + commonInterfaces.value = new LinkedHashSet<>(outputTypeInterfaces); + } else { + commonInterfaces.value.retainAll(outputTypeInterfaces); + } + }); + + return commonInterfaces.value; + } + + /** + * @return a {@link Builder} of {@link NormalizedField}s + */ + public static Builder newNormalizedField() { + return new Builder(); + } + + /** + * Allows this {@link NormalizedField} to be transformed via a {@link Builder} consumer callback + * + * @param builderConsumer the consumer given a builder + * @return a new transformed {@link NormalizedField} + */ + public NormalizedField transform(Consumer builderConsumer) { + Builder builder = new Builder(this); + builderConsumer.accept(builder); + return builder.build(); + } + + + public static class Builder { + private LinkedHashSet objectTypeNames = new LinkedHashSet<>(); + private String fieldName; + private ArrayList children = new ArrayList<>(); + private int level; + private NormalizedField parent; + private String alias; + private ImmutableMap normalizedArguments = ImmutableKit.emptyMap(); + private LinkedHashMap resolvedArguments = new LinkedHashMap<>(); + private ImmutableList astArguments = ImmutableKit.emptyList(); + private List astDirectives = Collections.emptyList(); + + + private Builder() { + } + + private Builder(NormalizedField existing) { + this.alias = existing.alias; + this.normalizedArguments = existing.normalizedArguments; + this.astArguments = existing.astArguments; + this.resolvedArguments = existing.resolvedArguments; + this.objectTypeNames = new LinkedHashSet<>(existing.getObjectTypeNames()); + this.fieldName = existing.getFieldName(); + this.children = new ArrayList<>(existing.children); + this.level = existing.getLevel(); + this.parent = existing.getParent(); + } + + public Builder clearObjectTypesNames() { + this.objectTypeNames.clear(); + return this; + } + + public Builder objectTypeNames(List objectTypeNames) { + this.objectTypeNames.addAll(objectTypeNames); + return this; + } + + public Builder alias(String alias) { + this.alias = alias; + return this; + } + + public Builder normalizedArguments(@Nullable Map arguments) { + this.normalizedArguments = arguments == null ? ImmutableKit.emptyMap() : ImmutableMap.copyOf(arguments); + return this; + } + + public Builder resolvedArguments(@Nullable Map arguments) { + this.resolvedArguments = arguments == null ? new LinkedHashMap<>() : new LinkedHashMap<>(arguments); + return this; + } + + public Builder astArguments(@NonNull List astArguments) { + this.astArguments = ImmutableList.copyOf(astArguments); + return this; + } + + public Builder astDirectives(@NonNull List astDirectives) { + this.astDirectives = astDirectives; + return this; + } + + + public Builder fieldName(String fieldName) { + this.fieldName = fieldName; + return this; + } + + + public Builder children(List children) { + this.children.clear(); + this.children.addAll(children); + return this; + } + + public Builder level(int level) { + this.level = level; + return this; + } + + public Builder parent(NormalizedField parent) { + this.parent = parent; + return this; + } + + + public NormalizedField build() { + return new NormalizedField(this); + } + } +} diff --git a/src/main/java/graphql/normalized/nf/NormalizedFieldsMerger.java b/src/main/java/graphql/normalized/nf/NormalizedFieldsMerger.java new file mode 100644 index 000000000..4261aa530 --- /dev/null +++ b/src/main/java/graphql/normalized/nf/NormalizedFieldsMerger.java @@ -0,0 +1,195 @@ +package graphql.normalized.nf; + +import graphql.Internal; +import graphql.introspection.Introspection; +import graphql.language.Argument; +import graphql.language.AstComparator; +import graphql.language.Directive; +import graphql.schema.GraphQLInterfaceType; +import graphql.schema.GraphQLObjectType; +import graphql.schema.GraphQLSchema; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; + +@Internal +public class NormalizedFieldsMerger { + + public static void merge( + NormalizedField parent, + List childrenWithSameResultKey, + GraphQLSchema schema + ) { + // they have all the same result key + // we can only merge the fields if they have the same field name + arguments + all children are the same + List> possibleGroupsToMerge = new ArrayList<>(); + for (NormalizedField field : childrenWithSameResultKey) { + boolean addToGroup = false; + overPossibleGroups: + for (Set group : possibleGroupsToMerge) { + for (NormalizedField fieldInGroup : group) { + if (field.getFieldName().equals(Introspection.TypeNameMetaFieldDef.getName())) { + addToGroup = true; + group.add(field); + continue overPossibleGroups; + } + if (field.getFieldName().equals(fieldInGroup.getFieldName()) && + sameArguments(field.getAstArguments(), fieldInGroup.getAstArguments()) + && isFieldInSharedInterface(field, fieldInGroup, schema) + ) { + addToGroup = true; + group.add(field); + continue overPossibleGroups; + } + } + } + if (!addToGroup) { + LinkedHashSet group = new LinkedHashSet<>(); + group.add(field); + possibleGroupsToMerge.add(group); + } + } + for (Set groupOfFields : possibleGroupsToMerge) { + // for each group we check if it could be merged + List> listOfChildrenForGroup = new ArrayList<>(); + for (NormalizedField fieldInGroup : groupOfFields) { + Set childrenSets = new LinkedHashSet<>(fieldInGroup.getChildren()); + listOfChildrenForGroup.add(childrenSets); + } + boolean mergeable = areFieldSetsTheSame(listOfChildrenForGroup); + if (mergeable) { + Set mergedObjects = new LinkedHashSet<>(); + List mergedDirectives = new ArrayList<>(); + groupOfFields.forEach(f -> mergedObjects.addAll(f.getObjectTypeNames())); + groupOfFields.forEach(f -> mergedDirectives.addAll(f.getAstDirectives())); + // patching the first one to contain more objects, remove all others + Iterator iterator = groupOfFields.iterator(); + NormalizedField first = iterator.next(); + + while (iterator.hasNext()) { + NormalizedField next = iterator.next(); + parent.getChildren().remove(next); + } + first.setObjectTypeNames(mergedObjects); + first.setAstDirectives(mergedDirectives); + } + } + } + + private static boolean isFieldInSharedInterface(NormalizedField fieldOne, NormalizedField fieldTwo, GraphQLSchema schema) { + + /* + * we can get away with only checking one of the object names, because all object names in one ENF are guaranteed to be the same field. + * This comes from how the ENFs are created in the factory before. + */ + String firstObject = fieldOne.getSingleObjectTypeName(); + String secondObject = fieldTwo.getSingleObjectTypeName(); + // we know that the field names are the same, therefore we can just take the first one + String fieldName = fieldOne.getFieldName(); + + GraphQLObjectType objectTypeOne = schema.getObjectType(firstObject); + GraphQLObjectType objectTypeTwo = schema.getObjectType(secondObject); + List interfacesOne = (List) objectTypeOne.getInterfaces(); + List interfacesTwo = (List) objectTypeTwo.getInterfaces(); + + Optional firstInterfaceFound = interfacesOne.stream().filter(singleInterface -> singleInterface.getFieldDefinition(fieldName) != null).findFirst(); + Optional secondInterfaceFound = interfacesTwo.stream().filter(singleInterface -> singleInterface.getFieldDefinition(fieldName) != null).findFirst(); + if (!firstInterfaceFound.isPresent() || !secondInterfaceFound.isPresent()) { + return false; + } + return firstInterfaceFound.get().getName().equals(secondInterfaceFound.get().getName()); + } + + + private static boolean areFieldSetsTheSame(List> listOfSets) { + if (listOfSets.size() == 0 || listOfSets.size() == 1) { + return true; + } + Set first = listOfSets.get(0); + Iterator> iterator = listOfSets.iterator(); + iterator.next(); + while (iterator.hasNext()) { + Set set = iterator.next(); + if (!compareTwoFieldSets(first, set)) { + return false; + } + } + List> nextLevel = new ArrayList<>(); + for (Set set : listOfSets) { + for (NormalizedField fieldInSet : set) { + nextLevel.add(new LinkedHashSet<>(fieldInSet.getChildren())); + } + } + return areFieldSetsTheSame(nextLevel); + } + + private static boolean compareTwoFieldSets(Set setOne, Set setTwo) { + if (setOne.size() != setTwo.size()) { + return false; + } + for (NormalizedField field : setOne) { + if (!isContained(field, setTwo)) { + return false; + } + } + return true; + } + + private static boolean isContained(NormalizedField searchFor, Set set) { + for (NormalizedField field : set) { + if (compareWithoutChildren(searchFor, field)) { + return true; + } + } + return false; + } + + private static boolean compareWithoutChildren(NormalizedField one, NormalizedField two) { + + if (!one.getObjectTypeNames().equals(two.getObjectTypeNames())) { + return false; + } + if (!Objects.equals(one.getAlias(), two.getAlias())) { + return false; + } + if (!Objects.equals(one.getFieldName(), two.getFieldName())) { + return false; + } + if (!sameArguments(one.getAstArguments(), two.getAstArguments())) { + return false; + } + return true; + } + + // copied from graphql.validation.rules.OverlappingFieldsCanBeMerged + private static boolean sameArguments(List arguments1, List arguments2) { + if (arguments1.size() != arguments2.size()) { + return false; + } + for (Argument argument : arguments1) { + Argument matchedArgument = findArgumentByName(argument.getName(), arguments2); + if (matchedArgument == null) { + return false; + } + if (!AstComparator.sameValue(argument.getValue(), matchedArgument.getValue())) { + return false; + } + } + return true; + } + + private static Argument findArgumentByName(String name, List arguments) { + for (Argument argument : arguments) { + if (argument.getName().equals(name)) { + return argument; + } + } + return null; + } + +} diff --git a/src/main/java/graphql/normalized/nf/NormalizedOperation.java b/src/main/java/graphql/normalized/nf/NormalizedOperation.java new file mode 100644 index 000000000..6d3c333d0 --- /dev/null +++ b/src/main/java/graphql/normalized/nf/NormalizedOperation.java @@ -0,0 +1,180 @@ +package graphql.normalized.nf; + +import com.google.common.collect.ImmutableListMultimap; +import graphql.Assert; +import graphql.ExperimentalApi; +import graphql.execution.MergedField; +import graphql.execution.ResultPath; +import graphql.execution.directives.QueryDirectives; +import graphql.language.Field; +import graphql.language.OperationDefinition; +import graphql.schema.FieldCoordinates; +import graphql.schema.GraphQLFieldsContainer; + +import java.util.List; +import java.util.Map; + +/** + * A {@link NormalizedOperation} represent how the text of a graphql operation (sometimes known colloquially as a query) + * will be executed at runtime according to the graphql specification. It handles complex mechanisms like merging + * duplicate fields into one and also detecting when the types of a given field may actually be for more than one possible object + * type. + *

+ * An operation consists of a list of {@link NormalizedField}s in a parent child hierarchy + */ +@ExperimentalApi +public class NormalizedOperation { + private final OperationDefinition.Operation operation; + private final String operationName; + private final List rootFields; + private final ImmutableListMultimap fieldToNormalizedField; + private final Map normalizedFieldToMergedField; + private final Map normalizedFieldToQueryDirectives; + private final ImmutableListMultimap coordinatesToNormalizedFields; + private final int operationFieldCount; + private final int operationDepth; + + public NormalizedOperation( + OperationDefinition.Operation operation, + String operationName, + List rootFields, + ImmutableListMultimap fieldToNormalizedField, + Map normalizedFieldToMergedField, + Map normalizedFieldToQueryDirectives, + ImmutableListMultimap coordinatesToNormalizedFields, + int operationFieldCount, + int operationDepth) { + this.operation = operation; + this.operationName = operationName; + this.rootFields = rootFields; + this.fieldToNormalizedField = fieldToNormalizedField; + this.normalizedFieldToMergedField = normalizedFieldToMergedField; + this.normalizedFieldToQueryDirectives = normalizedFieldToQueryDirectives; + this.coordinatesToNormalizedFields = coordinatesToNormalizedFields; + this.operationFieldCount = operationFieldCount; + this.operationDepth = operationDepth; + } + + /** + * @return operation AST being executed + */ + public OperationDefinition.Operation getOperation() { + return operation; + } + + /** + * @return the operation name, which can be null + */ + public String getOperationName() { + return operationName; + } + + /** + * @return This returns how many {@link NormalizedField}s are in the operation. + */ + public int getOperationFieldCount() { + return operationFieldCount; + } + + /** + * @return This returns the depth of the operation + */ + public int getOperationDepth() { + return operationDepth; + } + + /** + * This multimap shows how a given {@link NormalizedField} maps to a one or more field coordinate in the schema + * + * @return a multimap of fields to schema field coordinates + */ + public ImmutableListMultimap getCoordinatesToNormalizedFields() { + return coordinatesToNormalizedFields; + } + + /** + * @return a list of the top level {@link NormalizedField}s in this operation. + */ + public List getRootFields() { + return rootFields; + } + + /** + * This is a multimap and the size of it reflects all the normalized fields in the operation + * + * @return an immutable list multimap of {@link Field} to {@link NormalizedField} + */ + public ImmutableListMultimap getFieldToNormalizedField() { + return fieldToNormalizedField; + } + + /** + * Looks up one or more {@link NormalizedField}s given a {@link Field} AST element in the operation + * + * @param field the field to look up + * + * @return zero, one or more possible {@link NormalizedField}s that represent that field + */ + public List getNormalizedFields(Field field) { + return fieldToNormalizedField.get(field); + } + + /** + * @return a map of {@link NormalizedField} to {@link MergedField}s + */ + public Map getNormalizedFieldToMergedField() { + return normalizedFieldToMergedField; + } + + /** + * Looks up the {@link MergedField} given a {@link NormalizedField} + * + * @param NormalizedField the field to use the key + * + * @return a {@link MergedField} or null if its not present + */ + public MergedField getMergedField(NormalizedField NormalizedField) { + return normalizedFieldToMergedField.get(NormalizedField); + } + + /** + * @return a map of {@link NormalizedField} to its {@link QueryDirectives} + */ + public Map getNormalizedFieldToQueryDirectives() { + return normalizedFieldToQueryDirectives; + + } + + /** + * This looks up the {@link QueryDirectives} associated with the given {@link NormalizedField} + * + * @param NormalizedField the executable normalised field in question + * + * @return the fields query directives or null + */ + public QueryDirectives getQueryDirectives(NormalizedField NormalizedField) { + return normalizedFieldToQueryDirectives.get(NormalizedField); + } + + /** + * This will find a {@link NormalizedField} given a merged field and a result path. If this does not find a field it will assert with an exception + * + * @param mergedField the merged field + * @param fieldsContainer the containing type of that field + * @param resultPath the result path in play + * + * @return the NormalizedField + */ + public NormalizedField getNormalizedField(MergedField mergedField, GraphQLFieldsContainer fieldsContainer, ResultPath resultPath) { + List NormalizedFields = fieldToNormalizedField.get(mergedField.getSingleField()); + List keysOnlyPath = resultPath.getKeysOnly(); + for (NormalizedField NormalizedField : NormalizedFields) { + if (NormalizedField.getListOfResultKeys().equals(keysOnlyPath)) { + if (NormalizedField.getObjectTypeNames().contains(fieldsContainer.getName())) { + return NormalizedField; + } + } + } + return Assert.assertShouldNeverHappen("normalized field not found"); + } +} diff --git a/src/main/java/graphql/normalized/nf/NormalizedOperationToAstCompiler.java b/src/main/java/graphql/normalized/nf/NormalizedOperationToAstCompiler.java new file mode 100644 index 000000000..71fa80417 --- /dev/null +++ b/src/main/java/graphql/normalized/nf/NormalizedOperationToAstCompiler.java @@ -0,0 +1,248 @@ +package graphql.normalized.nf; + +import com.google.common.collect.ImmutableList; +import graphql.Assert; +import graphql.ExperimentalApi; +import graphql.introspection.Introspection; +import graphql.language.Argument; +import graphql.language.Directive; +import graphql.language.Document; +import graphql.language.Field; +import graphql.language.InlineFragment; +import graphql.language.OperationDefinition; +import graphql.language.Selection; +import graphql.language.SelectionSet; +import graphql.language.TypeName; +import graphql.schema.GraphQLCompositeType; +import graphql.schema.GraphQLFieldDefinition; +import graphql.schema.GraphQLObjectType; +import graphql.schema.GraphQLSchema; +import graphql.schema.GraphQLUnmodifiedType; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import static graphql.collect.ImmutableKit.emptyList; +import static graphql.language.Field.newField; +import static graphql.language.InlineFragment.newInlineFragment; +import static graphql.language.SelectionSet.newSelectionSet; +import static graphql.language.TypeName.newTypeName; +import static graphql.schema.GraphQLTypeUtil.unwrapAll; + +/** + * This class can take a list of {@link NormalizedField}s and compiling out a + * normalised operation {@link Document} that would represent how those fields + * may be executed. + *

+ * This is essentially the reverse of {@link NormalizedDocumentFactory} which takes + * operation text and makes {@link NormalizedField}s from it, this takes {@link NormalizedField}s + * and makes operation text from it. + *

+ * You could for example send that operation text onto to some other graphql server if it + * has the same schema as the one provided. + */ +@ExperimentalApi +public class NormalizedOperationToAstCompiler { + + /** + * The result is a {@link Document} and a map of variables + * that would go with that document. + */ + public static class CompilerResult { + private final Document document; + private final Map variables; + + public CompilerResult(Document document, Map variables) { + this.document = document; + this.variables = variables; + } + + public Document getDocument() { + return document; + } + + public Map getVariables() { + return variables; + } + } + + public static CompilerResult compileToDocument(GraphQLSchema graphQLSchema, + GraphQLObjectType rootType, + List rootFields, + @Nullable String operationName, + OperationDefinition.Operation operationKind) { + + return compileToDocumentImpl(graphQLSchema, rootType, rootFields, operationName, operationKind); + } + + public static CompilerResult compileToDocument(GraphQLSchema graphQLSchema, + GraphQLObjectType rootType, + NormalizedField singleRootField, + @Nullable String operationName, + OperationDefinition.Operation operationKind) { + return compileToDocumentImpl(graphQLSchema, rootType, ImmutableList.of(singleRootField), operationName, operationKind); + + + } + + + public static CompilerResult compileToDocument(GraphQLSchema schema, + NormalizedOperation normalizedOperation) { + GraphQLObjectType operationType = getOperationType(schema, normalizedOperation.getOperation()); + + return compileToDocumentImpl( + schema, + operationType, + normalizedOperation.getRootFields(), + normalizedOperation.getOperationName(), + normalizedOperation.getOperation() + ); + } + + private static CompilerResult compileToDocumentImpl(GraphQLSchema schema, + GraphQLObjectType rootType, + List rootFields, + @Nullable String operationName, + OperationDefinition.Operation operationKind) { + + List> selections = subSelectionsForNormalizedFields(schema, rootType.getName(), rootFields); + SelectionSet selectionSet = new SelectionSet(selections); + + OperationDefinition.Builder definitionBuilder = OperationDefinition.newOperationDefinition() + .name(operationName) + .operation(operationKind) + .selectionSet(selectionSet); + +// definitionBuilder.variableDefinitions(variableAccumulator.getVariableDefinitions()); + + return new CompilerResult( + Document.newDocument() + .definition(definitionBuilder.build()) + .build(), + null + ); + } + + + private static List> subSelectionsForNormalizedFields(GraphQLSchema schema, + @NonNull String parentOutputType, + List normalizedFields + ) { + ImmutableList.Builder> selections = ImmutableList.builder(); + + // All conditional fields go here instead of directly to selections, so they can be grouped together + // in the same inline fragment in the output + Map> fieldsByTypeCondition = new LinkedHashMap<>(); + + for (NormalizedField nf : normalizedFields) { + if (nf.isConditional(schema)) { + selectionForNormalizedField(schema, nf) + .forEach((objectTypeName, field) -> + fieldsByTypeCondition + .computeIfAbsent(objectTypeName, ignored -> new ArrayList<>()) + .add(field)); + } else { + selections.add(selectionForNormalizedField(schema, parentOutputType, nf)); + } + } + + fieldsByTypeCondition.forEach((objectTypeName, fields) -> { + TypeName typeName = newTypeName(objectTypeName).build(); + InlineFragment inlineFragment = newInlineFragment() + .typeCondition(typeName) + .selectionSet(selectionSet(fields)) + .build(); + selections.add(inlineFragment); + }); + + return selections.build(); + } + + /** + * @return Map of object type names to list of fields + */ + private static Map selectionForNormalizedField(GraphQLSchema schema, + NormalizedField normalizedField + ) { + Map groupedFields = new LinkedHashMap<>(); + + for (String objectTypeName : normalizedField.getObjectTypeNames()) { + groupedFields.put(objectTypeName, selectionForNormalizedField(schema, objectTypeName, normalizedField)); + } + + return groupedFields; + } + + /** + * @return Map of object type names to list of fields + */ + private static Field selectionForNormalizedField(GraphQLSchema schema, + String objectTypeName, + NormalizedField normalizedField) { + + final List> subSelections; + if (normalizedField.getChildren().isEmpty()) { + subSelections = emptyList(); + } else { + GraphQLFieldDefinition fieldDef = getFieldDefinition(schema, objectTypeName, normalizedField); + GraphQLUnmodifiedType fieldOutputType = unwrapAll(fieldDef.getType()); + + subSelections = subSelectionsForNormalizedFields( + schema, + fieldOutputType.getName(), + normalizedField.getChildren() + ); + } + + SelectionSet selectionSet = selectionSetOrNullIfEmpty(subSelections); +// List arguments = createArguments(executableNormalizedField, variableAccumulator); + List arguments = normalizedField.getAstArguments(); + List directives = normalizedField.getAstDirectives(); + + + Field.Builder builder = newField() + .name(normalizedField.getFieldName()) + .alias(normalizedField.getAlias()) + .selectionSet(selectionSet) + .directives(directives) + .arguments(arguments); + return builder.build(); + } + + @Nullable + private static SelectionSet selectionSetOrNullIfEmpty(List> selections) { + return selections.isEmpty() ? null : newSelectionSet().selections(selections).build(); + } + + private static SelectionSet selectionSet(List fields) { + return newSelectionSet().selections(fields).build(); + } + + + @NonNull + private static GraphQLFieldDefinition getFieldDefinition(GraphQLSchema schema, + String parentType, + NormalizedField nf) { + return Introspection.getFieldDef(schema, (GraphQLCompositeType) schema.getType(parentType), nf.getName()); + } + + + private static GraphQLObjectType getOperationType(@NonNull GraphQLSchema schema, + OperationDefinition.@NonNull Operation operationKind) { + switch (operationKind) { + case QUERY: + return schema.getQueryType(); + case MUTATION: + return schema.getMutationType(); + case SUBSCRIPTION: + return schema.getSubscriptionType(); + } + + return Assert.assertShouldNeverHappen("Unknown operation kind " + operationKind); + } + +} diff --git a/src/main/java/graphql/parser/GraphqlAntlrToLanguage.java b/src/main/java/graphql/parser/GraphqlAntlrToLanguage.java index 006499f4f..125e184d1 100644 --- a/src/main/java/graphql/parser/GraphqlAntlrToLanguage.java +++ b/src/main/java/graphql/parser/GraphqlAntlrToLanguage.java @@ -67,7 +67,7 @@ import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.TerminalNode; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.math.BigDecimal; import java.math.BigInteger; diff --git a/src/main/java/graphql/parser/Parser.java b/src/main/java/graphql/parser/Parser.java index 433442b7f..53cdab37b 100644 --- a/src/main/java/graphql/parser/Parser.java +++ b/src/main/java/graphql/parser/Parser.java @@ -25,7 +25,7 @@ import org.antlr.v4.runtime.atn.PredictionMode; import org.antlr.v4.runtime.tree.ParseTreeListener; import org.antlr.v4.runtime.tree.TerminalNode; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.io.IOException; import java.io.Reader; @@ -270,7 +270,7 @@ private static MultiSourceReader setupMultiSourceReader(ParserEnvironment enviro return multiSourceReader; } - @NotNull + @NonNull private static SafeTokenReader setupSafeTokenReader(ParserEnvironment environment, ParserOptions parserOptions, MultiSourceReader multiSourceReader) { int maxCharacters = parserOptions.getMaxCharacters(); Consumer onTooManyCharacters = it -> { @@ -279,7 +279,7 @@ private static SafeTokenReader setupSafeTokenReader(ParserEnvironment environmen return new SafeTokenReader(multiSourceReader, maxCharacters, onTooManyCharacters); } - @NotNull + @NonNull private static CodePointCharStream setupCharStream(SafeTokenReader safeTokenReader) { CodePointCharStream charStream; try { @@ -290,7 +290,7 @@ private static CodePointCharStream setupCharStream(SafeTokenReader safeTokenRead return charStream; } - @NotNull + @NonNull private static GraphqlLexer setupGraphqlLexer(ParserEnvironment environment, MultiSourceReader multiSourceReader, CodePointCharStream charStream) { GraphqlLexer lexer = new GraphqlLexer(charStream); lexer.removeErrorListeners(); @@ -315,7 +315,7 @@ public void syntaxError(Recognizer recognizer, Object offendingSymbol, int return lexer; } - @NotNull + @NonNull private SafeTokenSource getSafeTokenSource(ParserEnvironment environment, ParserOptions parserOptions, MultiSourceReader multiSourceReader, GraphqlLexer lexer) { int maxTokens = parserOptions.getMaxTokens(); int maxWhitespaceTokens = parserOptions.getMaxWhitespaceTokens(); diff --git a/src/main/java/graphql/parser/ParserOptions.java b/src/main/java/graphql/parser/ParserOptions.java index c3366d6bb..0adfb73f6 100644 --- a/src/main/java/graphql/parser/ParserOptions.java +++ b/src/main/java/graphql/parser/ParserOptions.java @@ -302,6 +302,8 @@ public int getMaxRuleDepth() { /** * Option to redact offending tokens in parser error messages. * By default, the parser will include the offending token in the error message, if possible. + * + * @return true if the token parser messages should be redacted */ public boolean isRedactTokenParserErrorMessages() { return redactTokenParserErrorMessages; diff --git a/src/main/java/graphql/parser/SafeTokenReader.java b/src/main/java/graphql/parser/SafeTokenReader.java index be102be0d..8c655d942 100644 --- a/src/main/java/graphql/parser/SafeTokenReader.java +++ b/src/main/java/graphql/parser/SafeTokenReader.java @@ -1,7 +1,7 @@ package graphql.parser; import graphql.Internal; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.io.IOException; import java.io.Reader; @@ -40,7 +40,7 @@ private int checkHowMany(int read, int howMany) { } @Override - public int read(char @NotNull [] buff, int off, int len) throws IOException { + public int read(char @NonNull [] buff, int off, int len) throws IOException { int howMany = delegate.read(buff, off, len); return checkHowMany(howMany, howMany); } @@ -52,13 +52,13 @@ public int read() throws IOException { } @Override - public int read(@NotNull CharBuffer target) throws IOException { + public int read(@NonNull CharBuffer target) throws IOException { int howMany = delegate.read(target); return checkHowMany(howMany, howMany); } @Override - public int read( char @NotNull [] buff) throws IOException { + public int read(char @NonNull [] buff) throws IOException { int howMany = delegate.read(buff); return checkHowMany(howMany, howMany); } diff --git a/src/main/java/graphql/parser/exceptions/InvalidUnicodeSyntaxException.java b/src/main/java/graphql/parser/exceptions/InvalidUnicodeSyntaxException.java index be7512704..46b7ad37b 100644 --- a/src/main/java/graphql/parser/exceptions/InvalidUnicodeSyntaxException.java +++ b/src/main/java/graphql/parser/exceptions/InvalidUnicodeSyntaxException.java @@ -4,12 +4,12 @@ import graphql.i18n.I18n; import graphql.language.SourceLocation; import graphql.parser.InvalidSyntaxException; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; @Internal public class InvalidUnicodeSyntaxException extends InvalidSyntaxException { - public InvalidUnicodeSyntaxException(@NotNull I18n i18N, @NotNull String msgKey, @NotNull SourceLocation sourceLocation, @NotNull String offendingToken) { + public InvalidUnicodeSyntaxException(@NonNull I18n i18N, @NonNull String msgKey, @NonNull SourceLocation sourceLocation, @NonNull String offendingToken) { super(i18N.msg(msgKey, offendingToken, sourceLocation.getLine(), sourceLocation.getColumn()), sourceLocation, offendingToken, null, null); } diff --git a/src/main/java/graphql/parser/exceptions/MoreTokensSyntaxException.java b/src/main/java/graphql/parser/exceptions/MoreTokensSyntaxException.java index a1378b2c8..2956f3f95 100644 --- a/src/main/java/graphql/parser/exceptions/MoreTokensSyntaxException.java +++ b/src/main/java/graphql/parser/exceptions/MoreTokensSyntaxException.java @@ -4,19 +4,19 @@ import graphql.i18n.I18n; import graphql.language.SourceLocation; import graphql.parser.InvalidSyntaxException; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; @Internal public class MoreTokensSyntaxException extends InvalidSyntaxException { @Internal - public MoreTokensSyntaxException(@NotNull I18n i18N, @NotNull SourceLocation sourceLocation, @NotNull String offendingToken, @NotNull String sourcePreview) { + public MoreTokensSyntaxException(@NonNull I18n i18N, @NonNull SourceLocation sourceLocation, @NonNull String offendingToken, @NonNull String sourcePreview) { super(i18N.msg("InvalidSyntaxMoreTokens.full", offendingToken, sourceLocation.getLine(), sourceLocation.getColumn()), sourceLocation, offendingToken, sourcePreview, null); } @Internal - public MoreTokensSyntaxException(@NotNull I18n i18N, @NotNull SourceLocation sourceLocation) { + public MoreTokensSyntaxException(@NonNull I18n i18N, @NonNull SourceLocation sourceLocation) { super(i18N.msg("InvalidSyntaxMoreTokens.noMessage", sourceLocation.getLine(), sourceLocation.getColumn()), sourceLocation, null, null, null); } diff --git a/src/main/java/graphql/parser/exceptions/ParseCancelledException.java b/src/main/java/graphql/parser/exceptions/ParseCancelledException.java index ab183367f..4fe954152 100644 --- a/src/main/java/graphql/parser/exceptions/ParseCancelledException.java +++ b/src/main/java/graphql/parser/exceptions/ParseCancelledException.java @@ -4,14 +4,14 @@ import graphql.i18n.I18n; import graphql.language.SourceLocation; import graphql.parser.InvalidSyntaxException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; @Internal public class ParseCancelledException extends InvalidSyntaxException { @Internal - public ParseCancelledException(@NotNull I18n i18N, @Nullable SourceLocation sourceLocation, @Nullable String offendingToken, int maxTokens, @NotNull String tokenType) { + public ParseCancelledException(@NonNull I18n i18N, @Nullable SourceLocation sourceLocation, @Nullable String offendingToken, int maxTokens, @NonNull String tokenType) { super(i18N.msg("ParseCancelled.full", maxTokens, tokenType), sourceLocation, offendingToken, null, null); } diff --git a/src/main/java/graphql/parser/exceptions/ParseCancelledTooDeepException.java b/src/main/java/graphql/parser/exceptions/ParseCancelledTooDeepException.java index c5f9499ec..fe8717bed 100644 --- a/src/main/java/graphql/parser/exceptions/ParseCancelledTooDeepException.java +++ b/src/main/java/graphql/parser/exceptions/ParseCancelledTooDeepException.java @@ -4,14 +4,14 @@ import graphql.i18n.I18n; import graphql.language.SourceLocation; import graphql.parser.InvalidSyntaxException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; @Internal public class ParseCancelledTooDeepException extends InvalidSyntaxException { @Internal - public ParseCancelledTooDeepException(@NotNull I18n i18N, @Nullable SourceLocation sourceLocation, @Nullable String offendingToken, int maxTokens, @NotNull String tokenType) { + public ParseCancelledTooDeepException(@NonNull I18n i18N, @Nullable SourceLocation sourceLocation, @Nullable String offendingToken, int maxTokens, @NonNull String tokenType) { super(i18N.msg("ParseCancelled.tooDeep", maxTokens, tokenType), sourceLocation, offendingToken, null, null); } diff --git a/src/main/java/graphql/parser/exceptions/ParseCancelledTooManyCharsException.java b/src/main/java/graphql/parser/exceptions/ParseCancelledTooManyCharsException.java index 1c84189f6..b861c78cf 100644 --- a/src/main/java/graphql/parser/exceptions/ParseCancelledTooManyCharsException.java +++ b/src/main/java/graphql/parser/exceptions/ParseCancelledTooManyCharsException.java @@ -3,13 +3,13 @@ import graphql.Internal; import graphql.i18n.I18n; import graphql.parser.InvalidSyntaxException; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; @Internal public class ParseCancelledTooManyCharsException extends InvalidSyntaxException { @Internal - public ParseCancelledTooManyCharsException(@NotNull I18n i18N, int maxCharacters) { + public ParseCancelledTooManyCharsException(@NonNull I18n i18N, int maxCharacters) { super(i18N.msg("ParseCancelled.tooManyChars", maxCharacters), null, null, null, null); } diff --git a/src/main/java/graphql/scalar/GraphqlBooleanCoercing.java b/src/main/java/graphql/scalar/GraphqlBooleanCoercing.java index 8c06b874e..cea304a65 100644 --- a/src/main/java/graphql/scalar/GraphqlBooleanCoercing.java +++ b/src/main/java/graphql/scalar/GraphqlBooleanCoercing.java @@ -9,8 +9,8 @@ import graphql.schema.CoercingParseLiteralException; import graphql.schema.CoercingParseValueException; import graphql.schema.CoercingSerializeException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.math.BigDecimal; import java.util.Locale; @@ -54,8 +54,8 @@ private Boolean convertImpl(Object input) { } - @NotNull - private Boolean serializeImpl(@NotNull Object input, @NotNull Locale locale) { + @NonNull + private Boolean serializeImpl(@NonNull Object input, @NonNull Locale locale) { Boolean result = convertImpl(input); if (result == null) { throw new CoercingSerializeException( @@ -65,8 +65,8 @@ private Boolean serializeImpl(@NotNull Object input, @NotNull Locale locale) { return result; } - @NotNull - private Boolean parseValueImpl(@NotNull Object input, @NotNull Locale locale) { + @NonNull + private Boolean parseValueImpl(@NonNull Object input, @NonNull Locale locale) { if (!(input instanceof Boolean)) { throw new CoercingParseValueException( i18nMsg(locale, "Boolean.unexpectedRawValueType", typeName(input)) @@ -75,7 +75,7 @@ private Boolean parseValueImpl(@NotNull Object input, @NotNull Locale locale) { return (Boolean) input; } - private static boolean parseLiteralImpl(@NotNull Object input, @NotNull Locale locale) { + private static boolean parseLiteralImpl(@NonNull Object input, @NonNull Locale locale) { if (!(input instanceof BooleanValue)) { throw new CoercingParseLiteralException( i18nMsg(locale, "Boolean.unexpectedAstType", typeName(input)) @@ -84,8 +84,8 @@ private static boolean parseLiteralImpl(@NotNull Object input, @NotNull Locale l return ((BooleanValue) input).isValue(); } - @NotNull - private BooleanValue valueToLiteralImpl(@NotNull Object input, @NotNull Locale locale) { + @NonNull + private BooleanValue valueToLiteralImpl(@NonNull Object input, @NonNull Locale locale) { Boolean result = convertImpl(input); if (result == null) { assertShouldNeverHappen(i18nMsg(locale, "Boolean.notBoolean", typeName(input))); @@ -95,45 +95,45 @@ private BooleanValue valueToLiteralImpl(@NotNull Object input, @NotNull Locale l @Override @Deprecated - public Boolean serialize(@NotNull Object dataFetcherResult) { + public Boolean serialize(@NonNull Object dataFetcherResult) { return serializeImpl(dataFetcherResult, Locale.getDefault()); } @Override - public @Nullable Boolean serialize(@NotNull Object dataFetcherResult, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingSerializeException { + public @Nullable Boolean serialize(@NonNull Object dataFetcherResult, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingSerializeException { return serializeImpl(dataFetcherResult, locale); } @Override @Deprecated - public Boolean parseValue(@NotNull Object input) { + public Boolean parseValue(@NonNull Object input) { return parseValueImpl(input, Locale.getDefault()); } @Override - public Boolean parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseValueException { + public Boolean parseValue(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseValueException { return parseValueImpl(input, locale); } @Override @Deprecated - public Boolean parseLiteral(@NotNull Object input) { + public Boolean parseLiteral(@NonNull Object input) { return parseLiteralImpl(input, Locale.getDefault()); } @Override - public @Nullable Boolean parseLiteral(@NotNull Value input, @NotNull CoercedVariables variables, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseLiteralException { + public @Nullable Boolean parseLiteral(@NonNull Value input, @NonNull CoercedVariables variables, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseLiteralException { return parseLiteralImpl(input, locale); } @Override @Deprecated - public @NotNull Value valueToLiteral(@NotNull Object input) { + public @NonNull Value valueToLiteral(@NonNull Object input) { return valueToLiteralImpl(input, Locale.getDefault()); } @Override - public @NotNull Value valueToLiteral(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) { + public @NonNull Value valueToLiteral(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) { return valueToLiteralImpl(input, locale); } } diff --git a/src/main/java/graphql/scalar/GraphqlFloatCoercing.java b/src/main/java/graphql/scalar/GraphqlFloatCoercing.java index 7efa27027..d1863ed45 100644 --- a/src/main/java/graphql/scalar/GraphqlFloatCoercing.java +++ b/src/main/java/graphql/scalar/GraphqlFloatCoercing.java @@ -10,8 +10,8 @@ import graphql.schema.CoercingParseLiteralException; import graphql.schema.CoercingParseValueException; import graphql.schema.CoercingSerializeException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.math.BigDecimal; import java.util.Locale; @@ -52,8 +52,8 @@ private Double convertImpl(Object input) { return doubleInput; } - @NotNull - private Double serialiseImpl(Object input, @NotNull Locale locale) { + @NonNull + private Double serialiseImpl(Object input, @NonNull Locale locale) { Double result = convertImpl(input); if (result == null) { throw new CoercingSerializeException( @@ -63,8 +63,8 @@ private Double serialiseImpl(Object input, @NotNull Locale locale) { return result; } - @NotNull - private Double parseValueImpl(@NotNull Object input, @NotNull Locale locale) { + @NonNull + private Double parseValueImpl(@NonNull Object input, @NonNull Locale locale) { if (!(input instanceof Number)) { throw new CoercingParseValueException( i18nMsg(locale, "Float.unexpectedRawValueType", typeName(input)) @@ -81,7 +81,7 @@ private Double parseValueImpl(@NotNull Object input, @NotNull Locale locale) { return result; } - private static double parseLiteralImpl(@NotNull Object input, @NotNull Locale locale) { + private static double parseLiteralImpl(@NonNull Object input, @NonNull Locale locale) { if (input instanceof IntValue) { return ((IntValue) input).getValue().doubleValue(); } else if (input instanceof FloatValue) { @@ -93,8 +93,8 @@ private static double parseLiteralImpl(@NotNull Object input, @NotNull Locale lo } } - @NotNull - private FloatValue valueToLiteralImpl(Object input, @NotNull Locale locale) { + @NonNull + private FloatValue valueToLiteralImpl(Object input, @NonNull Locale locale) { Double result = convertImpl(input); if (result == null) { assertShouldNeverHappen(i18nMsg(locale, "Float.notFloat", typeName(input))); @@ -104,45 +104,45 @@ private FloatValue valueToLiteralImpl(Object input, @NotNull Locale locale) { @Override @Deprecated - public Double serialize(@NotNull Object dataFetcherResult) { + public Double serialize(@NonNull Object dataFetcherResult) { return serialiseImpl(dataFetcherResult, Locale.getDefault()); } @Override - public @Nullable Double serialize(@NotNull Object dataFetcherResult, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingSerializeException { + public @Nullable Double serialize(@NonNull Object dataFetcherResult, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingSerializeException { return serialiseImpl(dataFetcherResult, locale); } @Override @Deprecated - public @NotNull Double parseValue(@NotNull Object input) { + public @NonNull Double parseValue(@NonNull Object input) { return parseValueImpl(input, Locale.getDefault()); } @Override - public Double parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseValueException { + public Double parseValue(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseValueException { return parseValueImpl(input, locale); } @Override @Deprecated - public Double parseLiteral(@NotNull Object input) { + public Double parseLiteral(@NonNull Object input) { return parseLiteralImpl(input, Locale.getDefault()); } @Override - public @Nullable Double parseLiteral(@NotNull Value input, @NotNull CoercedVariables variables, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseLiteralException { + public @Nullable Double parseLiteral(@NonNull Value input, @NonNull CoercedVariables variables, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseLiteralException { return parseLiteralImpl(input, locale); } @Override @Deprecated - public Value valueToLiteral(@NotNull Object input) { + public Value valueToLiteral(@NonNull Object input) { return valueToLiteralImpl(input, Locale.getDefault()); } @Override - public @NotNull Value valueToLiteral(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) { + public @NonNull Value valueToLiteral(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) { return valueToLiteralImpl(input, locale); } } diff --git a/src/main/java/graphql/scalar/GraphqlIDCoercing.java b/src/main/java/graphql/scalar/GraphqlIDCoercing.java index 4631c93c5..7c8c6336c 100644 --- a/src/main/java/graphql/scalar/GraphqlIDCoercing.java +++ b/src/main/java/graphql/scalar/GraphqlIDCoercing.java @@ -10,14 +10,13 @@ import graphql.schema.CoercingParseLiteralException; import graphql.schema.CoercingParseValueException; import graphql.schema.CoercingSerializeException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.math.BigInteger; import java.util.Locale; import java.util.UUID; -import static graphql.Assert.assertNotNull; import static graphql.Assert.assertShouldNeverHappen; import static graphql.scalar.CoercingUtil.i18nMsg; import static graphql.scalar.CoercingUtil.typeName; @@ -49,8 +48,8 @@ private String convertImpl(Object input) { } - @NotNull - private String serializeImpl(Object input, @NotNull Locale locale) { + @NonNull + private String serializeImpl(Object input, @NonNull Locale locale) { String result = String.valueOf(input); if (result == null) { throw new CoercingSerializeException( @@ -60,8 +59,8 @@ private String serializeImpl(Object input, @NotNull Locale locale) { return result; } - @NotNull - private String parseValueImpl(Object input, @NotNull Locale locale) { + @NonNull + private String parseValueImpl(Object input, @NonNull Locale locale) { String result = convertImpl(input); if (result == null) { throw new CoercingParseValueException( @@ -71,7 +70,7 @@ private String parseValueImpl(Object input, @NotNull Locale locale) { return result; } - private String parseLiteralImpl(Object input, @NotNull Locale locale) { + private String parseLiteralImpl(Object input, @NonNull Locale locale) { if (input instanceof StringValue) { return ((StringValue) input).getValue(); } @@ -83,8 +82,8 @@ private String parseLiteralImpl(Object input, @NotNull Locale locale) { ); } - @NotNull - private StringValue valueToLiteralImpl(Object input, @NotNull Locale locale) { + @NonNull + private StringValue valueToLiteralImpl(Object input, @NonNull Locale locale) { String result = convertImpl(input); if (result == null) { assertShouldNeverHappen(i18nMsg(locale, "ID.notId", typeName(input))); @@ -94,45 +93,45 @@ private StringValue valueToLiteralImpl(Object input, @NotNull Locale locale) { @Override @Deprecated - public String serialize(@NotNull Object dataFetcherResult) { + public String serialize(@NonNull Object dataFetcherResult) { return serializeImpl(dataFetcherResult, Locale.getDefault()); } @Override - public @Nullable Object serialize(@NotNull Object dataFetcherResult, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingSerializeException { + public @Nullable Object serialize(@NonNull Object dataFetcherResult, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingSerializeException { return serializeImpl(dataFetcherResult, locale); } @Override @Deprecated - public String parseValue(@NotNull Object input) { + public String parseValue(@NonNull Object input) { return parseValueImpl(input, Locale.getDefault()); } @Override - public Object parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseValueException { + public Object parseValue(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseValueException { return parseValueImpl(input, locale); } @Override @Deprecated - public String parseLiteral(@NotNull Object input) { + public String parseLiteral(@NonNull Object input) { return parseLiteralImpl(input, Locale.getDefault()); } @Override - public @Nullable Object parseLiteral(@NotNull Value input, @NotNull CoercedVariables variables, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseLiteralException { + public @Nullable Object parseLiteral(@NonNull Value input, @NonNull CoercedVariables variables, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseLiteralException { return parseLiteralImpl(input, locale); } @Override @Deprecated - public Value valueToLiteral(@NotNull Object input) { + public Value valueToLiteral(@NonNull Object input) { return valueToLiteralImpl(input, Locale.getDefault()); } @Override - public @NotNull Value valueToLiteral(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) { + public @NonNull Value valueToLiteral(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) { return valueToLiteralImpl(input, locale); } } diff --git a/src/main/java/graphql/scalar/GraphqlIntCoercing.java b/src/main/java/graphql/scalar/GraphqlIntCoercing.java index cf428fc8c..bac8822f1 100644 --- a/src/main/java/graphql/scalar/GraphqlIntCoercing.java +++ b/src/main/java/graphql/scalar/GraphqlIntCoercing.java @@ -9,8 +9,8 @@ import graphql.schema.CoercingParseLiteralException; import graphql.schema.CoercingParseValueException; import graphql.schema.CoercingSerializeException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.math.BigDecimal; import java.math.BigInteger; @@ -51,8 +51,8 @@ private Integer convertImpl(Object input) { } } - @NotNull - private Integer serialiseImpl(Object input, @NotNull Locale locale) { + @NonNull + private Integer serialiseImpl(Object input, @NonNull Locale locale) { Integer result = convertImpl(input); if (result == null) { throw new CoercingSerializeException( @@ -62,8 +62,8 @@ private Integer serialiseImpl(Object input, @NotNull Locale locale) { return result; } - @NotNull - private Integer parseValueImpl(@NotNull Object input, @NotNull Locale locale) { + @NonNull + private Integer parseValueImpl(@NonNull Object input, @NonNull Locale locale) { if (!(input instanceof Number)) { throw new CoercingParseValueException( i18nMsg(locale, "Int.notInt", typeName(input)) @@ -104,7 +104,7 @@ private BigInteger convertParseValueImpl(Object input) { } } - private static int parseLiteralImpl(Object input, @NotNull Locale locale) { + private static int parseLiteralImpl(Object input, @NonNull Locale locale) { if (!(input instanceof IntValue)) { throw new CoercingParseLiteralException( i18nMsg(locale, "Scalar.unexpectedAstType", "IntValue", typeName(input)) @@ -119,7 +119,7 @@ private static int parseLiteralImpl(Object input, @NotNull Locale locale) { return value.intValue(); } - private IntValue valueToLiteralImpl(Object input, @NotNull Locale locale) { + private IntValue valueToLiteralImpl(Object input, @NonNull Locale locale) { Integer result = convertImpl(input); if (result == null) { assertShouldNeverHappen(i18nMsg(locale, "Int.notInt", typeName(input))); @@ -130,45 +130,45 @@ private IntValue valueToLiteralImpl(Object input, @NotNull Locale locale) { @Override @Deprecated - public Integer serialize(@NotNull Object dataFetcherResult) { + public Integer serialize(@NonNull Object dataFetcherResult) { return serialiseImpl(dataFetcherResult, Locale.getDefault()); } @Override - public @Nullable Integer serialize(@NotNull Object dataFetcherResult, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingSerializeException { + public @Nullable Integer serialize(@NonNull Object dataFetcherResult, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingSerializeException { return serialiseImpl(dataFetcherResult, locale); } @Override @Deprecated - public Integer parseValue(@NotNull Object input) { + public Integer parseValue(@NonNull Object input) { return parseValueImpl(input, Locale.getDefault()); } @Override - public Integer parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseValueException { + public Integer parseValue(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseValueException { return parseValueImpl(input, locale); } @Override @Deprecated - public Integer parseLiteral(@NotNull Object input) { + public Integer parseLiteral(@NonNull Object input) { return parseLiteralImpl(input, Locale.getDefault()); } @Override - public @Nullable Integer parseLiteral(@NotNull Value input, @NotNull CoercedVariables variables, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseLiteralException { + public @Nullable Integer parseLiteral(@NonNull Value input, @NonNull CoercedVariables variables, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseLiteralException { return parseLiteralImpl(input, locale); } @Override @Deprecated - public @NotNull Value valueToLiteral(@NotNull Object input) { + public @NonNull Value valueToLiteral(@NonNull Object input) { return valueToLiteralImpl(input, Locale.getDefault()); } @Override - public @NotNull Value valueToLiteral(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) { + public @NonNull Value valueToLiteral(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) { return valueToLiteralImpl(input, locale); } } diff --git a/src/main/java/graphql/scalar/GraphqlStringCoercing.java b/src/main/java/graphql/scalar/GraphqlStringCoercing.java index 9040cc03f..64ab93a91 100644 --- a/src/main/java/graphql/scalar/GraphqlStringCoercing.java +++ b/src/main/java/graphql/scalar/GraphqlStringCoercing.java @@ -9,8 +9,8 @@ import graphql.schema.CoercingParseLiteralException; import graphql.schema.CoercingParseValueException; import graphql.schema.CoercingSerializeException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.Locale; @@ -28,7 +28,7 @@ private String toStringImpl(Object input) { return String.valueOf(input); } - private String parseValueImpl(@NotNull Object input, @NotNull Locale locale) { + private String parseValueImpl(@NonNull Object input, @NonNull Locale locale) { if (!(input instanceof String)) { throw new CoercingParseValueException( i18nMsg(locale, "String.unexpectedRawValueType", typeName(input)) @@ -37,7 +37,7 @@ private String parseValueImpl(@NotNull Object input, @NotNull Locale locale) { return (String) input; } - private String parseLiteralImpl(@NotNull Object input, Locale locale) { + private String parseLiteralImpl(@NonNull Object input, Locale locale) { if (!(input instanceof StringValue)) { throw new CoercingParseLiteralException( i18nMsg(locale, "Scalar.unexpectedAstType", "StringValue", typeName(input)) @@ -46,51 +46,51 @@ private String parseLiteralImpl(@NotNull Object input, Locale locale) { return ((StringValue) input).getValue(); } - private StringValue valueToLiteralImpl(@NotNull Object input) { + private StringValue valueToLiteralImpl(@NonNull Object input) { return StringValue.newStringValue(input.toString()).build(); } @Override @Deprecated - public String serialize(@NotNull Object dataFetcherResult) { + public String serialize(@NonNull Object dataFetcherResult) { return toStringImpl(dataFetcherResult); } @Override - public @Nullable String serialize(@NotNull Object dataFetcherResult, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingSerializeException { + public @Nullable String serialize(@NonNull Object dataFetcherResult, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingSerializeException { return toStringImpl(dataFetcherResult); } @Override @Deprecated - public String parseValue(@NotNull Object input) { + public String parseValue(@NonNull Object input) { return parseValueImpl(input, Locale.getDefault()); } @Override - public String parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseValueException { + public String parseValue(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseValueException { return parseValueImpl(input, locale); } @Override @Deprecated - public String parseLiteral(@NotNull Object input) { + public String parseLiteral(@NonNull Object input) { return parseLiteralImpl(input, Locale.getDefault()); } @Override - public @Nullable String parseLiteral(@NotNull Value input, @NotNull CoercedVariables variables, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseLiteralException { + public @Nullable String parseLiteral(@NonNull Value input, @NonNull CoercedVariables variables, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseLiteralException { return parseLiteralImpl(input, locale); } @Override @Deprecated - public @NotNull Value valueToLiteral(@NotNull Object input) { + public @NonNull Value valueToLiteral(@NonNull Object input) { return valueToLiteralImpl(input); } @Override - public @NotNull Value valueToLiteral(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) { + public @NonNull Value valueToLiteral(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) { return valueToLiteralImpl(input); } } diff --git a/src/main/java/graphql/schema/Coercing.java b/src/main/java/graphql/schema/Coercing.java index cf8de535a..3f580776a 100644 --- a/src/main/java/graphql/schema/Coercing.java +++ b/src/main/java/graphql/schema/Coercing.java @@ -5,8 +5,8 @@ import graphql.PublicSpi; import graphql.execution.CoercedVariables; import graphql.language.Value; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.Locale; import java.util.Map; @@ -54,7 +54,7 @@ public interface Coercing { * @throws graphql.schema.CoercingSerializeException if value input can't be serialized */ @Deprecated(since = "2022-08-22") - default @Nullable O serialize(@NotNull Object dataFetcherResult) throws CoercingSerializeException { + default @Nullable O serialize(@NonNull Object dataFetcherResult) throws CoercingSerializeException { throw new UnsupportedOperationException("The non deprecated version of serialize has not been implemented by this scalar : " + this.getClass()); } @@ -75,7 +75,7 @@ public interface Coercing { * * @throws graphql.schema.CoercingSerializeException if value input can't be serialized */ - default @Nullable O serialize(@NotNull Object dataFetcherResult, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingSerializeException { + default @Nullable O serialize(@NonNull Object dataFetcherResult, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingSerializeException { assertNotNull(dataFetcherResult); assertNotNull(graphQLContext); return serialize(dataFetcherResult); @@ -98,7 +98,7 @@ public interface Coercing { * @throws graphql.schema.CoercingParseValueException if value input can't be parsed */ @Deprecated(since = "2022-08-22") - default @Nullable I parseValue(@NotNull Object input) throws CoercingParseValueException { + default @Nullable I parseValue(@NonNull Object input) throws CoercingParseValueException { throw new UnsupportedOperationException("The non deprecated version of parseValue has not been implemented by this scalar : " + this.getClass()); } @@ -119,7 +119,7 @@ public interface Coercing { * @throws graphql.schema.CoercingParseValueException if value input can't be parsed */ @Nullable - default I parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseValueException { + default I parseValue(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseValueException { assertNotNull(input); assertNotNull(graphQLContext); assertNotNull(locale); @@ -144,7 +144,7 @@ default I parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLConte * @throws graphql.schema.CoercingParseLiteralException if input literal can't be parsed */ @Deprecated(since = "2022-08-22") - default @Nullable I parseLiteral(@NotNull Object input) throws CoercingParseLiteralException { + default @Nullable I parseLiteral(@NonNull Object input) throws CoercingParseLiteralException { throw new UnsupportedOperationException("The non deprecated version of parseLiteral has not been implemented by this scalar : " + this.getClass()); } @@ -198,7 +198,7 @@ default I parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLConte * * @throws graphql.schema.CoercingParseLiteralException if input literal can't be parsed */ - default @Nullable I parseLiteral(@NotNull Value input, @NotNull CoercedVariables variables, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) throws CoercingParseLiteralException { + default @Nullable I parseLiteral(@NonNull Value input, @NonNull CoercedVariables variables, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) throws CoercingParseLiteralException { assertNotNull(input); assertNotNull(graphQLContext); assertNotNull(locale); @@ -218,7 +218,7 @@ default I parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLConte * @return The literal matching the external input value. */ @Deprecated(since = "2022-08-22") - default @NotNull Value valueToLiteral(@NotNull Object input) { + default @NonNull Value valueToLiteral(@NonNull Object input) { throw new UnsupportedOperationException("The non deprecated version of valueToLiteral has not been implemented by this scalar : " + this.getClass()); } @@ -233,7 +233,7 @@ default I parseValue(@NotNull Object input, @NotNull GraphQLContext graphQLConte * * @return The literal matching the external input value. */ - default @NotNull Value valueToLiteral(@NotNull Object input, @NotNull GraphQLContext graphQLContext, @NotNull Locale locale) { + default @NonNull Value valueToLiteral(@NonNull Object input, @NonNull GraphQLContext graphQLContext, @NonNull Locale locale) { assertNotNull(input); assertNotNull(graphQLContext); assertNotNull(locale); diff --git a/src/main/java/graphql/schema/DataFetcherFactories.java b/src/main/java/graphql/schema/DataFetcherFactories.java index e9f6a88bb..2345535d5 100644 --- a/src/main/java/graphql/schema/DataFetcherFactories.java +++ b/src/main/java/graphql/schema/DataFetcherFactories.java @@ -20,7 +20,18 @@ public class DataFetcherFactories { * @return a data fetcher factory that always returns the provided data fetcher */ public static DataFetcherFactory useDataFetcher(DataFetcher dataFetcher) { - return fieldDefinition -> dataFetcher; + //noinspection deprecation + return new DataFetcherFactory<>() { + @Override + public DataFetcher get(DataFetcherFactoryEnvironment environment) { + return dataFetcher; + } + + @Override + public DataFetcher get(GraphQLFieldDefinition fieldDefinition) { + return dataFetcher; + } + }; } /** @@ -32,7 +43,7 @@ public static DataFetcherFactory useDataFetcher(DataFetcher dataFetche * * @return a new data fetcher that wraps the provided data fetcher */ - public static DataFetcher wrapDataFetcher(DataFetcher delegateDataFetcher, BiFunction mapFunction) { + public static DataFetcher wrapDataFetcher(DataFetcher delegateDataFetcher, BiFunction mapFunction) { return environment -> { Object value = delegateDataFetcher.get(environment); if (value instanceof CompletionStage) { diff --git a/src/main/java/graphql/schema/DataFetcherFactory.java b/src/main/java/graphql/schema/DataFetcherFactory.java index ece0dcb6e..9e7eafa87 100644 --- a/src/main/java/graphql/schema/DataFetcherFactory.java +++ b/src/main/java/graphql/schema/DataFetcherFactory.java @@ -19,7 +19,23 @@ public interface DataFetcherFactory { * @param environment the environment that needs the data fetcher * * @return a data fetcher + * + * @deprecated This method will go away at some point and {@link DataFetcherFactory#get(GraphQLFieldDefinition)} will be used */ + @Deprecated(since = "2024-11-26") DataFetcher get(DataFetcherFactoryEnvironment environment); + /** + * Returns a {@link graphql.schema.DataFetcher} given the field definition + * which is cheaper in object allocation terms. + * + * @param fieldDefinition the field that needs the data fetcher + * + * @return a data fetcher + */ + + default DataFetcher get(GraphQLFieldDefinition fieldDefinition) { + return null; + } + } diff --git a/src/main/java/graphql/schema/DataFetcherFactoryEnvironment.java b/src/main/java/graphql/schema/DataFetcherFactoryEnvironment.java index 318b5f2bd..7ff5aefb9 100644 --- a/src/main/java/graphql/schema/DataFetcherFactoryEnvironment.java +++ b/src/main/java/graphql/schema/DataFetcherFactoryEnvironment.java @@ -5,8 +5,12 @@ /** * This is passed to a {@link graphql.schema.DataFetcherFactory} when it is invoked to * get a {@link graphql.schema.DataFetcher} + * + * @deprecated This class will go away at some point in the future since its pointless wrapper + * of a {@link GraphQLFieldDefinition} */ @PublicApi +@Deprecated(since = "2024-11-26") public class DataFetcherFactoryEnvironment { private final GraphQLFieldDefinition fieldDefinition; diff --git a/src/main/java/graphql/schema/DataFetchingEnvironment.java b/src/main/java/graphql/schema/DataFetchingEnvironment.java index 3c19f0332..cc38ec0cc 100644 --- a/src/main/java/graphql/schema/DataFetchingEnvironment.java +++ b/src/main/java/graphql/schema/DataFetchingEnvironment.java @@ -13,8 +13,8 @@ import graphql.language.OperationDefinition; import org.dataloader.DataLoader; import org.dataloader.DataLoaderRegistry; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Locale; @@ -101,7 +101,7 @@ public interface DataFetchingEnvironment extends IntrospectionDataFetchingEnviro * * @return can NOT be null */ - @NotNull + @NonNull GraphQLContext getGraphQlContext(); /** diff --git a/src/main/java/graphql/schema/DataFetchingEnvironmentImpl.java b/src/main/java/graphql/schema/DataFetchingEnvironmentImpl.java index 440ec8615..356988055 100644 --- a/src/main/java/graphql/schema/DataFetchingEnvironmentImpl.java +++ b/src/main/java/graphql/schema/DataFetchingEnvironmentImpl.java @@ -17,8 +17,8 @@ import graphql.language.OperationDefinition; import org.dataloader.DataLoader; import org.dataloader.DataLoaderRegistry; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Locale; @@ -131,7 +131,7 @@ public T getContext() { } @Override - public @NotNull GraphQLContext getGraphQlContext() { + public @NonNull GraphQLContext getGraphQlContext() { return graphQLContext; } diff --git a/src/main/java/graphql/schema/DataFetchingFieldSelectionSetImpl.java b/src/main/java/graphql/schema/DataFetchingFieldSelectionSetImpl.java index da7104374..4800a0dfc 100644 --- a/src/main/java/graphql/schema/DataFetchingFieldSelectionSetImpl.java +++ b/src/main/java/graphql/schema/DataFetchingFieldSelectionSetImpl.java @@ -90,7 +90,10 @@ public static DataFetchingFieldSelectionSet newCollector(GraphQLSchema schema, G private final Supplier normalizedFieldSupplier; - private LockKit.ComputedOnce computedOnce = new LockKit.ComputedOnce(); + private final LockKit.ReentrantLock lock = new LockKit.ReentrantLock(); + private volatile boolean computedValues; + private volatile boolean computedImmediateValues; + // we have multiple entries in this map so that we can do glob matching in multiple ways // however it needs to be normalised back to a set of unique fields when give back out to // the caller. @@ -109,7 +112,7 @@ public boolean contains(String fieldGlobPattern) { if (fieldGlobPattern == null || fieldGlobPattern.isEmpty()) { return false; } - computeValuesLazily(); + computeValuesLazily(false); fieldGlobPattern = removeLeadingSlash(fieldGlobPattern); PathMatcher globMatcher = globMatcher(fieldGlobPattern); for (String flattenedField : flattenedFieldsForGlobSearching) { @@ -159,7 +162,7 @@ public List getFields(String fieldGlobPattern, String... fieldGlo if (fieldGlobPattern == null || fieldGlobPattern.isEmpty()) { return emptyList(); } - computeValuesLazily(); + computeValuesLazily(false); List targetNames = new ArrayList<>(); for (String flattenedField : flattenedFieldsForGlobSearching) { @@ -178,7 +181,7 @@ public List getFields(String fieldGlobPattern, String... fieldGlo @Override public List getFields() { - computeValuesLazily(); + computeValuesLazily(false); return toSetSemanticsList(normalisedSelectionSetFields.values().stream() .flatMap(Collection::stream)); } @@ -190,7 +193,7 @@ private List toSetSemanticsList(Stream stream) { @Override public List getImmediateFields() { - computeValuesLazily(); + computeValuesLazily(true); return immediateFields; } @@ -204,24 +207,40 @@ public Map> getFieldsGroupedByResultKey(String field return getFields(fieldGlobPattern, fieldGlobPatterns).stream().collect(Collectors.groupingBy(SelectedField::getResultKey)); } - private void computeValuesLazily() { - if (computedOnce.hasBeenComputed()) { + private void computeValuesLazily(boolean immediate) { + if (computedValues) { + return; + } + + // Avoid recomputing the immediate fields if they have already been computed. + if (immediate && computedImmediateValues) { return; } + // this supplier is a once only thread synced call - so do it outside this lock // if only to have only 1 lock in action at a time ExecutableNormalizedField currentNormalisedField = normalizedFieldSupplier.get(); - computedOnce.runOnce(() -> { + + lock.runLocked(() -> { + if (computedValues) { + return; + } + + if (computedImmediateValues && immediate) { + return; + } + flattenedFieldsForGlobSearching = new LinkedHashSet<>(); normalisedSelectionSetFields = new LinkedHashMap<>(); ImmutableList.Builder immediateFieldsBuilder = ImmutableList.builder(); - traverseSubSelectedFields(currentNormalisedField, immediateFieldsBuilder, "", "", true); + traverseSubSelectedFields(currentNormalisedField, immediateFieldsBuilder, "", "", true, immediate); immediateFields = immediateFieldsBuilder.build(); + computedImmediateValues = true; + computedValues = !immediate; }); } - - private void traverseSubSelectedFields(ExecutableNormalizedField currentNormalisedField, ImmutableList.Builder immediateFieldsBuilder, String qualifiedFieldPrefix, String simpleFieldPrefix, boolean firstLevel) { + private void traverseSubSelectedFields(ExecutableNormalizedField currentNormalisedField, ImmutableList.Builder immediateFieldsBuilder, String qualifiedFieldPrefix, String simpleFieldPrefix, boolean firstLevel, boolean immediate) { List children = currentNormalisedField.getChildren(); for (ExecutableNormalizedField normalizedSubSelectedField : children) { String typeQualifiedName = mkTypeQualifiedName(normalizedSubSelectedField); @@ -241,8 +260,8 @@ private void traverseSubSelectedFields(ExecutableNormalizedField currentNormalis normalisedSelectionSetFields.computeIfAbsent(globQualifiedName, newList()).add(selectedField); normalisedSelectionSetFields.computeIfAbsent(globSimpleName, newList()).add(selectedField); - if (normalizedSubSelectedField.hasChildren()) { - traverseSubSelectedFields(normalizedSubSelectedField, immediateFieldsBuilder, globQualifiedName, globSimpleName, false); + if (normalizedSubSelectedField.hasChildren() && !immediate) { + traverseSubSelectedFields(normalizedSubSelectedField, immediateFieldsBuilder, globQualifiedName, globSimpleName, false, false); } } } @@ -276,7 +295,7 @@ private List mkIterable(String fieldGlobPattern, String[] fieldGlobPatte @Override public String toString() { - if (!computedOnce.hasBeenComputed()) { + if (!computedValues) { return "notComputed"; } return String.join("\n", flattenedFieldsForGlobSearching); diff --git a/src/main/java/graphql/schema/DelegatingDataFetchingEnvironment.java b/src/main/java/graphql/schema/DelegatingDataFetchingEnvironment.java index 050968464..b39d8a40b 100644 --- a/src/main/java/graphql/schema/DelegatingDataFetchingEnvironment.java +++ b/src/main/java/graphql/schema/DelegatingDataFetchingEnvironment.java @@ -12,8 +12,8 @@ import graphql.language.OperationDefinition; import org.dataloader.DataLoader; import org.dataloader.DataLoaderRegistry; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Locale; @@ -72,7 +72,7 @@ public T getContext() { } @Override - public @NotNull GraphQLContext getGraphQlContext() { + public @NonNull GraphQLContext getGraphQlContext() { return delegateEnvironment.getGraphQlContext(); } diff --git a/src/main/java/graphql/schema/GraphQLAppliedDirectiveArgument.java b/src/main/java/graphql/schema/GraphQLAppliedDirectiveArgument.java index 6f19bbd12..4446894ec 100644 --- a/src/main/java/graphql/schema/GraphQLAppliedDirectiveArgument.java +++ b/src/main/java/graphql/schema/GraphQLAppliedDirectiveArgument.java @@ -8,8 +8,8 @@ import graphql.language.Value; import graphql.util.TraversalControl; import graphql.util.TraverserContext; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.List; @@ -70,7 +70,7 @@ public boolean hasSetValue() { /** * @return an input value with state for an applied directive argument */ - public @NotNull InputValueWithState getArgumentValue() { + public @NonNull InputValueWithState getArgumentValue() { return value; } @@ -218,7 +218,7 @@ public Builder definition(Argument definition) { * * @return this builder */ - public Builder valueLiteral(@NotNull Value value) { + public Builder valueLiteral(@NonNull Value value) { this.value = InputValueWithState.newLiteralValue(value); return this; } @@ -233,7 +233,7 @@ public Builder valueProgrammatic(@Nullable Object value) { return this; } - public Builder inputValueWithState(@NotNull InputValueWithState value) { + public Builder inputValueWithState(@NonNull InputValueWithState value) { this.value = Assert.assertNotNull(value); return this; } diff --git a/src/main/java/graphql/schema/GraphQLArgument.java b/src/main/java/graphql/schema/GraphQLArgument.java index 5f52f294c..55d22dcff 100644 --- a/src/main/java/graphql/schema/GraphQLArgument.java +++ b/src/main/java/graphql/schema/GraphQLArgument.java @@ -8,8 +8,8 @@ import graphql.language.Value; import graphql.util.TraversalControl; import graphql.util.TraverserContext; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.List; @@ -104,7 +104,7 @@ public GraphQLInputType getType() { * * @return a {@link InputValueWithState} that represents the arguments default value */ - public @NotNull InputValueWithState getArgumentDefaultValue() { + public @NonNull InputValueWithState getArgumentDefaultValue() { return defaultValue; } @@ -125,7 +125,7 @@ public boolean hasSetValue() { * @deprecated use {@link GraphQLAppliedDirectiveArgument} instead */ @Deprecated(since = "2022-02-24") - public @NotNull InputValueWithState getArgumentValue() { + public @NonNull InputValueWithState getArgumentValue() { return value; } @@ -382,7 +382,7 @@ public Builder defaultValue(Object defaultValue) { * * @return this builder */ - public Builder defaultValueLiteral(@NotNull Value defaultValue) { + public Builder defaultValueLiteral(@NonNull Value defaultValue) { this.defaultValue = InputValueWithState.newLiteralValue(defaultValue); return this; } @@ -432,7 +432,7 @@ public Builder value(@Nullable Object value) { * @deprecated use {@link GraphQLAppliedDirectiveArgument} methods instead */ @Deprecated(since = "2022-02-24") - public Builder valueLiteral(@NotNull Value value) { + public Builder valueLiteral(@NonNull Value value) { this.value = InputValueWithState.newLiteralValue(value); return this; } diff --git a/src/main/java/graphql/schema/GraphQLCodeRegistry.java b/src/main/java/graphql/schema/GraphQLCodeRegistry.java index 768d13897..26574b819 100644 --- a/src/main/java/graphql/schema/GraphQLCodeRegistry.java +++ b/src/main/java/graphql/schema/GraphQLCodeRegistry.java @@ -84,6 +84,7 @@ public boolean hasDataFetcher(FieldCoordinates coordinates) { return hasDataFetcherImpl(coordinates, dataFetcherMap, systemDataFetcherMap); } + @SuppressWarnings("deprecation") private static DataFetcher getDataFetcherImpl(FieldCoordinates coordinates, GraphQLFieldDefinition fieldDefinition, Map> dataFetcherMap, Map> systemDataFetcherMap, DataFetcherFactory defaultDataFetcherFactory) { assertNotNull(coordinates); assertNotNull(fieldDefinition); @@ -95,9 +96,15 @@ private static DataFetcher getDataFetcherImpl(FieldCoordinates coordinates, G dataFetcherFactory = defaultDataFetcherFactory; } } - return dataFetcherFactory.get(newDataFetchingFactoryEnvironment() - .fieldDefinition(fieldDefinition) - .build()); + // call direct from the field - cheaper to not make a new environment object + DataFetcher dataFetcher = dataFetcherFactory.get(fieldDefinition); + if (dataFetcher == null) { + DataFetcherFactoryEnvironment factoryEnvironment = newDataFetchingFactoryEnvironment() + .fieldDefinition(fieldDefinition) + .build(); + dataFetcher = dataFetcherFactory.get(factoryEnvironment); + } + return dataFetcher; } private static boolean hasDataFetcherImpl(FieldCoordinates coords, Map> dataFetcherMap, Map> systemDataFetcherMap) { @@ -149,7 +156,7 @@ private static TypeResolver getTypeResolverForUnion(GraphQLUnionType parentType, if (typeResolver == null) { typeResolver = parentType.getTypeResolver(); } - return assertNotNull(typeResolver, "There must be a type resolver for union %s",parentType.getName()); + return assertNotNull(typeResolver, "There must be a type resolver for union %s", parentType.getName()); } /** @@ -189,7 +196,7 @@ public static class Builder { private final Map> systemDataFetcherMap = new LinkedHashMap<>(); private final Map typeResolverMap = new HashMap<>(); private GraphqlFieldVisibility fieldVisibility = DEFAULT_FIELD_VISIBILITY; - private DataFetcherFactory defaultDataFetcherFactory = env -> PropertyDataFetcher.fetching(env.getFieldDefinition().getName()); + private DataFetcherFactory defaultDataFetcherFactory = SingletonPropertyDataFetcher.singletonFactory(); private boolean changed = false; private Builder() { diff --git a/src/main/java/graphql/schema/GraphQLEnumType.java b/src/main/java/graphql/schema/GraphQLEnumType.java index 78d08fa90..856907315 100644 --- a/src/main/java/graphql/schema/GraphQLEnumType.java +++ b/src/main/java/graphql/schema/GraphQLEnumType.java @@ -13,7 +13,7 @@ import graphql.util.FpKit; import graphql.util.TraversalControl; import graphql.util.TraverserContext; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -150,7 +150,7 @@ private ImmutableMap buildMap(List assertShouldNeverHappen("Duplicated definition for field '%s' in type '%s'", fld1.getName(), this.name))); } - private Object getValueByName(@NotNull Object value, GraphQLContext graphQLContext, Locale locale) { + private Object getValueByName(@NonNull Object value, GraphQLContext graphQLContext, Locale locale) { GraphQLEnumValueDefinition enumValueDefinition = valueDefinitionMap.get(value.toString()); if (enumValueDefinition != null) { return enumValueDefinition.getValue(); diff --git a/src/main/java/graphql/schema/GraphQLInputObjectField.java b/src/main/java/graphql/schema/GraphQLInputObjectField.java index 60e680fb3..14ce1cf59 100644 --- a/src/main/java/graphql/schema/GraphQLInputObjectField.java +++ b/src/main/java/graphql/schema/GraphQLInputObjectField.java @@ -8,7 +8,7 @@ import graphql.language.Value; import graphql.util.TraversalControl; import graphql.util.TraverserContext; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.ArrayList; import java.util.List; @@ -87,7 +87,7 @@ public GraphQLInputType getType() { * * @return a input value with captured state */ - public @NotNull InputValueWithState getInputFieldDefaultValue() { + public @NonNull InputValueWithState getInputFieldDefaultValue() { return defaultValue; } diff --git a/src/main/java/graphql/schema/GraphQLInputObjectType.java b/src/main/java/graphql/schema/GraphQLInputObjectType.java index 9929f9349..e10eddadb 100644 --- a/src/main/java/graphql/schema/GraphQLInputObjectType.java +++ b/src/main/java/graphql/schema/GraphQLInputObjectType.java @@ -1,5 +1,6 @@ package graphql.schema; +import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import graphql.Directives; @@ -152,7 +153,8 @@ public GraphQLInputObjectField getFieldDefinition(String name) { @Override public List getFieldDefinitions() { - return ImmutableList.copyOf(fieldMap.values()); + ImmutableCollection values = fieldMap.values(); + return values instanceof ImmutableList ? (ImmutableList) values : ImmutableList.copyOf(values); } public InputObjectTypeDefinition getDefinition() { diff --git a/src/main/java/graphql/schema/GraphQLNamedSchemaElement.java b/src/main/java/graphql/schema/GraphQLNamedSchemaElement.java index 4c0801b07..704bc9962 100644 --- a/src/main/java/graphql/schema/GraphQLNamedSchemaElement.java +++ b/src/main/java/graphql/schema/GraphQLNamedSchemaElement.java @@ -2,8 +2,8 @@ import graphql.PublicApi; import graphql.language.Node; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; /** * A Schema element which has a name and also a description and AST Node which it is based on. @@ -14,7 +14,7 @@ public interface GraphQLNamedSchemaElement extends GraphQLSchemaElement { /** * @return the name of this element. This cant be null */ - @NotNull + @NonNull String getName(); /** diff --git a/src/main/java/graphql/schema/GraphQLSchema.java b/src/main/java/graphql/schema/GraphQLSchema.java index a24928869..5b480810c 100644 --- a/src/main/java/graphql/schema/GraphQLSchema.java +++ b/src/main/java/graphql/schema/GraphQLSchema.java @@ -18,8 +18,8 @@ import graphql.schema.validation.InvalidSchemaException; import graphql.schema.validation.SchemaValidationError; import graphql.schema.validation.SchemaValidator; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; @@ -230,7 +230,7 @@ public Set getAdditionalTypes() { * * @return the type */ - public @Nullable GraphQLType getType(@NotNull String typeName) { + public @Nullable GraphQLType getType(@NonNull String typeName) { return typeMap.get(typeName); } @@ -847,16 +847,11 @@ private GraphQLSchema buildImpl() { // schemas built via the schema generator have the deprecated directive BUT we want it present for hand built // schemas - it's inherently part of the spec! - if (additionalDirectives.stream().noneMatch(d -> d.getName().equals(Directives.DeprecatedDirective.getName()))) { - additionalDirectives.add(Directives.DeprecatedDirective); - } - - if (additionalDirectives.stream().noneMatch(d -> d.getName().equals(Directives.SpecifiedByDirective.getName()))) { - additionalDirectives.add(Directives.SpecifiedByDirective); - } - if (additionalDirectives.stream().noneMatch(d -> d.getName().equals(Directives.OneOfDirective.getName()))) { - additionalDirectives.add(Directives.OneOfDirective); - } + addBuiltInDirective(Directives.DeprecatedDirective, additionalDirectives); + addBuiltInDirective(Directives.SpecifiedByDirective, additionalDirectives); + addBuiltInDirective(Directives.OneOfDirective, additionalDirectives); + addBuiltInDirective(Directives.DeferDirective, additionalDirectives); + addBuiltInDirective(Directives.ExperimentalDisableErrorPropagationDirective, additionalDirectives); // quick build - no traversing final GraphQLSchema partiallyBuiltSchema = new GraphQLSchema(this); @@ -879,6 +874,12 @@ private GraphQLSchema buildImpl() { return validateSchema(finalSchema); } + private void addBuiltInDirective(GraphQLDirective qlDirective, Set additionalDirectives1) { + if (additionalDirectives1.stream().noneMatch(d -> d.getName().equals(qlDirective.getName()))) { + additionalDirectives1.add(qlDirective); + } + } + private GraphQLSchema validateSchema(GraphQLSchema graphQLSchema) { Collection errors = new SchemaValidator().validateSchema(graphQLSchema); if (!errors.isEmpty()) { diff --git a/src/main/java/graphql/schema/GraphQLUnionType.java b/src/main/java/graphql/schema/GraphQLUnionType.java index 9af647c6c..6910084af 100644 --- a/src/main/java/graphql/schema/GraphQLUnionType.java +++ b/src/main/java/graphql/schema/GraphQLUnionType.java @@ -96,7 +96,12 @@ public List getTypes() { * @return true if the object type is a member of this union type. */ public boolean isPossibleType(GraphQLObjectType graphQLObjectType) { - return getTypes().stream().anyMatch(nt -> nt.getName().equals(graphQLObjectType.getName())); + for (GraphQLNamedOutputType type : getTypes()) { + if (type.getName().equals(graphQLObjectType.getName())) { + return true; + } + } + return false; } // to be removed in a future version when all code is in the code registry diff --git a/src/main/java/graphql/schema/GraphqlDirectivesContainerTypeBuilder.java b/src/main/java/graphql/schema/GraphqlDirectivesContainerTypeBuilder.java index b9db03ebb..34187889f 100644 --- a/src/main/java/graphql/schema/GraphqlDirectivesContainerTypeBuilder.java +++ b/src/main/java/graphql/schema/GraphqlDirectivesContainerTypeBuilder.java @@ -7,14 +7,12 @@ import static graphql.Assert.assertNotNull; -@SuppressWarnings("unchecked") @Internal public abstract class GraphqlDirectivesContainerTypeBuilder, BASE extends GraphqlTypeBuilder> extends GraphqlTypeBuilder { protected final List appliedDirectives = new ArrayList<>(); protected final List directives = new ArrayList<>(); - public B replaceAppliedDirectives(List directives) { assertNotNull(directives, () -> "directive can't be null"); this.appliedDirectives.clear(); @@ -22,26 +20,39 @@ public B replaceAppliedDirectives(List directives) { return (B) this; } + /** + * @param directives the variable args of directives + * + * @return this builder + */ public B withAppliedDirectives(GraphQLAppliedDirective... directives) { assertNotNull(directives, () -> "directives can't be null"); - this.appliedDirectives.clear(); for (GraphQLAppliedDirective directive : directives) { withAppliedDirective(directive); } return (B) this; } + /** + * @param directive the directive to add + * + * @return this builder + */ public B withAppliedDirective(GraphQLAppliedDirective directive) { assertNotNull(directive, () -> "directive can't be null"); this.appliedDirectives.add(directive); return (B) this; } + /** + * @param builder the directive builder + * + * @return this builder + */ public B withAppliedDirective(GraphQLAppliedDirective.Builder builder) { - return withAppliedDirectives(builder.build()); + return withAppliedDirective(builder.build()); } - /** * @param directives the list of directives * @@ -67,7 +78,6 @@ public B replaceDirectives(List directives) { @Deprecated(since = "2022-02-24") public B withDirectives(GraphQLDirective... directives) { assertNotNull(directives, () -> "directives can't be null"); - this.directives.clear(); for (GraphQLDirective directive : directives) { withDirective(directive); } diff --git a/src/main/java/graphql/schema/InputValueWithState.java b/src/main/java/graphql/schema/InputValueWithState.java index 33ef45d06..1d489a117 100644 --- a/src/main/java/graphql/schema/InputValueWithState.java +++ b/src/main/java/graphql/schema/InputValueWithState.java @@ -2,8 +2,8 @@ import graphql.PublicApi; import graphql.language.Value; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import static graphql.Assert.assertNotNull; @@ -44,7 +44,7 @@ private InputValueWithState(State state, Object value) { public static final InputValueWithState NOT_SET = new InputValueWithState(State.NOT_SET, null); - public static InputValueWithState newLiteralValue(@NotNull Value value) { + public static InputValueWithState newLiteralValue(@NonNull Value value) { assertNotNull(value, () -> "value literal can't be null"); return new InputValueWithState(State.LITERAL, value); } @@ -88,4 +88,4 @@ public String toString() { ", value=" + value + '}'; } -} \ No newline at end of file +} diff --git a/src/main/java/graphql/schema/PropertyDataFetcher.java b/src/main/java/graphql/schema/PropertyDataFetcher.java index 77cfdcf06..38382f4da 100644 --- a/src/main/java/graphql/schema/PropertyDataFetcher.java +++ b/src/main/java/graphql/schema/PropertyDataFetcher.java @@ -4,6 +4,9 @@ import graphql.Assert; import graphql.PublicApi; +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; import java.util.function.Function; import java.util.function.Supplier; @@ -17,11 +20,12 @@ *

  • If the source is null, return null
  • *
  • If the source is a Map, return map.get(propertyName)
  • *
  • If a function is provided, it is used
  • + *
  • Find a public JavaBean getter method named `getPropertyName()` or `isPropertyName()` using {@link java.lang.invoke.LambdaMetafactory#metafactory(MethodHandles.Lookup, String, MethodType, MethodType, MethodHandle, MethodType)}
  • + *
  • Find a public Record like method named `propertyName()`
  • *
  • Find a public JavaBean getter method named `getPropertyName()` or `isPropertyName()`
  • *
  • Find any getter method named `getPropertyName()` or `isPropertyName()` and call method.setAccessible(true)
  • *
  • Find a public field named `propertyName`
  • *
  • Find any field named `propertyName` and call field.setAccessible(true)
  • - *
  • Find a public Record like method named `propertyName()`
  • *
  • If this cant find anything, then null is returned
  • * *

    diff --git a/src/main/java/graphql/schema/PropertyFetchingImpl.java b/src/main/java/graphql/schema/PropertyFetchingImpl.java index 6126159cf..c17ba706b 100644 --- a/src/main/java/graphql/schema/PropertyFetchingImpl.java +++ b/src/main/java/graphql/schema/PropertyFetchingImpl.java @@ -3,10 +3,7 @@ import graphql.GraphQLException; import graphql.Internal; import graphql.schema.fetching.LambdaFetchingSupport; -import graphql.util.EscapeUtil; import graphql.util.StringKit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; @@ -14,7 +11,6 @@ import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.Comparator; -import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Optional; diff --git a/src/main/java/graphql/schema/SingletonPropertyDataFetcher.java b/src/main/java/graphql/schema/SingletonPropertyDataFetcher.java new file mode 100644 index 000000000..45af96c84 --- /dev/null +++ b/src/main/java/graphql/schema/SingletonPropertyDataFetcher.java @@ -0,0 +1,60 @@ +package graphql.schema; + +import java.util.function.Supplier; + +/** + * The {@link SingletonPropertyDataFetcher} is much like the {@link PropertyDataFetcher} except + * that it is designed to only ever fetch properties via the name of the field passed in. + *

    + * This uses the same code as {@link PropertyDataFetcher} and hence is also controlled + * by static methods such as {@link PropertyDataFetcher#setUseNegativeCache(boolean)} + * + * @param for two + */ +public class SingletonPropertyDataFetcher implements LightDataFetcher { + + private static final SingletonPropertyDataFetcher SINGLETON_FETCHER = new SingletonPropertyDataFetcher<>(); + + private static final DataFetcherFactory SINGLETON_FETCHER_FACTORY = environment -> SINGLETON_FETCHER; + + /** + * This returns the same singleton {@link LightDataFetcher} that fetches property values + * based on the name of the field that iis passed into it. + * + * @return a singleton property data fetcher + */ + public static LightDataFetcher singleton() { + return SINGLETON_FETCHER; + } + + /** + * This returns the same singleton {@link DataFetcherFactory} that returns the value of {@link #singleton()} + * + * @return a singleton data fetcher factory + */ + public static DataFetcherFactory singletonFactory() { + return SINGLETON_FETCHER_FACTORY; + } + + private SingletonPropertyDataFetcher() { + } + + @Override + public T get(GraphQLFieldDefinition fieldDefinition, Object sourceObject, Supplier environmentSupplier) throws Exception { + return fetchImpl(fieldDefinition, sourceObject, environmentSupplier); + } + + @Override + public T get(DataFetchingEnvironment environment) throws Exception { + return fetchImpl(environment.getFieldDefinition(), environment.getSource(), () -> environment); + } + + private T fetchImpl(GraphQLFieldDefinition fieldDefinition, Object source, Supplier environmentSupplier) { + if (source == null) { + return null; + } + // this is the same code that PropertyDataFetcher uses and hence unit tests for it include this one + //noinspection unchecked + return (T) PropertyDataFetcherHelper.getPropertyValue(fieldDefinition.getName(), source, fieldDefinition.getType(), environmentSupplier); + } +} diff --git a/src/main/java/graphql/schema/diffing/SchemaGraph.java b/src/main/java/graphql/schema/diffing/SchemaGraph.java index 02b07ca6b..a89c35cdb 100644 --- a/src/main/java/graphql/schema/diffing/SchemaGraph.java +++ b/src/main/java/graphql/schema/diffing/SchemaGraph.java @@ -7,7 +7,7 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Table; import graphql.ExperimentalApi; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; @@ -18,7 +18,6 @@ import java.util.function.Predicate; import static graphql.Assert.assertTrue; -import static java.lang.String.format; @ExperimentalApi public class SchemaGraph { diff --git a/src/main/java/graphql/schema/idl/DirectiveInfo.java b/src/main/java/graphql/schema/idl/DirectiveInfo.java index 428a97ace..9b8317f97 100644 --- a/src/main/java/graphql/schema/idl/DirectiveInfo.java +++ b/src/main/java/graphql/schema/idl/DirectiveInfo.java @@ -15,16 +15,6 @@ @PublicApi public class DirectiveInfo { - /** - * A set of directives which provided by graphql specification - */ - public static final Set GRAPHQL_SPECIFICATION_DIRECTIVES = ImmutableSet.of( - Directives.IncludeDirective, - Directives.SkipDirective, - Directives.DeprecatedDirective, - Directives.SpecifiedByDirective, - Directives.OneOfDirective - ); /** * A map from directive name to directive which provided by specification @@ -34,8 +24,16 @@ public class DirectiveInfo { Directives.SkipDirective.getName(), Directives.SkipDirective, Directives.DeprecatedDirective.getName(), Directives.DeprecatedDirective, Directives.SpecifiedByDirective.getName(), Directives.SpecifiedByDirective, - Directives.OneOfDirective.getName(), Directives.OneOfDirective + Directives.OneOfDirective.getName(), Directives.OneOfDirective, + // technically this is NOT yet in spec - but it is added by default by graphql-java so we include it + // we should also do @defer at some future time soon + Directives.DeferDirective.getName(), Directives.DeferDirective, + Directives.ExperimentalDisableErrorPropagationDirective.getName(), Directives.ExperimentalDisableErrorPropagationDirective ); + /** + * A set of directives which provided by graphql specification + */ + public static final Set GRAPHQL_SPECIFICATION_DIRECTIVES =ImmutableSet.copyOf(GRAPHQL_SPECIFICATION_DIRECTIVE_MAP.values()); /** * Returns true if a directive with provided directiveName has been defined in graphql specification diff --git a/src/main/java/graphql/schema/idl/MockedWiringFactory.java b/src/main/java/graphql/schema/idl/MockedWiringFactory.java index 3dc4b1ca2..fcfca1f47 100644 --- a/src/main/java/graphql/schema/idl/MockedWiringFactory.java +++ b/src/main/java/graphql/schema/idl/MockedWiringFactory.java @@ -8,6 +8,7 @@ import graphql.schema.DataFetcher; import graphql.schema.GraphQLScalarType; import graphql.schema.PropertyDataFetcher; +import graphql.schema.SingletonPropertyDataFetcher; import graphql.schema.TypeResolver; @PublicApi @@ -44,7 +45,7 @@ public boolean providesDataFetcher(FieldWiringEnvironment environment) { @Override public DataFetcher getDataFetcher(FieldWiringEnvironment environment) { - return new PropertyDataFetcher(environment.getFieldDefinition().getName()); + return SingletonPropertyDataFetcher.singleton(); } @Override diff --git a/src/main/java/graphql/schema/idl/RuntimeWiring.java b/src/main/java/graphql/schema/idl/RuntimeWiring.java index 941ee9534..a01343f22 100644 --- a/src/main/java/graphql/schema/idl/RuntimeWiring.java +++ b/src/main/java/graphql/schema/idl/RuntimeWiring.java @@ -183,7 +183,7 @@ public static class Builder { private final Map registeredDirectiveWiring = new LinkedHashMap<>(); private final List directiveWiring = new ArrayList<>(); private WiringFactory wiringFactory = new NoopWiringFactory(); - private boolean strictMode = false; + private boolean strictMode = true; private GraphqlFieldVisibility fieldVisibility = DEFAULT_FIELD_VISIBILITY; private GraphQLCodeRegistry codeRegistry = GraphQLCodeRegistry.newCodeRegistry().build(); private GraphqlTypeComparatorRegistry comparatorRegistry = GraphqlTypeComparatorRegistry.AS_IS_REGISTRY; @@ -192,11 +192,24 @@ private Builder() { ScalarInfo.GRAPHQL_SPECIFICATION_SCALARS.forEach(this::scalar); } + /** + * This sets strict mode as true or false. If strictMode is true, if things get defined twice, for example, it will throw a {@link StrictModeWiringException}. + * + * @return this builder + */ + public Builder strictMode(boolean strictMode) { + this.strictMode = strictMode; + return this; + } + /** * This puts the builder into strict mode, so if things get defined twice, for example, it will throw a {@link StrictModeWiringException}. * * @return this builder + * + * @deprecated strictMode default value changed to true, use {@link #strictMode(boolean)} instead */ + @Deprecated(since = "2025-03-22", forRemoval = true) public Builder strictMode() { this.strictMode = true; return this; @@ -300,13 +313,23 @@ public Builder type(String typeName, UnaryOperator bu public Builder type(TypeRuntimeWiring typeRuntimeWiring) { String typeName = typeRuntimeWiring.getTypeName(); Map typeDataFetchers = dataFetchers.computeIfAbsent(typeName, k -> new LinkedHashMap<>()); + + Map additionalFieldDataFetchers = typeRuntimeWiring.getFieldDataFetchers(); if (strictMode && !typeDataFetchers.isEmpty()) { - throw new StrictModeWiringException(format("The type %s has already been defined", typeName)); + // Check if the existing type wiring contains overlapping DataFetcher definitions + for (String fieldName : additionalFieldDataFetchers.keySet()) { + if (typeDataFetchers.containsKey(fieldName)) { + throw new StrictModeWiringException(format("The field %s on type %s has already been defined", fieldName, typeName)); + } + } } - typeDataFetchers.putAll(typeRuntimeWiring.getFieldDataFetchers()); + typeDataFetchers.putAll(additionalFieldDataFetchers); DataFetcher defaultDataFetcher = typeRuntimeWiring.getDefaultDataFetcher(); if (defaultDataFetcher != null) { + if (strictMode && defaultDataFetchers.containsKey(typeName)) { + throw new StrictModeWiringException(format("The type %s already has a default data fetcher defined", typeName)); + } defaultDataFetchers.put(typeName, defaultDataFetcher); } diff --git a/src/main/java/graphql/schema/idl/SchemaDirectiveWiringEnvironment.java b/src/main/java/graphql/schema/idl/SchemaDirectiveWiringEnvironment.java index e88803930..538582ed3 100644 --- a/src/main/java/graphql/schema/idl/SchemaDirectiveWiringEnvironment.java +++ b/src/main/java/graphql/schema/idl/SchemaDirectiveWiringEnvironment.java @@ -126,7 +126,7 @@ public interface SchemaDirectiveWiringEnvironment getBuildContext(); diff --git a/src/main/java/graphql/schema/idl/SchemaGeneratorAppliedDirectiveHelper.java b/src/main/java/graphql/schema/idl/SchemaGeneratorAppliedDirectiveHelper.java index 7a98b4607..e7d94dffd 100644 --- a/src/main/java/graphql/schema/idl/SchemaGeneratorAppliedDirectiveHelper.java +++ b/src/main/java/graphql/schema/idl/SchemaGeneratorAppliedDirectiveHelper.java @@ -35,7 +35,7 @@ import static java.util.stream.Collectors.toMap; /** - * This contains helper code to build out appliedm directives on schema element + * This contains helper code to build out applied directives on schema element */ @Internal class SchemaGeneratorAppliedDirectiveHelper { diff --git a/src/main/java/graphql/schema/idl/SchemaGeneratorHelper.java b/src/main/java/graphql/schema/idl/SchemaGeneratorHelper.java index 0b4e74c45..e658c85d1 100644 --- a/src/main/java/graphql/schema/idl/SchemaGeneratorHelper.java +++ b/src/main/java/graphql/schema/idl/SchemaGeneratorHelper.java @@ -56,7 +56,7 @@ import graphql.schema.GraphQLTypeReference; import graphql.schema.GraphQLUnionType; import graphql.schema.GraphqlTypeComparatorRegistry; -import graphql.schema.PropertyDataFetcher; +import graphql.schema.SingletonPropertyDataFetcher; import graphql.schema.TypeResolver; import graphql.schema.TypeResolverProxy; import graphql.schema.idl.errors.NotAnInputTypeError; @@ -801,23 +801,27 @@ GraphQLFieldDefinition buildField(BuildContext buildCtx, TypeDefinition paren // if they have already wired in a fetcher - then leave it alone FieldCoordinates coordinates = FieldCoordinates.coordinates(parentType.getName(), fieldDefinition.getName()); if (!buildCtx.getCodeRegistry().hasDataFetcher(coordinates)) { - DataFetcherFactory dataFetcherFactory = buildDataFetcherFactory(buildCtx, + Optional> dataFetcherFactory = buildDataFetcherFactory(buildCtx, parentType, fieldDef, fieldType, appliedDirectives.first, appliedDirectives.second); - buildCtx.getCodeRegistry().dataFetcher(coordinates, dataFetcherFactory); + + // if the dataFetcherFactory is empty, then it must have been the code registry default one + // and hence we don't need to make a "map entry" in the code registry since it will be defaulted + // anyway + dataFetcherFactory.ifPresent(fetcherFactory -> buildCtx.getCodeRegistry().dataFetcher(coordinates, fetcherFactory)); } return directivesObserve(buildCtx, fieldDefinition); } - private DataFetcherFactory buildDataFetcherFactory(BuildContext buildCtx, - TypeDefinition parentType, - FieldDefinition fieldDef, - GraphQLOutputType fieldType, - List directives, - List appliedDirectives) { + private Optional> buildDataFetcherFactory(BuildContext buildCtx, + TypeDefinition parentType, + FieldDefinition fieldDef, + GraphQLOutputType fieldType, + List directives, + List appliedDirectives) { String fieldName = fieldDef.getName(); String parentTypeName = parentType.getName(); TypeDefinitionRegistry typeRegistry = buildCtx.getTypeRegistry(); @@ -847,16 +851,18 @@ private DataFetcherFactory buildDataFetcherFactory(BuildContext buildCtx, if (dataFetcher == null) { DataFetcherFactory codeRegistryDFF = codeRegistry.getDefaultDataFetcherFactory(); if (codeRegistryDFF != null) { - return codeRegistryDFF; + // this will use the default of the code registry when its + // asked for at runtime + return Optional.empty(); } - dataFetcher = dataFetcherOfLastResort(wiringEnvironment); + dataFetcher = dataFetcherOfLastResort(); } } } } dataFetcherFactory = DataFetcherFactories.useDataFetcher(dataFetcher); } - return dataFetcherFactory; + return Optional.of(dataFetcherFactory); } GraphQLArgument buildArgument(BuildContext buildCtx, InputValueDefinition valueDefinition) { @@ -1087,9 +1093,8 @@ private Optional getOperationNamed(String name, Map dataFetcherOfLastResort(FieldWiringEnvironment environment) { - String fieldName = environment.getFieldDefinition().getName(); - return new PropertyDataFetcher(fieldName); + private DataFetcher dataFetcherOfLastResort() { + return SingletonPropertyDataFetcher.singleton(); } private List directivesOf(List> typeDefinitions) { diff --git a/src/main/java/graphql/schema/idl/SchemaPrinter.java b/src/main/java/graphql/schema/idl/SchemaPrinter.java index c51e4a78e..cafa142e0 100644 --- a/src/main/java/graphql/schema/idl/SchemaPrinter.java +++ b/src/main/java/graphql/schema/idl/SchemaPrinter.java @@ -945,7 +945,7 @@ public String directivesString(Class parentType, String directivesString(Class parentType, boolean isDeprecated, GraphQLDirectiveContainer directiveContainer) { List directives; if (isDeprecated) { - directives = addDeprecatedDirectiveIfNeeded(directiveContainer); + directives = addOrUpdateDeprecatedDirectiveIfNeeded(directiveContainer); } else { directives = DirectivesUtil.toAppliedDirectives(directiveContainer); } @@ -1041,25 +1041,50 @@ private boolean hasDeprecatedDirective(List directives) .count() == 1; } - private List addDeprecatedDirectiveIfNeeded(GraphQLDirectiveContainer directiveContainer) { + private List addOrUpdateDeprecatedDirectiveIfNeeded(GraphQLDirectiveContainer directiveContainer) { List directives = DirectivesUtil.toAppliedDirectives(directiveContainer); + String reason = getDeprecationReason(directiveContainer); + if (!hasDeprecatedDirective(directives) && isDeprecatedDirectiveAllowed()) { directives = new ArrayList<>(directives); - String reason = getDeprecationReason(directiveContainer); - GraphQLAppliedDirectiveArgument arg = GraphQLAppliedDirectiveArgument.newArgument() - .name("reason") - .valueProgrammatic(reason) - .type(GraphQLString) - .build(); - GraphQLAppliedDirective directive = GraphQLAppliedDirective.newDirective() - .name("deprecated") - .argument(arg) - .build(); - directives.add(directive); + directives.add(createDeprecatedDirective(reason)); + } else if (hasDeprecatedDirective(directives) && isDeprecatedDirectiveAllowed()) { + // Update deprecated reason in case modified by schema transform + directives = updateDeprecatedDirective(directives, reason); } return directives; } + private GraphQLAppliedDirective createDeprecatedDirective(String reason) { + GraphQLAppliedDirectiveArgument arg = GraphQLAppliedDirectiveArgument.newArgument() + .name("reason") + .valueProgrammatic(reason) + .type(GraphQLString) + .build(); + return GraphQLAppliedDirective.newDirective() + .name("deprecated") + .argument(arg) + .build(); + } + + private List updateDeprecatedDirective(List directives, String reason) { + GraphQLAppliedDirectiveArgument newArg = GraphQLAppliedDirectiveArgument.newArgument() + .name("reason") + .valueProgrammatic(reason) + .type(GraphQLString) + .build(); + + return directives.stream().map(d -> { + if (isDeprecatedDirective(d)) { + // Don't include reason is deliberately replaced with NOT_SET, for example in Anonymizer + if (d.getArgument("reason").getArgumentValue() != InputValueWithState.NOT_SET) { + return d.transform(builder -> builder.argument(newArg)); + } + } + return d; + }).collect(toList()); + } + private String getDeprecationReason(GraphQLDirectiveContainer directiveContainer) { if (directiveContainer instanceof GraphQLFieldDefinition) { GraphQLFieldDefinition type = (GraphQLFieldDefinition) directiveContainer; diff --git a/src/main/java/graphql/schema/idl/TypeRuntimeWiring.java b/src/main/java/graphql/schema/idl/TypeRuntimeWiring.java index 5e2e333ce..d628737cf 100644 --- a/src/main/java/graphql/schema/idl/TypeRuntimeWiring.java +++ b/src/main/java/graphql/schema/idl/TypeRuntimeWiring.java @@ -16,21 +16,20 @@ /** * A type runtime wiring is a specification of the data fetchers and possible type resolver for a given type name. - * + *
    * This is used by {@link RuntimeWiring} to wire together a functional {@link GraphQLSchema} */ @PublicApi public class TypeRuntimeWiring { - private final static AtomicBoolean DEFAULT_STRICT_MODE = new AtomicBoolean(false); + private final static AtomicBoolean DEFAULT_STRICT_MODE = new AtomicBoolean(true); /** - * By default {@link TypeRuntimeWiring} builders are not in strict mode, but you can set a JVM wide value - * so that any created will be. + * By default {@link TypeRuntimeWiring} builders are in strict mode, but you can set a JVM wide value too * * @param strictMode the desired strict mode state * - * @see Builder#strictMode() + * @see Builder#strictMode(boolean) */ public static void setStrictModeJvmWide(boolean strictMode) { DEFAULT_STRICT_MODE.set(strictMode); @@ -127,6 +126,20 @@ public Builder typeName(String typeName) { * * @return this builder */ + public Builder strictMode(boolean strictMode) { + this.strictMode = strictMode; + return this; + } + + /** + * This puts the builder into strict mode, so if things get defined twice, for example, it + * will throw a {@link StrictModeWiringException}. + * + * @return this builder + * + * @deprecated use {@link #strictMode(boolean)} instead + */ + @Deprecated(since = "2025-03-22", forRemoval = true) public Builder strictMode() { this.strictMode = true; return this; diff --git a/src/main/java/graphql/schema/idl/errors/StrictModeWiringException.java b/src/main/java/graphql/schema/idl/errors/StrictModeWiringException.java index 6da6b637f..4c92bffd6 100644 --- a/src/main/java/graphql/schema/idl/errors/StrictModeWiringException.java +++ b/src/main/java/graphql/schema/idl/errors/StrictModeWiringException.java @@ -6,7 +6,7 @@ import graphql.schema.idl.TypeRuntimeWiring; /** - * An exception that is throw when {@link RuntimeWiring.Builder#strictMode()} or {@link TypeRuntimeWiring.Builder#strictMode()} is true and + * An exception that is throw when {@link RuntimeWiring.Builder#strictMode(boolean)} or {@link TypeRuntimeWiring.Builder#strictMode(boolean)} is true and * something gets redefined. */ @PublicApi diff --git a/src/main/java/graphql/schema/usage/SchemaUsageSupport.java b/src/main/java/graphql/schema/usage/SchemaUsageSupport.java index 2f86da5c7..f51bb0429 100644 --- a/src/main/java/graphql/schema/usage/SchemaUsageSupport.java +++ b/src/main/java/graphql/schema/usage/SchemaUsageSupport.java @@ -22,7 +22,6 @@ import graphql.schema.SchemaTraverser; import graphql.util.TraversalControl; import graphql.util.TraverserContext; -import org.jetbrains.annotations.Nullable; import java.util.HashSet; import java.util.List; diff --git a/src/main/java/graphql/schema/visitor/GraphQLSchemaVisitorEnvironmentImpl.java b/src/main/java/graphql/schema/visitor/GraphQLSchemaVisitorEnvironmentImpl.java index 08880c0d4..41bb7edff 100644 --- a/src/main/java/graphql/schema/visitor/GraphQLSchemaVisitorEnvironmentImpl.java +++ b/src/main/java/graphql/schema/visitor/GraphQLSchemaVisitorEnvironmentImpl.java @@ -6,13 +6,16 @@ import graphql.schema.GraphQLSchema; import graphql.schema.GraphQLSchemaElement; import graphql.util.TraverserContext; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; -import static graphql.schema.visitor.GraphQLSchemaTraversalControl.*; +import static graphql.schema.visitor.GraphQLSchemaTraversalControl.CONTINUE; +import static graphql.schema.visitor.GraphQLSchemaTraversalControl.Control; +import static graphql.schema.visitor.GraphQLSchemaTraversalControl.DELETE; +import static graphql.schema.visitor.GraphQLSchemaTraversalControl.QUIT; @Internal class GraphQLSchemaVisitorEnvironmentImpl implements GraphQLSchemaVisitorEnvironment { @@ -50,7 +53,7 @@ public List getUnwrappedLeadingElements() { return buildParentsImpl(schemaElement -> !(schemaElement instanceof GraphQLModifiedType)); } - @NotNull + @NonNull private List buildParentsImpl(Predicate predicate) { List list = new ArrayList<>(); TraverserContext parentContext = context.getParentContext(); diff --git a/src/main/java/graphql/util/Anonymizer.java b/src/main/java/graphql/util/Anonymizer.java index 2d0497eca..11b3f3030 100644 --- a/src/main/java/graphql/util/Anonymizer.java +++ b/src/main/java/graphql/util/Anonymizer.java @@ -60,7 +60,6 @@ import graphql.schema.GraphQLNamedOutputType; import graphql.schema.GraphQLNamedSchemaElement; import graphql.schema.GraphQLNamedType; -import graphql.schema.GraphQLNonNull; import graphql.schema.GraphQLObjectType; import graphql.schema.GraphQLScalarType; import graphql.schema.GraphQLSchema; @@ -93,7 +92,7 @@ import static graphql.Assert.assertNotNull; import static graphql.parser.ParserEnvironment.newParserEnvironment; -import static graphql.schema.GraphQLArgument.newArgument; +import static graphql.schema.GraphQLNonNull.nonNull; import static graphql.schema.GraphQLTypeUtil.unwrapNonNull; import static graphql.schema.GraphQLTypeUtil.unwrapNonNullAs; import static graphql.schema.GraphQLTypeUtil.unwrapOneAs; @@ -260,16 +259,6 @@ public TraversalControl visitGraphQLFieldDefinition(GraphQLFieldDefinition graph @Override public TraversalControl visitGraphQLDirective(GraphQLDirective graphQLDirective, TraverserContext context) { - if (Directives.DEPRECATED_DIRECTIVE_DEFINITION.getName().equals(graphQLDirective.getName())) { - GraphQLArgument reason = newArgument().name("reason") - .type(Scalars.GraphQLString) - .clearValue().build(); - GraphQLDirective newElement = graphQLDirective.transform(builder -> { - builder.description(null).argument(reason); - }); - changeNode(context, newElement); - return TraversalControl.ABORT; - } if (DirectiveInfo.isGraphqlSpecifiedDirective(graphQLDirective.getName())) { return TraversalControl.ABORT; } @@ -285,7 +274,8 @@ public TraversalControl visitGraphQLAppliedDirective(GraphQLAppliedDirective gra if (Directives.DEPRECATED_DIRECTIVE_DEFINITION.getName().equals(graphQLDirective.getName())) { GraphQLAppliedDirectiveArgument reason = GraphQLAppliedDirectiveArgument.newArgument().name("reason") .type(Scalars.GraphQLString) - .clearValue().build(); + .clearValue() + .build(); GraphQLAppliedDirective newElement = graphQLDirective.transform(builder -> { builder.description(null).argument(reason); }); @@ -918,7 +908,7 @@ private static GraphQLType fromTypeToGraphQLType(Type type, GraphQLSchema schema graphql.Assert.assertNotNull(graphQLType, "Schema must contain type %s", typeName); return graphQLType; } else if (type instanceof NonNullType) { - return GraphQLNonNull.nonNull(fromTypeToGraphQLType(TypeUtil.unwrapOne(type), schema)); + return nonNull(fromTypeToGraphQLType(TypeUtil.unwrapOne(type), schema)); } else if (type instanceof ListType) { return GraphQLList.list(fromTypeToGraphQLType(TypeUtil.unwrapOne(type), schema)); } else { diff --git a/src/main/java/graphql/util/EscapeUtil.java b/src/main/java/graphql/util/EscapeUtil.java index d7a6cb5ee..521ac3584 100644 --- a/src/main/java/graphql/util/EscapeUtil.java +++ b/src/main/java/graphql/util/EscapeUtil.java @@ -16,37 +16,41 @@ private EscapeUtil() { * @return the encoded string */ public static String escapeJsonString(String stringValue) { + StringBuilder sb = new StringBuilder(stringValue.length()); + escapeJsonStringTo(sb, stringValue); + return sb.toString(); + } + + public static void escapeJsonStringTo(StringBuilder output, String stringValue) { int len = stringValue.length(); - StringBuilder sb = new StringBuilder(len); for (int i = 0; i < len; i++) { char ch = stringValue.charAt(i); switch (ch) { case '"': - sb.append("\\\""); + output.append("\\\""); break; case '\\': - sb.append("\\\\"); + output.append("\\\\"); break; case '\b': - sb.append("\\b"); + output.append("\\b"); break; case '\f': - sb.append("\\f"); + output.append("\\f"); break; case '\n': - sb.append("\\n"); + output.append("\\n"); break; case '\r': - sb.append("\\r"); + output.append("\\r"); break; case '\t': - sb.append("\\t"); + output.append("\\t"); break; default: - sb.append(ch); + output.append(ch); } } - return sb.toString(); } } diff --git a/src/main/java/graphql/util/Interning.java b/src/main/java/graphql/util/Interning.java index bc51b3ebf..acbb54fda 100644 --- a/src/main/java/graphql/util/Interning.java +++ b/src/main/java/graphql/util/Interning.java @@ -3,7 +3,7 @@ import com.google.common.collect.Interner; import com.google.common.collect.Interners; import graphql.Internal; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; /** * Interner allowing object-identity comparison of key entities like field names. This is useful on hotspot @@ -18,7 +18,7 @@ private Interning() { private static final Interner INTERNER = Interners.newWeakInterner(); - public static @NotNull String intern(@NotNull String name) { + public static @NonNull String intern(@NonNull String name) { return INTERNER.intern(name); } diff --git a/src/main/java/graphql/validation/RulesVisitor.java b/src/main/java/graphql/validation/RulesVisitor.java index 83864aaee..b8d5aa2b8 100644 --- a/src/main/java/graphql/validation/RulesVisitor.java +++ b/src/main/java/graphql/validation/RulesVisitor.java @@ -44,11 +44,13 @@ public RulesVisitor(ValidationContext validationContext, List rule } private List filterRulesVisitingFragmentSpreads(List rules, boolean isVisitFragmentSpreads) { - Iterator itr = rules - .stream() - .filter(r -> r.isVisitFragmentSpreads() == isVisitFragmentSpreads) - .iterator(); - return ImmutableList.copyOf(itr); + ImmutableList.Builder builder = ImmutableList.builder(); + for (AbstractRule rule : rules) { + if (rule.isVisitFragmentSpreads() == isVisitFragmentSpreads) { + builder.add(rule); + } + } + return builder.build(); } @Override diff --git a/src/main/java/graphql/validation/ValidationErrorType.java b/src/main/java/graphql/validation/ValidationErrorType.java index 5710a1b0b..e480c5c36 100644 --- a/src/main/java/graphql/validation/ValidationErrorType.java +++ b/src/main/java/graphql/validation/ValidationErrorType.java @@ -43,5 +43,7 @@ public enum ValidationErrorType implements ValidationErrorClassification { NullValueForNonNullArgument, SubscriptionMultipleRootFields, SubscriptionIntrospectionRootField, - UniqueObjectFieldName + ForbidSkipAndIncludeOnSubscriptionRoot, + UniqueObjectFieldName, + UnknownOperation } diff --git a/src/main/java/graphql/validation/Validator.java b/src/main/java/graphql/validation/Validator.java index d7c3db2fd..8bda10839 100644 --- a/src/main/java/graphql/validation/Validator.java +++ b/src/main/java/graphql/validation/Validator.java @@ -1,7 +1,6 @@ package graphql.validation; -import graphql.ExperimentalApi; import graphql.Internal; import graphql.i18n.I18n; import graphql.language.Document; @@ -10,6 +9,7 @@ import graphql.validation.rules.DeferDirectiveLabel; import graphql.validation.rules.DeferDirectiveOnRootLevel; import graphql.validation.rules.DeferDirectiveOnValidOperation; +import graphql.validation.rules.KnownOperationTypes; import graphql.validation.rules.UniqueObjectFieldName; import graphql.validation.rules.ExecutableDefinitions; import graphql.validation.rules.FieldsOnCorrectType; @@ -27,7 +27,7 @@ import graphql.validation.rules.PossibleFragmentSpreads; import graphql.validation.rules.ProvidedNonNullArguments; import graphql.validation.rules.ScalarLeaves; -import graphql.validation.rules.SubscriptionUniqueRootField; +import graphql.validation.rules.SubscriptionRootField; import graphql.validation.rules.UniqueArgumentNames; import graphql.validation.rules.UniqueDirectiveNamesPerLocation; import graphql.validation.rules.UniqueFragmentNames; @@ -52,7 +52,7 @@ public class Validator { * `graphql-java` will stop validation after a maximum number of validation messages has been reached. Attackers * can send pathologically invalid queries to induce a Denial of Service attack and fill memory with 10000s of errors * and burn CPU in process. - * + *

    * By default, this is set to 100 errors. You can set a new JVM wide value as the maximum allowed validation errors. * * @param maxValidationErrors the maximum validation errors allow JVM wide @@ -155,7 +155,7 @@ public List createRules(ValidationContext validationContext, Valid UniqueVariableNames uniqueVariableNamesRule = new UniqueVariableNames(validationContext, validationErrorCollector); rules.add(uniqueVariableNamesRule); - SubscriptionUniqueRootField uniqueSubscriptionRootField = new SubscriptionUniqueRootField(validationContext, validationErrorCollector); + SubscriptionRootField uniqueSubscriptionRootField = new SubscriptionRootField(validationContext, validationErrorCollector); rules.add(uniqueSubscriptionRootField); UniqueObjectFieldName uniqueObjectFieldName = new UniqueObjectFieldName(validationContext, validationErrorCollector); @@ -169,6 +169,10 @@ public List createRules(ValidationContext validationContext, Valid DeferDirectiveLabel deferDirectiveLabel = new DeferDirectiveLabel(validationContext, validationErrorCollector); rules.add(deferDirectiveLabel); + + KnownOperationTypes knownOperationTypes = new KnownOperationTypes(validationContext, validationErrorCollector); + rules.add(knownOperationTypes); + return rules; } } diff --git a/src/main/java/graphql/validation/rules/ArgumentsOfCorrectType.java b/src/main/java/graphql/validation/rules/ArgumentsOfCorrectType.java index 21e85a212..2b76f685a 100644 --- a/src/main/java/graphql/validation/rules/ArgumentsOfCorrectType.java +++ b/src/main/java/graphql/validation/rules/ArgumentsOfCorrectType.java @@ -28,7 +28,7 @@ public void checkArgument(Argument argument) { return; } ArgumentValidationUtil validationUtil = new ArgumentValidationUtil(argument); - if (!validationUtil.isValidLiteralValue(argument.getValue(), fieldArgument.getType(), getValidationContext().getSchema(), getValidationContext().getGraphQLContext(), Locale.getDefault())) { + if (!validationUtil.isValidLiteralValue(argument.getValue(), fieldArgument.getType(), getValidationContext().getSchema(), getValidationContext().getGraphQLContext(), getValidationContext().getI18n().getLocale())) { String message = i18n(WrongType, validationUtil.getMsgAndArgs()); addError(ValidationError.newValidationError() .validationErrorType(WrongType) diff --git a/src/main/java/graphql/validation/rules/KnownOperationTypes.java b/src/main/java/graphql/validation/rules/KnownOperationTypes.java new file mode 100644 index 000000000..2ef9af48f --- /dev/null +++ b/src/main/java/graphql/validation/rules/KnownOperationTypes.java @@ -0,0 +1,48 @@ +package graphql.validation.rules; + +import graphql.Internal; +import graphql.language.OperationDefinition; +import graphql.schema.GraphQLSchema; +import graphql.util.StringKit; +import graphql.validation.AbstractRule; +import graphql.validation.ValidationContext; +import graphql.validation.ValidationErrorCollector; + +import static graphql.validation.ValidationErrorType.UnknownOperation; + +/** + * Unique variable names + *

    + * A GraphQL operation is only valid if all its variables are uniquely named. + */ +@Internal +public class KnownOperationTypes extends AbstractRule { + + public KnownOperationTypes(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector) { + super(validationContext, validationErrorCollector); + } + + @Override + public void checkOperationDefinition(OperationDefinition operationDefinition) { + OperationDefinition.Operation documentOperation = operationDefinition.getOperation(); + GraphQLSchema graphQLSchema = getValidationContext().getSchema(); + if (documentOperation == OperationDefinition.Operation.MUTATION + && graphQLSchema.getMutationType() == null) { + String message = i18n(UnknownOperation, "KnownOperationTypes.noOperation", formatOperation(documentOperation)); + addError(UnknownOperation, operationDefinition.getSourceLocation(), message); + } else if (documentOperation == OperationDefinition.Operation.SUBSCRIPTION + && graphQLSchema.getSubscriptionType() == null) { + String message = i18n(UnknownOperation, "KnownOperationTypes.noOperation", formatOperation(documentOperation)); + addError(UnknownOperation, operationDefinition.getSourceLocation(), message); + } else if (documentOperation == OperationDefinition.Operation.QUERY + && graphQLSchema.getQueryType() == null) { + // This is unlikely to happen, as a validated GraphQLSchema must have a Query type by definition + String message = i18n(UnknownOperation, "KnownOperationTypes.noOperation", formatOperation(documentOperation)); + addError(UnknownOperation, operationDefinition.getSourceLocation(), message); + } + } + + private String formatOperation(OperationDefinition.Operation operation) { + return StringKit.capitalize(operation.name().toLowerCase()); + } +} diff --git a/src/main/java/graphql/validation/rules/OverlappingFieldsCanBeMerged.java b/src/main/java/graphql/validation/rules/OverlappingFieldsCanBeMerged.java index a674e4692..aa877d8cf 100644 --- a/src/main/java/graphql/validation/rules/OverlappingFieldsCanBeMerged.java +++ b/src/main/java/graphql/validation/rules/OverlappingFieldsCanBeMerged.java @@ -10,6 +10,7 @@ import graphql.language.FragmentDefinition; import graphql.language.FragmentSpread; import graphql.language.InlineFragment; +import graphql.language.OperationDefinition; import graphql.language.Selection; import graphql.language.SelectionSet; import graphql.schema.GraphQLFieldDefinition; @@ -47,7 +48,6 @@ import static graphql.util.FpKit.filterSet; import static graphql.util.FpKit.groupingBy; import static graphql.validation.ValidationErrorType.FieldsConflict; -import static java.lang.String.format; @Internal public class OverlappingFieldsCanBeMerged extends AbstractRule { @@ -62,10 +62,15 @@ public OverlappingFieldsCanBeMerged(ValidationContext validationContext, Validat } @Override - public void leaveSelectionSet(SelectionSet selectionSet) { + public void checkOperationDefinition(OperationDefinition operationDefinition) { + super.checkOperationDefinition(operationDefinition); + impl(operationDefinition.getSelectionSet(), getValidationContext().getOutputType()); + } + + public void impl(SelectionSet selectionSet, GraphQLOutputType graphQLOutputType) { Map> fieldMap = new LinkedHashMap<>(); Set visitedFragmentSpreads = new LinkedHashSet<>(); - collectFields(fieldMap, selectionSet, getValidationContext().getOutputType(), visitedFragmentSpreads); + collectFields(fieldMap, selectionSet, graphQLOutputType, visitedFragmentSpreads); List conflicts = findConflicts(fieldMap); for (Conflict conflict : conflicts) { if (conflictsReported.contains(conflict.fields)) { diff --git a/src/main/java/graphql/validation/rules/SubscriptionUniqueRootField.java b/src/main/java/graphql/validation/rules/SubscriptionRootField.java similarity index 58% rename from src/main/java/graphql/validation/rules/SubscriptionUniqueRootField.java rename to src/main/java/graphql/validation/rules/SubscriptionRootField.java index 0ded9ca63..758ecff60 100644 --- a/src/main/java/graphql/validation/rules/SubscriptionUniqueRootField.java +++ b/src/main/java/graphql/validation/rules/SubscriptionRootField.java @@ -6,9 +6,12 @@ import graphql.execution.FieldCollectorParameters; import graphql.execution.MergedField; import graphql.execution.MergedSelectionSet; +import graphql.execution.RawVariables; +import graphql.execution.ValuesResolver; +import graphql.language.Directive; import graphql.language.NodeUtil; import graphql.language.OperationDefinition; -import graphql.language.Selection; +import graphql.language.VariableDefinition; import graphql.schema.GraphQLObjectType; import graphql.validation.AbstractRule; import graphql.validation.ValidationContext; @@ -16,20 +19,25 @@ import java.util.List; +import static graphql.Directives.INCLUDE_DIRECTIVE_DEFINITION; +import static graphql.Directives.SKIP_DIRECTIVE_DEFINITION; import static graphql.language.OperationDefinition.Operation.SUBSCRIPTION; import static graphql.validation.ValidationErrorType.SubscriptionIntrospectionRootField; import static graphql.validation.ValidationErrorType.SubscriptionMultipleRootFields; +import static graphql.validation.ValidationErrorType.ForbidSkipAndIncludeOnSubscriptionRoot; /** * A subscription operation must only have one root field * A subscription operation's single root field must not be an introspection field * https://spec.graphql.org/draft/#sec-Single-root-field + * + * A subscription operation's root field must not have neither @skip nor @include directives */ @Internal -public class SubscriptionUniqueRootField extends AbstractRule { +public class SubscriptionRootField extends AbstractRule { private final FieldCollector fieldCollector = new FieldCollector(); - public SubscriptionUniqueRootField(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector) { + public SubscriptionRootField(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector) { super(validationContext, validationErrorCollector); } @@ -39,16 +47,24 @@ public void checkOperationDefinition(OperationDefinition operationDef) { GraphQLObjectType subscriptionType = getValidationContext().getSchema().getSubscriptionType(); + // This coercion takes into account default values for variables + List variableDefinitions = operationDef.getVariableDefinitions(); + CoercedVariables coercedVariableValues = ValuesResolver.coerceVariableValues( + getValidationContext().getSchema(), + variableDefinitions, + RawVariables.emptyVariables(), + getValidationContext().getGraphQLContext(), + getValidationContext().getI18n().getLocale()); + FieldCollectorParameters collectorParameters = FieldCollectorParameters.newParameters() .schema(getValidationContext().getSchema()) .fragments(NodeUtil.getFragmentsByName(getValidationContext().getDocument())) - .variables(CoercedVariables.emptyVariables().toMap()) + .variables(coercedVariableValues.toMap()) .objectType(subscriptionType) .graphQLContext(getValidationContext().getGraphQLContext()) .build(); MergedSelectionSet fields = fieldCollector.collectFields(collectorParameters, operationDef.getSelectionSet()); - List subscriptionSelections = operationDef.getSelectionSet().getSelections(); if (fields.size() > 1) { String message = i18n(SubscriptionMultipleRootFields, "SubscriptionUniqueRootField.multipleRootFields", operationDef.getName()); @@ -57,11 +73,15 @@ public void checkOperationDefinition(OperationDefinition operationDef) { MergedField mergedField = fields.getSubFieldsList().get(0); - if (isIntrospectionField(mergedField)) { String message = i18n(SubscriptionIntrospectionRootField, "SubscriptionIntrospectionRootField.introspectionRootField", operationDef.getName(), mergedField.getName()); addError(SubscriptionIntrospectionRootField, mergedField.getSingleField().getSourceLocation(), message); } + + if (hasSkipOrIncludeDirectives(mergedField)) { + String message = i18n(ForbidSkipAndIncludeOnSubscriptionRoot, "SubscriptionRootField.forbidSkipAndIncludeOnSubscriptionRoot", operationDef.getName(), mergedField.getName()); + addError(ForbidSkipAndIncludeOnSubscriptionRoot, mergedField.getSingleField().getSourceLocation(), message); + } } } } @@ -69,4 +89,14 @@ public void checkOperationDefinition(OperationDefinition operationDef) { private boolean isIntrospectionField(MergedField field) { return field.getName().startsWith("__"); } + + private boolean hasSkipOrIncludeDirectives(MergedField field) { + List directives = field.getSingleField().getDirectives(); + for (Directive directive : directives) { + if (directive.getName().equals(SKIP_DIRECTIVE_DEFINITION.getName()) || directive.getName().equals(INCLUDE_DIRECTIVE_DEFINITION.getName())) { + return true; + } + } + return false; + } } diff --git a/src/main/java/graphql/validation/rules/VariableDefaultValuesOfCorrectType.java b/src/main/java/graphql/validation/rules/VariableDefaultValuesOfCorrectType.java index c67026e8b..f57a24f94 100644 --- a/src/main/java/graphql/validation/rules/VariableDefaultValuesOfCorrectType.java +++ b/src/main/java/graphql/validation/rules/VariableDefaultValuesOfCorrectType.java @@ -27,7 +27,7 @@ public void checkVariableDefinition(VariableDefinition variableDefinition) { return; } if (variableDefinition.getDefaultValue() != null - && !getValidationUtil().isValidLiteralValue(variableDefinition.getDefaultValue(), inputType, getValidationContext().getSchema(), getValidationContext().getGraphQLContext(), Locale.getDefault())) { + && !getValidationUtil().isValidLiteralValue(variableDefinition.getDefaultValue(), inputType, getValidationContext().getSchema(), getValidationContext().getGraphQLContext(), getValidationContext().getI18n().getLocale())) { String message = i18n(BadValueForDefaultArg, "VariableDefaultValuesOfCorrectType.badDefault", variableDefinition.getDefaultValue(), simplePrint(inputType)); addError(BadValueForDefaultArg, variableDefinition.getSourceLocation(), message); } diff --git a/src/main/resources/i18n/Validation.properties b/src/main/resources/i18n/Validation.properties index 4f5c42ab2..e638233cf 100644 --- a/src/main/resources/i18n/Validation.properties +++ b/src/main/resources/i18n/Validation.properties @@ -38,6 +38,8 @@ KnownFragmentNames.undefinedFragment=Validation error ({0}) : Undefined fragment # KnownTypeNames.unknownType=Validation error ({0}) : Unknown type ''{1}'' # +KnownOperationTypes.noOperation=Validation error ({0}): The ''{1}'' operation is not supported by the schema +# LoneAnonymousOperation.withOthers=Validation error ({0}) : Anonymous operation with other operations LoneAnonymousOperation.namedOperation=Validation error ({0}) : Operation ''{1}'' is following anonymous operation # @@ -66,9 +68,8 @@ ScalarLeaves.subselectionOnLeaf=Validation error ({0}) : Subselection not allowe ScalarLeaves.subselectionRequired=Validation error ({0}) : Subselection required for type ''{1}'' of field ''{2}'' # SubscriptionUniqueRootField.multipleRootFields=Validation error ({0}) : Subscription operation ''{1}'' must have exactly one root field -SubscriptionUniqueRootField.multipleRootFieldsWithFragment=Validation error ({0}) : Subscription operation ''{1}'' must have exactly one root field with fragments SubscriptionIntrospectionRootField.introspectionRootField=Validation error ({0}) : Subscription operation ''{1}'' root field ''{2}'' cannot be an introspection field -SubscriptionIntrospectionRootField.introspectionRootFieldWithFragment=Validation error ({0}) : Subscription operation ''{1}'' fragment root field ''{2}'' cannot be an introspection field +SubscriptionRootField.forbidSkipAndIncludeOnSubscriptionRoot=Validation error ({0}) : Subscription operation ''{1}'' root field ''{2}'' must not use @skip nor @include directives in top level selection # UniqueArgumentNames.uniqueArgument=Validation error ({0}) : There can be only one argument named ''{1}'' # diff --git a/src/main/resources/i18n/Validation_de.properties b/src/main/resources/i18n/Validation_de.properties index fec637643..fa58577fa 100644 --- a/src/main/resources/i18n/Validation_de.properties +++ b/src/main/resources/i18n/Validation_de.properties @@ -30,6 +30,8 @@ KnownFragmentNames.undefinedFragment=Validierungsfehler ({0}) : Undefiniertes Fr # KnownTypeNames.unknownType=Validierungsfehler ({0}) : Unbekannter Typ ''{1}'' # +KnownOperationTypes.noOperation=Validierungsfehler ({0}): ''{1}'' Operation wird vom Schema nicht unterstützt +# LoneAnonymousOperation.withOthers=Validierungsfehler ({0}) : Anonyme Operation mit anderen Operationen LoneAnonymousOperation.namedOperation=Validierungsfehler ({0}) : Operation ''{1}'' folgt der anonymen Operation # @@ -58,9 +60,9 @@ ScalarLeaves.subselectionOnLeaf=Validierungsfehler ({0}) : Unterauswahl für Bla ScalarLeaves.subselectionRequired=Validierungsfehler ({0}) : Unterauswahl erforderlich für Typ ''{1}'' des Feldes ''{2}'' # SubscriptionUniqueRootField.multipleRootFields=Validierungsfehler ({0}) : Subscription operation ''{1}'' muss genau ein root field haben -SubscriptionUniqueRootField.multipleRootFieldsWithFragment=Validierungsfehler ({0}) : Subscription operation ''{1}'' muss genau ein root field mit Fragmenten haben SubscriptionIntrospectionRootField.introspectionRootField=Validierungsfehler ({0}) : Subscription operation ''{1}'' root field ''{2}'' kann kein introspection field sein -SubscriptionIntrospectionRootField.introspectionRootFieldWithFragment=Validierungsfehler ({0}) : Subscription operation ''{1}'' fragment root field ''{2}'' kann kein introspection field sein +SubscriptionRootField.forbidSkipAndIncludeOnSubscriptionRoot=Validierungsfehler ({0}) : Subscription operation ''{1}'' root field ''{2}'' darf weder @skip noch @include directive in top level selection +# # UniqueArgumentNames.uniqueArgument=Validierungsfehler ({0}) : Es kann nur ein Argument namens ''{1}'' geben # diff --git a/src/main/resources/i18n/Validation_nl.properties b/src/main/resources/i18n/Validation_nl.properties index e30b34264..4cef5f2a0 100644 --- a/src/main/resources/i18n/Validation_nl.properties +++ b/src/main/resources/i18n/Validation_nl.properties @@ -58,9 +58,8 @@ ScalarLeaves.subselectionOnLeaf=Validatiefout ({0}) : Sub-selectie niet toegesta ScalarLeaves.subselectionRequired=Validatiefout ({0}) : Sub-selectie verplicht voor type ''{1}'' van veld ''{2}'' # SubscriptionUniqueRootField.multipleRootFields=Validatiefout ({0}) : Subscription operation ''{1}'' moet exact één root field hebben -SubscriptionUniqueRootField.multipleRootFieldsWithFragment=Validatiefout ({0}) : Subscription operation ''{1}'' moet exact één root field met fragmenten hebben SubscriptionIntrospectionRootField.introspectionRootField=Validatiefout ({0}) : Subscription operation ''{1}'' root field ''{2}'' kan geen introspectieveld zijn -SubscriptionIntrospectionRootField.introspectionRootFieldWithFragment=Validatiefout ({0}) : Subscription operation ''{1}'' fragment root field ''{2}'' kan geen introspectieveld zijn +SubscriptionRootField.forbidSkipAndIncludeOnSubscriptionRoot=Validation error ({0}) : Subscription operation ''{1}'' root field ''{2}'' must not use @skip nor @include directives in top level selection # UniqueArgumentNames.uniqueArgument=Validatiefout ({0}) : Er mag maar één argument met naam ''{1}'' bestaan # diff --git a/src/test/groovy/graphql/DataFetcherTest.groovy b/src/test/groovy/graphql/DataFetcherTest.groovy index aa15db46d..2f57c41ef 100644 --- a/src/test/groovy/graphql/DataFetcherTest.groovy +++ b/src/test/groovy/graphql/DataFetcherTest.groovy @@ -1,8 +1,10 @@ package graphql +import graphql.schema.GraphQLFieldDefinition import graphql.schema.GraphQLOutputType import graphql.schema.PropertyDataFetcher +import graphql.schema.SingletonPropertyDataFetcher import spock.lang.Specification import static graphql.Scalars.GraphQLBoolean @@ -55,43 +57,95 @@ class DataFetcherTest extends Specification { } - def env(GraphQLOutputType type) { - newDataFetchingEnvironment().source(dataHolder).fieldType(type).build() + def env(String propertyName, GraphQLOutputType type) { + GraphQLFieldDefinition fieldDefinition = mkField(propertyName, type) + newDataFetchingEnvironment().source(dataHolder).fieldType(type).fieldDefinition(fieldDefinition).build() + } + + def mkField(String propertyName, GraphQLOutputType type) { + GraphQLFieldDefinition.newFieldDefinition().name(propertyName).type(type).build() } def "get property value"() { given: - def environment = env(GraphQLString) + def environment = env("property", GraphQLString) + def field = mkField("property", GraphQLString) when: - def result = new PropertyDataFetcher("property").get(environment) + def result = fetcher.get(environment) then: result == "propertyValue" + + when: + result = fetcher.get(field, dataHolder, { environment }) + then: + result == "propertyValue" + + where: + fetcher | _ + new PropertyDataFetcher("property") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "get Boolean property value"() { given: - def environment = env(GraphQLBoolean) + def environment = env("booleanField", GraphQLBoolean) + def field = mkField("booleanField", GraphQLBoolean) + + when: + def result = fetcher.get(environment) + then: + result == true + when: - def result = new PropertyDataFetcher("booleanField").get(environment) + result = fetcher.get(field, dataHolder, { environment }) then: result == true + + where: + fetcher | _ + new PropertyDataFetcher("booleanField") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "get Boolean property value with get"() { given: - def environment = env(GraphQLBoolean) + def environment = env("booleanFieldWithGet", GraphQLBoolean) + def field = mkField("booleanFieldWithGet", GraphQLBoolean) + + when: + def result = fetcher.get(environment) + then: + result == false + when: - def result = new PropertyDataFetcher("booleanFieldWithGet").get(environment) + result = fetcher.get(field, dataHolder, { environment }) then: result == false + + where: + fetcher | _ + new PropertyDataFetcher("booleanFieldWithGet") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "get public field value as property"() { given: - def environment = env(GraphQLString) + def environment = env("publicField", GraphQLString) + def field = mkField("publicField", GraphQLString) + + when: + def result = fetcher.get(environment) + then: + result == "publicValue" + when: - def result = new PropertyDataFetcher("publicField").get(environment) + result = fetcher.get(field, dataHolder, { environment }) then: result == "publicValue" + + where: + fetcher | _ + new PropertyDataFetcher("publicField") | _ + SingletonPropertyDataFetcher.singleton() | _ } } diff --git a/src/test/groovy/graphql/DefaultValuesTest.groovy b/src/test/groovy/graphql/DefaultValuesTest.groovy new file mode 100644 index 000000000..ccb26fe97 --- /dev/null +++ b/src/test/groovy/graphql/DefaultValuesTest.groovy @@ -0,0 +1,116 @@ +package graphql + +import graphql.schema.DataFetcher +import spock.lang.Specification + +import static graphql.ExecutionInput.newExecutionInput + +class DefaultValuesTest extends Specification { + + def "provided values override defaults"() { + def sdl = """ + type Query { + myField(deleted: Boolean = true) : String + myField2(deleted: Boolean = true) : String + } + """ + + def df = { env -> + return "dataFetcherArg=" + env.getArgument("deleted") + } as DataFetcher + def graphQL = TestUtil.graphQL(sdl, [Query: [ + myField : df, + myField2: df]] + ).build() + + // + // The variable is present in the variables map and its explicitly null + // + // https://spec.graphql.org/draft/#sec-Coercing-Variable-Values + // + when: + def ei = newExecutionInput(''' + query myQuery($deleted: Boolean = false) { + myField(deleted : $deleted) + } + ''').variables(["deleted": null]).build() + def er = graphQL.execute(ei) + + then: + er.errors.isEmpty() + er.data == [myField: "dataFetcherArg=null"] + + // + // The variable is present in the variables map and its explicitly a value + // + // https://spec.graphql.org/draft/#sec-Coercing-Variable-Values + // + when: + ei = newExecutionInput(''' + query myQuery($deleted: Boolean = false) { + myField(deleted : $deleted) + } + ''').variables(["deleted": true]).build() + er = graphQL.execute(ei) + + then: + er.errors.isEmpty() + er.data == [myField: "dataFetcherArg=true"] + + // + // The variable is NOT present in the variables map it should use a default + // value from the variable declaration + // + // https://spec.graphql.org/draft/#sec-Coercing-Variable-Values + // + when: + ei = newExecutionInput(''' + query myQuery($deleted: Boolean = false) { + myField(deleted : $deleted) + } + ''').variables(["NotProvided": "valueNotProvided"]).build() + er = graphQL.execute(ei) + + then: + er.errors.isEmpty() + er.data == [myField: "dataFetcherArg=false"] + + // + // The variable is NOT present in the variables map and a variable is NOT used + // it should use a default value from the field declaration + // + // + when: + ei = newExecutionInput(''' + query myQuery($deleted: Boolean = false) { + myField + myField2(deleted : $deleted) + } + ''').variables(["NotProvided": "valueNotProvided"]).build() + er = graphQL.execute(ei) + + then: + er.errors.isEmpty() + er.data == [myField : "dataFetcherArg=true", + myField2: "dataFetcherArg=false"] + + // + // If there are no variables on the query operation + // it should use a default value from the field declaration + // or literals provided + // + when: + ei = newExecutionInput(''' + query myQuery { + myField(deleted :false) + myField2 + } + ''').variables(["NotProvided": "valueNotProvided"]).build() + er = graphQL.execute(ei) + + then: + er.errors.isEmpty() + er.data == [myField : "dataFetcherArg=false", + myField2: "dataFetcherArg=true"] + } +} diff --git a/src/test/groovy/graphql/EngineRunningTest.groovy b/src/test/groovy/graphql/EngineRunningTest.groovy new file mode 100644 index 000000000..46104653d --- /dev/null +++ b/src/test/groovy/graphql/EngineRunningTest.groovy @@ -0,0 +1,500 @@ +package graphql + +import graphql.execution.DataFetcherExceptionHandler +import graphql.execution.DataFetcherExceptionHandlerResult +import graphql.execution.EngineRunningObserver +import graphql.execution.ExecutionId +import graphql.execution.instrumentation.Instrumentation +import graphql.execution.instrumentation.InstrumentationState +import graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters +import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters +import graphql.execution.preparsed.PreparsedDocumentEntry +import graphql.execution.preparsed.PreparsedDocumentProvider +import graphql.parser.Parser +import graphql.schema.DataFetcher +import spock.lang.Specification + +import java.util.concurrent.CompletableFuture +import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.locks.ReentrantLock +import java.util.function.Function + +import static graphql.ExecutionInput.newExecutionInput +import static graphql.execution.EngineRunningObserver.ENGINE_RUNNING_OBSERVER_KEY +import static graphql.execution.EngineRunningObserver.RunningState +import static graphql.execution.EngineRunningObserver.RunningState.NOT_RUNNING +import static graphql.execution.EngineRunningObserver.RunningState.RUNNING + +class EngineRunningTest extends Specification { + + + private static List trackStates(ExecutionInput ei) { + List states = new CopyOnWriteArrayList<>(); + ei.getGraphQLContext().put(ENGINE_RUNNING_OBSERVER_KEY, { + ExecutionId executionId, GraphQLContext context, RunningState running -> + states.add(running) + } as EngineRunningObserver); + states + } + + def "preparsed async document provider"() { + given: + def sdl = ''' + + type Query { + hello: String + } + ''' + def df = { env -> + return "world" + } as DataFetcher + def fetchers = ["Query": ["hello": df]] + def schema = TestUtil.schema(sdl, fetchers) + + def query = "{ hello }" + def document = Parser.parse(query) + + CompletableFuture cf = new CompletableFuture() + PreparsedDocumentProvider preparsedDocumentProvider = new PreparsedDocumentProvider() { + @Override + CompletableFuture getDocumentAsync(ExecutionInput executionInput, Function parseAndValidateFunction) { + return cf + } + } + def graphQL = GraphQL.newGraphQL(schema).preparsedDocumentProvider(preparsedDocumentProvider).build() + + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.executeAsync(ei) + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear() + cf.complete(new PreparsedDocumentEntry(document)) + then: + states == [RUNNING, NOT_RUNNING] + er.get().data == [hello: "world"] + + + } + + def "engine starts before instrumentation state and handles async state correctly"() { + given: + def sdl = ''' + + type Query { + hello: String + } + ''' + def df = { env -> + return "world" + } as DataFetcher + def fetchers = ["Query": ["hello": df]] + def schema = TestUtil.schema(sdl, fetchers) + + CompletableFuture cf = new CompletableFuture() + Instrumentation instrumentation = new Instrumentation() { + + @Override + CompletableFuture createStateAsync(InstrumentationCreateStateParameters parameters) { + return cf + } + } + def graphQL = GraphQL.newGraphQL(schema).instrumentation(instrumentation).build() + + def query = "{ hello }" + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.executeAsync(ei) + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear() + cf.complete(new InstrumentationState() {}) + then: + states == [RUNNING, NOT_RUNNING] + er.get().data == [hello: "world"] + + + } + + def "async instrument execution result"() { + given: + def sdl = ''' + + type Query { + hello: String + } + ''' + def df = { env -> + return "world" + } as DataFetcher + def fetchers = ["Query": ["hello": df]] + def schema = TestUtil.schema(sdl, fetchers) + + CompletableFuture cf = new CompletableFuture() + Instrumentation instrumentation = new Instrumentation() { + + @Override + CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters, InstrumentationState state) { + return cf + } + } + def graphQL = GraphQL.newGraphQL(schema).instrumentation(instrumentation).build() + + def query = "{ hello }" + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.executeAsync(ei) + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear() + cf.complete(ExecutionResultImpl.newExecutionResult().data([hello: "world-modified"]).build()) + then: + er.get().data == [hello: "world-modified"] + states == [RUNNING, NOT_RUNNING] + + + } + + + def "engine running state is observed"() { + given: + def sdl = ''' + + type Query { + hello: String + } + ''' + def df = { env -> + return "world" + } as DataFetcher + def fetchers = ["Query": ["hello": df]] + def schema = TestUtil.schema(sdl, fetchers) + def graphQL = GraphQL.newGraphQL(schema).build() + + def query = "{ hello }" + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.execute(ei) + then: + er.data == [hello: "world"] + states == [RUNNING, NOT_RUNNING] + } + + def "multiple async DF"() { + given: + def sdl = ''' + + type Query { + hello: String + hello2: String + foo: Foo + someStaticValue: Bar + } + type Foo { + name: String + } + type Bar { + staticValue: String + } + ''' + CompletableFuture cf1 = new CompletableFuture(); + CompletableFuture cf2 = new CompletableFuture(); + CompletableFuture cfFooName = new CompletableFuture(); + def df1 = { env -> + return cf1; + } as DataFetcher + + def df2 = { env -> + return cf2; + } as DataFetcher + + def dfFoo = { env -> + return "Foo"; + } as DataFetcher + + def dfFooName = { env -> + return cfFooName; + } as DataFetcher + + def dfStaticValue = { env -> + return [staticValue: "staticValue"] + } as DataFetcher + + + def fetchers = [Query: ["hello": df1, "hello2": df2, foo: dfFoo, someStaticValue: dfStaticValue], Foo: [name: dfFooName]] + def schema = TestUtil.schema(sdl, fetchers) + def graphQL = GraphQL.newGraphQL(schema).build() + + def query = "{ hello hello2 foo { name } someStaticValue {staticValue} }" + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.executeAsync(ei) + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear(); + cf1.complete("world") + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear(); + cfFooName.complete("FooName") + then: + states == [RUNNING, NOT_RUNNING] + + + when: + states.clear() + cf2.complete("world2") + then: + states == [RUNNING, NOT_RUNNING] + er.get().data == [hello: "world", hello2: "world2", foo: [name: "FooName"], someStaticValue: [staticValue: "staticValue"]] + } + + + def "engine running state is observed with one async datafetcher"() { + given: + def sdl = ''' + + type Query { + hello: String + } + ''' + CompletableFuture cf = new CompletableFuture(); + def df = { env -> + return cf; + } as DataFetcher + def fetchers = ["Query": ["hello": df]] + def schema = TestUtil.schema(sdl, fetchers) + def graphQL = GraphQL.newGraphQL(schema).build() + + def query = "{ hello }" + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.executeAsync(ei) + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear(); + cf.complete("world") + + then: + states == [RUNNING, NOT_RUNNING] + er.get().data == [hello: "world"] + } + + def "engine running state is observed with one dependent async datafetcher"() { + given: + def sdl = ''' + + type Query { + hello: String + } + ''' + CompletableFuture cf = new CompletableFuture(); + def df = { env -> + return cf.thenApply { it -> it } + } as DataFetcher + def fetchers = ["Query": ["hello": df]] + def schema = TestUtil.schema(sdl, fetchers) + def graphQL = GraphQL.newGraphQL(schema).build() + + def query = "{ hello }" + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.executeAsync(ei) + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear(); + cf.complete("world") + + then: + er.get().data == [hello: "world"] + states == [RUNNING, NOT_RUNNING] + } + + + def "datafetcher failing with async exception handler"() { + given: + def sdl = ''' + + type Query { + hello: String + } + ''' + def df = { env -> + throw new RuntimeException("boom") + } as DataFetcher + + ReentrantLock reentrantLock = new ReentrantLock() + reentrantLock.lock(); + + def exceptionHandler = { param -> + def async = CompletableFuture.supplyAsync { + reentrantLock.lock(); + return DataFetcherExceptionHandlerResult.newResult(GraphqlErrorBuilder + .newError(param.dataFetchingEnvironment).message("recovered").build()).build() + } + return async + } as DataFetcherExceptionHandler + + def fetchers = ["Query": ["hello": df]] + def schema = TestUtil.schema(sdl, fetchers) + def graphQL = GraphQL.newGraphQL(schema).defaultDataFetcherExceptionHandler(exceptionHandler).build() + + def query = "{ hello }" + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.executeAsync(ei) + states.clear() + reentrantLock.unlock() + def result = er.get() + + then: + result.errors.collect { it.message } == ["recovered"] + // we expect simply going from running to finshed + states == [RUNNING, NOT_RUNNING] + } + + def "async datafetcher failing with async exception handler"() { + given: + def sdl = ''' + + type Query { + hello: String + } + ''' + def cf = new CompletableFuture(); + def df = { env -> + return cf.thenApply { it -> throw new RuntimeException("boom") } + } as DataFetcher + + ReentrantLock reentrantLock = new ReentrantLock() + reentrantLock.lock(); + + def exceptionHandler = { param -> + def async = CompletableFuture.supplyAsync { + reentrantLock.lock(); + return DataFetcherExceptionHandlerResult.newResult(GraphqlErrorBuilder + .newError(param.dataFetchingEnvironment).message("recovered").build()).build() + } + return async + } as DataFetcherExceptionHandler + + def fetchers = ["Query": ["hello": df]] + def schema = TestUtil.schema(sdl, fetchers) + def graphQL = GraphQL.newGraphQL(schema).defaultDataFetcherExceptionHandler(exceptionHandler).build() + + def query = "{ hello }" + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.executeAsync(ei) + + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear() + cf.complete("foo") + + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear() + reentrantLock.unlock() + def result = er.get() + + then: + result.errors.collect { it.message } == ["recovered"] + // we expect simply going from running to finshed + new ArrayList<>(states) == [RUNNING, NOT_RUNNING] + } + + + def "engine running state is observed with two async datafetcher"() { + given: + def sdl = ''' + + type Query { + hello: String + hello2: String + } + ''' + CompletableFuture cf1 = new CompletableFuture(); + CompletableFuture cf2 = new CompletableFuture(); + def df = { env -> + return cf1; + } as DataFetcher + def df2 = { env -> + return cf2 + } as DataFetcher + + def fetchers = ["Query": ["hello": df, "hello2": df2]] + def schema = TestUtil.schema(sdl, fetchers) + def graphQL = GraphQL.newGraphQL(schema).build() + + def query = "{ hello hello2 }" + def ei = newExecutionInput(query).build() + + List states = trackStates(ei) + + when: + def er = graphQL.executeAsync(ei) + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear(); + cf1.complete("world") + + then: + states == [RUNNING, NOT_RUNNING] + + when: + states.clear(); + cf2.complete("world2") + + then: + states == [RUNNING, NOT_RUNNING] + er.get().data == [hello: "world", hello2: "world2"] + } +} diff --git a/src/test/groovy/graphql/ExecutionInputTest.groovy b/src/test/groovy/graphql/ExecutionInputTest.groovy index b3243e0d2..d2cb3bc93 100644 --- a/src/test/groovy/graphql/ExecutionInputTest.groovy +++ b/src/test/groovy/graphql/ExecutionInputTest.groovy @@ -3,10 +3,13 @@ package graphql import graphql.execution.ExecutionId import graphql.schema.DataFetcher import graphql.schema.DataFetchingEnvironment +import org.awaitility.Awaitility import org.dataloader.DataLoaderRegistry import spock.lang.Specification -import java.util.function.UnaryOperator +import java.time.Duration +import java.util.concurrent.CompletableFuture +import java.util.concurrent.CountDownLatch class ExecutionInputTest extends Specification { @@ -104,9 +107,11 @@ class ExecutionInputTest extends Specification { .locale(Locale.GERMAN) .build() def graphQLContext = executionInputOld.getGraphQLContext() - def executionInput = executionInputOld.transform({ bldg -> bldg - .query("new query") - .variables(variables) }) + def executionInput = executionInputOld.transform({ bldg -> + bldg + .query("new query") + .variables(variables) + }) then: executionInput.graphQLContext == graphQLContext diff --git a/src/test/groovy/graphql/ExecutionResultImplTest.groovy b/src/test/groovy/graphql/ExecutionResultImplTest.groovy index a1bb59e2a..8b8894cca 100644 --- a/src/test/groovy/graphql/ExecutionResultImplTest.groovy +++ b/src/test/groovy/graphql/ExecutionResultImplTest.groovy @@ -176,29 +176,58 @@ class ExecutionResultImplTest extends Specification { def "test setting extensions"() { given: - def startEr = new ExecutionResultImpl("Some Data", KNOWN_ERRORS,null) + def startEr = new ExecutionResultImpl("Some Data", KNOWN_ERRORS, null) - def er = ExecutionResultImpl.newExecutionResult().from(startEr).extensions([ext1:"here"]).build() + def er = ExecutionResultImpl.newExecutionResult().from(startEr).extensions([ext1: "here"]).build() when: def extensions = er.getExtensions() then: - extensions == [ext1:"here"] + extensions == [ext1: "here"] } def "test adding extension"() { given: - def startEr = new ExecutionResultImpl("Some Data", KNOWN_ERRORS,[ext1:"here"]) + def startEr = new ExecutionResultImpl("Some Data", KNOWN_ERRORS, [ext1: "here"]) - def er = ExecutionResultImpl.newExecutionResult().from(startEr).addExtension("ext2","aswell").build() + def er = ExecutionResultImpl.newExecutionResult().from(startEr).addExtension("ext2", "aswell").build() when: def extensions = er.getExtensions() then: - extensions == [ext1:"here", ext2 : "aswell"] + extensions == [ext1: "here", ext2: "aswell"] } + def "can parse out a map of to an ER"() { + when: + def map = [data: [f: "v"]] + def er = ExecutionResult.fromSpecification(map) + then: + er.data == [f: "v"] + er.extensions == null + er.errors.isEmpty() + + when: + // GraphqlErrorHelperTest is more extensive tests for error parsing which we will not repeat here + map = [errors: [[message: "m0"], [message: "m1"]]] + er = ExecutionResult.fromSpecification(map) + then: + er.data == null + er.extensions == null + !er.errors.isEmpty() + er.errors[0].message == "m0" + er.errors[1].message == "m1" + + when: + map = [data: [f: "v"], extensions: [ext1: "here", ext2: "and here"]] + er = ExecutionResult.fromSpecification(map) + then: + er.data == [f: "v"] + er.extensions == [ext1: "here", ext2: "and here"] + er.errors.isEmpty() + + } } diff --git a/src/test/groovy/graphql/GraphQLErrorTest.groovy b/src/test/groovy/graphql/GraphQLErrorTest.groovy index ca9fc1e8d..cf80eb845 100644 --- a/src/test/groovy/graphql/GraphQLErrorTest.groovy +++ b/src/test/groovy/graphql/GraphQLErrorTest.groovy @@ -31,7 +31,7 @@ class GraphQLErrorTest extends Specification { .description("Test ValidationError") .build() | [ - locations: [[line: 666, column: 999], [line: 333, column: 0]], + locations: [[line: 666, column: 999], [line: 333, column: 1]], message : "Test ValidationError", extensions:[classification:"ValidationError"], ] @@ -44,7 +44,7 @@ class GraphQLErrorTest extends Specification { new InvalidSyntaxError(mkLocations(), "Not good syntax m'kay") | [ - locations: [[line: 666, column: 999], [line: 333, column: 0]], + locations: [[line: 666, column: 999], [line: 333, column: 1]], message : "Not good syntax m'kay", extensions:[classification:"InvalidSyntax"], ] @@ -72,6 +72,48 @@ class GraphQLErrorTest extends Specification { } + def "toSpecification filters out error locations with line and column not starting at 1, as required in spec"() { + // See specification wording: https://spec.graphql.org/draft/#sec-Errors.Error-Result-Format + + given: + def error = ValidationError.newValidationError() + .validationErrorType(ValidationErrorType.UnknownType) + .sourceLocations([mkLocation(-1, -1), mkLocation(333, 1)]) + .description("Test ValidationError") + .build() + + def expectedMap = [ + locations: [ + [line: 333, column: 1] + ], + message: "Test ValidationError", + extensions: [classification:"ValidationError"] + ] + + expect: + error.toSpecification() == expectedMap + } + + def "toSpecification filters out null error locations"() { + given: + def error = ValidationError.newValidationError() + .validationErrorType(ValidationErrorType.UnknownType) + .sourceLocations([null, mkLocation(333, 1)]) + .description("Test ValidationError") + .build() + + def expectedMap = [ + locations: [ + [line: 333, column: 1] + ], + message: "Test ValidationError", + extensions: [classification:"ValidationError"] + ] + + expect: + error.toSpecification() == expectedMap + } + class CustomException extends RuntimeException implements GraphQLError { private LinkedHashMap map @@ -110,7 +152,7 @@ class GraphQLErrorTest extends Specification { } List mkLocations() { - return [mkLocation(666, 999), mkLocation(333, 0)] + return [mkLocation(666, 999), mkLocation(333, 1)] } SourceLocation mkLocation(int line, int column) { diff --git a/src/test/groovy/graphql/GraphQLTest.groovy b/src/test/groovy/graphql/GraphQLTest.groovy index 8235ac523..7b9c48ad7 100644 --- a/src/test/groovy/graphql/GraphQLTest.groovy +++ b/src/test/groovy/graphql/GraphQLTest.groovy @@ -12,7 +12,6 @@ import graphql.execution.ExecutionContext import graphql.execution.ExecutionId import graphql.execution.ExecutionIdProvider import graphql.execution.ExecutionStrategyParameters -import graphql.execution.MissingRootTypeException import graphql.execution.ResultNodesInfo import graphql.execution.SubscriptionExecutionStrategy import graphql.execution.ValueUnboxer @@ -328,7 +327,7 @@ class GraphQLTest extends Specification { result.errors.size() == 0 } - def "document with two operations but no specified operation throws"() { + def "document with two operations but no specified operation does not throw"() { given: GraphQLSchema schema = newSchema().query( @@ -344,13 +343,15 @@ class GraphQLTest extends Specification { """ when: - GraphQL.newGraphQL(schema).build().execute(query) + def er = GraphQL.newGraphQL(schema).build().execute(query) then: - thrown(GraphQLException) + noExceptionThrown() + !er.errors.isEmpty() + er.errors[0].message.contains("Must provide operation name if query contains multiple operations") } - def "null mutation type does not throw an npe re: #345 but returns and error"() { + def "null mutation type does not throw an npe but returns and error"() { given: GraphQLSchema schema = newSchema().query( @@ -370,7 +371,7 @@ class GraphQLTest extends Specification { then: result.errors.size() == 1 - result.errors[0].class == MissingRootTypeException + ((ValidationError) result.errors[0]).validationErrorType == ValidationErrorType.UnknownOperation } def "#875 a subscription query against a schema that doesn't support subscriptions should result in a GraphQL error"() { @@ -393,7 +394,7 @@ class GraphQLTest extends Specification { then: result.errors.size() == 1 - result.errors[0].class == MissingRootTypeException + ((ValidationError) result.errors[0]).validationErrorType == ValidationErrorType.UnknownOperation } def "query with int literal too large"() { @@ -1569,4 +1570,39 @@ many lines'''] er.data == [hello: [[name: "w1"], [name: "w2"], [name: "w3"]]] } + def "exceptions thrown are turned into graphql errors"() { + def sdl = """ + type Query { + f(arg : Boolean) : String + } + """ + + def graphQL = TestUtil.graphQL(sdl).build() + + when: + def ei = newExecutionInput("query badSyntax {").build() + def er = graphQL.execute(ei) + then: + !er.errors.isEmpty() + er.errors[0].message.contains("Invalid syntax with offending token") + + + when: + + ei = newExecutionInput('query badInput($varX : Boolean) { f(arg : $varX) }') + .variables([varX: "bad"]).build() + er = graphQL.execute(ei) + then: + !er.errors.isEmpty() + er.errors[0].message.contains("Variable 'varX' has an invalid value") + + when: + + ei = newExecutionInput("query ok1 { f } query ok2 { f } ") + .operationName("X").build() + er = graphQL.execute(ei) + then: + !er.errors.isEmpty() + er.errors[0].message.contains("Unknown operation named 'X'") + } } diff --git a/src/test/groovy/graphql/GraphqlErrorBuilderTest.groovy b/src/test/groovy/graphql/GraphqlErrorBuilderTest.groovy index 944e1fef3..8713100d0 100644 --- a/src/test/groovy/graphql/GraphqlErrorBuilderTest.groovy +++ b/src/test/groovy/graphql/GraphqlErrorBuilderTest.groovy @@ -152,4 +152,66 @@ class GraphqlErrorBuilderTest extends Specification { error.path == null } -} \ No newline at end of file + + def "implements equals/hashCode correctly for matching errors"() { + when: + def firstError = toGraphQLError(first) + def secondError = toGraphQLError(second) + + then: + firstError == secondError + firstError.hashCode() == secondError.hashCode() + + where: + first | second + [message: "msg"] | [message: "msg"] + [message: "msg", locations: [new SourceLocation(1, 2)]] | [message: "msg", locations: [new SourceLocation(1, 2)]] + [message: "msg", errorType: ErrorType.InvalidSyntax] | [message: "msg", errorType: ErrorType.InvalidSyntax] + [message: "msg", path: ["items", 1, "item"]] | [message: "msg", path: ["items", 1, "item"]] + [message: "msg", extensions: [aBoolean: true, aString: "foo"]] | [message: "msg", extensions: [aBoolean: true, aString: "foo"]] + } + + def "implements equals/hashCode correctly for different errors"() { + when: + def firstError = toGraphQLError(first) + def secondError = toGraphQLError(second) + + then: + firstError != secondError + firstError.hashCode() != secondError.hashCode() + + where: + first | second + [message: "msg"] | [message: "different msg"] + [message: "msg", locations: [new SourceLocation(1, 2)]] | [message: "msg", locations: [new SourceLocation(3, 4)]] + [message: "msg", errorType: ErrorType.InvalidSyntax] | [message: "msg", errorType: ErrorType.DataFetchingException] + [message: "msg", path: ["items", "1", "item"]] | [message: "msg", path: ["items"]] + [message: "msg", extensions: [aBoolean: false]] | [message: "msg", extensions: [aString: "foo"]] + } + + private static GraphQLError toGraphQLError(Map errorFields) { + def errorBuilder = GraphQLError.newError(); + errorFields.forEach { key, value -> + if (value != null) { + switch (key) { + case "message": + errorBuilder.message(value as String); + break; + case "locations": + errorBuilder.locations(value as List); + break; + case "errorType": + errorBuilder.errorType(value as ErrorClassification); + break; + case "path": + errorBuilder.path(value as List); + break; + case "extensions": + errorBuilder.extensions(value as Map); + break; + } + } + } + return errorBuilder.build(); + } +} diff --git a/src/test/groovy/graphql/GraphqlErrorHelperTest.groovy b/src/test/groovy/graphql/GraphqlErrorHelperTest.groovy index 88bfecb44..018c9f157 100644 --- a/src/test/groovy/graphql/GraphqlErrorHelperTest.groovy +++ b/src/test/groovy/graphql/GraphqlErrorHelperTest.groovy @@ -106,4 +106,52 @@ class GraphqlErrorHelperTest extends Specification { message : "has extensions" ] } + + def "can parse out a map and make an error"() { + when: + def rawError = [message: "m"] + def graphQLError = GraphqlErrorHelper.fromSpecification(rawError) + then: + graphQLError.getMessage() == "m" + graphQLError.getErrorType() == ErrorType.DataFetchingException // default from error builder + graphQLError.getLocations() == [] + graphQLError.getPath() == null + graphQLError.getExtensions() == null + + when: + rawError = [message: "m"] + graphQLError = GraphQLError.fromSpecification(rawError) // just so we reference the public method + then: + graphQLError.getMessage() == "m" + graphQLError.getErrorType() == ErrorType.DataFetchingException // default from error builder + graphQLError.getLocations() == [] + graphQLError.getPath() == null + graphQLError.getExtensions() == null + + when: + def extensionsMap = [attr1: "a1", attr2: "a2", classification: "CLASSIFICATION-X"] + rawError = [message: "m", path: ["a", "b"], locations: [[line: 2, column: 3]], extensions: extensionsMap] + graphQLError = GraphqlErrorHelper.fromSpecification(rawError) + + then: + graphQLError.getMessage() == "m" + graphQLError.getErrorType().toString() == "CLASSIFICATION-X" + graphQLError.getLocations() == [new SourceLocation(2, 3)] + graphQLError.getPath() == ["a", "b"] + graphQLError.getExtensions() == extensionsMap + + + when: "can do a list of errors" + def rawErrors = [[message: "m0"], [message: "m1"]] + def errors = GraphqlErrorHelper.fromSpecification(rawErrors) + then: + errors.size() == 2 + errors.eachWithIndex { GraphQLError gErr, int i -> + assert gErr.getMessage() == "m" + i + assert gErr.getErrorType() == ErrorType.DataFetchingException // default from error builder + assert gErr.getLocations() == [] + assert gErr.getPath() == null + assert gErr.getExtensions() == null + } + } } diff --git a/src/test/groovy/graphql/GuavaLimitCheck.groovy b/src/test/groovy/graphql/GuavaLimitCheck.groovy new file mode 100644 index 000000000..cc4fc7ff5 --- /dev/null +++ b/src/test/groovy/graphql/GuavaLimitCheck.groovy @@ -0,0 +1,89 @@ +package graphql + +import com.tngtech.archunit.core.domain.JavaClasses +import com.tngtech.archunit.core.importer.ClassFileImporter +import com.tngtech.archunit.core.importer.ImportOption +import spock.lang.Specification + +/* + * We selectively shade in a few classes of Guava, however we want to minimise dependencies so we want to keep this list small. + * This check ensures no new Guava classes are added + */ +class GuavaLimitCheck extends Specification { + + static final String GUAVA_PACKAGE_PREFIX = "com.google.common" + + static final Set ALLOWED_GUAVA_CLASSES = [ + "com.google.common.base.Strings", + "com.google.common.collect.BiMap", + "com.google.common.collect.HashBasedTable", + "com.google.common.collect.HashBiMap", + "com.google.common.collect.HashMultimap", + "com.google.common.collect.HashMultiset", + "com.google.common.collect.ImmutableBiMap", + "com.google.common.collect.ImmutableCollection", + "com.google.common.collect.ImmutableList", + "com.google.common.collect.ImmutableList\$Builder", + "com.google.common.collect.ImmutableListMultimap", + "com.google.common.collect.ImmutableListMultimap\$Builder", + "com.google.common.collect.ImmutableMap", + "com.google.common.collect.ImmutableMap\$Builder", + "com.google.common.collect.ImmutableSet", + "com.google.common.collect.ImmutableSet\$Builder", + "com.google.common.collect.Interner", + "com.google.common.collect.Interners", + "com.google.common.collect.Iterables", + "com.google.common.collect.LinkedHashMultimap", + "com.google.common.collect.Maps", + "com.google.common.collect.Multimap", + "com.google.common.collect.Multimaps", + "com.google.common.collect.Multiset", + "com.google.common.collect.Multisets", + "com.google.common.collect.Sets", + "com.google.common.collect.Sets\$SetView", + "com.google.common.collect.Table" + ] + + def "should identify which classes use prohibited Guava dependencies"() { + given: + JavaClasses importedClasses = new ClassFileImporter() + .withImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_TESTS) + .importPackages("graphql") + + when: + Map> violationsByClass = [:] + + importedClasses.each { javaClass -> + def className = javaClass.name + def guavaUsages = javaClass.getAccessesFromSelf() + .collect { it.targetOwner } + .findAll { it.packageName.startsWith(GUAVA_PACKAGE_PREFIX) && !ALLOWED_GUAVA_CLASSES.contains(it.fullName) } + .toSet() + + if (!guavaUsages.isEmpty()) { + violationsByClass[className] = guavaUsages + } + } + + then: + violationsByClass.isEmpty() + + cleanup: "if the test fails, provide detailed information about which classes have violations" + if (!violationsByClass.isEmpty()) { + def errorMessage = new StringBuilder("Prohibited Guava class usage found:\n") + + violationsByClass.each { className, guavaClasses -> + errorMessage.append("\nClass: ${className} uses these prohibited Guava classes:\n") + guavaClasses.each { guavaClass -> + errorMessage.append(" - ${guavaClass}\n") + } + } + + errorMessage.append("\nEither:\n") + errorMessage.append("1. Preferred option: Replace them with alternatives that don't depend on Guava\n") + errorMessage.append("2. If absolutely necessary: Add these Guava classes to the shade configuration in the build.gradle file\n") + + println errorMessage.toString() + } + } +} diff --git a/src/test/groovy/graphql/Issue2141.groovy b/src/test/groovy/graphql/Issue2141.groovy index 100058c71..c3b00df8d 100644 --- a/src/test/groovy/graphql/Issue2141.groovy +++ b/src/test/groovy/graphql/Issue2141.groovy @@ -24,12 +24,23 @@ class Issue2141 extends Specification { then: schemaStr == '''directive @auth(roles: [String!]) on FIELD_DEFINITION +"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + "Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." diff --git a/src/test/groovy/graphql/LargeSchemaDataFetcherTest.groovy b/src/test/groovy/graphql/LargeSchemaDataFetcherTest.groovy new file mode 100644 index 000000000..1aa971c6e --- /dev/null +++ b/src/test/groovy/graphql/LargeSchemaDataFetcherTest.groovy @@ -0,0 +1,43 @@ +package graphql + + +import graphql.schema.FieldCoordinates +import graphql.schema.GraphQLFieldDefinition +import graphql.schema.PropertyDataFetcher +import graphql.schema.SingletonPropertyDataFetcher +import spock.lang.Specification + +class LargeSchemaDataFetcherTest extends Specification { + + def howManyFields = 100_000 + + def "large schema with lots of fields has the same property data fetcher by default"() { + def sdl = """ + type Query { + ${mkFields()} + } + """ + + when: + def schema = TestUtil.schema(sdl) + def codeRegistry = schema.getCodeRegistry() + def singletonDF = SingletonPropertyDataFetcher.singleton() + + then: + + for (int i = 0; i < howManyFields; i++) { + def fieldName = "f$i" + def fieldDef = GraphQLFieldDefinition.newFieldDefinition().name(fieldName).type(Scalars.GraphQLString).build() + def df = codeRegistry.getDataFetcher(FieldCoordinates.coordinates("Query", fieldName), fieldDef) + assert df == singletonDF + } + } + + def mkFields() { + StringBuilder sb = new StringBuilder() + for (int i = 0; i < howManyFields; i++) { + sb.append("f$i : String\n") + } + return sb.toString() + } +} diff --git a/src/test/groovy/graphql/MutationTest.groovy b/src/test/groovy/graphql/MutationTest.groovy index d99506880..5c872b1f8 100644 --- a/src/test/groovy/graphql/MutationTest.groovy +++ b/src/test/groovy/graphql/MutationTest.groovy @@ -1,7 +1,14 @@ package graphql +import graphql.schema.DataFetcher +import org.awaitility.Awaitility +import org.dataloader.BatchLoader +import org.dataloader.BatchLoaderWithContext +import org.dataloader.DataLoaderFactory +import org.dataloader.DataLoaderRegistry import spock.lang.Specification +import java.util.concurrent.CompletableFuture class MutationTest extends Specification { @@ -102,4 +109,355 @@ class MutationTest extends Specification { executionResult.errors.every({ it instanceof ExceptionWhileDataFetching }) } + + def "simple async mutation"() { + def sdl = """ + type Query { + q : String + } + + type Mutation { + plus1(arg: Int) : Int + plus2(arg: Int) : Int + plus3(arg: Int) : Int + } + """ + + def mutationDF = { env -> + CompletableFuture.supplyAsync { + + def fieldName = env.getField().name + def factor = Integer.parseInt(fieldName.substring(fieldName.length() - 1)) + def value = env.getArgument("arg") + + return value + factor + } + } as DataFetcher + + def schema = TestUtil.schema(sdl, [Mutation: [ + plus1: mutationDF, + plus2: mutationDF, + plus3: mutationDF, + ]]) + + def graphQL = GraphQL.newGraphQL(schema).build() + + when: + def er = graphQL.execute(""" + mutation m { + plus1(arg:10) + plus2(arg:10) + plus3(arg:10) + } + """) + + then: + er.errors.isEmpty() + er.data == [ + plus1: 11, + plus2: 12, + plus3: 13, + ] + } + + def "simple async mutation with DataLoader"() { + def sdl = """ + type Query { + q : String + } + + type Mutation { + plus1(arg: Int) : Int + plus2(arg: Int) : Int + plus3(arg: Int) : Int + } + + """ + + BatchLoader batchLoader = { keys -> + CompletableFuture.supplyAsync { + return keys + } + + } as BatchLoader + + + DataLoaderRegistry dlReg = DataLoaderRegistry.newRegistry() + .register("dl", DataLoaderFactory.newDataLoader(batchLoader)) + .build() + + def mutationDF = { env -> + def fieldName = env.getField().name + def factor = Integer.parseInt(fieldName.substring(fieldName.length() - 1)) + def value = env.getArgument("arg") + + def key = value + factor + return env.getDataLoader("dl").load(key) + } as DataFetcher + + def schema = TestUtil.schema(sdl, [Mutation: [ + plus1: mutationDF, + plus2: mutationDF, + plus3: mutationDF, + ]]) + + + def graphQL = GraphQL.newGraphQL(schema) + .build() + + + def ei = ExecutionInput.newExecutionInput(""" + mutation m { + plus1(arg:10) + plus2(arg:10) + plus3(arg:10) + } + """).dataLoaderRegistry(dlReg).build() + when: + def er = graphQL.execute(ei) + + then: + er.errors.isEmpty() + er.data == [ + plus1: 11, + plus2: 12, + plus3: 13, + ] + } + + /* + This test shows a dataloader being called at the mutation field level, in serial via AsyncSerialExecutionStrategy, and then + again at the sub field level, in parallel, via AsyncExecutionStrategy. + */ + def "more complex async mutation with DataLoader"() { + def sdl = """ + type Query { + q : String + } + + type Mutation { + topLevelF1(arg: Int) : ComplexType + topLevelF2(arg: Int) : ComplexType + topLevelF3(arg: Int) : ComplexType + topLevelF4(arg: Int) : ComplexType + } + + type ComplexType { + f1 : ComplexType + f2 : ComplexType + f3 : ComplexType + f4 : ComplexType + end : String + } + """ + + def emptyComplexMap = [ + f1: null, + f2: null, + f3: null, + f4: null, + ] + + BatchLoaderWithContext fieldBatchLoader = { keys, context -> + assert keys.size() == 2, "since only f1 and f2 are DL based, we will only get 2 key values" + + def batchValue = [ + emptyComplexMap, + emptyComplexMap, + ] + CompletableFuture.supplyAsync { + return batchValue + } + + } as BatchLoaderWithContext + + BatchLoader mutationBatchLoader = { keys -> + CompletableFuture.supplyAsync { + return keys + } + + } as BatchLoader + + + DataLoaderRegistry dlReg = DataLoaderRegistry.newRegistry() + .register("topLevelDL", DataLoaderFactory.newDataLoader(mutationBatchLoader)) + .register("fieldDL", DataLoaderFactory.newDataLoader(fieldBatchLoader)) + .build() + + def mutationDF = { env -> + def fieldName = env.getField().name + def factor = Integer.parseInt(fieldName.substring(fieldName.length() - 1)) + def value = env.getArgument("arg") + + def key = value + factor + return env.getDataLoader("topLevelDL").load(key) + } as DataFetcher + + def fieldDataLoaderDF = { env -> + def fieldName = env.getField().name + def level = env.getExecutionStepInfo().getPath().getLevel() + return env.getDataLoader("fieldDL").load(fieldName, level) + } as DataFetcher + + def fieldDataLoaderNonDF = { env -> + return emptyComplexMap + } as DataFetcher + + def schema = TestUtil.schema(sdl, + [Mutation : [ + topLevelF1: mutationDF, + topLevelF2: mutationDF, + topLevelF3: mutationDF, + topLevelF4: mutationDF, + ], + // only f1 and f3 are using data loaders - f2 and f4 are plain old property based + // so some fields with batch loader and some without + ComplexType: [ + f1: fieldDataLoaderDF, + f2: fieldDataLoaderNonDF, + f3: fieldDataLoaderDF, + f4: fieldDataLoaderNonDF, + ] + ]) + + + def graphQL = GraphQL.newGraphQL(schema) + .build() + + + def ei = ExecutionInput.newExecutionInput(""" + mutation m { + topLevelF1(arg:10) { + f1 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f2 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f3 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f4 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + } + + topLevelF2(arg:10) { + f1 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f2 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f3 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f4 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + } + + topLevelF3(arg:10) { + f1 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f2 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f3 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f4 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + } + + topLevelF4(arg:10) { + f1 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f2 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f3 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + f4 { + f1 { end } + f2 { end } + f3 { end } + f4 { end } + } + } + } + """).dataLoaderRegistry(dlReg).build() + when: + def cf = graphQL.executeAsync(ei) + + Awaitility.await().until { cf.isDone() } + def er = cf.join() + + then: + + er.errors.isEmpty() + + def expectedMap = [ + f1: [f1: [end: null], f2: [end: null], f3: [end: null], f4: [end: null]], + f2: [f1: [end: null], f2: [end: null], f3: [end: null], f4: [end: null]], + f3: [f1: [end: null], f2: [end: null], f3: [end: null], f4: [end: null]], + f4: [f1: [end: null], f2: [end: null], f3: [end: null], f4: [end: null]], + ] + + er.data == [ + topLevelF1: expectedMap, + topLevelF2: expectedMap, + topLevelF3: expectedMap, + topLevelF4: expectedMap, + ] + } } diff --git a/src/test/groovy/graphql/ParseAndValidateTest.groovy b/src/test/groovy/graphql/ParseAndValidateTest.groovy index 949b4aeb5..fa66c3cbe 100644 --- a/src/test/groovy/graphql/ParseAndValidateTest.groovy +++ b/src/test/groovy/graphql/ParseAndValidateTest.groovy @@ -1,6 +1,11 @@ package graphql +import graphql.language.Document +import graphql.language.SourceLocation import graphql.parser.InvalidSyntaxException +import graphql.parser.Parser +import graphql.schema.idl.SchemaParser +import graphql.schema.idl.UnExecutableSchemaGenerator import graphql.validation.ValidationError import graphql.validation.ValidationErrorType import graphql.validation.rules.NoUnusedFragments @@ -155,4 +160,79 @@ class ParseAndValidateTest extends Specification { then: !rs.errors.isEmpty() // all rules apply - we have errors } + + def "validation error raised if mutation operation does not exist in schema"() { + def sdl = ''' + type Query { + myQuery : String! + } + ''' + + def registry = new SchemaParser().parse(sdl) + def schema = UnExecutableSchemaGenerator.makeUnExecutableSchema(registry) + String request = "mutation MyMutation { myMutation }" + + when: + Document inputDocument = new Parser().parseDocument(request) + List errors = ParseAndValidate.validate(schema, inputDocument) + + then: + errors.size() == 1 + def error = errors.first() + error.validationErrorType == ValidationErrorType.UnknownOperation + error.message == "Validation error (UnknownOperation): The 'Mutation' operation is not supported by the schema" + error.locations == [new SourceLocation(1, 1)] + } + + def "validation error raised if subscription operation does not exist in schema"() { + def sdl = ''' + type Query { + myQuery : String! + } + ''' + + def registry = new SchemaParser().parse(sdl) + def schema = UnExecutableSchemaGenerator.makeUnExecutableSchema(registry) + + String request = "subscription MySubscription { mySubscription }" + + when: + Document inputDocument = new Parser().parseDocument(request) + List errors = ParseAndValidate.validate(schema, inputDocument) + + then: + errors.size() == 1 + def error = errors.first() + error.validationErrorType == ValidationErrorType.UnknownOperation + error.message == "Validation error (UnknownOperation): The 'Subscription' operation is not supported by the schema" + error.locations == [new SourceLocation(1, 1)] + } + + def "known operation validation rule checks all operations in document"() { + def sdl = ''' + type Query { + myQuery : String! + } + ''' + + def registry = new SchemaParser().parse(sdl) + def schema = UnExecutableSchemaGenerator.makeUnExecutableSchema(registry) + String request = "mutation MyMutation { myMutation } subscription MySubscription { mySubscription }" + + when: + Document inputDocument = new Parser().parseDocument(request) + List errors = ParseAndValidate.validate(schema, inputDocument) + + then: + errors.size() == 2 + def error1 = errors.get(0) + error1.validationErrorType == ValidationErrorType.UnknownOperation + error1.message == "Validation error (UnknownOperation): The 'Mutation' operation is not supported by the schema" + error1.locations == [new SourceLocation(1, 1)] + + def error2 = errors.get(1) + error2.validationErrorType == ValidationErrorType.UnknownOperation + error2.message == "Validation error (UnknownOperation): The 'Subscription' operation is not supported by the schema" + error2.locations == [new SourceLocation(1, 36)] + } } diff --git a/src/test/groovy/graphql/StarWarsIntrospectionTests.groovy b/src/test/groovy/graphql/StarWarsIntrospectionTests.groovy index 9b374bfbd..75411f6af 100644 --- a/src/test/groovy/graphql/StarWarsIntrospectionTests.groovy +++ b/src/test/groovy/graphql/StarWarsIntrospectionTests.groovy @@ -430,6 +430,6 @@ class StarWarsIntrospectionTests extends Specification { schemaParts.get('mutationType').size() == 1 schemaParts.get('subscriptionType') == null schemaParts.get('types').size() == 17 - schemaParts.get('directives').size() == 5 + schemaParts.get('directives').size() == 7 } } diff --git a/src/test/groovy/graphql/analysis/values/ValueTraverserTest.groovy b/src/test/groovy/graphql/analysis/values/ValueTraverserTest.groovy index 8d524f8bc..1a60b3585 100644 --- a/src/test/groovy/graphql/analysis/values/ValueTraverserTest.groovy +++ b/src/test/groovy/graphql/analysis/values/ValueTraverserTest.groovy @@ -21,7 +21,6 @@ import graphql.schema.GraphQLObjectType import graphql.schema.GraphQLScalarType import graphql.schema.idl.SchemaDirectiveWiring import graphql.schema.idl.SchemaDirectiveWiringEnvironment -import org.jetbrains.annotations.Nullable import spock.lang.Specification import static graphql.schema.idl.RuntimeWiring.newRuntimeWiring @@ -323,7 +322,7 @@ class ValueTraverserTest extends Specification { ] def visitor = new ValueVisitor() { @Override - Object visitArgumentValue(@Nullable Object coercedValue, GraphQLArgument graphQLArgument, ValueVisitor.InputElements inputElements) { + Object visitArgumentValue(Object coercedValue, GraphQLArgument graphQLArgument, ValueVisitor.InputElements inputElements) { if (graphQLArgument.name == "arg2") { return [name: "Harry Potter", age: 54] } @@ -402,7 +401,7 @@ class ValueTraverserTest extends Specification { def visitor = new ValueVisitor() { @Override - Object visitScalarValue(@Nullable Object coercedValue, GraphQLScalarType inputType, ValueVisitor.InputElements inputElements) { + Object visitScalarValue(Object coercedValue, GraphQLScalarType inputType, ValueVisitor.InputElements inputElements) { if (coercedValue == "Tom Riddle") { return "Happy Potter" } @@ -410,7 +409,7 @@ class ValueTraverserTest extends Specification { } @Override - Object visitAppliedDirectiveArgumentValue(@Nullable Object coercedValue, GraphQLAppliedDirectiveArgument graphQLAppliedDirectiveArgument, ValueVisitor.InputElements inputElements) { + Object visitAppliedDirectiveArgumentValue(Object coercedValue, GraphQLAppliedDirectiveArgument graphQLAppliedDirectiveArgument, ValueVisitor.InputElements inputElements) { if (graphQLAppliedDirectiveArgument.name == "arg2") { return [name: "Harry Potter", age: 54] } diff --git a/src/test/groovy/graphql/execution/AsyncExecutionStrategyTest.groovy b/src/test/groovy/graphql/execution/AsyncExecutionStrategyTest.groovy index 8769bb79a..0b7b5f2a1 100644 --- a/src/test/groovy/graphql/execution/AsyncExecutionStrategyTest.groovy +++ b/src/test/groovy/graphql/execution/AsyncExecutionStrategyTest.groovy @@ -1,8 +1,9 @@ package graphql.execution +import graphql.EngineRunningState import graphql.ErrorType +import graphql.ExecutionInput import graphql.ExecutionResult -import graphql.ExperimentalApi import graphql.GraphQLContext import graphql.execution.instrumentation.ExecutionStrategyInstrumentationContext import graphql.execution.instrumentation.InstrumentationState @@ -108,7 +109,9 @@ abstract class AsyncExecutionStrategyTest extends Specification { .instrumentation(SimplePerformantInstrumentation.INSTANCE) .valueUnboxer(ValueUnboxer.DEFAULT) .graphQLContext(graphqlContextMock) + .executionInput(ExecutionInput.newExecutionInput("{}").build()) .locale(Locale.getDefault()) + .engineRunningState(new EngineRunningState()) .build() ExecutionStrategyParameters executionStrategyParameters = ExecutionStrategyParameters .newParameters() @@ -150,6 +153,8 @@ abstract class AsyncExecutionStrategyTest extends Specification { .instrumentation(SimplePerformantInstrumentation.INSTANCE) .locale(Locale.getDefault()) .graphQLContext(graphqlContextMock) + .executionInput(ExecutionInput.newExecutionInput("{}").build()) + .engineRunningState(new EngineRunningState()) .build() ExecutionStrategyParameters executionStrategyParameters = ExecutionStrategyParameters .newParameters() @@ -192,6 +197,8 @@ abstract class AsyncExecutionStrategyTest extends Specification { .valueUnboxer(ValueUnboxer.DEFAULT) .instrumentation(SimplePerformantInstrumentation.INSTANCE) .graphQLContext(graphqlContextMock) + .executionInput(ExecutionInput.newExecutionInput("{}").build()) + .engineRunningState(new EngineRunningState()) .locale(Locale.getDefault()) .build() ExecutionStrategyParameters executionStrategyParameters = ExecutionStrategyParameters @@ -235,6 +242,8 @@ abstract class AsyncExecutionStrategyTest extends Specification { .valueUnboxer(ValueUnboxer.DEFAULT) .locale(Locale.getDefault()) .graphQLContext(graphqlContextMock) + .executionInput(ExecutionInput.newExecutionInput("{}").build()) + .engineRunningState(new EngineRunningState()) .build() ExecutionStrategyParameters executionStrategyParameters = ExecutionStrategyParameters .newParameters() @@ -274,7 +283,9 @@ abstract class AsyncExecutionStrategyTest extends Specification { .operationDefinition(operation) .valueUnboxer(ValueUnboxer.DEFAULT) .graphQLContext(graphqlContextMock) + .executionInput(ExecutionInput.newExecutionInput("{}").build()) .locale(Locale.getDefault()) + .engineRunningState(new EngineRunningState()) .instrumentation(new SimplePerformantInstrumentation() { @Override diff --git a/src/test/groovy/graphql/execution/AsyncSerialExecutionStrategyTest.groovy b/src/test/groovy/graphql/execution/AsyncSerialExecutionStrategyTest.groovy index 1d811bd3b..efb67639d 100644 --- a/src/test/groovy/graphql/execution/AsyncSerialExecutionStrategyTest.groovy +++ b/src/test/groovy/graphql/execution/AsyncSerialExecutionStrategyTest.groovy @@ -1,5 +1,7 @@ package graphql.execution +import graphql.EngineRunningState +import graphql.ExecutionInput import graphql.GraphQLContext import graphql.execution.instrumentation.SimplePerformantInstrumentation import graphql.language.Field @@ -106,6 +108,8 @@ class AsyncSerialExecutionStrategyTest extends Specification { .valueUnboxer(ValueUnboxer.DEFAULT) .locale(Locale.getDefault()) .graphQLContext(GraphQLContext.getDefault()) + .executionInput(ExecutionInput.newExecutionInput("{}").build()) + .engineRunningState(new EngineRunningState()) .build() ExecutionStrategyParameters executionStrategyParameters = ExecutionStrategyParameters .newParameters() @@ -152,6 +156,8 @@ class AsyncSerialExecutionStrategyTest extends Specification { .valueUnboxer(ValueUnboxer.DEFAULT) .locale(Locale.getDefault()) .graphQLContext(GraphQLContext.getDefault()) + .executionInput(ExecutionInput.newExecutionInput("{}").build()) + .engineRunningState(new EngineRunningState()) .build() ExecutionStrategyParameters executionStrategyParameters = ExecutionStrategyParameters .newParameters() @@ -166,35 +172,35 @@ class AsyncSerialExecutionStrategyTest extends Specification { then: !result.isDone() - 1 * df1.get(_,_,_) >> cf1 - 0 * df2.get(_,_,_) >> cf2 - 0 * df3.get(_,_,_) >> cf3 + 1 * df1.get(_, _, _) >> cf1 + 0 * df2.get(_, _, _) >> cf2 + 0 * df3.get(_, _, _) >> cf3 when: cf1.complete("world1") then: !result.isDone() - 0 * df1.get(_,_,_) >> cf1 - 1 * df2.get(_,_,_) >> cf2 - 0 * df3.get(_,_,_) >> cf3 + 0 * df1.get(_, _, _) >> cf1 + 1 * df2.get(_, _, _) >> cf2 + 0 * df3.get(_, _, _) >> cf3 when: cf2.complete("world2") then: !result.isDone() - 0 * df1.get(_,_,_) >> cf1 - 0 * df2.get(_,_,_) >> cf2 - 1 * df3.get(_,_,_) >> cf3 + 0 * df1.get(_, _, _) >> cf1 + 0 * df2.get(_, _, _) >> cf2 + 1 * df3.get(_, _, _) >> cf3 when: cf3.complete("world3") then: - 0 * df1.get(_,_,_) >> cf1 - 0 * df2.get(_,_,_) >> cf2 - 0 * df3.get(_,_,_) >> cf3 + 0 * df1.get(_, _, _) >> cf1 + 0 * df2.get(_, _, _) >> cf2 + 0 * df3.get(_, _, _) >> cf3 result.isDone() result.get().data == ['hello': 'world1', 'hello2': 'world2', 'hello3': 'world3'] } diff --git a/src/test/groovy/graphql/execution/ExecutionContextBuilderTest.groovy b/src/test/groovy/graphql/execution/ExecutionContextBuilderTest.groovy index 6fdbeef3f..2512cac1b 100644 --- a/src/test/groovy/graphql/execution/ExecutionContextBuilderTest.groovy +++ b/src/test/groovy/graphql/execution/ExecutionContextBuilderTest.groovy @@ -1,5 +1,6 @@ package graphql.execution + import graphql.GraphQLContext import graphql.execution.instrumentation.Instrumentation import graphql.language.Document @@ -137,24 +138,24 @@ class ExecutionContextBuilderTest extends Specification { given: def oldCoercedVariables = CoercedVariables.emptyVariables() def executionContextOld = new ExecutionContextBuilder() - .instrumentation(instrumentation) - .queryStrategy(queryStrategy) - .mutationStrategy(mutationStrategy) - .subscriptionStrategy(subscriptionStrategy) - .graphQLSchema(schema) - .executionId(executionId) - .graphQLContext(graphQLContext) - .root(root) - .operationDefinition(operation) - .coercedVariables(oldCoercedVariables) - .fragmentsByName([MyFragment: fragment]) - .dataLoaderRegistry(dataLoaderRegistry) - .build() + .instrumentation(instrumentation) + .queryStrategy(queryStrategy) + .mutationStrategy(mutationStrategy) + .subscriptionStrategy(subscriptionStrategy) + .graphQLSchema(schema) + .executionId(executionId) + .graphQLContext(graphQLContext) + .root(root) + .operationDefinition(operation) + .coercedVariables(oldCoercedVariables) + .fragmentsByName([MyFragment: fragment]) + .dataLoaderRegistry(dataLoaderRegistry) + .build() when: def coercedVariables = CoercedVariables.of([var: 'value']) def executionContext = executionContextOld.transform(builder -> builder - .coercedVariables(coercedVariables)) + .coercedVariables(coercedVariables)) then: executionContext.executionId == executionId @@ -231,9 +232,39 @@ class ExecutionContextBuilderTest extends Specification { when: def executionContext = executionContextOld .transform(builder -> builder - .dataLoaderDispatcherStrategy(mockDataLoaderDispatcherStrategy)) + .dataLoaderDispatcherStrategy(mockDataLoaderDispatcherStrategy)) then: executionContext.getDataLoaderDispatcherStrategy() == mockDataLoaderDispatcherStrategy } + + def "can detect operation type"() { + when: + def executionContext = new ExecutionContextBuilder() + .instrumentation(instrumentation) + .queryStrategy(queryStrategy) + .mutationStrategy(mutationStrategy) + .subscriptionStrategy(subscriptionStrategy) + .graphQLSchema(schema) + .executionId(executionId) + .graphQLContext(graphQLContext) + .root(root) + .operationDefinition(operation) + .fragmentsByName([MyFragment: fragment]) + .dataLoaderRegistry(dataLoaderRegistry) + .operationDefinition(OperationDefinition.newOperationDefinition().operation(opType).build()) + .build() + + then: + executionContext.isQueryOperation() == isQuery + executionContext.isMutationOperation() == isMutation + executionContext.isSubscriptionOperation() == isSubscription + + where: + opType | isQuery | isMutation | isSubscription + OperationDefinition.Operation.QUERY | true | false | false + OperationDefinition.Operation.MUTATION | false | true | false + OperationDefinition.Operation.SUBSCRIPTION | false | false | true + } + } diff --git a/src/test/groovy/graphql/execution/ExecutionStrategyTest.groovy b/src/test/groovy/graphql/execution/ExecutionStrategyTest.groovy index 6a3d72ec0..ca513d5ba 100644 --- a/src/test/groovy/graphql/execution/ExecutionStrategyTest.groovy +++ b/src/test/groovy/graphql/execution/ExecutionStrategyTest.groovy @@ -1,7 +1,9 @@ package graphql.execution import graphql.Assert +import graphql.EngineRunningState import graphql.ExceptionWhileDataFetching +import graphql.ExecutionInput import graphql.ExecutionResult import graphql.GraphQLContext import graphql.GraphqlErrorBuilder @@ -78,10 +80,12 @@ class ExecutionStrategyTest extends Specification { .subscriptionStrategy(executionStrategy) .coercedVariables(CoercedVariables.of(variables)) .graphQLContext(GraphQLContext.newContext().of("key", "context").build()) + .executionInput(ExecutionInput.newExecutionInput("{}").build()) .root("root") .dataLoaderRegistry(new DataLoaderRegistry()) .locale(Locale.getDefault()) .valueUnboxer(ValueUnboxer.DEFAULT) + .engineRunningState(new EngineRunningState()) new ExecutionContext(builder) } @@ -125,6 +129,7 @@ class ExecutionStrategyTest extends Specification { builder.operationDefinition(operation) builder.executionId(ExecutionId.generate()) + builder.executionInput(ExecutionInput.newExecutionInput("{}").build()) def executionContext = builder.build() def result = new Object() @@ -541,10 +546,10 @@ class ExecutionStrategyTest extends Specification { DataFetchingEnvironment environment when: - executionStrategy.resolveField(executionContext, parameters) + executionStrategy.resolveFieldWithInfo(executionContext, parameters) then: - 1 * dataFetcher.get(_,_,_) >> { environment = (it[2] as Supplier).get() } + 1 * dataFetcher.get(_, _, _) >> { environment = (it[2] as Supplier).get() } environment.fieldDefinition == fieldDefinition environment.graphQLSchema == schema environment.graphQlContext.get("key") == "context" @@ -636,7 +641,7 @@ class ExecutionStrategyTest extends Specification { } when: - overridingStrategy.resolveField(executionContext, parameters) + overridingStrategy.resolveFieldWithInfo(executionContext, parameters) then: handlerCalled == true @@ -646,29 +651,6 @@ class ExecutionStrategyTest extends Specification { exceptionWhileDataFetching.getMessage().contains('This is the exception you are looking for') } - def "test that the old legacy method is still useful for those who derive new execution strategies"() { - - def expectedException = new UnsupportedOperationException("This is the exception you are looking for") - - //noinspection GroovyAssignabilityCheck,GroovyUnusedAssignment - def (ExecutionContext executionContext, GraphQLFieldDefinition fieldDefinition, ResultPath expectedPath, ExecutionStrategyParameters parameters, Field field, SourceLocation sourceLocation) = exceptionSetupFixture(expectedException) - - - ExecutionStrategy overridingStrategy = new ExecutionStrategy() { - @Override - CompletableFuture execute(ExecutionContext ec, ExecutionStrategyParameters p) throws NonNullableFieldWasNullException { - null - } - } - - when: - overridingStrategy.resolveField(executionContext, parameters) - - then: - executionContext.errors.size() == 1 - def exceptionWhileDataFetching = executionContext.errors[0] as ExceptionWhileDataFetching - exceptionWhileDataFetching.getMessage().contains('This is the exception you are looking for') - } def "#2519 data fetcher errors for a given field appear in FetchedResult within instrumentation"() { def expectedException = new UnsupportedOperationException("This is the exception you are looking for") @@ -700,7 +682,7 @@ class ExecutionStrategyTest extends Specification { } when: - overridingStrategy.resolveField(instrumentedExecutionContext, params) + overridingStrategy.resolveFieldWithInfo(instrumentedExecutionContext, params) then: FetchedValue fetchedValue = instrumentation.fetchedValues.get("someField") @@ -761,7 +743,8 @@ class ExecutionStrategyTest extends Specification { .build() when: - executionStrategy.resolveField(executionContext, parameters).join() + FieldValueInfo fieldValueInfo = (executionStrategy.resolveFieldWithInfo(executionContext, parameters) as CompletableFuture).join() + (fieldValueInfo.fieldValueObject as CompletableFuture).join() then: thrown(CompletionException) diff --git a/src/test/groovy/graphql/execution/ExecutionTest.groovy b/src/test/groovy/graphql/execution/ExecutionTest.groovy index 7130beca0..6d207ae1a 100644 --- a/src/test/groovy/graphql/execution/ExecutionTest.groovy +++ b/src/test/groovy/graphql/execution/ExecutionTest.groovy @@ -1,5 +1,6 @@ package graphql.execution +import graphql.EngineRunningState import graphql.ExecutionInput import graphql.ExecutionResult import graphql.ExecutionResultImpl @@ -51,7 +52,7 @@ class ExecutionTest extends Specification { def document = parser.parseDocument(query) when: - execution.execute(document, MutationSchema.schema, ExecutionId.generate(), emptyExecutionInput, instrumentationState) + execution.execute(document, MutationSchema.schema, ExecutionId.generate(), emptyExecutionInput, instrumentationState, new EngineRunningState(emptyExecutionInput)) then: queryStrategy.execute == 1 @@ -71,7 +72,7 @@ class ExecutionTest extends Specification { def document = parser.parseDocument(query) when: - execution.execute(document, MutationSchema.schema, ExecutionId.generate(), emptyExecutionInput, instrumentationState) + execution.execute(document, MutationSchema.schema, ExecutionId.generate(), emptyExecutionInput, instrumentationState, new EngineRunningState(emptyExecutionInput)) then: queryStrategy.execute == 0 @@ -91,7 +92,7 @@ class ExecutionTest extends Specification { def document = parser.parseDocument(query) when: - execution.execute(document, MutationSchema.schema, ExecutionId.generate(), emptyExecutionInput, instrumentationState) + execution.execute(document, MutationSchema.schema, ExecutionId.generate(), emptyExecutionInput, instrumentationState, new EngineRunningState(emptyExecutionInput)) then: queryStrategy.execute == 0 @@ -128,7 +129,7 @@ class ExecutionTest extends Specification { when: - execution.execute(document, MutationSchema.schema, ExecutionId.generate(), emptyExecutionInput, instrumentationState) + execution.execute(document, MutationSchema.schema, ExecutionId.generate(), emptyExecutionInput, instrumentationState, new EngineRunningState(emptyExecutionInput)) then: queryStrategy.execute == 0 diff --git a/src/test/groovy/graphql/execution/ExperimentalDisableErrorPropagationTest.groovy b/src/test/groovy/graphql/execution/ExperimentalDisableErrorPropagationTest.groovy new file mode 100644 index 000000000..366c95426 --- /dev/null +++ b/src/test/groovy/graphql/execution/ExperimentalDisableErrorPropagationTest.groovy @@ -0,0 +1,114 @@ +package graphql.execution + +import graphql.Directives +import graphql.ExecutionInput +import graphql.TestUtil +import spock.lang.Specification + +class ExperimentalDisableErrorPropagationTest extends Specification { + + void setup() { + Directives.setExperimentalDisableErrorPropagationEnabled(true) + } + + def "with experimental_disableErrorPropagation, null is returned"() { + + def sdl = ''' + type Query { + foo : Int! + } + directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + ''' + + def graphql = TestUtil.graphQL(sdl).build() + + def query = ''' + query GetFoo @experimental_disableErrorPropagation { foo } + ''' + when: + + ExecutionInput ei = ExecutionInput.newExecutionInput(query).root( + [foo: null] + ).build() + + def er = graphql.execute(ei) + + then: + er.data != null + er.data.foo == null + er.errors[0].path.toList() == ["foo"] + } + + def "without experimental_disableErrorPropagation, error is propagated"() { + + def sdl = ''' + type Query { + foo : Int! + } + directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + ''' + + def graphql = TestUtil.graphQL(sdl).build() + + def query = ''' + query GetFoo { foo } + ''' + when: + + ExecutionInput ei = ExecutionInput.newExecutionInput(query).root( + [foo: null] + ).build() + + def er = graphql.execute(ei) + + then: + er.data == null + er.errors[0].message == "The field at path '/foo' was declared as a non null type, but the code involved in retrieving data has wrongly returned a null value. The graphql specification requires that the parent field be set to null, or if that is non nullable that it bubble up null to its parent and so on. The non-nullable type is 'Int' within parent type 'Query'" + er.errors[0].path.toList() == ["foo"] + } + + def "With experimental_disableErrorPropagation JVM disabled, error is propagated"() { + def sdl = ''' + type Query { + foo : Int! + } + directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + ''' + + def graphql = TestUtil.graphQL(sdl).build() + + def query = ''' + query GetFoo @experimental_disableErrorPropagation { foo } + ''' + when: + + Directives.setExperimentalDisableErrorPropagationEnabled(false) // JVM wide + + ExecutionInput ei = ExecutionInput.newExecutionInput(query).root( + [foo: null] + ).build() + + def er = graphql.execute(ei) + + then: + er.data == null + er.errors[0].message == "The field at path '/foo' was declared as a non null type, but the code involved in retrieving data has wrongly returned a null value. The graphql specification requires that the parent field be set to null, or if that is non nullable that it bubble up null to its parent and so on. The non-nullable type is 'Int' within parent type 'Query'" + er.errors[0].path.toList() == ["foo"] + } + + def "when @experimental_disableErrorPropagation is not added to the schema operation is gets added by schema code"() { + + def sdl = ''' + type Query { + foo : Int! + } + ''' + + when: + def graphql = TestUtil.graphQL(sdl).build() + + then: + graphql.getGraphQLSchema().getDirective(Directives.ExperimentalDisableErrorPropagationDirective.getName()) === Directives.ExperimentalDisableErrorPropagationDirective + } + +} diff --git a/src/test/groovy/graphql/execution/NonNullableFieldValidatorTest.groovy b/src/test/groovy/graphql/execution/NonNullableFieldValidatorTest.groovy index b288faff0..34a48affe 100644 --- a/src/test/groovy/graphql/execution/NonNullableFieldValidatorTest.groovy +++ b/src/test/groovy/graphql/execution/NonNullableFieldValidatorTest.groovy @@ -7,13 +7,15 @@ import static graphql.schema.GraphQLNonNull.nonNull class NonNullableFieldValidatorTest extends Specification { - ExecutionContext context = Mock(ExecutionContext) - def parameters = Mock(ExecutionStrategyParameters) { getPath() >> ResultPath.rootPath() } def "non nullable field throws exception"() { + ExecutionContext context = Mock(ExecutionContext) { + propagateErrorsOnNonNullContractFailure() >> true + } + ExecutionStepInfo typeInfo = ExecutionStepInfo.newExecutionStepInfo().type(nonNull(GraphQLString)).build() NonNullableFieldValidator validator = new NonNullableFieldValidator(context, typeInfo) @@ -27,6 +29,10 @@ class NonNullableFieldValidatorTest extends Specification { } def "nullable field does not throw exception"() { + ExecutionContext context = Mock(ExecutionContext) { + propagateErrorsOnNonNullContractFailure() >> true + } + ExecutionStepInfo typeInfo = ExecutionStepInfo.newExecutionStepInfo().type(GraphQLString).build() NonNullableFieldValidator validator = new NonNullableFieldValidator(context, typeInfo) @@ -37,4 +43,20 @@ class NonNullableFieldValidatorTest extends Specification { then: result == null } + + def "non nullable field returns null if errors are not propagated"() { + ExecutionContext context = Mock(ExecutionContext) { + propagateErrorsOnNonNullContractFailure() >> false + } + + ExecutionStepInfo typeInfo = ExecutionStepInfo.newExecutionStepInfo().type(nonNull(GraphQLString)).build() + + NonNullableFieldValidator validator = new NonNullableFieldValidator(context, typeInfo) + + when: + def result = validator.validate(parameters, null) + + then: + result == null + } } diff --git a/src/test/groovy/graphql/execution/ResultPathTest.groovy b/src/test/groovy/graphql/execution/ResultPathTest.groovy index 8242a740b..a7fe960f1 100644 --- a/src/test/groovy/graphql/execution/ResultPathTest.groovy +++ b/src/test/groovy/graphql/execution/ResultPathTest.groovy @@ -212,6 +212,13 @@ class ResultPathTest extends Specification { path.toList() == ["a", "b"] } + def "pass any other object than string or int"(){ + when: + ResultPath.fromList(["a", "b", true]) + + then: + notThrown(ClassCastException) + } def "can append paths"() { when: diff --git a/src/test/groovy/graphql/execution/ValuesResolverTest.groovy b/src/test/groovy/graphql/execution/ValuesResolverTest.groovy index 97af99704..b9256f130 100644 --- a/src/test/groovy/graphql/execution/ValuesResolverTest.groovy +++ b/src/test/groovy/graphql/execution/ValuesResolverTest.groovy @@ -2,7 +2,6 @@ package graphql.execution import graphql.Directives import graphql.ErrorType -import graphql.ExecutionInput import graphql.GraphQLContext import graphql.GraphQLException import graphql.TestUtil diff --git a/src/test/groovy/graphql/execution/directives/QueryDirectivesImplTest.groovy b/src/test/groovy/graphql/execution/directives/QueryDirectivesImplTest.groovy index 227681b55..80b1bbbd5 100644 --- a/src/test/groovy/graphql/execution/directives/QueryDirectivesImplTest.groovy +++ b/src/test/groovy/graphql/execution/directives/QueryDirectivesImplTest.groovy @@ -4,6 +4,9 @@ import graphql.GraphQLContext import graphql.TestUtil import graphql.execution.CoercedVariables import graphql.execution.MergedField +import graphql.execution.NormalizedVariables +import graphql.language.IntValue +import graphql.normalized.NormalizedInputValue import spock.lang.Specification import static graphql.language.AstPrinter.printAst @@ -32,7 +35,10 @@ class QueryDirectivesImplTest extends Specification { def mergedField = MergedField.newMergedField([f1, f2]).build() - def impl = new QueryDirectivesImpl(mergedField, schema, [var: 10], GraphQLContext.getDefault(), Locale.getDefault()) + def impl = new QueryDirectivesImpl(mergedField, schema, + CoercedVariables.of([var: 10]), + { -> NormalizedVariables.of([var: new NormalizedInputValue("type", IntValue.of(10))]) }, + GraphQLContext.getDefault(), Locale.getDefault()) when: def directives = impl.getImmediateDirectivesByName() @@ -77,6 +83,7 @@ class QueryDirectivesImplTest extends Specification { .mergedField(mergedField) .schema(schema) .coercedVariables(CoercedVariables.of([var: 10])) + .normalizedVariables({ NormalizedVariables.of([var: new NormalizedInputValue("type", IntValue.of(10))]) }) .graphQLContext(GraphQLContext.getDefault()) .locale(Locale.getDefault()) .build() diff --git a/src/test/groovy/graphql/execution/directives/QueryDirectivesIntegrationTest.groovy b/src/test/groovy/graphql/execution/directives/QueryDirectivesIntegrationTest.groovy index 89a5d85a0..8c907862a 100644 --- a/src/test/groovy/graphql/execution/directives/QueryDirectivesIntegrationTest.groovy +++ b/src/test/groovy/graphql/execution/directives/QueryDirectivesIntegrationTest.groovy @@ -1,8 +1,14 @@ package graphql.execution.directives + import graphql.GraphQL import graphql.TestUtil +import graphql.execution.RawVariables +import graphql.language.IntValue +import graphql.normalized.ExecutableNormalizedOperationFactory +import graphql.normalized.NormalizedInputValue import graphql.schema.DataFetcher +import graphql.schema.FieldCoordinates import spock.lang.Specification /** @@ -88,7 +94,7 @@ class QueryDirectivesIntegrationTest extends Specification { capturedDirectives = [:] } - def "can collector directives as expected"() { + def "can collect directives as expected"() { when: def er = execute(pathologicalQuery) then: @@ -106,6 +112,36 @@ class QueryDirectivesIntegrationTest extends Specification { joinArgs(immediate) == "cached(forMillis:5),cached(forMillis:10)" } + def "can collect merged field directives as expected"() { + when: + def query = """ + query Books { + books(searchString: "monkey") { + review @timeout(afterMillis: 10) @cached(forMillis : 10) + review @timeout(afterMillis: 100) @cached(forMillis : 100) + } + } + + """ + def er = execute(query) + then: + er.errors.isEmpty() + + def immediateMap = capturedDirectives["review"].getImmediateAppliedDirectivesByName() + def entries = immediateMap.entrySet().collectEntries({ + [(it.getKey()): joinArgs(it.getValue())] + }) + entries == [cached : "cached(forMillis:10),cached(forMillis:100)", + timeout: "timeout(afterMillis:10),timeout(afterMillis:100)" + ] + + def immediate = capturedDirectives["review"].getImmediateAppliedDirective("cached") + joinArgs(immediate) == "cached(forMillis:10),cached(forMillis:100)" + + def immediate2 = capturedDirectives["review"].getImmediateAppliedDirective("timeout") + joinArgs(immediate2) == "timeout(afterMillis:10),timeout(afterMillis:100)" + } + def "wont create directives for peer fields accidentally"() { def query = '''query Books { books(searchString: "monkey") { @@ -134,4 +170,68 @@ class QueryDirectivesIntegrationTest extends Specification { joinArgs(immediate) == "cached(forMillis:10)" } + def "can capture directive argument values inside ENO path"() { + def query = TestUtil.parseQuery(pathologicalQuery) + when: + def eno = ExecutableNormalizedOperationFactory.createExecutableNormalizedOperationWithRawVariables( + schema, query, "Books", RawVariables.emptyVariables()) + + + then: + def booksENF = eno.getTopLevelFields()[0] + booksENF != null + def bookQueryDirectives = eno.getQueryDirectives(booksENF) + bookQueryDirectives.immediateAppliedDirectivesByName.isEmpty() + + def reviewField = eno.getCoordinatesToNormalizedFields().get(FieldCoordinates.coordinates("Book", "review")) + def reviewQueryDirectives = eno.getQueryDirectives(reviewField[0]) + def reviewImmediateDirectivesMap = reviewQueryDirectives.immediateAppliedDirectivesByName + def argInputValues = simplifiedInputValuesWithState(reviewImmediateDirectivesMap) + argInputValues == [ + timeout: [ + [timeout: [[afterMillis: 5]]], [timeout: [[afterMillis: 28]]], [timeout: [[afterMillis: 10]]] + ], + cached : [ + [cached: [[forMillis: 5]]], [cached: [[forMillis: 10]]] + ] + ] + + // normalised values are AST values + def normalizedValues = simplifiedNormalizedValues(reviewQueryDirectives.getNormalizedInputValueByImmediateAppliedDirectives()) + normalizedValues == [ + timeout: [ + [afterMillis: 5], [afterMillis: 28], [afterMillis: 10]], + cached : [ + [forMillis: 5], [forMillis: 10]] + ] + + } + + def simplifiedInputValuesWithState(Map> mapOfDirectives) { + def simpleMap = [:] + mapOfDirectives.forEach { k, listOfDirectives -> + + def dirVals = listOfDirectives.collect { qd -> + def argVals = qd.getArguments().collect { arg -> + def argValue = arg.getArgumentValue() + return [(arg.name): argValue?.value] + } + return [(qd.name): argVals] + } + simpleMap[k] = dirVals + } + return simpleMap + } + + def simplifiedNormalizedValues(Map> mapOfDirectives) { + Map>> simpleMap = new LinkedHashMap<>() + mapOfDirectives.forEach { qd, argMap -> + def argVals = argMap.collect { entry -> + def argValueAst = entry.value?.value as IntValue // just assume INtValue for these tests + return [(entry.key): argValueAst?.value?.toInteger()] + } + simpleMap.computeIfAbsent(qd.name, { _ -> [] }).addAll(argVals) + } + return simpleMap + } } diff --git a/src/test/groovy/graphql/execution/incremental/IncrementalCallStateDeferTest.groovy b/src/test/groovy/graphql/execution/incremental/IncrementalCallStateDeferTest.groovy index 94740a9e6..d99b49fae 100644 --- a/src/test/groovy/graphql/execution/incremental/IncrementalCallStateDeferTest.groovy +++ b/src/test/groovy/graphql/execution/incremental/IncrementalCallStateDeferTest.groovy @@ -6,7 +6,6 @@ import graphql.execution.ResultPath import graphql.execution.pubsub.CapturingSubscriber import graphql.incremental.DelayedIncrementalPartialResult import org.awaitility.Awaitility -import org.jetbrains.annotations.NotNull import org.reactivestreams.Publisher import spock.lang.Specification @@ -242,7 +241,7 @@ class IncrementalCallStateDeferTest extends Specification { def threadFactory = new ThreadFactory() { @Override - Thread newThread(@NotNull Runnable r) { + Thread newThread(Runnable r) { return new Thread(r, "SubscriberThread") } } diff --git a/src/test/groovy/graphql/execution/instrumentation/InstrumentationTest.groovy b/src/test/groovy/graphql/execution/instrumentation/InstrumentationTest.groovy index a92cf9451..6580d5990 100644 --- a/src/test/groovy/graphql/execution/instrumentation/InstrumentationTest.groovy +++ b/src/test/groovy/graphql/execution/instrumentation/InstrumentationTest.groovy @@ -13,10 +13,9 @@ import graphql.language.AstPrinter import graphql.parser.Parser import graphql.schema.DataFetcher import graphql.schema.DataFetchingEnvironment -import graphql.schema.PropertyDataFetcher +import graphql.schema.SingletonPropertyDataFetcher import graphql.schema.StaticDataFetcher import org.awaitility.Awaitility -import org.jetbrains.annotations.NotNull import spock.lang.Specification import java.util.concurrent.CompletableFuture @@ -99,7 +98,7 @@ class InstrumentationTest extends Specification { instrumentation.dfClasses.size() == 2 instrumentation.dfClasses[0] == StaticDataFetcher.class - instrumentation.dfClasses[1] == PropertyDataFetcher.class + instrumentation.dfClasses[1] == SingletonPropertyDataFetcher.class instrumentation.dfInvocations.size() == 2 @@ -183,7 +182,6 @@ class InstrumentationTest extends Specification { } } - @NotNull @Override DataFetcher instrumentDataFetcher(DataFetcher dataFetcher, InstrumentationFieldFetchParameters parameters, InstrumentationState state) { System.out.println(String.format("t%s instrument DF for %s", Thread.currentThread().getId(), parameters.environment.getExecutionStepInfo().getPath())) diff --git a/src/test/groovy/graphql/execution/instrumentation/TestingFieldFetchingInstrumentationContext.groovy b/src/test/groovy/graphql/execution/instrumentation/TestingFieldFetchingInstrumentationContext.groovy index 02cbf9d92..50fcaccd2 100644 --- a/src/test/groovy/graphql/execution/instrumentation/TestingFieldFetchingInstrumentationContext.groovy +++ b/src/test/groovy/graphql/execution/instrumentation/TestingFieldFetchingInstrumentationContext.groovy @@ -1,6 +1,6 @@ package graphql.execution.instrumentation -class TestingFieldFetchingInstrumentationContext extends TestingInstrumentContext> implements FieldFetchingInstrumentationContext { +class TestingFieldFetchingInstrumentationContext extends TestingInstrumentContext implements FieldFetchingInstrumentationContext { TestingFieldFetchingInstrumentationContext(Object op, Object executionList, Object throwableList, Boolean useOnDispatch) { super(op, executionList, throwableList, useOnDispatch) diff --git a/src/test/groovy/graphql/execution/instrumentation/dataloader/DataLoaderDispatcherTest.groovy b/src/test/groovy/graphql/execution/instrumentation/dataloader/DataLoaderDispatcherTest.groovy index 839621f72..2996305f5 100644 --- a/src/test/groovy/graphql/execution/instrumentation/dataloader/DataLoaderDispatcherTest.groovy +++ b/src/test/groovy/graphql/execution/instrumentation/dataloader/DataLoaderDispatcherTest.groovy @@ -16,12 +16,11 @@ import org.awaitility.Awaitility import org.dataloader.BatchLoader import org.dataloader.DataLoaderFactory import org.dataloader.DataLoaderRegistry -import org.jetbrains.annotations.NotNull import org.reactivestreams.Publisher import reactor.core.publisher.Mono import spock.lang.Specification -import spock.lang.Unroll +import java.time.Duration import java.util.concurrent.CompletableFuture import java.util.concurrent.CompletionStage @@ -96,7 +95,6 @@ class DataLoaderDispatcherTest extends Specification { def enhancingInstrumentation = new SimplePerformantInstrumentation() { - @NotNull @Override ExecutionInput instrumentExecutionInput(ExecutionInput executionInput, InstrumentationExecutionParameters parameters, InstrumentationState state) { assert executionInput.getDataLoaderRegistry() == startingDataLoaderRegistry @@ -120,10 +118,10 @@ class DataLoaderDispatcherTest extends Specification { } - @Unroll - def "ensure DataLoaderDispatcher works for #executionStrategyName"() { + def "ensure DataLoaderDispatcher works for async serial execution strategy"() { given: + def executionStrategy = new AsyncSerialExecutionStrategy() def starWarsWiring = new StarWarsDataLoaderWiring() def dlRegistry = starWarsWiring.newDataLoaderRegistry() @@ -136,15 +134,12 @@ class DataLoaderDispatcherTest extends Specification { def asyncResult = graphql.executeAsync(newExecutionInput().query(query).dataLoaderRegistry(dlRegistry)) + Awaitility.await().atMost(Duration.ofMillis(200)).until { -> asyncResult.isDone() } def er = asyncResult.join() then: er.data == expectedQueryData - where: - executionStrategyName | executionStrategy || _ - "AsyncExecutionStrategy" | new AsyncSerialExecutionStrategy() || _ - "AsyncSerialExecutionStrategy" | new AsyncSerialExecutionStrategy() || _ } def "basic batch loading is possible"() { diff --git a/src/test/groovy/graphql/execution/instrumentation/fieldvalidation/FieldValidationTest.groovy b/src/test/groovy/graphql/execution/instrumentation/fieldvalidation/FieldValidationTest.groovy index 376c5168f..c3b3f4099 100644 --- a/src/test/groovy/graphql/execution/instrumentation/fieldvalidation/FieldValidationTest.groovy +++ b/src/test/groovy/graphql/execution/instrumentation/fieldvalidation/FieldValidationTest.groovy @@ -1,5 +1,6 @@ package graphql.execution.instrumentation.fieldvalidation +import graphql.EngineRunningState import graphql.ExecutionInput import graphql.ExecutionResult import graphql.GraphQL @@ -12,8 +13,6 @@ import graphql.execution.ExecutionId import graphql.execution.ResultPath import graphql.execution.ValueUnboxer import graphql.execution.instrumentation.ChainedInstrumentation -import graphql.execution.instrumentation.SimplePerformantInstrumentation -import graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters import spock.lang.Specification import java.util.concurrent.CompletableFuture @@ -310,7 +309,7 @@ class FieldValidationTest extends Specification { def execution = new Execution(strategy, strategy, strategy, instrumentation, ValueUnboxer.DEFAULT, false) def executionInput = ExecutionInput.newExecutionInput().query(query).variables(variables).build() - execution.execute(document, schema, ExecutionId.generate(), executionInput, null) + execution.execute(document, schema, ExecutionId.generate(), executionInput, null, new EngineRunningState()) } def "test graphql from end to end with chained instrumentation"() { diff --git a/src/test/groovy/graphql/execution/instrumentation/threadpools/ExecutorInstrumentationTest.groovy b/src/test/groovy/graphql/execution/instrumentation/threadpools/ExecutorInstrumentationTest.groovy deleted file mode 100644 index 4a4a453ce..000000000 --- a/src/test/groovy/graphql/execution/instrumentation/threadpools/ExecutorInstrumentationTest.groovy +++ /dev/null @@ -1,211 +0,0 @@ -package graphql.execution.instrumentation.threadpools - - -import graphql.TestUtil -import graphql.schema.DataFetcher -import graphql.schema.DataFetchingEnvironment -import graphql.schema.DataFetchingEnvironmentImpl -import graphql.schema.PropertyDataFetcher -import spock.lang.Specification - -import java.util.concurrent.CompletableFuture -import java.util.concurrent.Executor -import java.util.concurrent.Executors -import java.util.concurrent.ThreadFactory -import java.util.function.Consumer - -import static ExecutorInstrumentation.Action -import static java.lang.Thread.currentThread - -class ExecutorInstrumentationTest extends Specification { - - private static ThreadFactory threadFactory(String name) { - new ThreadFactory() { - @Override - Thread newThread(Runnable r) { - return new Thread(r, name) - } - } - } - - static class TestingObserver implements Consumer { - def actions = [] - - @Override - void accept(Action action) { - actions.add(action.toString() + " on " + currentThread().getName()) - } - } - - def FetchExecutor = Executors.newSingleThreadExecutor(threadFactory("FetchThread")) - def ProcessingExecutor = Executors.newSingleThreadExecutor(threadFactory("ProcessingThread")) - - ExecutorInstrumentation instrumentation - def observer = new TestingObserver() - - - ExecutorInstrumentation build(Executor fetchExecutor, Executor processingExecutor, Consumer observer) { - def builder = ExecutorInstrumentation.newThreadPoolExecutionInstrumentation() - if (fetchExecutor != null) { - builder.fetchExecutor(fetchExecutor) - } - if (processingExecutor != null) { - builder.processingExecutor(processingExecutor) - } - builder.actionObserver(observer).build() - } - - DataFetchingEnvironment dfEnv(Object s) { - DataFetchingEnvironmentImpl.newDataFetchingEnvironment().source(s).build() - } - - CompletableFuture asCF(returnedValue) { - (CompletableFuture) returnedValue - } - - void setup() { - observer = new TestingObserver() - instrumentation = build(FetchExecutor, ProcessingExecutor, observer) - } - - def "basic building works"() { - expect: - instrumentation.getFetchExecutor() == FetchExecutor - instrumentation.getProcessingExecutor() == ProcessingExecutor - } - - def "can handle a data fetcher that throws exceptions"() { - when: - DataFetcher df = { env -> throw new RuntimeException("BANG") } - def modifiedDataFetcher = instrumentation.instrumentDataFetcher(df, null,null) - def returnedValue = modifiedDataFetcher.get(null) - - then: - returnedValue instanceof CompletableFuture - - when: - asCF(returnedValue).join() - - then: - def e = thrown(RuntimeException) - e.getMessage().contains("BANG") - } - - - def "will leave trivial data fetchers as is"() { - - when: - DataFetcher df = PropertyDataFetcher.fetching({ o -> "trivial" }) - def modifiedDataFetcher = instrumentation.instrumentDataFetcher(df, null,null) - def returnedValue = modifiedDataFetcher.get(dfEnv("source")) - - then: - modifiedDataFetcher == df - returnedValue == "trivial" - } - - - def "will execute on another thread and transfer execution back to the processing thread"() { - - when: - instrumentation = build(FetchExecutor, ProcessingExecutor, observer) - - DataFetcher df = { env -> currentThread().getName() } - def modifiedDataFetcher = instrumentation.instrumentDataFetcher(df, null, null) - def returnedValue = modifiedDataFetcher.get(null) - - then: - returnedValue instanceof CompletableFuture - - when: - def value = asCF(returnedValue).join() - - then: - value == "FetchThread" - observer.actions == ["FETCHING on FetchThread", "PROCESSING on ProcessingThread"] - } - - def "will execute on another thread and stay there without a processing executor"() { - - when: - instrumentation = build(FetchExecutor, null, observer) - - DataFetcher df = { env -> currentThread().getName() } - def modifiedDataFetcher = instrumentation.instrumentDataFetcher(df, null, null) - def returnedValue = modifiedDataFetcher.get(null) - - then: - returnedValue instanceof CompletableFuture - - when: - def value = asCF(returnedValue).join() - - then: - value == "FetchThread" - observer.actions == ["FETCHING on FetchThread", "PROCESSING on FetchThread"] - } - - def "will fetch on current thread if the executor is null but transfer control back"() { - - when: - def currentThreadName = currentThread().getName() - instrumentation = build(null, ProcessingExecutor, observer) - - DataFetcher df = { env -> currentThread().getName() } - def modifiedDataFetcher = instrumentation.instrumentDataFetcher(df, null, null) - def returnedValue = modifiedDataFetcher.get(null) - - then: - returnedValue instanceof CompletableFuture - - when: - def value = asCF(returnedValue).join() - - then: - value == "${currentThreadName}" - observer.actions == ["FETCHING on ${currentThreadName}", "PROCESSING on ProcessingThread"] - } - - def "a data fetcher can return a CF and that is handled"() { - when: - instrumentation = build(FetchExecutor, ProcessingExecutor, observer) - - DataFetcher df = { env -> CompletableFuture.completedFuture(currentThread().getName()) } - def modifiedDataFetcher = instrumentation.instrumentDataFetcher(df, null, null) - def returnedValue = modifiedDataFetcher.get(null) - - then: - returnedValue instanceof CompletableFuture - - when: - def value = asCF(returnedValue).join() - - then: - value == "FetchThread" - observer.actions == ["FETCHING on FetchThread", "PROCESSING on ProcessingThread"] - } - - def "can work in a full schema"() { - def sdl = """ - type Query { - field1 : String - field2 : String - } - """ - DataFetcher df1 = { env -> CompletableFuture.completedFuture("f1" + currentThread().getName()) } - DataFetcher df2 = { env -> "f2" + currentThread().getName() } - - def graphQL = TestUtil.graphQL(sdl, [Query: [field1: df1, field2: df2]]).instrumentation(instrumentation).build() - - when: - def er = graphQL.execute("{field1, field2}") - then: - er.errors.isEmpty() - er.data["field1"] == "f1FetchThread" - er.data["field2"] == "f2FetchThread" - observer.actions.sort() == [ - "FETCHING on FetchThread", "FETCHING on FetchThread", - "PROCESSING on ProcessingThread", "PROCESSING on ProcessingThread" - ] - } -} diff --git a/src/test/groovy/graphql/execution/pubsub/CountingFlux.groovy b/src/test/groovy/graphql/execution/pubsub/CountingFlux.groovy new file mode 100644 index 000000000..64cf0eab5 --- /dev/null +++ b/src/test/groovy/graphql/execution/pubsub/CountingFlux.groovy @@ -0,0 +1,23 @@ +package graphql.execution.pubsub + +import reactor.core.publisher.Flux + +/** + * A flux that counts how many values it has given out + */ +class CountingFlux { + Flux flux + Integer count = 0 + + CountingFlux(List values) { + flux = Flux.generate({ -> 0 }, { Integer counter, sink -> + if (counter >= values.size()) { + sink.complete() + } else { + sink.next(values[counter]) + count++ + } + return counter + 1; + }) + } +} diff --git a/src/test/groovy/graphql/execution/pubsub/RxJavaMessagePublisher.java b/src/test/groovy/graphql/execution/pubsub/RxJavaMessagePublisher.java index 7d0be05cb..0c19e90fa 100644 --- a/src/test/groovy/graphql/execution/pubsub/RxJavaMessagePublisher.java +++ b/src/test/groovy/graphql/execution/pubsub/RxJavaMessagePublisher.java @@ -4,6 +4,8 @@ import org.reactivestreams.Publisher; import org.reactivestreams.Subscriber; +import java.util.concurrent.atomic.AtomicInteger; + /** * This example publisher will create count "messages" and then terminate. Its * uses tRxJava Flowable as a backing publisher @@ -11,10 +13,18 @@ public class RxJavaMessagePublisher implements Publisher { private final Flowable flowable; + private final AtomicInteger counter = new AtomicInteger(); public RxJavaMessagePublisher(final int count) { flowable = Flowable.range(0, count) - .map(at -> examineMessage(new Message("sender" + at, "text" + at), at)); + .map(at -> { + counter.incrementAndGet(); + return examineMessage(new Message("sender" + at, "text" + at), at); + }); + } + + public int getCounter() { + return counter.get(); } @Override diff --git a/src/test/groovy/graphql/execution/reactive/ReactiveSupportTest.groovy b/src/test/groovy/graphql/execution/reactive/ReactiveSupportTest.groovy new file mode 100644 index 000000000..a5197af4e --- /dev/null +++ b/src/test/groovy/graphql/execution/reactive/ReactiveSupportTest.groovy @@ -0,0 +1,222 @@ +package graphql.execution.reactive + +import graphql.GraphQL +import graphql.TestUtil +import graphql.execution.pubsub.CapturingSubscriber +import graphql.execution.pubsub.CountingFlux +import graphql.schema.DataFetcher +import reactor.adapter.JdkFlowAdapter +import reactor.core.publisher.Mono +import spock.lang.Specification + +import java.time.Duration +import java.util.concurrent.CancellationException +import java.util.concurrent.CompletableFuture +import java.util.concurrent.CompletionException +import java.util.concurrent.Flow + +class ReactiveSupportTest extends Specification { + + private static Flow.Publisher toFlow(Mono stringMono) { + return JdkFlowAdapter.publisherToFlowPublisher(stringMono) + } + + private static Mono delayedMono(String X, Integer millis) { + Mono.just(X).delayElement(Duration.ofMillis(millis)) + } + + def "will pass through non reactive things and leave them as is"() { + + when: + def val = ReactiveSupport.fetchedObject("X") + then: + val === "X" + + when: + def cf = CompletableFuture.completedFuture("X") + val = ReactiveSupport.fetchedObject(cf) + then: + val === cf + } + + def "can get a reactive or flow publisher and make a CF from it"() { + + when: + CompletableFuture cf = ReactiveSupport.fetchedObject(reactiveObject) as CompletableFuture + + then: + !cf.isCancelled() + !cf.isCompletedExceptionally() + cf.isDone() + + cf.join() == "X" + + where: + reactiveObject || _ + Mono.just("X") || _ + toFlow(Mono.just("X")) || _ + } + + def "can get a reactive or flow publisher that takes some time and make a CF from it"() { + + when: + CompletableFuture cf = ReactiveSupport.fetchedObject(reactiveObject) as CompletableFuture + + then: + !cf.isCancelled() + !cf.isCompletedExceptionally() + !cf.isDone() + + cf.join() == "X" + + where: + reactiveObject || _ + delayedMono("X", 100) || _ + toFlow(delayedMono("X", 100)) || _ + } + + def "can get a reactive or flow publisher with an error and make a CF from it"() { + + when: + CompletableFuture cf = ReactiveSupport.fetchedObject(reactiveObject) as CompletableFuture + + then: + !cf.isCancelled() + cf.isCompletedExceptionally() + cf.isDone() + + when: + cf.join() + + then: + def e = thrown(CompletionException.class) + e.cause.message == "Bang!" + + where: + reactiveObject || _ + Mono.error(new RuntimeException("Bang!")) || _ + toFlow(Mono.error(new RuntimeException("Bang!"))) || _ + } + + def "can get a empty reactive or flow publisher and make a CF from it"() { + + when: + CompletableFuture cf = ReactiveSupport.fetchedObject(reactiveObject) as CompletableFuture + + then: + !cf.isCancelled() + !cf.isCompletedExceptionally() + cf.isDone() + + cf.join() == null + + where: + reactiveObject || _ + Mono.empty() || _ + toFlow(Mono.empty()) || _ + } + + + def "can get a reactive or flow publisher but cancel it before a value turns up"() { + + when: + CompletableFuture cf = ReactiveSupport.fetchedObject(reactiveObject) as CompletableFuture + + then: + !cf.isCancelled() + !cf.isCompletedExceptionally() + !cf.isDone() + + when: + def cfCancelled = cf.cancel(true) + + then: + cfCancelled + cf.isCancelled() + cf.isCompletedExceptionally() + cf.isDone() + + when: + cf.join() + + then: + thrown(CancellationException.class) + + where: + reactiveObject || _ + delayedMono("X", 1000) || _ + toFlow(delayedMono("X", 1000)) || _ + + } + + + def "can get a reactive Flux and only take one value and make a CF from it"() { + + def xyzStrings = ["X", "Y", "Z"] + when: + def countingFlux = new CountingFlux(xyzStrings) + CompletableFuture cf = ReactiveSupport.fetchedObject(countingFlux.flux) as CompletableFuture + + then: + !cf.isCancelled() + !cf.isCompletedExceptionally() + cf.isDone() + + cf.join() == "X" + countingFlux.count == 1 + + when: + def capturingSubscriber = new CapturingSubscriber<>() + countingFlux.flux.subscribe(capturingSubscriber) + + then: + // second subscriber + capturingSubscriber.events == ["X", "Y", "Z"] + countingFlux.count == 4 + } + + def "integration test showing reactive values in data fetchers as well as the ones we know and love"() { + def sdl = """ + type Query { + reactorField : String + flowField : String + cfField : String + materialisedField : String + } + """ + + // with some delay + def reactorDF = { env -> delayedMono("reactor", 100) } as DataFetcher + def flowDF = { env -> toFlow(delayedMono("flow", 50)) } as DataFetcher + + def cfDF = { env -> CompletableFuture.completedFuture("cf") } as DataFetcher + def materialisedDF = { env -> "materialised" } as DataFetcher + + def schema = TestUtil.schema(sdl, [Query: [ + reactorField : reactorDF, + flowField : flowDF, + cfField : cfDF, + materialisedField: materialisedDF, + ]]) + def graphQL = GraphQL.newGraphQL(schema).build() + + when: + def er = graphQL.execute(""" + query q { + reactorField + flowField + cfField + materialisedField + } + """) + + then: + er.errors.isEmpty() + er.data == [ + reactorField : "reactor", + flowField : "flow", + cfField : "cf", + materialisedField: "materialised" + ] + } +} diff --git a/src/test/groovy/graphql/execution/reactive/tck/CompletionStageMappingOrderedPublisherRandomCompleteTckVerificationTest.java b/src/test/groovy/graphql/execution/reactive/tck/CompletionStageMappingOrderedPublisherRandomCompleteTckVerificationTest.java index aaaa46c9d..19ebffc46 100644 --- a/src/test/groovy/graphql/execution/reactive/tck/CompletionStageMappingOrderedPublisherRandomCompleteTckVerificationTest.java +++ b/src/test/groovy/graphql/execution/reactive/tck/CompletionStageMappingOrderedPublisherRandomCompleteTckVerificationTest.java @@ -1,9 +1,8 @@ package graphql.execution.reactive.tck; import graphql.execution.reactive.CompletionStageMappingOrderedPublisher; -import graphql.execution.reactive.CompletionStageMappingPublisher; import io.reactivex.Flowable; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import org.reactivestreams.Publisher; import org.reactivestreams.tck.PublisherVerification; import org.reactivestreams.tck.TestEnvironment; @@ -48,7 +47,7 @@ public boolean skipStochasticTests() { return true; } - @NotNull + @NonNull private static Function> mapperFunc() { return i -> CompletableFuture.supplyAsync(() -> { int ms = rand(0, 5); diff --git a/src/test/groovy/graphql/execution/reactive/tck/CompletionStageMappingPublisherRandomCompleteTckVerificationTest.java b/src/test/groovy/graphql/execution/reactive/tck/CompletionStageMappingPublisherRandomCompleteTckVerificationTest.java index 2455b3ee4..889b18eee 100644 --- a/src/test/groovy/graphql/execution/reactive/tck/CompletionStageMappingPublisherRandomCompleteTckVerificationTest.java +++ b/src/test/groovy/graphql/execution/reactive/tck/CompletionStageMappingPublisherRandomCompleteTckVerificationTest.java @@ -2,7 +2,7 @@ import graphql.execution.reactive.CompletionStageMappingPublisher; import io.reactivex.Flowable; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import org.reactivestreams.Publisher; import org.reactivestreams.tck.PublisherVerification; import org.reactivestreams.tck.TestEnvironment; @@ -47,7 +47,7 @@ public boolean skipStochasticTests() { return true; } - @NotNull + @NonNull private static Function> mapperFunc() { return i -> CompletableFuture.supplyAsync(() -> { int ms = rand(0, 5); diff --git a/src/test/groovy/graphql/execution/values/InputInterceptorTest.groovy b/src/test/groovy/graphql/execution/values/InputInterceptorTest.groovy index de6914a50..f259714b8 100644 --- a/src/test/groovy/graphql/execution/values/InputInterceptorTest.groovy +++ b/src/test/groovy/graphql/execution/values/InputInterceptorTest.groovy @@ -10,8 +10,6 @@ import graphql.execution.ValuesResolver import graphql.schema.DataFetcher import graphql.schema.DataFetchingEnvironment import graphql.schema.GraphQLInputType -import org.jetbrains.annotations.NotNull -import org.jetbrains.annotations.Nullable import spock.lang.Specification import static graphql.language.TypeName.newTypeName @@ -35,7 +33,7 @@ class InputInterceptorTest extends Specification { InputInterceptor interceptor = new InputInterceptor() { @Override - Object intercept(@Nullable Object value, @NotNull GraphQLInputType graphQLType, @NotNull GraphQLContext graphqlContext, @NotNull Locale locale) { + Object intercept(Object value, GraphQLInputType graphQLType, GraphQLContext graphqlContext, Locale locale) { if (graphQLType == Scalars.GraphQLBoolean) { return "truthy" == value ? false : value } @@ -98,7 +96,7 @@ class InputInterceptorTest extends Specification { ''') .graphQLContext({ it.put(InputInterceptor.class, interceptor) }) .variables( - "booleanArg": "truthy", + "booleanArg": false, "stringArg": "sdrawkcab" ) diff --git a/src/test/groovy/graphql/extensions/ExtensionsBuilderTest.groovy b/src/test/groovy/graphql/extensions/ExtensionsBuilderTest.groovy index 12be824cf..e08a09b77 100644 --- a/src/test/groovy/graphql/extensions/ExtensionsBuilderTest.groovy +++ b/src/test/groovy/graphql/extensions/ExtensionsBuilderTest.groovy @@ -6,7 +6,6 @@ import graphql.execution.DataFetcherResult import graphql.schema.DataFetcher import graphql.schema.DataFetchingEnvironment import graphql.schema.GraphQLTypeUtil -import org.jetbrains.annotations.NotNull import spock.lang.Specification import static graphql.ExecutionInput.newExecutionInput @@ -106,8 +105,7 @@ class ExtensionsBuilderTest extends Specification { def "can use a custom merger"() { ExtensionsMerger merger = new ExtensionsMerger() { @Override - @NotNull - Map merge(@NotNull Map leftMap, @NotNull Map rightMap) { + Map merge(Map leftMap, Map rightMap) { return rightMap } } diff --git a/src/test/groovy/graphql/incremental/DeferPayloadTest.groovy b/src/test/groovy/graphql/incremental/DeferPayloadTest.groovy index a37fa3ca7..693d3911d 100644 --- a/src/test/groovy/graphql/incremental/DeferPayloadTest.groovy +++ b/src/test/groovy/graphql/incremental/DeferPayloadTest.groovy @@ -4,6 +4,8 @@ import graphql.GraphqlErrorBuilder import graphql.execution.ResultPath import spock.lang.Specification +import static graphql.GraphQLError.newError + class DeferPayloadTest extends Specification { def "null data is included"() { def payload = DeferPayload.newDeferredItem() @@ -96,4 +98,48 @@ class DeferPayloadTest extends Specification { path : ["test", "echo"], ] } + + def "equals and hashcode methods work correctly"() { + when: + def payload = DeferPayload.newDeferredItem() + .data("data1") + .path(["path1"]) + .label("label1") + .errors([newError().message("message1").build()]) + .extensions([key: "value1"]) + .build() + + def equivalentPayload = DeferPayload.newDeferredItem() + .data("data1") + .path(["path1"]) + .label("label1") + .errors([newError().message("message1").build()]) + .extensions([key: "value1"]) + .build() + + def totallyDifferentPayload = DeferPayload.newDeferredItem() + .data("data2") + .path(["path2"]) + .label("label2") + .errors([newError().message("message2").build()]) + .extensions([key: "value2"]) + .build() + + def slightlyDifferentPayload = DeferPayload.newDeferredItem() + .data("data1") + .path(["path1"]) + .label("label1") + .errors([newError().message("message1").build()]) + .extensions([key: "value2"]) + .build() + + then: + payload == equivalentPayload + payload != totallyDifferentPayload + payload != slightlyDifferentPayload + + payload.hashCode() == equivalentPayload.hashCode() + payload.hashCode() != totallyDifferentPayload.hashCode() + payload.hashCode() != slightlyDifferentPayload.hashCode() + } } diff --git a/src/test/groovy/graphql/incremental/StreamPayloadTest.groovy b/src/test/groovy/graphql/incremental/StreamPayloadTest.groovy index 7386cb8ef..157dcc1f0 100644 --- a/src/test/groovy/graphql/incremental/StreamPayloadTest.groovy +++ b/src/test/groovy/graphql/incremental/StreamPayloadTest.groovy @@ -1,9 +1,10 @@ package graphql.incremental -import graphql.GraphqlErrorBuilder import graphql.execution.ResultPath import spock.lang.Specification +import static graphql.GraphqlErrorBuilder.newError + class StreamPayloadTest extends Specification { def "null data is included"() { def payload = StreamPayload.newStreamedItem() @@ -25,11 +26,11 @@ class StreamPayloadTest extends Specification { .items(["twow is that a bee"]) .path(["hello"]) .errors([]) - .addError(GraphqlErrorBuilder.newError() + .addError(newError() .message("wow") .build()) .addErrors([ - GraphqlErrorBuilder.newError() + newError() .message("yep") .build(), ]) @@ -65,12 +66,12 @@ class StreamPayloadTest extends Specification { def payload = StreamPayload.newStreamedItem() .items(["twow is that a bee"]) .path(ResultPath.fromList(["test", "echo"])) - .addError(GraphqlErrorBuilder.newError() + .addError(newError() .message("wow") .build()) .addErrors([]) .errors([ - GraphqlErrorBuilder.newError() + newError() .message("yep") .build(), ]) @@ -96,4 +97,57 @@ class StreamPayloadTest extends Specification { path : ["test", "echo"], ] } + + def "test equals and hashCode methods work"() { + given: + def items1 = ["test1"] + def items2 = ["test2", "test3"] + def path1 = ["test", "echo"] + def path2 = ["test", "echo", "foo"] + def errors1 = [newError().message("error1").build()] + def errors2 = [newError().message("error2").build()] + def extensions1 = [echo: "1"] + def extensions2 = [echo: "2"] + + def payload = new StreamPayload.Builder() + .items(items1) + .path(path1) + .label("label1") + .errors(errors1) + .extensions(extensions1) + .build() + + def equivalentPayload = new StreamPayload.Builder() + .items(items1) + .path(path1) + .label("label1") + .errors(errors1) + .extensions(extensions1) + .build() + + def totallyDifferentPayload = new StreamPayload.Builder() + .items(items2) + .path(path2) + .label("label2") + .errors(errors2) + .extensions(extensions2) + .build() + + def slightlyDifferentPayload = new StreamPayload.Builder() + .items(items2) + .path(path2) + .label("label1") + .errors(errors1) + .extensions(extensions2) + .build() + + expect: + payload == equivalentPayload + payload != totallyDifferentPayload + payload != slightlyDifferentPayload + + payload.hashCode() == equivalentPayload.hashCode() + payload.hashCode() != totallyDifferentPayload.hashCode() + payload.hashCode() != slightlyDifferentPayload.hashCode() + } } diff --git a/src/test/groovy/graphql/introspection/IntrospectionResultToSchemaTest.groovy b/src/test/groovy/graphql/introspection/IntrospectionResultToSchemaTest.groovy index 9f2346df4..f322d2700 100644 --- a/src/test/groovy/graphql/introspection/IntrospectionResultToSchemaTest.groovy +++ b/src/test/groovy/graphql/introspection/IntrospectionResultToSchemaTest.groovy @@ -377,7 +377,7 @@ input CharacterInput { "subscriptionType": {"name":"SubscriptionType"}, "types": [ ] - }""" + }}""" def parsed = slurp(input) when: @@ -826,7 +826,7 @@ directiveArg: String = "default Value") on FIELD | FRAGMENT_SPREAD | INLINE_FRAG "isRepeatable":true } ] - }""" + }}""" def parsed = slurp(input) when: diff --git a/src/test/groovy/graphql/introspection/IntrospectionWithDirectivesSupportTest.groovy b/src/test/groovy/graphql/introspection/IntrospectionWithDirectivesSupportTest.groovy index 262770eb3..591a44146 100644 --- a/src/test/groovy/graphql/introspection/IntrospectionWithDirectivesSupportTest.groovy +++ b/src/test/groovy/graphql/introspection/IntrospectionWithDirectivesSupportTest.groovy @@ -91,7 +91,8 @@ class IntrospectionWithDirectivesSupportTest extends Specification { schemaType["directives"] == [ [name: "include"], [name: "skip"], [name: "example"], [name: "secret"], - [name: "noDefault"], [name: "deprecated"], [name: "specifiedBy"], [name: "oneOf"] + [name: "noDefault"], [name: "deprecated"], [name: "specifiedBy"], [name: "oneOf"], + [name: "defer"], [name: "experimental_disableErrorPropagation"] ] schemaType["appliedDirectives"] == [[name: "example", args: [[name: "argName", value: '"onSchema"']]]] @@ -173,7 +174,9 @@ class IntrospectionWithDirectivesSupportTest extends Specification { def definedDirectives = er.data["__schema"]["directives"] // secret is filter out - definedDirectives == [[name: "include"], [name: "skip"], [name: "example"], [name: "deprecated"], [name: "specifiedBy"], [name: "oneOf"]] + definedDirectives == [[name: "include"], [name: "skip"], [name: "example"], [name: "deprecated"], [name: "specifiedBy"], [name: "oneOf"], + [name: "defer"], [name: "experimental_disableErrorPropagation"] + ] } def "can set prefixes onto the Applied types"() { diff --git a/src/test/groovy/graphql/language/AstPrinterTest.groovy b/src/test/groovy/graphql/language/AstPrinterTest.groovy index e0d57aad6..84c2de667 100644 --- a/src/test/groovy/graphql/language/AstPrinterTest.groovy +++ b/src/test/groovy/graphql/language/AstPrinterTest.groovy @@ -3,6 +3,8 @@ package graphql.language import graphql.parser.Parser import spock.lang.Specification +import java.nio.CharBuffer + class AstPrinterTest extends Specification { Document parse(String input) { @@ -769,4 +771,41 @@ extend input Input @directive { then: output == "foo" } + + def "printAstTo writes to a StringBuilder instance"() { + def document = parse(starWarsSchema) + def output = new StringBuilder() + AstPrinter.printAstTo(document.getDefinitions().get(0), output) + + expect: + output.toString() == """schema { + query: QueryType + mutation: Mutation +}""" + } + + def "printAstTo writes to a Writer instance"() { + def document = parse(starWarsSchema) + def output = new StringWriter() + AstPrinter.printAstTo(document.getDefinitions().get(0), output) + + expect: + output.toString() == """schema { + query: QueryType + mutation: Mutation +}""" + } + + def "printAstTo writes to an Appendable instance"() { + def document = parse(starWarsSchema) + def output = CharBuffer.allocate(100) + AstPrinter.printAstTo(document.getDefinitions().get(0), output) + output.flip() + + expect: + output.toString() == """schema { + query: QueryType + mutation: Mutation +}""" + } } diff --git a/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationFactoryTest.groovy b/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationFactoryTest.groovy index 2b9f14672..88c7a01aa 100644 --- a/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationFactoryTest.groovy +++ b/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationFactoryTest.groovy @@ -29,7 +29,7 @@ import static graphql.language.AstPrinter.printAst import static graphql.parser.Parser.parseValue import static graphql.schema.FieldCoordinates.coordinates -abstract class ExecutableNormalizedOperationFactoryTest extends Specification { +class ExecutableNormalizedOperationFactoryTest extends Specification { static boolean deferSupport diff --git a/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationToAstCompilerDirectivesTest.groovy b/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationToAstCompilerDirectivesTest.groovy new file mode 100644 index 000000000..b7928b4ae --- /dev/null +++ b/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationToAstCompilerDirectivesTest.groovy @@ -0,0 +1,194 @@ +package graphql.normalized + +import graphql.schema.GraphQLSchema + +import static graphql.language.OperationDefinition.Operation.QUERY + +/** + * Test related to ENO and directives + */ +class ExecutableNormalizedOperationToAstCompilerDirectivesTest extends ENOToAstCompilerTestBase { + def bookSDL = ''' + directive @timeout(afterMillis : Int) on FIELD | FRAGMENT_DEFINITION | FRAGMENT_SPREAD | INLINE_FRAGMENT | QUERY + + directive @cached(forMillis : Int) on FIELD | FRAGMENT_DEFINITION | FRAGMENT_SPREAD | INLINE_FRAGMENT | QUERY + + directive @importance(place : String) on FIELD | FRAGMENT_DEFINITION | FRAGMENT_SPREAD | INLINE_FRAGMENT | QUERY + + type Query { + books(searchString : String) : [Book] + } + + type Book { + id : ID + title : String + review : String + } + ''' + + def "can extract variables or inline values for directives on the query"() { + def sdl = ''' + type Query { + foo(fooArg : String) : Foo + } + + type Foo { + bar(barArg : String) : String + } + + directive @optIn(to : [String!]!) repeatable on FIELD + ''' + + def query = ''' + query named($fooArgVar : String, $barArgVar : String, $skipVar : Boolean!, $optVar : [String!]!) { + foo(fooArg : $fooArgVar) @skip(if : $skipVar) { + bar(barArg : $barArgVar) @optIn(to : ["optToX"]) @optIn(to : $optVar) + } + } + ''' + GraphQLSchema schema = mkSchema(sdl) + def eno = createNormalizedTree(schema, query, + [fooArgVar: "fooArgVar", barArgVar: "barArgVar", skipVar: false, optVar: ["optToY"]]) + + when: + def result = localCompileToDocument(schema, QUERY, "named", + eno.getTopLevelFields(), eno.getNormalizedFieldToQueryDirectives(), + allVariables) + def document = result.document + def vars = result.variables + def ast = printDoc(document) + + then: + vars == [v0: "barArgVar", v1: ["optToX"], v2: ["optToY"], v3: "fooArgVar", v4: false] + // + // the below is what ir currently produces but its WRONG + // fix up when the other tests starts to work + // + ast == '''query named($v0: String, $v1: [String!]!, $v2: [String!]!, $v3: String, $v4: Boolean!) { + foo(fooArg: $v3) @skip(if: $v4) { + bar(barArg: $v0) @optIn(to: $v1) @optIn(to: $v2) + } +} +''' + + + when: "it has no variables" + + + result = localCompileToDocument(schema, QUERY, "named", + eno.getTopLevelFields(), eno.getNormalizedFieldToQueryDirectives(), + noVariables) + document = result.document + vars = result.variables + ast = printDoc(document) + + then: + vars == [:] + ast == '''query named { + foo(fooArg: "fooArgVar") @skip(if: false) { + bar(barArg: "barArgVar") @optIn(to: ["optToX"]) @optIn(to: ["optToY"]) + } +} +''' + + } + + def "can handle quite a pathological fragment query as expected"() { + + def pathologicalQuery = ''' + fragment Details on Book @timeout(afterMillis: 25) @cached(forMillis : 25) @importance(place:"FragDef") { + title + review @timeout(afterMillis: 5) @cached(forMillis : 5) + ...InnerDetails @timeout(afterMillis: 26) + } + + fragment InnerDetails on Book @timeout(afterMillis: 27) { + review @timeout(afterMillis: 28) + } + + query Books @timeout(afterMillis: 30) @importance(place:"Operation") { + books(searchString: "monkey") { + id + ...Details @timeout(afterMillis: 20) + ...on Book @timeout(afterMillis: 15) { + review @timeout(afterMillis: 10) @cached(forMillis : 10) + } + } + } + ''' + + GraphQLSchema schema = mkSchema(bookSDL) + def eno = createNormalizedTree(schema, pathologicalQuery, [:]) + + when: + def result = localCompileToDocument(schema, QUERY, "Books", + eno.getTopLevelFields(), eno.getNormalizedFieldToQueryDirectives(), + allVariables) + def document = result.document + def vars = result.variables + def ast = printDoc(document) + + then: + vars == [v0:5, v1:5, v2:28, v3:10, v4:10, v5:"monkey"] + ast == '''query Books($v0: Int, $v1: Int, $v2: Int, $v3: Int, $v4: Int, $v5: String) { + books(searchString: $v5) { + id + review @cached(forMillis: $v1) @cached(forMillis: $v4) @timeout(afterMillis: $v0) @timeout(afterMillis: $v2) @timeout(afterMillis: $v3) + title + } +} +''' + + + when: "it has no variables" + + + result = localCompileToDocument(schema, QUERY, "Books", + eno.getTopLevelFields(), eno.getNormalizedFieldToQueryDirectives(), + noVariables) + document = result.document + vars = result.variables + ast = printDoc(document) + + then: + vars == [:] + ast == '''query Books { + books(searchString: "monkey") { + id + review @cached(forMillis: 5) @cached(forMillis: 10) @timeout(afterMillis: 5) @timeout(afterMillis: 28) @timeout(afterMillis: 10) + title + } +} +''' + + } + + def "merged fields with the same field will capture all directives"() { + def query = ''' + query Books { + books(searchString: "monkey") { + review @timeout(afterMillis: 10) @cached(forMillis : 10) + review @timeout(afterMillis: 100) @cached(forMillis : 100) + } + } + ''' + + GraphQLSchema schema = mkSchema(bookSDL) + def eno = createNormalizedTree(schema, query, [:]) + + when: + def result = localCompileToDocument(schema, QUERY, "Books", + eno.getTopLevelFields(), eno.getNormalizedFieldToQueryDirectives(), + noVariables) + def document = result.document + def ast = printDoc(document) + + then: + ast == '''query Books { + books(searchString: "monkey") { + review @cached(forMillis: 10) @cached(forMillis: 100) @timeout(afterMillis: 10) @timeout(afterMillis: 100) + } +} +''' + } +} diff --git a/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationToAstCompilerTest.groovy b/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationToAstCompilerTest.groovy index a135ac3f9..8f4a0851a 100644 --- a/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationToAstCompilerTest.groovy +++ b/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationToAstCompilerTest.groovy @@ -3,6 +3,7 @@ package graphql.normalized import graphql.GraphQL import graphql.TestUtil import graphql.execution.RawVariables +import graphql.execution.directives.QueryAppliedDirective import graphql.execution.directives.QueryDirectives import graphql.language.AstPrinter import graphql.language.AstSorter @@ -25,11 +26,16 @@ import static graphql.language.OperationDefinition.Operation.SUBSCRIPTION import static graphql.normalized.ExecutableNormalizedOperationToAstCompiler.compileToDocument import static graphql.normalized.ExecutableNormalizedOperationToAstCompiler.compileToDocumentWithDeferSupport -abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specification { +abstract class ENOToAstCompilerTestBase extends Specification { static boolean deferSupport - VariablePredicate noVariables = new VariablePredicate() { + + @Override + boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, QueryAppliedDirective queryAppliedDirective, String argName, NormalizedInputValue normalizedInputValue) { + return false + } + @Override boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, String argName, NormalizedInputValue normalizedInputValue) { return false @@ -41,6 +47,11 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, String argName, NormalizedInputValue normalizedInputValue) { "JSON" == normalizedInputValue.unwrappedTypeName && normalizedInputValue.value != null } + + @Override + boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, QueryAppliedDirective queryAppliedDirective, String argName, NormalizedInputValue normalizedInputValue) { + "JSON" == normalizedInputValue.unwrappedTypeName && normalizedInputValue.value != null + } } VariablePredicate allVariables = new VariablePredicate() { @@ -48,7 +59,75 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, String argName, NormalizedInputValue normalizedInputValue) { return true } + + @Override + boolean shouldMakeVariable(ExecutableNormalizedField executableNormalizedField, QueryAppliedDirective queryAppliedDirective, String argName, NormalizedInputValue normalizedInputValue) { + return true + } + } + + + static ExecutableNormalizedOperation createNormalizedTree(GraphQLSchema schema, String query, Map variables = [:]) { + assertValidQuery(schema, query, variables) + Document originalDocument = TestUtil.parseQuery(query) + + def options = ExecutableNormalizedOperationFactory.Options.defaultOptions().deferSupport(deferSupport) + return ExecutableNormalizedOperationFactory.createExecutableNormalizedOperationWithRawVariables(schema, originalDocument, null, RawVariables.of(variables), options) + } + + static List createNormalizedFields(GraphQLSchema schema, String query, Map variables = [:]) { + return createNormalizedTree(schema, query, variables).getTopLevelFields() + } + + static void assertValidQuery(GraphQLSchema graphQLSchema, String query, Map variables = [:]) { + GraphQL graphQL = GraphQL.newGraphQL(graphQLSchema).build() + assert graphQL.execute(newExecutionInput().query(query).variables(variables)).errors.isEmpty() + } + + static GraphQLSchema mkSchema(String sdl) { + def wiringFactory = new TestLiveMockedWiringFactory([JsonScalar.JSON_SCALAR]) + def runtimeWiring = RuntimeWiring.newRuntimeWiring() + .wiringFactory(wiringFactory).build() + TestUtil.schema(sdl, runtimeWiring) + } + + static ExecutableNormalizedOperationToAstCompiler.CompilerResult localCompileToDocument( + GraphQLSchema schema, + OperationDefinition.Operation operationKind, + String operationName, + List topLevelFields, + VariablePredicate variablePredicate + ) { + return localCompileToDocument(schema, operationKind, operationName, topLevelFields, Map.of(), variablePredicate); + } + + static ExecutableNormalizedOperationToAstCompiler.CompilerResult localCompileToDocument( + GraphQLSchema schema, + OperationDefinition.Operation operationKind, + String operationName, + List topLevelFields, + Map normalizedFieldToQueryDirectives, + VariablePredicate variablePredicate + ) { + if (deferSupport) { + return compileToDocumentWithDeferSupport(schema, operationKind, operationName, topLevelFields, normalizedFieldToQueryDirectives, variablePredicate) + } + return compileToDocument(schema, operationKind, operationName, topLevelFields, normalizedFieldToQueryDirectives, variablePredicate) + } + + static Document sortDoc(Document doc) { + return new AstSorter().sort(doc) + } + + static printDoc(Document doc) { + return AstPrinter.printAst(sortDoc(doc)) } +} + +/** + * Test code in here - helps in the base class + */ +abstract class ExecutableNormalizedOperationToAstCompilerTest extends ENOToAstCompilerTestBase { def "test pet interfaces"() { String sdl = """ @@ -134,7 +213,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: printed == '''{ animal { @@ -204,7 +283,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: printed == """{ @@ -255,7 +334,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: printed == """{ @@ -336,7 +415,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: printed == """{ @@ -428,7 +507,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: printed == """{ @@ -523,7 +602,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: printed == """{ @@ -590,7 +669,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: printed == """{ @@ -647,7 +726,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: printed == """{ @@ -705,7 +784,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: // Perhaps the typename should be hoisted out of the fragments, but the impl currently generates @@ -772,7 +851,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: // Note: the name field is spread across both fragments @@ -870,7 +949,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: // Ensure that age location name etc are not surrounded by fragments unnecessarily @@ -968,7 +1047,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, QUERY, null, tree.topLevelFields, noVariables) - def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + def printed = printDoc(result.document) then: // Ensure that __typename id fieldId fieldName etc. are not surrounded by fragments unnecessarily @@ -1035,7 +1114,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''{ @@ -1069,7 +1148,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''{ @@ -1095,7 +1174,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, "My_Op23", fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''query My_Op23 { @@ -1140,7 +1219,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''{ @@ -1174,7 +1253,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query, ["v": 123]) when: def result = localCompileToDocument(schema, QUERY, null, fields, allVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: fields[0].normalizedArguments["arg"].value["a"].value["b"].value["c"].value.isEqualTo(IntValue.of(123)) @@ -1206,7 +1285,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, MUTATION, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''mutation { @@ -1237,7 +1316,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, SUBSCRIPTION, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''subscription { @@ -1287,15 +1366,15 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat OperationDefinition operationDefinition = result.document.getDefinitionsOfType(OperationDefinition.class)[0] def fooField = (Field) operationDefinition.selectionSet.children[0] def nameField = (Field) fooField.selectionSet.children[0] - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: fooField.directives.size() == 1 nameField.directives.size() == 1 documentPrinted == '''subscription { - foo1(arg: {arg1 : "Subscription"}) @optIn(to: "foo") { - name @optIn(to: "devOps") + foo1(arg: {arg1 : "Subscription"}) @optIn(to: ["foo"]) { + name @optIn(to: ["devOps"]) } } ''' @@ -1332,7 +1411,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, MUTATION, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''mutation { @@ -1377,7 +1456,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''{ foo1(arg: {arg1 : "Query"}) { @@ -1409,7 +1488,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''{ __schema { @@ -1444,7 +1523,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''{ __type(name: "World") { @@ -1488,7 +1567,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''{ foo1 { @@ -1527,7 +1606,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: documentPrinted == '''{ foo1 { @@ -1578,7 +1657,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: // Note: the typename field moves out of a fragment because AFoo is the only impl documentPrinted == '''{ @@ -1629,7 +1708,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: // Note: the typename field moves out of a fragment because AFoo is the only impl documentPrinted == '''{ @@ -1679,7 +1758,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def fields = createNormalizedFields(schema, query) when: def result = localCompileToDocument(schema, QUERY, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: // Note: the typename field moves out of a fragment because AFoo is the only impl documentPrinted == '''{ @@ -1715,7 +1794,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, jsonVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables == [v0: ["48x48": "hello"]] @@ -1747,7 +1826,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, jsonVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables == [v0: "hello there"] @@ -1779,7 +1858,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, jsonVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables == [v0: 1] @@ -1809,7 +1888,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables == [:] @@ -1839,7 +1918,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables == [:] @@ -1869,7 +1948,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, jsonVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables == [v0: [one: "two", three: ["four", "five"]]] @@ -1899,7 +1978,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, jsonVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables.size() == 2 @@ -1936,7 +2015,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, jsonVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) def vars = result.variables then: @@ -1973,7 +2052,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables == [:] @@ -2008,7 +2087,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, noVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables == [:] @@ -2051,7 +2130,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat when: def result = localCompileToDocument(schema, MUTATION, null, fields, jsonVariables) - def documentPrinted = AstPrinter.printAst(new AstSorter().sort(result.document)) + def documentPrinted = printDoc(result.document) then: result.variables.size() == 1 @@ -2068,7 +2147,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat } - def "test a combination of plain objects and interfaces will be all variables"() { + def "test a combination of plain objects and interfaces with all variables and no variables"() { def sdl = ''' type Query { listField1(arg: [Int]): String @@ -2126,7 +2205,7 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat def result = localCompileToDocument(schema, QUERY, "named", fields, allVariables) def document = result.document def vars = result.variables - def ast = AstPrinter.printAst(new AstSorter().sort(document)) + def ast = printDoc(document) then: @@ -2153,54 +2232,46 @@ abstract class ExecutableNormalizedOperationToAstCompilerTest extends Specificat v3: [arg1: "barFragArg"], v4: [arg1: "barArg"], v5: [arg1: "fooArg"]] - } - private ExecutableNormalizedOperation createNormalizedTree(GraphQLSchema schema, String query, Map variables = [:]) { - assertValidQuery(schema, query, variables) - Document originalDocument = TestUtil.parseQuery(query) + // + // Test the opposite - when we use no variables predicate everything should be inlined + // + when: "it has no variables" - def options = ExecutableNormalizedOperationFactory.Options.defaultOptions().deferSupport(deferSupport) - return ExecutableNormalizedOperationFactory.createExecutableNormalizedOperationWithRawVariables(schema, originalDocument, null, RawVariables.of(variables), options) - } + fields = createNormalizedFields(schema, query, [v0: [1, 2, 3], + v1: [[arg1: "v1", arg2: [[arg1: "v1.1"]]], [arg1: "v2"], [arg1: "v3"]], + v2: [[arg1: "fooNonNullArg1"], [arg1: "fooNonNullArg2"]], + v3: [arg1: "barFragArg"], + v4: [arg1: "barArg"], + v5: [arg1: "fooArg"]]) - private List createNormalizedFields(GraphQLSchema schema, String query, Map variables = [:]) { - return createNormalizedTree(schema, query, variables).getTopLevelFields() - } + result = localCompileToDocument(schema, QUERY, "named", fields, noVariables) + document = result.document + vars = result.variables + ast = printDoc(document) - private void assertValidQuery(GraphQLSchema graphQLSchema, String query, Map variables = [:]) { - GraphQL graphQL = GraphQL.newGraphQL(graphQLSchema).build() - assert graphQL.execute(newExecutionInput().query(query).variables(variables)).errors.isEmpty() - } + then: "they should be inlined as values" - GraphQLSchema mkSchema(String sdl) { - def wiringFactory = new TestLiveMockedWiringFactory([JsonScalar.JSON_SCALAR]) - def runtimeWiring = RuntimeWiring.newRuntimeWiring() - .wiringFactory(wiringFactory).build() - TestUtil.schema(sdl, runtimeWiring) - } + // no vars created + vars == [:] - private static ExecutableNormalizedOperationToAstCompiler.CompilerResult localCompileToDocument( - GraphQLSchema schema, - OperationDefinition.Operation operationKind, - String operationName, - List topLevelFields, - VariablePredicate variablePredicate - ) { - return localCompileToDocument(schema, operationKind, operationName, topLevelFields,Map.of(), variablePredicate); - } - - private static ExecutableNormalizedOperationToAstCompiler.CompilerResult localCompileToDocument( - GraphQLSchema schema, - OperationDefinition.Operation operationKind, - String operationName, - List topLevelFields, - Map normalizedFieldToQueryDirectives, - VariablePredicate variablePredicate - ) { - if (deferSupport) { - return compileToDocumentWithDeferSupport(schema, operationKind, operationName, topLevelFields, normalizedFieldToQueryDirectives, variablePredicate) + // everything inlined + ast == '''query named { + foo(arg: {arg1 : "fooArg"}) { + bar(arg: {arg1 : "barArg"}) { + baz { + ... on ABaz { + a + boo(arg: {arg1 : "barFragArg"}) } - return compileToDocument(schema, operationKind, operationName, topLevelFields, normalizedFieldToQueryDirectives, variablePredicate) + } + } + } + fooNonNull(arg: [{arg1 : "fooNonNullArg1"}, {arg1 : "fooNonNullArg2"}]) + listField1(arg: [1, 2, 3]) + listField2(arg: [{arg1 : "v1", arg2 : [{arg1 : "v1.1"}]}, {arg1 : "v2"}, {arg1 : "v3"}]) +} +''' } } diff --git a/src/test/groovy/graphql/normalized/nf/NormalizedDocumentFactoryTest.groovy b/src/test/groovy/graphql/normalized/nf/NormalizedDocumentFactoryTest.groovy new file mode 100644 index 000000000..5ef79cd41 --- /dev/null +++ b/src/test/groovy/graphql/normalized/nf/NormalizedDocumentFactoryTest.groovy @@ -0,0 +1,251 @@ +package graphql.normalized.nf + +import graphql.ExecutionInput +import graphql.GraphQL +import graphql.TestUtil +import graphql.language.Document +import graphql.schema.GraphQLSchema +import graphql.schema.GraphQLTypeUtil +import graphql.util.TraversalControl +import graphql.util.Traverser +import graphql.util.TraverserContext +import graphql.util.TraverserVisitorStub +import spock.lang.Specification + +class NormalizedDocumentFactoryTest extends Specification { + + def "test"() { + String schema = """ +type Query{ + animal: Animal +} +interface Animal { + name: String + friends: [Friend] +} + +union Pet = Dog | Cat + +type Friend { + name: String + isBirdOwner: Boolean + isCatOwner: Boolean + pets: [Pet] +} + +type Bird implements Animal { + name: String + friends: [Friend] +} + +type Cat implements Animal{ + name: String + friends: [Friend] + breed: String +} + +type Dog implements Animal{ + name: String + breed: String + friends: [Friend] +} + + """ + GraphQLSchema graphQLSchema = TestUtil.schema(schema) + + String query = """ + { + animal{ + name + otherName: name + ... on Animal { + name + } + ... on Cat { + name + friends { + ... on Friend { + isCatOwner + pets { + ... on Dog { + name + } + } + } + } + } + ... on Bird { + friends { + isBirdOwner + } + friends { + name + pets { + ... on Cat { + breed + } + } + } + } + ... on Dog { + name + } + }} + + """ + + assertValidQuery(graphQLSchema, query) + + Document document = TestUtil.parseQuery(query) + def tree = NormalizedDocumentFactory.createNormalizedDocument(graphQLSchema, document) + def printedTree = printDocumentWithLevelInfo(tree, graphQLSchema) + + expect: + printedTree == ['-Query.animal: Animal', + '--[Bird, Cat, Dog].name: String', + '--otherName: [Bird, Cat, Dog].name: String', + '--Cat.friends: [Friend]', + '---Friend.isCatOwner: Boolean', + '---Friend.pets: [Pet]', + '----Dog.name: String', + '--Bird.friends: [Friend]', + '---Friend.isBirdOwner: Boolean', + '---Friend.name: String', + '---Friend.pets: [Pet]', + '----Cat.breed: String' + ] + } + + def "document with skip/include with variables"() { + String schema = """ + type Query{ + foo: Foo + } + type Foo { + bar: Bar + name: String + } + type Bar { + baz: String + } + """ + GraphQLSchema graphQLSchema = TestUtil.schema(schema) + + String query = ''' + query ($skip: Boolean!, $include: Boolean!) { + foo { + name + bar @skip(if: $skip) { + baz @include(if: $include) + } + } + } + ''' + + + assertValidQuery(graphQLSchema, query, [skip: false, include: true]) + + Document document = TestUtil.parseQuery(query) + def tree = NormalizedDocumentFactory.createNormalizedDocument(graphQLSchema, document) + def printedTree = printDocumentWithLevelInfo(tree, graphQLSchema) + + expect: + printedTree.join("\n") == '''variables: [skip:false, include:false] +-Query.foo: Foo +--Foo.name: String +--Foo.bar: Bar +variables: [skip:true, include:false] +-Query.foo: Foo +--Foo.name: String +variables: [skip:false, include:true] +-Query.foo: Foo +--Foo.name: String +--Foo.bar: Bar +---Bar.baz: String +variables: [skip:true, include:true] +-Query.foo: Foo +--Foo.name: String''' + } + + def "document with custom directives"() { + String schema = """ + directive @cache(time: Int!) on FIELD + type Query{ + foo: Foo + } + type Foo { + bar: Bar + name: String + } + type Bar { + baz: String + } + """ + GraphQLSchema graphQLSchema = TestUtil.schema(schema) + + String query = ''' + query { + foo { + name + bar @cache(time:100) { + baz + } + bar @cache(time:200) { + baz + } + + } + } + ''' + + + assertValidQuery(graphQLSchema, query, [skip: false, include: true]) + + Document document = TestUtil.parseQuery(query) + def normalizedDocument = NormalizedDocumentFactory.createNormalizedDocument(graphQLSchema, document) + def rootField = normalizedDocument.getSingleNormalizedOperation().getRootFields().get(0) + def bar = rootField.getChildren().get(1) + + expect: + bar.getAstDirectives().size() == 2 + } + + + private void assertValidQuery(GraphQLSchema graphQLSchema, String query, Map variables = [:]) { + GraphQL graphQL = GraphQL.newGraphQL(graphQLSchema).build() + def ei = ExecutionInput.newExecutionInput(query).variables(variables).build() + assert graphQL.execute(ei).errors.size() == 0 + } + + static List printDocumentWithLevelInfo(NormalizedDocument normalizedDocument, GraphQLSchema schema) { + def result = [] + for (NormalizedDocument.NormalizedOperationWithAssumedSkipIncludeVariables normalizedOperationWithAssumedSkipIncludeVariables : normalizedDocument.normalizedOperations) { + NormalizedOperation normalizedOperation = normalizedOperationWithAssumedSkipIncludeVariables.normalizedOperation; + if (normalizedOperationWithAssumedSkipIncludeVariables.assumedSkipIncludeVariables != null) { + result << "variables: " + normalizedOperationWithAssumedSkipIncludeVariables.assumedSkipIncludeVariables + } + Traverser traverser = Traverser.depthFirst({ it.getChildren() }) + traverser.traverse(normalizedOperation.getRootFields(), new TraverserVisitorStub() { + @Override + TraversalControl enter(TraverserContext context) { + NormalizedField normalizedField = context.thisNode() + String prefix = "" + for (int i = 1; i <= normalizedField.getLevel(); i++) { + prefix += "-" + } + + def possibleOutputTypes = new LinkedHashSet() + for (fieldDef in normalizedField.getFieldDefinitions(schema)) { + possibleOutputTypes.add(GraphQLTypeUtil.simplePrint(fieldDef.type)) + } + + result << (prefix + normalizedField.printDetails() + ": " + possibleOutputTypes.join(", ")) + return TraversalControl.CONTINUE + } + }) + } + result + } + + +} diff --git a/src/test/groovy/graphql/normalized/nf/NormalizedOperationToAstCompilerTest.groovy b/src/test/groovy/graphql/normalized/nf/NormalizedOperationToAstCompilerTest.groovy new file mode 100644 index 000000000..c797392fe --- /dev/null +++ b/src/test/groovy/graphql/normalized/nf/NormalizedOperationToAstCompilerTest.groovy @@ -0,0 +1,257 @@ +package graphql.normalized.nf + +import graphql.GraphQL +import graphql.TestUtil +import graphql.language.AstPrinter +import graphql.language.AstSorter +import graphql.language.OperationDefinition +import graphql.parser.Parser +import graphql.schema.GraphQLSchema +import spock.lang.Specification + +import static graphql.ExecutionInput.newExecutionInput + +class NormalizedOperationToAstCompilerTest extends Specification { + + + def "test pet interfaces"() { + String sdl = """ + type Query { + animal: Animal + } + interface Animal { + name: String + friends: [Friend] + } + + union Pet = Dog | Cat + + type Friend { + name: String + isBirdOwner: Boolean + isCatOwner: Boolean + pets: [Pet] + } + + type Bird implements Animal { + name: String + friends: [Friend] + } + + type Cat implements Animal { + name: String + friends: [Friend] + breed: String + mood: String + } + + type Dog implements Animal { + name: String + breed: String + friends: [Friend] + } + """ + + String query = """ + { + animal { + name + otherName: name + ... on Animal { + name + } + ... on Cat { + name + mood + friends { + ... on Friend { + isCatOwner + pets { + ... on Dog { + name + } + } + } + } + } + ... on Bird { + friends { + isBirdOwner + } + friends { + name + pets { + ... on Cat { + breed + } + } + } + } + ... on Dog { + name + breed + } + } + } + """ + GraphQLSchema schema = TestUtil.schema(sdl) + assertValidQuery(schema, query) + def normalizedDocument = NormalizedDocumentFactory.createNormalizedDocument(schema, Parser.parse(query)) + def normalizedOperation = normalizedDocument.getSingleNormalizedOperation() + when: + def result = NormalizedOperationToAstCompiler.compileToDocument(schema, normalizedOperation) + def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + then: + printed == '''{ + animal { + name + otherName: name + ... on Bird { + friends { + isBirdOwner + name + pets { + ... on Cat { + breed + } + } + } + } + ... on Cat { + friends { + isCatOwner + pets { + ... on Dog { + name + } + } + } + mood + } + ... on Dog { + breed + } + } +} +''' + } + + def "print custom directives"() { + String sdl = """ + directive @cache(time: Int!) on FIELD + type Query{ + foo: Foo + } + type Foo { + bar: Bar + name: String + } + type Bar { + baz: String + } + """ + + String query = ''' + query { + foo { + name + bar @cache(time:100) { + baz + } + bar @cache(time:200) { + baz + } + + } + } + ''' + + GraphQLSchema schema = TestUtil.schema(sdl) + assertValidQuery(schema, query) + def normalizedDocument = NormalizedDocumentFactory.createNormalizedDocument(schema, Parser.parse(query)) + def normalizedOperation = normalizedDocument.getSingleNormalizedOperation() + when: + def result = NormalizedOperationToAstCompiler.compileToDocument(schema, normalizedOperation) + def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + then: + printed == '''{ + foo { + bar @cache(time: 100) @cache(time: 200) { + baz + } + name + } +} +''' + } + + + def "print one root field"() { + def sdl = """ + type Query { + foo: Foo + } + type Foo { + bar: String + } + """ + def query = ''' + { foo { bar } } + ''' + GraphQLSchema schema = TestUtil.schema(sdl) + assertValidQuery(schema, query) + def normalizedDocument = NormalizedDocumentFactory.createNormalizedDocument(schema, Parser.parse(query)) + def normalizedOperation = normalizedDocument.getSingleNormalizedOperation() + def rootField = normalizedOperation.getRootFields().get(0) + when: + def result = NormalizedOperationToAstCompiler.compileToDocument(schema, schema.getObjectType("Query"), rootField, "myOperation", OperationDefinition.Operation.QUERY) + def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + then: + printed == '''query myOperation { + foo { + bar + } +} +''' + } + + def "print list of root fields"() { + def sdl = """ + type Query { + foo: Foo + } + type Foo { + bar: String + } + """ + def query = ''' + { foo { bar } foo2: foo { bar } } + ''' + GraphQLSchema schema = TestUtil.schema(sdl) + assertValidQuery(schema, query) + def normalizedDocument = NormalizedDocumentFactory.createNormalizedDocument(schema, Parser.parse(query)) + def normalizedOperation = normalizedDocument.getSingleNormalizedOperation() + def rootFields = normalizedOperation.getRootFields() + when: + def result = NormalizedOperationToAstCompiler.compileToDocument(schema, schema.getObjectType("Query"), rootFields, "myOperation", OperationDefinition.Operation.QUERY) + def printed = AstPrinter.printAst(new AstSorter().sort(result.document)) + then: + printed == '''query myOperation { + foo { + bar + } + foo2: foo { + bar + } +} +''' + } + + + private void assertValidQuery(GraphQLSchema graphQLSchema, String query, Map variables = [:]) { + GraphQL graphQL = GraphQL.newGraphQL(graphQLSchema).build() + assert graphQL.execute(newExecutionInput().query(query).variables(variables)).errors.isEmpty() + } + + +} diff --git a/src/test/groovy/graphql/schema/CoercingTest.groovy b/src/test/groovy/graphql/schema/CoercingTest.groovy index ad1d30660..9504243c4 100644 --- a/src/test/groovy/graphql/schema/CoercingTest.groovy +++ b/src/test/groovy/graphql/schema/CoercingTest.groovy @@ -1,6 +1,7 @@ package graphql.schema import graphql.ExecutionInput +import graphql.GraphQLContext import graphql.TestUtil import graphql.analysis.MaxQueryDepthInstrumentation import graphql.language.ArrayValue @@ -244,6 +245,11 @@ class CoercingTest extends Specification { Object parseLiteral(Object input) throws CoercingParseLiteralException { return input } + + @Override + StringValue valueToLiteral(Object input, GraphQLContext graphQLContext, Locale locale) { + return new StringValue(input.toString()) + } }) .build() diff --git a/src/test/groovy/graphql/schema/DataFetcherFactoriesTest.groovy b/src/test/groovy/graphql/schema/DataFetcherFactoriesTest.groovy index 5050ba0ef..3fb58ed1e 100644 --- a/src/test/groovy/graphql/schema/DataFetcherFactoriesTest.groovy +++ b/src/test/groovy/graphql/schema/DataFetcherFactoriesTest.groovy @@ -32,7 +32,17 @@ class DataFetcherFactoriesTest extends Specification { def fetcherFactory = DataFetcherFactories.useDataFetcher(pojoDF) when: - def value = fetcherFactory.get(null).get(null) + def value = fetcherFactory.get((GraphQLFieldDefinition)null).get(null) + + then: + value == "goodbye" + } + + def "will use given df via field"() { + def fetcherFactory = DataFetcherFactories.useDataFetcher(pojoDF) + + when: + def value = fetcherFactory.get((GraphQLFieldDefinition) null).get(null) then: value == "goodbye" diff --git a/src/test/groovy/graphql/schema/DataFetchingFieldSelectionSetImplTest.groovy b/src/test/groovy/graphql/schema/DataFetchingFieldSelectionSetImplTest.groovy index 531e40a86..ff80ad9b3 100644 --- a/src/test/groovy/graphql/schema/DataFetchingFieldSelectionSetImplTest.groovy +++ b/src/test/groovy/graphql/schema/DataFetchingFieldSelectionSetImplTest.groovy @@ -348,6 +348,54 @@ class DataFetchingFieldSelectionSetImplTest extends Specification { fields.collect({ field -> field.qualifiedName }) == expectedFieldName } + + def "immediate fields followed by fields are computed"() { + + when: + def ei = ExecutionInput.newExecutionInput(relayQuery).build() + def er = relayGraphql.execute(ei) + + then: + er.getErrors().isEmpty() + + then: + List immediateFields = selectionSet.getImmediateFields() + + then: + def expectedImmediateFieldName = [ + "nodes", + "edges", + "totalCount" + ] + + immediateFields.collect({ field -> field.qualifiedName }) == expectedImmediateFieldName + + then: + List fieldsGlob = selectionSet.getFields("**") + List fields = selectionSet.getFields() + + def expectedFieldName = [ + "nodes", + "nodes/key", + "nodes/summary", + "nodes/status", + "nodes/status/name", + "nodes/stuff", + "nodes/stuff/name", + "edges", + "edges/cursor", + "edges/node", + "edges/node/description", + "edges/node/status", + "edges/node/status/name", + "totalCount" + ] + + then: + fieldsGlob.collect({ field -> field.qualifiedName }) == expectedFieldName + fields.collect({ field -> field.qualifiedName }) == expectedFieldName + } + def petSDL = ''' type Query { petUnion : PetUnion diff --git a/src/test/groovy/graphql/schema/DelegatingDataFetchingEnvironmentTest.groovy b/src/test/groovy/graphql/schema/DelegatingDataFetchingEnvironmentTest.groovy index 29133b21b..687a0f62a 100644 --- a/src/test/groovy/graphql/schema/DelegatingDataFetchingEnvironmentTest.groovy +++ b/src/test/groovy/graphql/schema/DelegatingDataFetchingEnvironmentTest.groovy @@ -1,7 +1,6 @@ package graphql.schema import graphql.GraphQLContext -import org.jetbrains.annotations.NotNull import spock.lang.Specification class DelegatingDataFetchingEnvironmentTest extends Specification { @@ -23,7 +22,6 @@ class DelegatingDataFetchingEnvironmentTest extends Specification { when: def delegatingDFE = new DelegatingDataFetchingEnvironment(dfe) { - @NotNull @Override GraphQLContext getGraphQlContext() { return GraphQLContext.of(["key": "overriddenContext"]) diff --git a/src/test/groovy/graphql/schema/GraphQLCodeRegistryTest.groovy b/src/test/groovy/graphql/schema/GraphQLCodeRegistryTest.groovy index eef53c979..e528f5619 100644 --- a/src/test/groovy/graphql/schema/GraphQLCodeRegistryTest.groovy +++ b/src/test/groovy/graphql/schema/GraphQLCodeRegistryTest.groovy @@ -5,6 +5,7 @@ import graphql.GraphQL import graphql.Scalars import graphql.StarWarsSchema import graphql.TestUtil +import graphql.TrivialDataFetcher import graphql.TypeResolutionEnvironment import graphql.schema.visibility.GraphqlFieldVisibility import spock.lang.Specification @@ -98,7 +99,7 @@ class GraphQLCodeRegistryTest extends Specification { (codeRegistryBuilder.getDataFetcher(objectType("parentType3"), field("fieldD")) as NamedDF).name == "D" (codeRegistryBuilder.getDataFetcher(objectType("parentType3"), field("fieldE")) as NamedDF).name == "E" - codeRegistryBuilder.getDataFetcher(objectType("parentType2"), field("A")) instanceof PropertyDataFetcher // a default one + codeRegistryBuilder.getDataFetcher(objectType("parentType2"), field("A")) instanceof SingletonPropertyDataFetcher // a default one when: def codeRegistry = codeRegistryBuilder.build() @@ -108,7 +109,7 @@ class GraphQLCodeRegistryTest extends Specification { (codeRegistry.getDataFetcher(objectType("parentType3"), field("fieldD")) as NamedDF).name == "D" (codeRegistry.getDataFetcher(objectType("parentType3"), field("fieldE")) as NamedDF).name == "E" - codeRegistry.getDataFetcher(objectType("parentType2"), field("A")) instanceof PropertyDataFetcher // a default one + codeRegistry.getDataFetcher(objectType("parentType2"), field("A")) instanceof SingletonPropertyDataFetcher // a default one } def "data fetchers can be retrieved using field coordinates"() { @@ -125,7 +126,7 @@ class GraphQLCodeRegistryTest extends Specification { (codeRegistryBuilder.getDataFetcher(FieldCoordinates.coordinates("parentType3", "fieldD"), field("fieldD")) as NamedDF).name == "D" (codeRegistryBuilder.getDataFetcher(FieldCoordinates.coordinates("parentType3", "fieldE"), field("fieldE")) as NamedDF).name == "E" - codeRegistryBuilder.getDataFetcher(FieldCoordinates.coordinates("parentType2", "A"), field("A")) instanceof PropertyDataFetcher // a default one + codeRegistryBuilder.getDataFetcher(FieldCoordinates.coordinates("parentType2", "A"), field("A")) instanceof SingletonPropertyDataFetcher // a default one when: def codeRegistry = codeRegistryBuilder.build() @@ -135,7 +136,7 @@ class GraphQLCodeRegistryTest extends Specification { (codeRegistry.getDataFetcher(FieldCoordinates.coordinates("parentType3", "fieldD"), field("fieldD")) as NamedDF).name == "D" (codeRegistry.getDataFetcher(FieldCoordinates.coordinates("parentType3", "fieldE"), field("fieldE")) as NamedDF).name == "E" - codeRegistry.getDataFetcher(FieldCoordinates.coordinates("parentType2", "A"), field("A")) instanceof PropertyDataFetcher // a default one + codeRegistry.getDataFetcher(FieldCoordinates.coordinates("parentType2", "A"), field("A")) instanceof SingletonPropertyDataFetcher // a default one } def "records type resolvers against unions and interfaces"() { @@ -179,13 +180,13 @@ class GraphQLCodeRegistryTest extends Specification { (schema.getCodeRegistry().getFieldVisibility() as NamedFieldVisibility).name == "B" } - def "PropertyDataFetcher is the default data fetcher used when no data fetcher is available"() { + def "SingletonPropertyDataFetcher is the default data fetcher used when no data fetcher is available"() { when: def codeRegistry = GraphQLCodeRegistry.newCodeRegistry().build() def dataFetcher = codeRegistry.getDataFetcher(StarWarsSchema.humanType, StarWarsSchema.humanType.getFieldDefinition("name")) then: - dataFetcher instanceof PropertyDataFetcher + dataFetcher instanceof SingletonPropertyDataFetcher } def "custom DF can be the default data fetcher used when no data fetcher is available"() { @@ -251,8 +252,8 @@ class GraphQLCodeRegistryTest extends Specification { er.errors.isEmpty() er.data == [codeRegistryField: "codeRegistryFieldValue", nonCodeRegistryField: "nonCodeRegistryFieldValue", neitherSpecified: "neitherSpecifiedValue"] - // when nothing is specified then its a plain old PropertyDataFetcher - schema.getCodeRegistry().getDataFetcher(queryType, queryType.getFieldDefinition("neitherSpecified")) instanceof PropertyDataFetcher + // when nothing is specified then its a plain old SingletonPropertyDataFetcher + schema.getCodeRegistry().getDataFetcher(queryType, queryType.getFieldDefinition("neitherSpecified")) instanceof SingletonPropertyDataFetcher } @@ -287,7 +288,7 @@ class GraphQLCodeRegistryTest extends Specification { // when nothing is specified then its a plain old PropertyDataFetcher def queryType = schema.getObjectType("Query") - schema.getCodeRegistry().getDataFetcher(queryType, queryType.getFieldDefinition("neitherSpecified")) instanceof PropertyDataFetcher + schema.getCodeRegistry().getDataFetcher(queryType, queryType.getFieldDefinition("neitherSpecified")) instanceof SingletonPropertyDataFetcher } def "will detect system versus user data fetchers"() { diff --git a/src/test/groovy/graphql/schema/GraphQLSchemaTest.groovy b/src/test/groovy/graphql/schema/GraphQLSchemaTest.groovy index bf18e083c..73a04346f 100644 --- a/src/test/groovy/graphql/schema/GraphQLSchemaTest.groovy +++ b/src/test/groovy/graphql/schema/GraphQLSchemaTest.groovy @@ -155,22 +155,22 @@ class GraphQLSchemaTest extends Specification { when: "no additional directives have been specified" def schema = schemaBuilder.build() then: - schema.directives.size() == 5 + schema.directives.size() == 7 when: "clear directives is called" schema = schemaBuilder.clearDirectives().build() then: - schema.directives.size() == 3 // @deprecated and @specifiedBy and @oneOf is ALWAYS added if missing + schema.directives.size() == 5 // @deprecated and @specifiedBy and @oneOf et al is ALWAYS added if missing when: "clear directives is called with more directives" schema = schemaBuilder.clearDirectives().additionalDirective(Directives.SkipDirective).build() then: - schema.directives.size() == 4 + schema.directives.size() == 6 when: "the schema is transformed, things are copied" schema = schema.transform({ builder -> builder.additionalDirective(Directives.IncludeDirective) }) then: - schema.directives.size() == 5 + schema.directives.size() == 7 } def "clear additional types works as expected"() { @@ -508,7 +508,7 @@ class GraphQLSchemaTest extends Specification { def newDF = newRegistry.getDataFetcher(dogType, dogType.getField("name")) newDF !== nameDF - newDF instanceof PropertyDataFetcher // defaulted in + newDF instanceof LightDataFetcher // defaulted in } def "can get by field co-ordinate"() { diff --git a/src/test/groovy/graphql/schema/PropertyDataFetcherClassLoadingTest.groovy b/src/test/groovy/graphql/schema/PropertyDataFetcherClassLoadingTest.groovy index 6ee7623dd..62b814db0 100644 --- a/src/test/groovy/graphql/schema/PropertyDataFetcherClassLoadingTest.groovy +++ b/src/test/groovy/graphql/schema/PropertyDataFetcherClassLoadingTest.groovy @@ -25,7 +25,7 @@ class PropertyDataFetcherClassLoadingTest extends Specification { } BrokenClass getBrokenThings() { - return BrokenClass.cast(null) + return new BrokenClass() } } diff --git a/src/test/groovy/graphql/schema/PropertyDataFetcherTest.groovy b/src/test/groovy/graphql/schema/PropertyDataFetcherTest.groovy index b9fae5e3f..7903f1422 100644 --- a/src/test/groovy/graphql/schema/PropertyDataFetcherTest.groovy +++ b/src/test/groovy/graphql/schema/PropertyDataFetcherTest.groovy @@ -1,6 +1,7 @@ package graphql.schema import graphql.ExecutionInput +import graphql.Scalars import graphql.TestUtil import graphql.schema.fetching.ConfusedPojo import graphql.schema.somepackage.ClassWithDFEMethods @@ -16,6 +17,14 @@ import java.util.function.Function import static graphql.schema.DataFetchingEnvironmentImpl.newDataFetchingEnvironment +/** + * Note : That `new PropertyDataFetcher("someProperty")` and `SingletonPropertyDataFetcher.singleton()` + * should really be the equivalent since they both go via `PropertyDataFetcherHelper.getPropertyValue` + * under the covers. + * + * But where we can we have tried to use `where` blocks to test both + * + */ @SuppressWarnings("GroovyUnusedDeclaration") class PropertyDataFetcherTest extends Specification { @@ -26,9 +35,11 @@ class PropertyDataFetcherTest extends Specification { PropertyDataFetcherHelper.setUseLambdaFactory(true) } - def env(obj) { + def env(String propertyName, Object obj) { + def fieldDefinition = GraphQLFieldDefinition.newFieldDefinition().name(propertyName).type(Scalars.GraphQLString).build() newDataFetchingEnvironment() .source(obj) + .fieldDefinition(fieldDefinition) .arguments([argument1: "value1", argument2: "value2"]) .build() } @@ -38,14 +49,20 @@ class PropertyDataFetcherTest extends Specification { } def "null source is always null"() { - def environment = env(null) - def fetcher = new PropertyDataFetcher("someProperty") + given: + def environment = env("someProperty", null) + expect: fetcher.get(environment) == null + + where: + fetcher | _ + new PropertyDataFetcher("someProperty") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "function based fetcher works with non null source"() { - def environment = env(new SomeObject(value: "aValue")) + def environment = env("notused", new SomeObject(value: "aValue")) Function f = { obj -> obj['value'] } def fetcher = PropertyDataFetcher.fetching(f) expect: @@ -53,7 +70,7 @@ class PropertyDataFetcherTest extends Specification { } def "function based fetcher works with null source"() { - def environment = env(null) + def environment = env("notused", null) Function f = { obj -> obj['value'] } def fetcher = PropertyDataFetcher.fetching(f) expect: @@ -61,46 +78,87 @@ class PropertyDataFetcherTest extends Specification { } def "fetch via map lookup"() { - def environment = env(["mapProperty": "aValue"]) - def fetcher = PropertyDataFetcher.fetching("mapProperty") + given: + def environment = env("mapProperty", ["mapProperty": "aValue"]) + expect: fetcher.get(environment) == "aValue" + + where: + fetcher | _ + PropertyDataFetcher.fetching("mapProperty") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "fetch via public getter with private subclass"() { - def environment = env(TestClass.createPackageProtectedImpl("aValue")) - def fetcher = new PropertyDataFetcher("packageProtectedProperty") + given: + def environment = env("packageProtectedProperty", TestClass.createPackageProtectedImpl("aValue")) + expect: fetcher.get(environment) == "aValue" + + where: + fetcher | _ + new PropertyDataFetcher("packageProtectedProperty") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "fetch via method that isn't present"() { - def environment = env(new TestClass()) - def fetcher = new PropertyDataFetcher("valueNotPresent") + given: + def environment = env("valueNotPresent", new TestClass()) + + when: def result = fetcher.get(environment) - expect: + + then: result == null + + where: + fetcher | _ + new PropertyDataFetcher("valueNotPresent") | _ + SingletonPropertyDataFetcher.singleton() | _ + } def "fetch via method that is private"() { - def environment = env(new TestClass()) - def fetcher = new PropertyDataFetcher("privateProperty") + given: + def environment = env("privateProperty", new TestClass()) + + when: def result = fetcher.get(environment) - expect: + + then: result == "privateValue" + + where: + fetcher | _ + new PropertyDataFetcher("privateProperty") | _ + SingletonPropertyDataFetcher.singleton() | _ + } def "fetch via method that is private with setAccessible OFF"() { + given: PropertyDataFetcher.setUseSetAccessible(false) - def environment = env(new TestClass()) - def fetcher = new PropertyDataFetcher("privateProperty") + def environment = env("privateProperty", new TestClass()) + + when: def result = fetcher.get(environment) - expect: + + then: result == null + + where: + fetcher | _ + new PropertyDataFetcher("privateProperty") | _ + SingletonPropertyDataFetcher.singleton() | _ + } def "fetch via record method"() { - def environment = env(new RecordLikeClass()) + given: + def environment = env("recordProperty", new RecordLikeClass()) + when: def fetcher = new PropertyDataFetcher("recordProperty") def result = fetcher.get(environment) @@ -144,57 +202,95 @@ class PropertyDataFetcherTest extends Specification { result == "toString" } + def "fetch via record method with singleton fetcher"() { + given: + def environment = env("recordProperty", new RecordLikeClass()) + + when: + def fetcher = SingletonPropertyDataFetcher.singleton() + def result = fetcher.get(environment) + then: + result == "recordProperty" + } + def "can fetch record like methods that are public and on super classes"() { - def environment = env(new RecordLikeTwoClassesDown()) + given: + def environment = env("recordProperty", new RecordLikeTwoClassesDown()) + when: - def fetcher = new PropertyDataFetcher("recordProperty") def result = fetcher.get(environment) + then: result == "recordProperty" + + where: + fetcher | _ + new PropertyDataFetcher("recordProperty") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "fetch via record method without lambda support"() { + given: PropertyDataFetcherHelper.setUseLambdaFactory(false) PropertyDataFetcherHelper.clearReflectionCache() when: - def environment = env(new RecordLikeClass()) + def environment = env("recordProperty", new RecordLikeClass()) def fetcher = new PropertyDataFetcher("recordProperty") def result = fetcher.get(environment) + then: result == "recordProperty" when: - environment = env(new RecordLikeTwoClassesDown()) + environment = env("recordProperty", new RecordLikeTwoClassesDown()) fetcher = new PropertyDataFetcher("recordProperty") result = fetcher.get(environment) + then: result == "recordProperty" } def "fetch via record method without lambda support in preference to getter methods"() { + given: PropertyDataFetcherHelper.setUseLambdaFactory(false) PropertyDataFetcherHelper.clearReflectionCache() when: - def environment = env(new ConfusedPojo()) - def fetcher = new PropertyDataFetcher("recordLike") + def environment = env("recordLike", new ConfusedPojo()) def result = fetcher.get(environment) + then: result == "recordLike" + + where: + fetcher | _ + new PropertyDataFetcher("recordLike") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "fetch via public method"() { - def environment = env(new TestClass()) - def fetcher = new PropertyDataFetcher("publicProperty") + given: + def environment = env("publicProperty", new TestClass()) + + when: def result = fetcher.get(environment) - expect: + + then: result == "publicValue" + + where: + fetcher | _ + new PropertyDataFetcher("publicProperty") | _ + SingletonPropertyDataFetcher.singleton() | _ + } def "fetch via public method declared two classes up"() { - def environment = env(new TwoClassesDown("aValue")) + given: + def environment = env("publicProperty", new TwoClassesDown("aValue")) def fetcher = new PropertyDataFetcher("publicProperty") + when: def result = fetcher.get(environment) then: @@ -208,42 +304,69 @@ class PropertyDataFetcherTest extends Specification { } def "fetch via property only defined on package protected impl"() { - def environment = env(TestClass.createPackageProtectedImpl("aValue")) - def fetcher = new PropertyDataFetcher("propertyOnlyDefinedOnPackageProtectedImpl") + given: + def environment = env("propertyOnlyDefinedOnPackageProtectedImpl", TestClass.createPackageProtectedImpl("aValue")) + + when: def result = fetcher.get(environment) - expect: + + then: result == "valueOnlyDefinedOnPackageProtectedIpl" + + where: + fetcher | _ + new PropertyDataFetcher("propertyOnlyDefinedOnPackageProtectedImpl") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "fetch via public field"() { - def environment = env(new TestClass()) - def fetcher = new PropertyDataFetcher("publicField") + given: + + def environment = env("publicField", new TestClass()) def result = fetcher.get(environment) + expect: result == "publicFieldValue" + + where: + fetcher | _ + new PropertyDataFetcher("publicField") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "fetch via private field"() { - def environment = env(new TestClass()) - def fetcher = new PropertyDataFetcher("privateField") + given: + def environment = env("privateField", new TestClass()) def result = fetcher.get(environment) + expect: result == "privateFieldValue" + + where: + fetcher | _ + new PropertyDataFetcher("privateField") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "fetch via private field when setAccessible OFF"() { + given: PropertyDataFetcher.setUseSetAccessible(false) - def environment = env(new TestClass()) - def fetcher = new PropertyDataFetcher("privateField") + def environment = env("privateField", new TestClass()) def result = fetcher.get(environment) + expect: result == null + + where: + fetcher | _ + new PropertyDataFetcher("privateField") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "fetch when caching is in place has no bad effects"() { - def environment = env(new TestClass()) + def environment = env("publicProperty", new TestClass()) def fetcher = new PropertyDataFetcher("publicProperty") when: def result = fetcher.get(environment) @@ -317,8 +440,10 @@ class PropertyDataFetcherTest extends Specification { } def "support for DFE on methods"() { - def environment = env(new ClassWithDFEMethods()) + given: + def environment = env("methodWithDFE", new ClassWithDFEMethods()) def fetcher = new PropertyDataFetcher("methodWithDFE") + when: def result = fetcher.get(environment) then: @@ -370,7 +495,7 @@ class PropertyDataFetcherTest extends Specification { def "finds interface methods"() { when: - def environment = env(new ClassWithInterfaces()) + def environment = env("methodYouMustImplement", new ClassWithInterfaces()) def fetcher = new PropertyDataFetcher("methodYouMustImplement") def result = fetcher.get(environment) then: @@ -397,7 +522,7 @@ class PropertyDataFetcherTest extends Specification { } def "finds interface methods with inheritance"() { - def environment = env(new ClassWithInteritanceAndInterfaces.StartingClass()) + def environment = env("methodYouMustImplement", new ClassWithInteritanceAndInterfaces.StartingClass()) when: def fetcher = new PropertyDataFetcher("methodYouMustImplement") @@ -411,7 +536,7 @@ class PropertyDataFetcherTest extends Specification { then: result == "methodThatIsADefault" - def environment2 = env(new ClassWithInteritanceAndInterfaces.InheritedClass()) + def environment2 = env("methodYouMustImplement", new ClassWithInteritanceAndInterfaces.InheritedClass()) when: fetcher = new PropertyDataFetcher("methodYouMustImplement") @@ -440,7 +565,7 @@ class PropertyDataFetcherTest extends Specification { def "ensure DFE is passed to method"() { - def environment = env(new ClassWithDFEMethods()) + def environment = env("methodUsesDataFetchingEnvironment", new ClassWithDFEMethods()) def fetcher = new PropertyDataFetcher("methodUsesDataFetchingEnvironment") when: def result = fetcher.get(environment) @@ -455,7 +580,7 @@ class PropertyDataFetcherTest extends Specification { } def "negative caching works as expected"() { - def environment = env(new ClassWithDFEMethods()) + def environment = env("doesNotExist", new ClassWithDFEMethods()) def fetcher = new PropertyDataFetcher("doesNotExist") when: def result = fetcher.get(environment) @@ -546,69 +671,81 @@ class PropertyDataFetcherTest extends Specification { def "search for private getter in class hierarchy"() { given: Bar bar = new Baz() - PropertyDataFetcher propertyDataFetcher = new PropertyDataFetcher("something") - def dfe = Mock(DataFetchingEnvironment) - dfe.getSource() >> bar + def dfe = env("something", bar) + when: - def result = propertyDataFetcher.get(dfe) + def result = fetcher.get(dfe) then: result == "bar" // repeat - should be cached when: - result = propertyDataFetcher.get(dfe) + result = fetcher.get(dfe) then: result == "bar" + + where: + fetcher | _ + new PropertyDataFetcher("something") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "issue 3247 - record like statics should not be used"() { given: def payload = new UpdateOrganizerSubscriptionPayload(true, new OrganizerSubscriptionError()) - PropertyDataFetcher propertyDataFetcher = new PropertyDataFetcher("success") - def dfe = Mock(DataFetchingEnvironment) - dfe.getSource() >> payload + def dfe = env("success", payload) + when: - def result = propertyDataFetcher.get(dfe) + def result = fetcher.get(dfe) then: result == true // repeat - should be cached when: - result = propertyDataFetcher.get(dfe) + result = fetcher.get(dfe) then: result == true + + where: + fetcher | _ + new PropertyDataFetcher("success") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "issue 3247 - record like statics should not be found"() { given: def errorShape = new OrganizerSubscriptionError() - PropertyDataFetcher propertyDataFetcher = new PropertyDataFetcher("message") - def dfe = Mock(DataFetchingEnvironment) - dfe.getSource() >> errorShape + def dfe = env("message", errorShape) + when: - def result = propertyDataFetcher.get(dfe) + def result = fetcher.get(dfe) then: result == null // not found as its a static recordLike() method // repeat - should be cached when: - result = propertyDataFetcher.get(dfe) + result = fetcher.get(dfe) then: result == null + + where: + fetcher | _ + new PropertyDataFetcher("message") | _ + SingletonPropertyDataFetcher.singleton() | _ } def "issue 3247 - getter statics should be found"() { given: def objectInQuestion = new BarClassWithStaticProperties() + def dfe = env("foo", objectInQuestion) PropertyDataFetcher propertyDataFetcher = new PropertyDataFetcher("foo") - def dfe = Mock(DataFetchingEnvironment) - dfe.getSource() >> objectInQuestion + when: def result = propertyDataFetcher.get(dfe) @@ -657,15 +794,22 @@ class PropertyDataFetcherTest extends Specification { Locale oldLocale = Locale.getDefault() Locale.setDefault(new Locale("tr", "TR")) - def environment = env(new OtherObject(id: "aValue")) - def fetcher = PropertyDataFetcher.fetching("id") + def environment = env("id", new OtherObject(id: "aValue")) when: + def fetcher = PropertyDataFetcher.fetching("id") String propValue = fetcher.get(environment) then: propValue == 'aValue' + when: + fetcher = SingletonPropertyDataFetcher.singleton() + propValue = fetcher.get(environment) + + then: + propValue == 'aValue' + cleanup: Locale.setDefault(oldLocale) } diff --git a/src/test/groovy/graphql/schema/SchemaTransformerTest.groovy b/src/test/groovy/graphql/schema/SchemaTransformerTest.groovy index 339378f7a..861520b00 100644 --- a/src/test/groovy/graphql/schema/SchemaTransformerTest.groovy +++ b/src/test/groovy/graphql/schema/SchemaTransformerTest.groovy @@ -959,4 +959,67 @@ type Query { visitedSchema == schema visitedCodeRegistry instanceof GraphQLCodeRegistry.Builder } + + def "deprecation transformation correctly overrides existing deprecated directive reasons"() { + def schema = TestUtil.schema(""" + schema { + query: QueryType + } + + type QueryType { + a: String + b: String @deprecated(reason: "Replace this doc") + } + + interface InterfaceType { + a: String + b: String @deprecated(reason: "Replace this doc") + } + + input InputType { + a: String + b: String @deprecated(reason: "Replace this doc") + } + """) + + when: + def typeVisitor = new GraphQLTypeVisitorStub() { + @Override + TraversalControl visitGraphQLFieldDefinition(GraphQLFieldDefinition node, TraverserContext context) { + def n = node.transform(b -> b.deprecate("NEW REASON")); + return changeNode(context, n); + } + + @Override + TraversalControl visitGraphQLInputObjectField(GraphQLInputObjectField node, TraverserContext context) { + def n = node.transform(b -> b.deprecate("NEW REASON")); + return changeNode(context, n); + } + } + def newSchema = SchemaTransformer.transformSchema(schema, typeVisitor) + + then: + def newQueryType = newSchema.getObjectType("QueryType") + def newQueryTypePrinted = new SchemaPrinter().print(newQueryType) + + newQueryTypePrinted == """type QueryType { + a: String @deprecated(reason : "NEW REASON") + b: String @deprecated(reason : "NEW REASON") +} +""" + def newInterfaceType = newSchema.getType("InterfaceType") + def newInterfaceTypePrinted = new SchemaPrinter().print(newInterfaceType) + newInterfaceTypePrinted == """interface InterfaceType { + a: String @deprecated(reason : "NEW REASON") + b: String @deprecated(reason : "NEW REASON") +} +""" + def newInputType = newSchema.getType("InputType") + def newInputTypePrinted = new SchemaPrinter().print(newInputType) + newInputTypePrinted == """input InputType { + a: String @deprecated(reason : "NEW REASON") + b: String @deprecated(reason : "NEW REASON") +} +""" + } } diff --git a/src/test/groovy/graphql/schema/diffing/SchemaDiffingTest.groovy b/src/test/groovy/graphql/schema/diffing/SchemaDiffingTest.groovy index efa708dcf..46481fa7a 100644 --- a/src/test/groovy/graphql/schema/diffing/SchemaDiffingTest.groovy +++ b/src/test/groovy/graphql/schema/diffing/SchemaDiffingTest.groovy @@ -35,13 +35,13 @@ class SchemaDiffingTest extends Specification { schemaGraph.getVerticesByType(SchemaGraph.UNION).size() == 0 schemaGraph.getVerticesByType(SchemaGraph.SCALAR).size() == 2 schemaGraph.getVerticesByType(SchemaGraph.FIELD).size() == 40 - schemaGraph.getVerticesByType(SchemaGraph.ARGUMENT).size() == 9 + schemaGraph.getVerticesByType(SchemaGraph.ARGUMENT).size() == 11 schemaGraph.getVerticesByType(SchemaGraph.INPUT_FIELD).size() == 0 schemaGraph.getVerticesByType(SchemaGraph.INPUT_OBJECT).size() == 0 - schemaGraph.getVerticesByType(SchemaGraph.DIRECTIVE).size() == 5 + schemaGraph.getVerticesByType(SchemaGraph.DIRECTIVE).size() == 7 schemaGraph.getVerticesByType(SchemaGraph.APPLIED_ARGUMENT).size() == 0 schemaGraph.getVerticesByType(SchemaGraph.APPLIED_DIRECTIVE).size() == 0 - schemaGraph.size() == 93 + schemaGraph.size() == 97 } diff --git a/src/test/groovy/graphql/schema/idl/RuntimeWiringTest.groovy b/src/test/groovy/graphql/schema/idl/RuntimeWiringTest.groovy index 907d89a1b..beb518ae2 100644 --- a/src/test/groovy/graphql/schema/idl/RuntimeWiringTest.groovy +++ b/src/test/groovy/graphql/schema/idl/RuntimeWiringTest.groovy @@ -193,7 +193,7 @@ class RuntimeWiringTest extends Specification { newWiring.fieldVisibility == fieldVisibility } - def "strict mode can stop certain redefinitions"() { + def "strict mode, on by default, can stop certain redefinitions"() { DataFetcher DF1 = env -> "x" DataFetcher DF2 = env -> "x" TypeResolver TR1 = env -> null @@ -201,18 +201,15 @@ class RuntimeWiringTest extends Specification { when: RuntimeWiring.newRuntimeWiring() - .strictMode() .type(TypeRuntimeWiring.newTypeWiring("Foo").dataFetcher("foo", DF1)) - .type(TypeRuntimeWiring.newTypeWiring("Foo").dataFetcher("bar", DF1)) - + .type(TypeRuntimeWiring.newTypeWiring("Foo").dataFetcher("foo", DF1)) // Cannot redefine the same field's datafetcher then: def e1 = thrown(StrictModeWiringException) - e1.message == "The type Foo has already been defined" + e1.message == "The field foo on type Foo has already been defined" when: RuntimeWiring.newRuntimeWiring() - .strictMode() .type(TypeRuntimeWiring.newTypeWiring("Foo").typeResolver(TR1)) .type(TypeRuntimeWiring.newTypeWiring("Foo").typeResolver(TR1)) @@ -222,7 +219,6 @@ class RuntimeWiringTest extends Specification { when: RuntimeWiring.newRuntimeWiring() - .strictMode() .type(TypeRuntimeWiring.newTypeWiring("Foo").enumValues(EVP1)) .type(TypeRuntimeWiring.newTypeWiring("Foo").enumValues(EVP1)) then: @@ -231,7 +227,6 @@ class RuntimeWiringTest extends Specification { when: RuntimeWiring.newRuntimeWiring() - .strictMode() .scalar(Scalars.GraphQLString) then: def e4 = thrown(StrictModeWiringException) @@ -239,7 +234,6 @@ class RuntimeWiringTest extends Specification { when: TypeRuntimeWiring.newTypeWiring("Foo") - .strictMode() .defaultDataFetcher(DF1) .defaultDataFetcher(DF2) @@ -248,34 +242,148 @@ class RuntimeWiringTest extends Specification { e5.message == "The type Foo has already has a default data fetcher defined" } - def "overwrite default data fetchers if they are null"() { - + def "strict mode, on by default, permits a type to be defined more than once as long as elements are not overlapping"() { DataFetcher DF1 = env -> "x" DataFetcher DF2 = env -> "x" - DataFetcher DEFAULT_DF = env -> null - DataFetcher DEFAULT_DF2 = env -> null + TypeResolver TR1 = env -> null + EnumValuesProvider EVP1 = name -> null when: - def runtimeWiring = RuntimeWiring.newRuntimeWiring() - .type(TypeRuntimeWiring.newTypeWiring("Foo").defaultDataFetcher(DEFAULT_DF)) + // Permit type wiring to be defined more than once, if child DataFetchers are for distinct fields + def runtimeWiring1 = RuntimeWiring.newRuntimeWiring() .type(TypeRuntimeWiring.newTypeWiring("Foo").dataFetcher("foo", DF1)) .type(TypeRuntimeWiring.newTypeWiring("Foo").dataFetcher("bar", DF2)) .build() then: - runtimeWiring.getDefaultDataFetcherForType("Foo") == DEFAULT_DF + noExceptionThrown() + runtimeWiring1.getDataFetchers().get("Foo").get("foo") == DF1 + runtimeWiring1.getDataFetchers().get("Foo").get("bar") == DF2 + + when: + // Only one type wiring is allowed per type, do not allow redefinition + RuntimeWiring.newRuntimeWiring() + .type(TypeRuntimeWiring.newTypeWiring("Foo").typeResolver(TR1)) + .type(TypeRuntimeWiring.newTypeWiring("Foo").typeResolver(TR1)) + + then: + def e2 = thrown(StrictModeWiringException) + e2.message == "The type Foo already has a type resolver defined" + + when: + // Only one enum values provider is allowed per type, do not allow redefinition + RuntimeWiring.newRuntimeWiring() + .type(TypeRuntimeWiring.newTypeWiring("Foo").enumValues(EVP1)) + .type(TypeRuntimeWiring.newTypeWiring("Foo").enumValues(EVP1)) + + then: + def e3 = thrown(StrictModeWiringException) + e3.message == "The type Foo already has a enum provider defined" + + when: + // Only one scalar wiring is allowed per scalar + RuntimeWiring.newRuntimeWiring() + .scalar(Scalars.GraphQLString) + then: + def e4 = thrown(StrictModeWiringException) + e4.message == "The scalar String is already defined" + + when: + // Only one default data fetcher is allowed, do not allow redefinition + TypeRuntimeWiring.newTypeWiring("Foo") + .defaultDataFetcher(DF1) + .defaultDataFetcher(DF2) + + then: + def e5 = thrown(StrictModeWiringException) + e5.message == "The type Foo has already has a default data fetcher defined" + } + + def "strict mode, if set to off, won't stop certain redefinitions"() { + DataFetcher DF1 = env -> "x" + DataFetcher DF2 = env -> "x" + TypeResolver TR1 = env -> null + EnumValuesProvider EVP1 = name -> null when: - runtimeWiring = RuntimeWiring.newRuntimeWiring() + def runtimeWiring1 = RuntimeWiring.newRuntimeWiring() + .strictMode(false) + .type(TypeRuntimeWiring.newTypeWiring("Foo").dataFetcher("foo", DF1)) + .type(TypeRuntimeWiring.newTypeWiring("Foo").dataFetcher("foo", DF2)) + .build() + + then: + noExceptionThrown() + runtimeWiring1.getDataFetchers().get("Foo").get("foo") == DF2 + + when: + def runtimeWiring2 = RuntimeWiring.newRuntimeWiring() + .strictMode(false) + .type(TypeRuntimeWiring.newTypeWiring("Foo").typeResolver(TR1)) + .type(TypeRuntimeWiring.newTypeWiring("Foo").typeResolver(TR1)) + .build() + + then: + noExceptionThrown() + runtimeWiring2.typeResolvers.get("Foo") == TR1 + + when: + def runtimeWiring3 = RuntimeWiring.newRuntimeWiring() + .strictMode(false) + .type(TypeRuntimeWiring.newTypeWiring("Foo").enumValues(EVP1)) + .type(TypeRuntimeWiring.newTypeWiring("Foo").enumValues(EVP1)) + .build() + + then: + noExceptionThrown() + runtimeWiring3.getEnumValuesProviders().get("Foo") == EVP1 + + when: + def runtimeWiring4 = RuntimeWiring.newRuntimeWiring() + .strictMode(false) + .scalar(Scalars.GraphQLString) + .build() + + then: + noExceptionThrown() + runtimeWiring4.scalars.get("String") == Scalars.GraphQLString + + when: + def typeRuntimeWiring = TypeRuntimeWiring.newTypeWiring("Foo") + .strictMode(false) + .defaultDataFetcher(DF1) + .defaultDataFetcher(DF2) + .build() + + then: + noExceptionThrown() + typeRuntimeWiring.defaultDataFetcher == DF2 + } + + def "when strict mode on, do not allow default data fetcher redefinition"() { + DataFetcher DF1 = env -> "w" + DataFetcher DEFAULT_DF = env -> "x" + DataFetcher DEFAULT_DF2 = env -> "y" + + // Having a datafetcher and a default for the type is ok + when: + def runtimeWiring1 = RuntimeWiring.newRuntimeWiring() .type(TypeRuntimeWiring.newTypeWiring("Foo").defaultDataFetcher(DEFAULT_DF)) .type(TypeRuntimeWiring.newTypeWiring("Foo").dataFetcher("foo", DF1)) - .type(TypeRuntimeWiring.newTypeWiring("Foo").dataFetcher("bar", DF2)) - // we can specifically overwrite it later - .type(TypeRuntimeWiring.newTypeWiring("Foo").defaultDataFetcher(DEFAULT_DF2)) .build() then: - runtimeWiring.getDefaultDataFetcherForType("Foo") == DEFAULT_DF2 + runtimeWiring1.getDefaultDataFetcherForType("Foo") == DEFAULT_DF + // Do not permit redefinition of the default datafetcher + when: + RuntimeWiring.newRuntimeWiring() + .type(TypeRuntimeWiring.newTypeWiring("Foo").defaultDataFetcher(DEFAULT_DF)) + .type(TypeRuntimeWiring.newTypeWiring("Foo").defaultDataFetcher(DEFAULT_DF2)) + .build() + + then: + def error = thrown(StrictModeWiringException) + error.message == "The type Foo already has a default data fetcher defined" } } diff --git a/src/test/groovy/graphql/schema/idl/SchemaGeneratorAppliedDirectiveHelperTest.groovy b/src/test/groovy/graphql/schema/idl/SchemaGeneratorAppliedDirectiveHelperTest.groovy index 824db92e1..f42cc4905 100644 --- a/src/test/groovy/graphql/schema/idl/SchemaGeneratorAppliedDirectiveHelperTest.groovy +++ b/src/test/groovy/graphql/schema/idl/SchemaGeneratorAppliedDirectiveHelperTest.groovy @@ -55,7 +55,9 @@ class SchemaGeneratorAppliedDirectiveHelperTest extends Specification { schema.getDirectives().collect {it.name}.sort() == [ "bar", "complex", + "defer", "deprecated", + "experimental_disableErrorPropagation", "foo", "include", "oneOf", @@ -105,7 +107,9 @@ class SchemaGeneratorAppliedDirectiveHelperTest extends Specification { schema.getDirectives().collect {it.name}.sort() == [ "bar", "complex", + "defer", "deprecated", + "experimental_disableErrorPropagation", "foo", "include", "oneOf", diff --git a/src/test/groovy/graphql/schema/idl/SchemaGeneratorTest.groovy b/src/test/groovy/graphql/schema/idl/SchemaGeneratorTest.groovy index d8895370c..9eeed6c01 100644 --- a/src/test/groovy/graphql/schema/idl/SchemaGeneratorTest.groovy +++ b/src/test/groovy/graphql/schema/idl/SchemaGeneratorTest.groovy @@ -1770,7 +1770,8 @@ class SchemaGeneratorTest extends Specification { def appliedDirective = f1.getAppliedDirective("deprecated") appliedDirective.name == "deprecated" - appliedDirective.getArgument("reason").type == GraphQLString + appliedDirective.getArgument("reason").type instanceof GraphQLNonNull + (appliedDirective.getArgument("reason").type as GraphQLNonNull).wrappedType == GraphQLString printAst(appliedDirective.getArgument("reason").argumentValue.value as Node) == '"No longer supported"' when: @@ -1781,7 +1782,8 @@ class SchemaGeneratorTest extends Specification { def appliedDirective2 = f2.getAppliedDirective("deprecated") appliedDirective2.name == "deprecated" - appliedDirective2.getArgument("reason").type == GraphQLString + appliedDirective2.getArgument("reason").type instanceof GraphQLNonNull + (appliedDirective2.getArgument("reason").type as GraphQLNonNull).wrappedType == GraphQLString printAst(appliedDirective2.getArgument("reason").argumentValue.value as Node) == '"Just because"' def directive2 = f2.getDirective("deprecated") printAst(directive2.getArgument("reason").argumentDefaultValue.value as Node) == '"No longer supported"' @@ -2023,10 +2025,11 @@ class SchemaGeneratorTest extends Specification { directives = schema.getDirectives() then: - directives.size() == 8 // built in ones : include / skip and deprecated + directives.size() == 10 // built in ones : include / skip and deprecated def directiveNames = directives.collect { it.name } directiveNames.contains("include") directiveNames.contains("skip") + directiveNames.contains("defer") directiveNames.contains("deprecated") directiveNames.contains("specifiedBy") directiveNames.contains("oneOf") @@ -2038,9 +2041,10 @@ class SchemaGeneratorTest extends Specification { directivesMap = schema.getDirectivesByName() then: - directivesMap.size() == 8 // built in ones + directivesMap.size() == 10 // built in ones directivesMap.containsKey("include") directivesMap.containsKey("skip") + directivesMap.containsKey("defer") directivesMap.containsKey("deprecated") directivesMap.containsKey("oneOf") directivesMap.containsKey("sd1") @@ -2282,6 +2286,11 @@ class SchemaGeneratorTest extends Specification { DataFetcher get(DataFetcherFactoryEnvironment environment) { return df } + + @Override + DataFetcher get(GraphQLFieldDefinition fieldDefinition) { + return df + } } GraphQLCodeRegistry codeRegistry = newCodeRegistry() diff --git a/src/test/groovy/graphql/schema/idl/SchemaPrinterTest.groovy b/src/test/groovy/graphql/schema/idl/SchemaPrinterTest.groovy index 2802f7280..287024432 100644 --- a/src/test/groovy/graphql/schema/idl/SchemaPrinterTest.groovy +++ b/src/test/groovy/graphql/schema/idl/SchemaPrinterTest.groovy @@ -965,16 +965,27 @@ type Query { // args and directives are sorted like the rest of the schema printer result == '''directive @argDirective on ARGUMENT_DEFINITION +"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + "Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION directive @enumTypeDirective on ENUM directive @enumValueDirective on ENUM_VALUE +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + directive @fieldDirective1 on FIELD_DEFINITION directive @fieldDirective2(argBool: Boolean, argFloat: Float, argInt: Int, argStr: String) on FIELD_DEFINITION @@ -1141,12 +1152,23 @@ input SomeInput { then: // args and directives are sorted like the rest of the schema printer - result == '''"Marks the field, argument, input field or enum value as deprecated" + result == '''"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + +"Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." @@ -1237,14 +1259,25 @@ type Query { def resultWithDirectives = new SchemaPrinter(defaultOptions().includeDirectives(true)).print(schema) then: - resultWithDirectives == '''"Marks the field, argument, input field or enum value as deprecated" + resultWithDirectives == '''"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + +"Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION directive @example on FIELD_DEFINITION +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." @@ -1305,14 +1338,25 @@ type Query { def resultWithDirectiveDefinitions = new SchemaPrinter(defaultOptions().includeDirectiveDefinitions(true)).print(schema) then: - resultWithDirectiveDefinitions == '''"Marks the field, argument, input field or enum value as deprecated" + resultWithDirectiveDefinitions == '''"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + +"Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION directive @example on FIELD_DEFINITION +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." @@ -1402,12 +1446,23 @@ extend schema { subscription: MySubscription } +"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + "Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." @@ -1488,12 +1543,23 @@ schema @schemaDirective{ mutation: MyMutation } +"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + "Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." @@ -1628,14 +1694,25 @@ type MyQuery { def result = new SchemaPrinter(printOptions).print(schema) then: - result == '''"Marks the field, argument, input field or enum value as deprecated" + result == '''"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + +"Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION directive @directive1 on SCALAR +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." @@ -1873,7 +1950,7 @@ type Query { result == '''"Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION type Query { @@ -2164,12 +2241,23 @@ type PrintMeType { query: MyQuery } +"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + "Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + directive @foo on SCHEMA "Directs the executor to include this field or fragment only when the `if` argument is true" @@ -2396,12 +2484,23 @@ directive @include( if: Boolean! ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION +"This directive allows results to be deferred during execution" +directive @defer( + "A unique label that represents the fragment being deferred" + label: String, + "Deferred behaviour is controlled by this argument" + if: Boolean! = true + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + union ZUnion = XQuery | Query scalar ZScalar @@ -2512,16 +2611,27 @@ schema { mutation: Mutation } +"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + "Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION " custom directive 'example' description 1" # custom directive 'example' comment 1 directive @example on ENUM_VALUE +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." @@ -2749,15 +2859,26 @@ schema { mutation: Mutation } +"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + "Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION " custom directive 'example' description 1" directive @example on ENUM_VALUE +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." @@ -2937,12 +3058,23 @@ input Input { expect: "has no skip definition" - result == """"Marks the field, argument, input field or enum value as deprecated" + result == """"This directive allows results to be deferred during execution" +directive @defer( + "Deferred behaviour is controlled by this argument" + if: Boolean! = true, + "A unique label that represents the fragment being deferred" + label: String + ) on FRAGMENT_SPREAD | INLINE_FRAGMENT + +"Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" - reason: String = "No longer supported" + reason: String! = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION +"This directive disables error propagation when a non nullable field returns null for the given operation." +directive @experimental_disableErrorPropagation on QUERY | MUTATION | SUBSCRIPTION + "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." diff --git a/src/test/groovy/graphql/schema/idl/TestLiveMockedWiringFactory.groovy b/src/test/groovy/graphql/schema/idl/TestLiveMockedWiringFactory.groovy index 476c13ac1..fe12c3a1b 100644 --- a/src/test/groovy/graphql/schema/idl/TestLiveMockedWiringFactory.groovy +++ b/src/test/groovy/graphql/schema/idl/TestLiveMockedWiringFactory.groovy @@ -12,6 +12,7 @@ import graphql.schema.GraphQLScalarType import graphql.schema.GraphQLTypeUtil import graphql.schema.GraphQLUnionType import graphql.schema.PropertyDataFetcher +import graphql.schema.SingletonPropertyDataFetcher import graphql.schema.TypeResolver class TestLiveMockedWiringFactory implements WiringFactory { @@ -74,7 +75,7 @@ class TestLiveMockedWiringFactory implements WiringFactory { @Override DataFetcher getDataFetcher(FieldWiringEnvironment environment) { - return new PropertyDataFetcher(environment.getFieldDefinition().getName()) + return SingletonPropertyDataFetcher.singleton() } @Override diff --git a/src/test/groovy/graphql/schema/idl/TestMockedWiringFactory.groovy b/src/test/groovy/graphql/schema/idl/TestMockedWiringFactory.groovy index 9082c7b79..827fadafb 100644 --- a/src/test/groovy/graphql/schema/idl/TestMockedWiringFactory.groovy +++ b/src/test/groovy/graphql/schema/idl/TestMockedWiringFactory.groovy @@ -49,12 +49,8 @@ class TestMockedWiringFactory implements WiringFactory { @Override boolean providesDataFetcher(FieldWiringEnvironment environment) { - return true - } - - @Override - DataFetcher getDataFetcher(FieldWiringEnvironment environment) { - return new PropertyDataFetcher(environment.getFieldDefinition().getName()) + // rely on defaulting in code registry + return false } @Override diff --git a/src/test/groovy/graphql/schema/idl/TypeRuntimeWiringTest.groovy b/src/test/groovy/graphql/schema/idl/TypeRuntimeWiringTest.groovy index 2a833ace2..006258cdb 100644 --- a/src/test/groovy/graphql/schema/idl/TypeRuntimeWiringTest.groovy +++ b/src/test/groovy/graphql/schema/idl/TypeRuntimeWiringTest.groovy @@ -7,42 +7,41 @@ import spock.lang.Specification class TypeRuntimeWiringTest extends Specification { void setup() { - TypeRuntimeWiring.setStrictModeJvmWide(false) + TypeRuntimeWiring.setStrictModeJvmWide(true) } void cleanup() { - TypeRuntimeWiring.setStrictModeJvmWide(false) + TypeRuntimeWiring.setStrictModeJvmWide(true) } DataFetcher DF1 = env -> "x" DataFetcher DF2 = env -> "y" - def "strict mode is off by default"() { + def "strict mode is on by default"() { when: - def typeRuntimeWiring = TypeRuntimeWiring.newTypeWiring("Foo") + TypeRuntimeWiring.newTypeWiring("Foo") .dataFetcher("foo", DF1) .dataFetcher("foo", DF2) .build() then: - typeRuntimeWiring.getFieldDataFetchers().get("foo") == DF2 + def e = thrown(StrictModeWiringException) + e.message == "The field foo already has a data fetcher defined" } - def "strict mode can be turned on"() { + def "strict mode can be turned off"() { when: - TypeRuntimeWiring.newTypeWiring("Foo") - .strictMode() + def typeRuntimeWiring = TypeRuntimeWiring.newTypeWiring("Foo") + .strictMode(false) .dataFetcher("foo", DF1) .dataFetcher("foo", DF2) .build() then: - def e = thrown(StrictModeWiringException) - e.message == "The field foo already has a data fetcher defined" + typeRuntimeWiring.getFieldDataFetchers().get("foo") == DF2 } - def "strict mode can be turned on for maps of fields"() { + def "strict mode, on by default, works for maps of fields"() { when: TypeRuntimeWiring.newTypeWiring("Foo") - .strictMode() .dataFetcher("foo", DF1) .dataFetchers(["foo": DF2]) .build() @@ -51,17 +50,14 @@ class TypeRuntimeWiringTest extends Specification { e.message == "The field foo already has a data fetcher defined" } - def "strict mode can be turned on JVM wide"() { - - + def "strict mode can be turned off and on JVM wide"() { when: def inStrictMode = TypeRuntimeWiring.getStrictModeJvmWide() then: - !inStrictMode - + inStrictMode when: - TypeRuntimeWiring.setStrictModeJvmWide(true) + TypeRuntimeWiring.setStrictModeJvmWide(false) inStrictMode = TypeRuntimeWiring.getStrictModeJvmWide() TypeRuntimeWiring.newTypeWiring("Foo") @@ -69,20 +65,21 @@ class TypeRuntimeWiringTest extends Specification { .dataFetcher("foo", DF2) .build() then: - inStrictMode - def e = thrown(StrictModeWiringException) - e.message == "The field foo already has a data fetcher defined" + !inStrictMode + noExceptionThrown() when: - TypeRuntimeWiring.setStrictModeJvmWide(false) + TypeRuntimeWiring.setStrictModeJvmWide(true) inStrictMode = TypeRuntimeWiring.getStrictModeJvmWide() TypeRuntimeWiring.newTypeWiring("Foo") .dataFetcher("foo", DF1) .dataFetcher("foo", DF2) .build() + then: - !inStrictMode - noExceptionThrown() + inStrictMode + def e = thrown(StrictModeWiringException) + e.message == "The field foo already has a data fetcher defined" } } diff --git a/src/test/groovy/graphql/schema/validation/AppliedDirectivesAreValidTest.groovy b/src/test/groovy/graphql/schema/validation/AppliedDirectivesAreValidTest.groovy index e5fd25747..f5a2136bb 100644 --- a/src/test/groovy/graphql/schema/validation/AppliedDirectivesAreValidTest.groovy +++ b/src/test/groovy/graphql/schema/validation/AppliedDirectivesAreValidTest.groovy @@ -1,8 +1,16 @@ package graphql.schema.validation import graphql.TestUtil +import graphql.schema.FieldCoordinates import spock.lang.Specification +import static graphql.Scalars.GraphQLString +import static graphql.TestUtil.mkDirective +import static graphql.introspection.Introspection.DirectiveLocation.FIELD_DEFINITION +import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition +import static graphql.schema.GraphQLObjectType.newObject +import static graphql.schema.GraphQLSchema.newSchema + class AppliedDirectivesAreValidTest extends Specification { def "non repeatable directives cannot be repeated"() { @@ -44,11 +52,72 @@ class AppliedDirectivesAreValidTest extends Specification { then: def schemaProblem = thrown(InvalidSchemaException) schemaProblem.getErrors().size() == 5 - hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLFieldDefinition' called 'fieldC' is a non repeatable directive but has been applied 2 times"); - hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLFieldDefinition' called 'fieldD' is a non repeatable directive but has been applied 2 times"); - hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLFieldDefinition' called 'fieldA' is a non repeatable directive but has been applied 2 times"); - hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLEnumValueDefinition' called 'enumA' is a non repeatable directive but has been applied 2 times"); - hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLInputObjectField' called 'inputFieldA' is a non repeatable directive but has been applied 2 times"); + hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLFieldDefinition' called 'fieldC' is a non repeatable directive but has been applied 2 times") + hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLFieldDefinition' called 'fieldD' is a non repeatable directive but has been applied 2 times") + hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLFieldDefinition' called 'fieldA' is a non repeatable directive but has been applied 2 times") + hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLEnumValueDefinition' called 'enumA' is a non repeatable directive but has been applied 2 times") + hasError(schemaProblem, "The directive 'directiveA' on the 'GraphQLInputObjectField' called 'inputFieldA' is a non repeatable directive but has been applied 2 times") + } + + def "applied directive builders do not clear any existing applied directives"() { + given: + def directive1 = mkDirective("myDirectiveName1", FIELD_DEFINITION) + def directive2 = mkDirective("myDirectiveName2", FIELD_DEFINITION) + def field = newFieldDefinition() + .name("hello") + .type(GraphQLString) + .withAppliedDirectives(directive1.toAppliedDirective()) + .withAppliedDirectives(directive2.toAppliedDirective()) + .build() + + when: + def schema = newSchema() + .query( + newObject() + .name("Query") + .field(field) + .build() + ) + .additionalDirective(directive1) + .additionalDirective(directive2) + .build() + + then: + def fieldAppliedDirectives = schema.getFieldDefinition(FieldCoordinates.coordinates("Query", "hello")).getAppliedDirectives() + fieldAppliedDirectives.size() == 2 + fieldAppliedDirectives.any { it.name == "myDirectiveName1" } + fieldAppliedDirectives.any { it.name == "myDirectiveName2" } + } + + def "replace applied directive builder does clear and replace existing applied directives"() { + given: + def directive1 = mkDirective("myDirectiveName1", FIELD_DEFINITION) + def directive2 = mkDirective("myDirectiveName2", FIELD_DEFINITION) + def field = newFieldDefinition() + .name("hello") + .type(GraphQLString) + .withAppliedDirective(directive1.toAppliedDirective()) + .replaceAppliedDirectives(List.of(directive2.toAppliedDirective())) + .build() + + when: + def schema = newSchema() + .query( + newObject() + .name("Query") + .field(field) + .build() + ) + .additionalDirective(directive1) + .additionalDirective(directive2) + .build() + + then: + // As prior applied directives are cleared, there is only 1 applied directive left on the field (directive container) + def fieldAppliedDirectives = schema.getFieldDefinition(FieldCoordinates.coordinates("Query", "hello")).getAppliedDirectives() + fieldAppliedDirectives.size() == 1 + fieldAppliedDirectives.find { it.name == "myDirectiveName1" } == null + fieldAppliedDirectives.any { it.name == "myDirectiveName2" } } static boolean hasError(InvalidSchemaException schemaException, String msg) { diff --git a/src/test/groovy/graphql/util/AnonymizerTest.groovy b/src/test/groovy/graphql/util/AnonymizerTest.groovy index 439132eda..48f5ecde4 100644 --- a/src/test/groovy/graphql/util/AnonymizerTest.groovy +++ b/src/test/groovy/graphql/util/AnonymizerTest.groovy @@ -729,8 +729,12 @@ type Object1 { directive @Directive1(argument1: String! = "stringValue4") repeatable on SCHEMA | SCALAR | OBJECT | FIELD_DEFINITION | ARGUMENT_DEFINITION | INTERFACE | UNION | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION - directive @deprecated(reason: String) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION - + "Marks the field, argument, input field or enum value as deprecated" + directive @deprecated( + "The reason for the deprecation" + reason: String! = "No longer supported" + ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION + interface Interface1 @Directive1(argument1 : "stringValue12") { field2: String field3: Enum1 diff --git a/src/test/groovy/graphql/validation/rules/ArgumentsOfCorrectTypeTest.groovy b/src/test/groovy/graphql/validation/rules/ArgumentsOfCorrectTypeTest.groovy index a3209a9fe..7e8210955 100644 --- a/src/test/groovy/graphql/validation/rules/ArgumentsOfCorrectTypeTest.groovy +++ b/src/test/groovy/graphql/validation/rules/ArgumentsOfCorrectTypeTest.groovy @@ -1,6 +1,7 @@ package graphql.validation.rules import graphql.GraphQLContext +import graphql.i18n.I18n import graphql.language.Argument import graphql.language.ArrayValue import graphql.language.BooleanValue @@ -33,11 +34,33 @@ class ArgumentsOfCorrectTypeTest extends Specification { ArgumentsOfCorrectType argumentsOfCorrectType ValidationContext validationContext = Mock(ValidationContext) ValidationErrorCollector errorCollector = new ValidationErrorCollector() + I18n i18n = Mock(I18n) def setup() { argumentsOfCorrectType = new ArgumentsOfCorrectType(validationContext, errorCollector) def context = GraphQLContext.getDefault() validationContext.getGraphQLContext() >> context + validationContext.getI18n() >> i18n + i18n.getLocale() >> Locale.ENGLISH + } + + def "error message uses locale of client (German), not server (English)"() { + def query = """ + query getDog { + dog @objectArgumentDirective(myObject: { id: "1" }) { + name + } + } + """ + def document = new Parser().parseDocument(query) + + when: + def validationErrors = new Validator().validateDocument(SpecValidationSchema.specValidationSchema, document, Locale.GERMAN) + + then: + validationErrors.size() == 1 + validationErrors.get(0).getValidationErrorType() == ValidationErrorType.WrongType + validationErrors.get(0).message == "Validierungsfehler (WrongType@[dog]) : Argument 'myObject' mit Wert 'ObjectValue{objectFields=[ObjectField{name='id', value=StringValue{value='1'}}]}' fehlen Pflichtfelder '[name]'" } def "valid type results in no error"() { diff --git a/src/test/groovy/graphql/validation/rules/KnownDirectivesTest.groovy b/src/test/groovy/graphql/validation/rules/KnownDirectivesTest.groovy index 2149a0a17..8ac2b0d03 100644 --- a/src/test/groovy/graphql/validation/rules/KnownDirectivesTest.groovy +++ b/src/test/groovy/graphql/validation/rules/KnownDirectivesTest.groovy @@ -246,6 +246,10 @@ class KnownDirectivesTest extends Specification { field: String } + type Subscription { + field: String + } + ''' def schema = TestUtil.schema(sdl) diff --git a/src/test/groovy/graphql/validation/rules/OverlappingFieldsCanBeMergedTest.groovy b/src/test/groovy/graphql/validation/rules/OverlappingFieldsCanBeMergedTest.groovy index babf549a0..d35ec3808 100644 --- a/src/test/groovy/graphql/validation/rules/OverlappingFieldsCanBeMergedTest.groovy +++ b/src/test/groovy/graphql/validation/rules/OverlappingFieldsCanBeMergedTest.groovy @@ -47,6 +47,7 @@ class OverlappingFieldsCanBeMergedTest extends Specification { def "identical fields are ok"() { given: def query = """ + {...f} fragment f on Test{ name name @@ -59,9 +60,22 @@ class OverlappingFieldsCanBeMergedTest extends Specification { errorCollector.errors.isEmpty() } + def "identical fields are ok 2"() { + given: + def query = """ + { name name name name: name} + """ + when: + traverse(query, null) + + then: + errorCollector.errors.isEmpty() + } + def "two aliases with different targets"() { given: def query = """ + {... f } fragment f on Test{ myName : name myName : nickname @@ -72,8 +86,8 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[f]) : 'myName' : 'name' and 'nickname' are different fields" - errorCollector.getErrors()[0].locations == [new SourceLocation(3, 17), new SourceLocation(4, 17)] + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'myName' : 'name' and 'nickname' are different fields" + errorCollector.getErrors()[0].locations == [new SourceLocation(4, 17), new SourceLocation(5, 17)] } static GraphQLSchema unionSchema() { @@ -134,7 +148,7 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[boxUnion]) : 'scalar' : returns different types 'Int' and 'String'" + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'boxUnion/scalar' : returns different types 'Int' and 'String'" } @@ -182,7 +196,7 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[boxUnion]) : 'scalar' : fields have different nullability shapes" + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'boxUnion/scalar' : fields have different nullability shapes" } def 'not the same list return types'() { @@ -206,7 +220,7 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[boxUnion]) : 'scalar' : fields have different list shapes" + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'boxUnion/scalar' : fields have different list shapes" } @@ -303,6 +317,7 @@ class OverlappingFieldsCanBeMergedTest extends Specification { def 'Same aliases with different field targets'() { given: def query = """ + {dog{...sameAliasesWithDifferentFieldTargets}} fragment sameAliasesWithDifferentFieldTargets on Dog { fido: name fido: nickname @@ -322,13 +337,14 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[sameAliasesWithDifferentFieldTargets]) : 'fido' : 'name' and 'nickname' are different fields" - errorCollector.getErrors()[0].locations == [new SourceLocation(3, 13), new SourceLocation(4, 13)] + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'dog/fido' : 'name' and 'nickname' are different fields" + errorCollector.getErrors()[0].locations == [new SourceLocation(4, 13), new SourceLocation(5, 13)] } def 'Alias masking direct field access'() { given: def query = """ + {dog{...aliasMaskingDirectFieldAccess}} fragment aliasMaskingDirectFieldAccess on Dog { name: nickname name @@ -346,8 +362,8 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[aliasMaskingDirectFieldAccess]) : 'name' : 'nickname' and 'name' are different fields" - errorCollector.getErrors()[0].locations == [new SourceLocation(3, 13), new SourceLocation(4, 13)] + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'dog/name' : 'nickname' and 'name' are different fields" + errorCollector.getErrors()[0].locations == [new SourceLocation(4, 13), new SourceLocation(5, 13)] } def 'issue 3332 - Alias masking direct field access non fragment'() { @@ -370,7 +386,7 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[dog]) : 'name' : 'nickname' and 'name' are different fields" + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'dog/name' : 'nickname' and 'name' are different fields" errorCollector.getErrors()[0].locations == [new SourceLocation(3, 13), new SourceLocation(4, 13)] } @@ -398,13 +414,14 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[cat]) : 'foo1' : 'foo1' and 'foo2' are different fields" + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'cat/foo1' : 'foo1' and 'foo2' are different fields" errorCollector.getErrors()[0].locations == [new SourceLocation(4, 17), new SourceLocation(5, 17)] } def 'conflicting args'() { given: def query = """ + {dog{...conflictingArgs}} fragment conflictingArgs on Dog { doesKnowCommand(dogCommand: SIT) doesKnowCommand(dogCommand: HEEL) @@ -424,8 +441,8 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[conflictingArgs]) : 'doesKnowCommand' : fields have different arguments" - errorCollector.getErrors()[0].locations == [new SourceLocation(3, 13), new SourceLocation(4, 13)] + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'dog/doesKnowCommand' : fields have different arguments" + errorCollector.getErrors()[0].locations == [new SourceLocation(4, 13), new SourceLocation(5, 13)] } // @@ -524,7 +541,7 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[f1]) : 'x' : 'a' and 'b' are different fields" + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'f1/x' : 'a' and 'b' are different fields" errorCollector.getErrors()[0].locations == [new SourceLocation(18, 13), new SourceLocation(21, 13)] } @@ -672,7 +689,7 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[field]) : 'deepField/x' : 'a' and 'b' are different fields" + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'field/deepField/x' : 'a' and 'b' are different fields" errorCollector.getErrors()[0].locations.size() == 2 } @@ -892,7 +909,7 @@ class OverlappingFieldsCanBeMergedTest extends Specification { then: errorCollector.getErrors().size() == 1 - errorCollector.getErrors()[0].message == "Validation error (FieldsConflict@[pets]) : 'friends/conflict' : returns different types 'Int' and 'Float'" + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'pets/friends/conflict' : returns different types 'Int' and 'Float'" } @@ -948,5 +965,57 @@ class OverlappingFieldsCanBeMergedTest extends Specification { errorCollector.getErrors().size() == 0 } + def "overlapping fields on lower level"() { + given: + def schema = schema(''' + type Query { + pets: [Pet] + } + interface Pet { + name: String + breed: String + friends: [Pet] + } + type Dog implements Pet { + name: String + age: Int + dogBreed: String + breed: String + friends: [Pet] + + } + type Cat implements Pet { + catBreed: String + breed: String + height: Float + name : String + friends: [Pet] + + } + ''') + def query = ''' + { + pets { + friends { + ... on Dog { + x: name + } + ... on Cat { + x: height + } + } + } + } + ''' + when: + traverse(query, schema) + + + then: + errorCollector.getErrors().size() == 1 + errorCollector.getErrors()[0].message == "Validation error (FieldsConflict) : 'pets/friends/x' : returns different types 'String' and 'Float'" + + } + } diff --git a/src/test/groovy/graphql/validation/rules/SubscriptionRootFieldNoSkipNoIncludeTest.groovy b/src/test/groovy/graphql/validation/rules/SubscriptionRootFieldNoSkipNoIncludeTest.groovy new file mode 100644 index 000000000..31b526fe4 --- /dev/null +++ b/src/test/groovy/graphql/validation/rules/SubscriptionRootFieldNoSkipNoIncludeTest.groovy @@ -0,0 +1,154 @@ +package graphql.validation.rules + +import graphql.parser.Parser +import graphql.validation.SpecValidationSchema +import graphql.validation.ValidationError +import graphql.validation.Validator +import spock.lang.Specification + +class SubscriptionRootFieldNoSkipNoIncludeTest extends Specification { + + def "valid subscription with @skip and @include directives on subfields"() { + given: + def query = """ + subscription MySubscription(\$bool: Boolean = true) { + dog { + name @skip(if: \$bool) + nickname @include(if: \$bool) + } + } + """ + + when: + def validationErrors = validate(query) + + then: + validationErrors.isEmpty() + } + + def "invalid subscription with @skip directive on root field"() { + given: + def query = """ + subscription MySubscription(\$bool: Boolean = false) { + dog @skip(if: \$bool) { + name + } + dog @include(if: true) { + nickname + } + } + """ + + when: + def validationErrors = validate(query) + + then: + validationErrors.size() == 1 + validationErrors.first().getMessage().contains("Subscription operation 'MySubscription' root field 'dog' must not use @skip nor @include directives in top level selection") + } + + def "invalid subscription with @include directive on root field"() { + given: + def query = """ + subscription MySubscription(\$bool: Boolean = true) { + dog @include(if: \$bool) { + name + } + } + """ + + when: + def validationErrors = validate(query) + + then: + validationErrors.size() == 1 + validationErrors.first().getMessage().contains("Subscription operation 'MySubscription' root field 'dog' must not use @skip nor @include directives in top level selection") + } + + def "invalid subscription with directive on root field in fragment spread"() { + given: + def query = """ + subscription MySubscription(\$bool: Boolean = false) { + ...dogFragment + } + + fragment dogFragment on SubscriptionRoot { + dog @skip(if: \$bool) { + name + } + } + """ + + when: + def validationErrors = validate(query) + + then: + validationErrors.size() == 1 + validationErrors.first().getMessage().contains("Subscription operation 'MySubscription' root field 'dog' must not use @skip nor @include directives in top level selection") + } + + def "invalid subscription with directive on root field in inline fragment"() { + given: + def query = """ + subscription MySubscription(\$bool: Boolean = true) { + ... on SubscriptionRoot { + dog @include(if: \$bool) { + name + } + } + } + """ + + when: + def validationErrors = validate(query) + + then: + validationErrors.size() == 1 + validationErrors.first().getMessage().contains("Subscription operation 'MySubscription' root field 'dog' must not use @skip nor @include directives in top level selection") + } + + def "@skip and @include directives are valid on query root fields"() { + given: + def query = """ + query MyQuery { + pet @skip(if: false) { + name + } + pet @include(if: true) { + name + } + } + """ + + when: + def validationErrors = validate(query) + + then: + validationErrors.size() == 0 + } + + def "@skip and @include directives are valid on mutation root fields"() { + given: + def query = """ + mutation MyMutation { + createDog(input: {id: "a"}) @skip(if: false) { + name + } + createDog(input: {id: "a"}) @include(if: true) { + name + } + } + """ + + when: + def validationErrors = validate(query) + + then: + validationErrors.size() == 0 + } + + static List validate(String query) { + def document = new Parser().parseDocument(query) + return new Validator().validateDocument(SpecValidationSchema.specValidationSchema, document, Locale.ENGLISH) + } +} diff --git a/src/test/groovy/graphql/validation/rules/SubscriptionUniqueRootFieldTest.groovy b/src/test/groovy/graphql/validation/rules/SubscriptionRootFieldTest.groovy similarity index 99% rename from src/test/groovy/graphql/validation/rules/SubscriptionUniqueRootFieldTest.groovy rename to src/test/groovy/graphql/validation/rules/SubscriptionRootFieldTest.groovy index 9b171f225..53f0d7fe5 100644 --- a/src/test/groovy/graphql/validation/rules/SubscriptionUniqueRootFieldTest.groovy +++ b/src/test/groovy/graphql/validation/rules/SubscriptionRootFieldTest.groovy @@ -7,7 +7,7 @@ import graphql.validation.ValidationErrorType import graphql.validation.Validator import spock.lang.Specification -class SubscriptionUniqueRootFieldTest extends Specification { +class SubscriptionRootFieldTest extends Specification { def "5.2.3.1 subscription with only one root field passes validation"() { given: def subscriptionOneRoot = ''' @@ -286,6 +286,7 @@ class SubscriptionUniqueRootFieldTest extends Specification { then: validationErrors.empty } + static List validate(String query) { def document = new Parser().parseDocument(query) return new Validator().validateDocument(SpecValidationSchema.specValidationSchema, document, Locale.ENGLISH) diff --git a/src/test/groovy/graphql/validation/rules/VariableDefaultValuesOfCorrectTypeTest.groovy b/src/test/groovy/graphql/validation/rules/VariableDefaultValuesOfCorrectTypeTest.groovy index e69baff7b..29f132d41 100644 --- a/src/test/groovy/graphql/validation/rules/VariableDefaultValuesOfCorrectTypeTest.groovy +++ b/src/test/groovy/graphql/validation/rules/VariableDefaultValuesOfCorrectTypeTest.groovy @@ -19,10 +19,13 @@ class VariableDefaultValuesOfCorrectTypeTest extends Specification { ValidationContext validationContext = Mock(ValidationContext) ValidationErrorCollector errorCollector = new ValidationErrorCollector() VariableDefaultValuesOfCorrectType defaultValuesOfCorrectType = new VariableDefaultValuesOfCorrectType(validationContext, errorCollector) + I18n i18n = Mock(I18n) void setup() { def context = GraphQLContext.getDefault() validationContext.getGraphQLContext() >> context + validationContext.getI18n() >> i18n + i18n.getLocale() >> Locale.ENGLISH } def "default value has wrong type"() { @@ -70,4 +73,38 @@ class VariableDefaultValuesOfCorrectTypeTest extends Specification { validationErrors[0].getValidationErrorType() == ValidationErrorType.BadValueForDefaultArg validationErrors[0].message == "Validation error (BadValueForDefaultArg) : Bad default value 'StringValue{value='NotANumber'}' for type 'Int'" } + + def "default value has wrong type with error message of client (German), not server (English)"() { + setup: + def schema = ''' + type User { + id: String + } + + type Query { + getUsers(howMany: Int) : [User] + } + ''' + + def query = ''' + query($howMany: Int = "NotANumber") { + getUsers(howMany: $howMany) { + id + } + } + ''' + + def graphQlSchema = TestUtil.schema(schema) + def document = TestUtil.parseQuery(query) + def validator = new Validator() + + when: + def validationErrors = validator.validateDocument(graphQlSchema, document, Locale.GERMAN) + + then: + !validationErrors.empty + validationErrors.size() == 1 + validationErrors[0].getValidationErrorType() == ValidationErrorType.BadValueForDefaultArg + validationErrors[0].message == "Validierungsfehler (BadValueForDefaultArg) : Ungültiger Standardwert 'StringValue{value='NotANumber'}' für Typ 'Int'" + } } \ No newline at end of file diff --git a/src/test/groovy/readme/DataFetchingExamples.java b/src/test/groovy/readme/DataFetchingExamples.java index dbe637dad..c44dfce56 100644 --- a/src/test/groovy/readme/DataFetchingExamples.java +++ b/src/test/groovy/readme/DataFetchingExamples.java @@ -47,7 +47,7 @@ void getProductsDataFetcher() { DataFetcher productsDataFetcher = new DataFetcher>() { @Override public List get(DataFetchingEnvironment environment) { - DatabaseSecurityCtx ctx = environment.getContext(); + DatabaseSecurityCtx ctx = environment.getGraphQlContext().get("databaseSecurityCtx"); List products; String match = environment.getArgument("match"); diff --git a/src/test/groovy/readme/DirectivesExamples.java b/src/test/groovy/readme/DirectivesExamples.java index 77dd5d6c7..2d6af20f2 100644 --- a/src/test/groovy/readme/DirectivesExamples.java +++ b/src/test/groovy/readme/DirectivesExamples.java @@ -4,6 +4,9 @@ import graphql.ExecutionResult; import graphql.GraphQL; import graphql.Scalars; +import graphql.execution.directives.QueryAppliedDirective; +import graphql.execution.directives.QueryAppliedDirectiveArgument; +import graphql.execution.directives.QueryDirectives; import graphql.schema.DataFetcher; import graphql.schema.DataFetcherFactories; import graphql.schema.DataFetchingEnvironment; @@ -20,6 +23,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; +import java.util.List; import java.util.Map; @SuppressWarnings({"Convert2Lambda", "unused", "ClassCanBeStatic"}) @@ -39,7 +43,7 @@ class AuthorisationDirective implements SchemaDirectiveWiring { @Override public GraphQLFieldDefinition onField(SchemaDirectiveWiringEnvironment environment) { - String targetAuthRole = (String) environment.getDirective().getArgument("role").getArgumentValue().getValue(); + String targetAuthRole = (String) environment.getAppliedDirective().getArgument("role").getArgumentValue().getValue(); // // build a data fetcher that first checks authorisation roles before then calling the original data fetcher @@ -48,8 +52,7 @@ public GraphQLFieldDefinition onField(SchemaDirectiveWiringEnvironment contextMap = dataFetchingEnvironment.getContext(); - AuthorisationCtx authContext = (AuthorisationCtx) contextMap.get("authContext"); + AuthorisationCtx authContext = dataFetchingEnvironment.getGraphQlContext().get("authContext"); if (authContext.hasRole(targetAuthRole)) { return originalDataFetcher.get(dataFetchingEnvironment); @@ -83,7 +86,7 @@ void contextWiring() { ExecutionInput executionInput = ExecutionInput.newExecutionInput() .query(query) - .graphQLContext(builder -> builder.put("authCtx", authCtx)) + .graphQLContext(builder -> builder.put("authContext", authCtx)) .build(); } @@ -171,4 +174,26 @@ public static void main(String[] args) { // data['default'] == '08-10-1969' // data['usa'] == '10-08-1969' } + + DataFetcher cacheDataFetcher = new DataFetcher() { + @Override + public Object get(DataFetchingEnvironment env) { + QueryDirectives queryDirectives = env.getQueryDirectives(); + List cacheDirectives = queryDirectives + .getImmediateAppliedDirective("cache"); + // We get a List, because we could have + // repeatable directives + if (cacheDirectives.size() > 0) { + QueryAppliedDirective cache = cacheDirectives.get(0); + QueryAppliedDirectiveArgument maxAgeArgument + = cache.getArgument("maxAge"); + int maxAge = maxAgeArgument.getValue(); + + // Now we know the max allowed cache time and + // can make use of it + // Your logic goes here + } + return "your logic here"; + } + }; } diff --git a/src/test/groovy/readme/ExecutionExamples.java b/src/test/groovy/readme/ExecutionExamples.java index a18197a63..b2b56e798 100644 --- a/src/test/groovy/readme/ExecutionExamples.java +++ b/src/test/groovy/readme/ExecutionExamples.java @@ -12,12 +12,15 @@ import graphql.execution.DataFetcherExceptionHandlerParameters; import graphql.execution.DataFetcherExceptionHandlerResult; import graphql.execution.ExecutionStrategy; +import graphql.execution.values.InputInterceptor; +import graphql.execution.values.legacycoercing.LegacyCoercingInputInterceptor; import graphql.language.SourceLocation; import graphql.schema.DataFetcher; import graphql.schema.DataFetchingEnvironment; import graphql.schema.GraphQLCodeRegistry; import graphql.schema.GraphQLFieldDefinition; import graphql.schema.GraphQLFieldsContainer; +import graphql.schema.GraphQLInputType; import graphql.schema.GraphQLSchema; import graphql.schema.visibility.BlockedFields; import graphql.schema.visibility.GraphqlFieldVisibility; @@ -290,4 +293,26 @@ private GraphQL buildSchema() { .build(); } + private void emitAMetric(Object inputValue, GraphQLInputType graphQLInputType) { + return; + } + + private void inputInterceptorObservesExample() { + InputInterceptor legacyInputInterceptor = LegacyCoercingInputInterceptor.observesValues((inputValue, graphQLInputType) -> { + emitAMetric(inputValue, graphQLInputType); + }); + + ExecutionInput executionInput = ExecutionInput.newExecutionInput() + .query("query { exampleField }") + .graphQLContext(Map.of(InputInterceptor.class, legacyInputInterceptor)) + .build(); + } + + private void inputInterceptorMigratesExample() { + ExecutionInput executionInput = ExecutionInput.newExecutionInput() + .query("query { exampleField }") + .graphQLContext(Map.of(InputInterceptor.class, LegacyCoercingInputInterceptor.migratesValues())) + .build(); + } + } diff --git a/src/test/groovy/readme/InstrumentationExamples.java b/src/test/groovy/readme/InstrumentationExamples.java index 60ad4dc4d..142cd4f24 100644 --- a/src/test/groovy/readme/InstrumentationExamples.java +++ b/src/test/groovy/readme/InstrumentationExamples.java @@ -21,8 +21,8 @@ import graphql.execution.instrumentation.tracing.TracingInstrumentation; import graphql.schema.DataFetcher; import graphql.schema.GraphQLSchema; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.HashMap; @@ -86,7 +86,7 @@ public void onCompleted(ExecutionResult result, Throwable t) { } @Override - public @NotNull DataFetcher instrumentDataFetcher(DataFetcher dataFetcher, InstrumentationFieldFetchParameters parameters, InstrumentationState state) { + public @NonNull DataFetcher instrumentDataFetcher(DataFetcher dataFetcher, InstrumentationFieldFetchParameters parameters, InstrumentationState state) { // // this allows you to intercept the data fetcher used to fetch a field and provide another one, perhaps // that enforces certain behaviours or has certain side effects on the data @@ -95,7 +95,7 @@ public void onCompleted(ExecutionResult result, Throwable t) { } @Override - public @NotNull CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters, InstrumentationState state) { + public @NonNull CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters, InstrumentationState state) { // // this allows you to instrument the execution result somehow. For example the Tracing support uses this to put // the `extensions` map of data in place diff --git a/src/test/java/performance/ComplexQueryPerformance.java b/src/test/java/performance/ComplexQueryPerformance.java new file mode 100644 index 000000000..e8b2c3da0 --- /dev/null +++ b/src/test/java/performance/ComplexQueryPerformance.java @@ -0,0 +1,272 @@ +package performance; + +import benchmark.BenchmarkUtils; +import com.google.common.collect.ImmutableList; +import graphql.ExecutionInput; +import graphql.ExecutionResult; +import graphql.GraphQL; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import graphql.schema.GraphQLSchema; +import graphql.schema.idl.RuntimeWiring; +import graphql.schema.idl.SchemaGenerator; +import graphql.schema.idl.SchemaParser; +import graphql.schema.idl.TypeDefinitionRegistry; +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Level; +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.TearDown; +import org.openjdk.jmh.annotations.Warmup; +import org.openjdk.jmh.profile.GCProfiler; +import org.openjdk.jmh.runner.Runner; +import org.openjdk.jmh.runner.options.Options; +import org.openjdk.jmh.runner.options.OptionsBuilder; + +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Supplier; + +import static graphql.schema.idl.TypeRuntimeWiring.newTypeWiring; + +/** + * This benchmark is an attempt to have a more complex query that involves async and sync work together + * along with multiple threads happening. + *

    + * It can also be run in a forever mode say if you want to connect a profiler to it say + */ +@State(Scope.Benchmark) +@Warmup(iterations = 2, time = 5) +@Measurement(iterations = 2) +@Fork(2) +public class ComplexQueryPerformance { + + @Param({"5", "10", "20"}) + int howManyItems = 5; + int howLongToSleep = 5; + int howManyQueries = 10; + int howManyQueryThreads = 10; + int howManyFetcherThreads = 10; + + ExecutorService queryExecutorService; + ExecutorService fetchersExecutorService; + GraphQL graphQL; + volatile boolean shutDown; + + @Setup(Level.Trial) + public void setUp() { + shutDown = false; + queryExecutorService = Executors.newFixedThreadPool(howManyQueryThreads); + fetchersExecutorService = Executors.newFixedThreadPool(howManyFetcherThreads); + graphQL = buildGraphQL(); + } + + @TearDown(Level.Trial) + public void tearDown() { + shutDown = true; + queryExecutorService.shutdownNow(); + fetchersExecutorService.shutdownNow(); + } + + + @Benchmark + @BenchmarkMode(Mode.Throughput) + @OutputTimeUnit(TimeUnit.SECONDS) + public Object benchMarkSimpleQueriesThroughput() { + return runManyQueriesToCompletion(); + } + + + public static void main(String[] args) throws Exception { + // just to make sure it's all valid before testing + runAtStartup(); + + Options opt = new OptionsBuilder() + .include("benchmark.ComplexQueryBenchmark") + .addProfiler(GCProfiler.class) + .build(); + + new Runner(opt).run(); + } + + @SuppressWarnings({"ConstantValue", "LoopConditionNotUpdatedInsideLoop"}) + private static void runAtStartup() { + + ComplexQueryPerformance complexQueryBenchmark = new ComplexQueryPerformance(); + complexQueryBenchmark.howManyQueries = 5; + complexQueryBenchmark.howManyItems = 10; + + BenchmarkUtils.runInToolingForSomeTimeThenExit( + complexQueryBenchmark::setUp, + complexQueryBenchmark::runManyQueriesToCompletion, + complexQueryBenchmark::tearDown + + ); + } + + + @SuppressWarnings("UnnecessaryLocalVariable") + private Void runManyQueriesToCompletion() { + CompletableFuture[] cfs = new CompletableFuture[howManyQueries]; + for (int i = 0; i < howManyQueries; i++) { + cfs[i] = CompletableFuture.supplyAsync(() -> executeQuery(howManyItems, howLongToSleep), queryExecutorService).thenCompose(cf -> cf); + } + Void result = CompletableFuture.allOf(cfs).join(); + return result; + } + + public CompletableFuture executeQuery(int howMany, int howLong) { + String fields = "id name f1 f2 f3 f4 f5 f6 f7 f8 f9 f10"; + String query = "query q {" + + String.format("shops(howMany : %d) { %s departments( howMany : %d) { %s products(howMany : %d) { %s }}}\n" + , howMany, fields, 10, fields, 5, fields) + + String.format("expensiveShops(howMany : %d howLong : %d) { %s expensiveDepartments( howMany : %d howLong : %d) { %s expensiveProducts(howMany : %d howLong : %d) { %s }}}\n" + , howMany, howLong, fields, 10, howLong, fields, 5, howLong, fields) + + "}"; + return graphQL.executeAsync(ExecutionInput.newExecutionInput(query).build()); + } + + private GraphQL buildGraphQL() { + TypeDefinitionRegistry definitionRegistry = new SchemaParser().parse(PerformanceTestingUtils.loadResource("storesanddepartments.graphqls")); + + DataFetcher shopsDF = env -> mkHowManyThings(env.getArgument("howMany")); + DataFetcher expensiveShopsDF = env -> supplyAsync(() -> sleepAndReturnThings(env)); + DataFetcher departmentsDF = env -> mkHowManyThings(env.getArgument("howMany")); + DataFetcher expensiveDepartmentsDF = env -> supplyAsyncListItems(env, () -> sleepAndReturnThings(env)); + DataFetcher productsDF = env -> mkHowManyThings(env.getArgument("howMany")); + DataFetcher expensiveProductsDF = env -> supplyAsyncListItems(env, () -> sleepAndReturnThings(env)); + + RuntimeWiring runtimeWiring = RuntimeWiring.newRuntimeWiring() + .type(newTypeWiring("Query") + .dataFetcher("shops", shopsDF) + .dataFetcher("expensiveShops", expensiveShopsDF)) + .type(newTypeWiring("Shop") + .dataFetcher("departments", departmentsDF) + .dataFetcher("expensiveDepartments", expensiveDepartmentsDF)) + .type(newTypeWiring("Department") + .dataFetcher("products", productsDF) + .dataFetcher("expensiveProducts", expensiveProductsDF)) + .build(); + + GraphQLSchema graphQLSchema = new SchemaGenerator().makeExecutableSchema(definitionRegistry, runtimeWiring); + + return GraphQL.newGraphQL(graphQLSchema).build(); + } + + private CompletableFuture supplyAsyncListItems(DataFetchingEnvironment environment, Supplier codeToRun) { + return supplyAsync(codeToRun); + } + + private CompletableFuture supplyAsync(Supplier codeToRun) { + if (!shutDown) { + //logEvery(100, "async fetcher"); + return CompletableFuture.supplyAsync(codeToRun, fetchersExecutorService); + } else { + // if we have shutdown - get on with it, so we shut down quicker + return CompletableFuture.completedFuture(codeToRun.get()); + } + } + + private List sleepAndReturnThings(DataFetchingEnvironment env) { + // by sleeping, we hope to cause the objects to stay longer in GC land and hence have a longer lifecycle + // then a simple stack say or young gen gc. I don't know this will work, but I am trying it + // to represent work that takes some tie to complete + sleep(env.getArgument("howLong")); + return mkHowManyThings(env.getArgument("howMany")); + } + + private void sleep(Integer howLong) { + if (howLong > 0) { + try { + Thread.sleep(howLong); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + } + + AtomicInteger logCount = new AtomicInteger(); + + private void logEvery(int every, String s) { + int count = logCount.getAndIncrement(); + if (count == 0 || count % every == 0) { + System.out.println("\t" + count + "\t" + s); + } + } + + private List mkHowManyThings(Integer howMany) { + ImmutableList.Builder builder = ImmutableList.builder(); + for (int i = 0; i < howMany; i++) { + builder.add(new IdAndNamedThing(i)); + } + return builder.build(); + } + + @SuppressWarnings("unused") + static class IdAndNamedThing { + private final int i; + + public IdAndNamedThing(int i) { + this.i = i; + } + + public String getId() { + return "id" + i; + } + + public String getName() { + return "name" + i; + } + + public String getF1() { + return "f1" + i; + } + + public String getF2() { + return "f2" + i; + } + + public String getF3() { + return "f3" + i; + } + + public String getF4() { + return "f4" + i; + } + + public String getF5() { + return "f5" + i; + } + + public String getF6() { + return "f6" + i; + } + + public String getF7() { + return "f7" + i; + } + + public String getF8() { + return "f8" + i; + } + + public String getF9() { + return "f9" + i; + } + + public String getF10() { + return "f10" + i; + } + } +} diff --git a/src/test/java/benchmark/DFSelectionSetBenchmark.java b/src/test/java/performance/DFSelectionSetPerformance.java similarity index 72% rename from src/test/java/benchmark/DFSelectionSetBenchmark.java rename to src/test/java/performance/DFSelectionSetPerformance.java index 01081cf51..12a71fbe8 100644 --- a/src/test/java/benchmark/DFSelectionSetBenchmark.java +++ b/src/test/java/performance/DFSelectionSetPerformance.java @@ -1,4 +1,4 @@ -package benchmark; +package performance; import graphql.execution.CoercedVariables; import graphql.language.Document; @@ -31,7 +31,7 @@ @Warmup(iterations = 2, time = 5) @Measurement(iterations = 3) @Fork(3) -public class DFSelectionSetBenchmark { +public class DFSelectionSetPerformance { @State(Scope.Benchmark) public static class MyState { @@ -44,10 +44,10 @@ public static class MyState { @Setup public void setup() { try { - String schemaString = BenchmarkUtils.loadResource("large-schema-2.graphqls"); + String schemaString = PerformanceTestingUtils.loadResource("large-schema-2.graphqls"); schema = SchemaGenerator.createdMockedSchema(schemaString); - String query = BenchmarkUtils.loadResource("large-schema-2-query.graphql"); + String query = PerformanceTestingUtils.loadResource("large-schema-2-query.graphql"); document = Parser.parse(query); ExecutableNormalizedOperation executableNormalizedOperation = ExecutableNormalizedOperationFactory.createExecutableNormalizedOperation(schema, document, null, CoercedVariables.emptyVariables()); @@ -79,17 +79,38 @@ public void benchMarkThroughput(MyState myState, Blackhole blackhole) { blackhole.consume(fields); } + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public void benchMarkAvgTime_getImmediateFields(MyState myState, Blackhole blackhole) { + List fields = getImmediateFields(myState); + blackhole.consume(fields); + } + + @Benchmark + @BenchmarkMode(Mode.Throughput) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public void benchMarkThroughput_getImmediateFields(MyState myState, Blackhole blackhole) { + List fields = getImmediateFields(myState); + blackhole.consume(fields); + } + private List getSelectedFields(MyState myState) { DataFetchingFieldSelectionSet dataFetchingFieldSelectionSet = DataFetchingFieldSelectionSetImpl.newCollector(myState.schema, myState.outputFieldType, () -> myState.normalisedField); return dataFetchingFieldSelectionSet.getFields("wontBeFound"); } + private List getImmediateFields(MyState myState) { + DataFetchingFieldSelectionSet dataFetchingFieldSelectionSet = DataFetchingFieldSelectionSetImpl.newCollector(myState.schema, myState.outputFieldType, () -> myState.normalisedField); + return dataFetchingFieldSelectionSet.getImmediateFields(); + } + public static void mainX(String[] args) throws InterruptedException { MyState myState = new MyState(); myState.setup(); while (true) { - List selectedFields = new DFSelectionSetBenchmark().getSelectedFields(myState); + List selectedFields = new DFSelectionSetPerformance().getSelectedFields(myState); Thread.sleep(500); } } diff --git a/src/test/java/benchmark/ENFBenchmark1.java b/src/test/java/performance/ENF1Performance.java similarity index 89% rename from src/test/java/benchmark/ENFBenchmark1.java rename to src/test/java/performance/ENF1Performance.java index 6c10de1b1..8e324b297 100644 --- a/src/test/java/benchmark/ENFBenchmark1.java +++ b/src/test/java/performance/ENF1Performance.java @@ -1,4 +1,4 @@ -package benchmark; +package performance; import graphql.execution.CoercedVariables; import graphql.language.Document; @@ -25,7 +25,7 @@ @Warmup(iterations = 2, time = 5) @Measurement(iterations = 3) @Fork(3) -public class ENFBenchmark1 { +public class ENF1Performance { @State(Scope.Benchmark) public static class MyState { @@ -36,10 +36,10 @@ public static class MyState { @Setup public void setup() { try { - String schemaString = BenchmarkUtils.loadResource("large-schema-1.graphqls"); + String schemaString = PerformanceTestingUtils.loadResource("large-schema-1.graphqls"); schema = SchemaGenerator.createdMockedSchema(schemaString); - String query = BenchmarkUtils.loadResource("large-schema-1-query.graphql"); + String query = PerformanceTestingUtils.loadResource("large-schema-1-query.graphql"); document = Parser.parse(query); } catch (Exception e) { throw new RuntimeException(e); diff --git a/src/test/java/benchmark/ENFBenchmark2.java b/src/test/java/performance/ENF2Performance.java similarity index 87% rename from src/test/java/benchmark/ENFBenchmark2.java rename to src/test/java/performance/ENF2Performance.java index a2a0ad364..4a6989e77 100644 --- a/src/test/java/benchmark/ENFBenchmark2.java +++ b/src/test/java/performance/ENF2Performance.java @@ -1,4 +1,4 @@ -package benchmark; +package performance; import graphql.execution.CoercedVariables; import graphql.language.Document; @@ -24,7 +24,7 @@ @Warmup(iterations = 2, time = 5) @Measurement(iterations = 3) @Fork(3) -public class ENFBenchmark2 { +public class ENF2Performance { @State(Scope.Benchmark) public static class MyState { @@ -35,10 +35,10 @@ public static class MyState { @Setup public void setup() { try { - String schemaString = BenchmarkUtils.loadResource("large-schema-2.graphqls"); + String schemaString = PerformanceTestingUtils.loadResource("large-schema-2.graphqls"); schema = SchemaGenerator.createdMockedSchema(schemaString); - String query = BenchmarkUtils.loadResource("large-schema-2-query.graphql"); + String query = PerformanceTestingUtils.loadResource("large-schema-2-query.graphql"); document = Parser.parse(query); } catch (Exception e) { throw new RuntimeException(e); diff --git a/src/test/java/benchmark/ENFBenchmarkDeepIntrospection.java b/src/test/java/performance/ENFDeepIntrospectionPerformance.java similarity index 79% rename from src/test/java/benchmark/ENFBenchmarkDeepIntrospection.java rename to src/test/java/performance/ENFDeepIntrospectionPerformance.java index 0ed09d467..02d3626d0 100644 --- a/src/test/java/benchmark/ENFBenchmarkDeepIntrospection.java +++ b/src/test/java/performance/ENFDeepIntrospectionPerformance.java @@ -1,5 +1,6 @@ -package benchmark; +package performance; +import benchmark.BenchmarkUtils; import graphql.execution.CoercedVariables; import graphql.language.Document; import graphql.normalized.ExecutableNormalizedOperation; @@ -26,15 +27,15 @@ import java.util.concurrent.TimeUnit; -import static graphql.normalized.ExecutableNormalizedOperationFactory.*; +import static graphql.normalized.ExecutableNormalizedOperationFactory.createExecutableNormalizedOperation; @State(Scope.Benchmark) @Warmup(iterations = 2, time = 5) @Measurement(iterations = 3, time = 5) @Fork(2) -public class ENFBenchmarkDeepIntrospection { +public class ENFDeepIntrospectionPerformance { - @Param({"2", "10", "20"}) + @Param({"2", "10"}) int howDeep = 2; String query = ""; @@ -44,17 +45,18 @@ public class ENFBenchmarkDeepIntrospection { @Setup(Level.Trial) public void setUp() { - String schemaString = BenchmarkUtils.loadResource("large-schema-2.graphqls"); + String schemaString = PerformanceTestingUtils.loadResource("large-schema-2.graphqls"); schema = SchemaGenerator.createdMockedSchema(schemaString); query = createDeepQuery(howDeep); document = Parser.parse(query); } + @Benchmark @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MILLISECONDS) public ExecutableNormalizedOperation benchMarkAvgTime() { - ExecutableNormalizedOperationFactory.Options options = ExecutableNormalizedOperationFactory.Options.defaultOptions(); + ExecutableNormalizedOperationFactory.Options options = ExecutableNormalizedOperationFactory.Options.defaultOptions(); ExecutableNormalizedOperation executableNormalizedOperation = createExecutableNormalizedOperation(schema, document, null, @@ -67,7 +69,7 @@ public static void main(String[] args) throws RunnerException { runAtStartup(); Options opt = new OptionsBuilder() - .include("benchmark.ENFBenchmarkDeepIntrospection") + .include("performance.ENFDeepIntrospectionPerformance") .build(); new Runner(opt).run(); @@ -75,18 +77,22 @@ public static void main(String[] args) throws RunnerException { private static void runAtStartup() { - ENFBenchmarkDeepIntrospection benchmarkIntrospection = new ENFBenchmarkDeepIntrospection(); + ENFDeepIntrospectionPerformance benchmarkIntrospection = new ENFDeepIntrospectionPerformance(); benchmarkIntrospection.howDeep = 2; BenchmarkUtils.runInToolingForSomeTimeThenExit( benchmarkIntrospection::setUp, - () -> { while (true) { benchmarkIntrospection.benchMarkAvgTime(); }}, - () ->{} + () -> { + while (true) { + benchmarkIntrospection.benchMarkAvgTime(); + } + }, + () -> { + } ); } - private static String createDeepQuery(int depth) { String result = "query test {\n" + " __schema {\n" + @@ -100,12 +106,12 @@ private static String createDeepQuery(int depth) { result += " fragment F" + i + " on __Type {\n" + " fields {\n" + " type {\n" + - " ...F" + (i + 1) +"\n" + + " ...F" + (i + 1) + "\n" + " }\n" + " }\n" + "\n" + " ofType {\n" + - " ...F"+ (i + 1) + "\n" + + " ...F" + (i + 1) + "\n" + " }\n" + " }\n"; } diff --git a/src/test/java/benchmark/ENFExtraLargeBenchmark.java b/src/test/java/performance/ENFExtraLargePerformance.java similarity index 88% rename from src/test/java/benchmark/ENFExtraLargeBenchmark.java rename to src/test/java/performance/ENFExtraLargePerformance.java index 19a410a44..f0be3a09c 100644 --- a/src/test/java/benchmark/ENFExtraLargeBenchmark.java +++ b/src/test/java/performance/ENFExtraLargePerformance.java @@ -1,4 +1,4 @@ -package benchmark; +package performance; import graphql.execution.CoercedVariables; import graphql.language.Document; @@ -25,7 +25,7 @@ @Warmup(iterations = 2, time = 5) @Measurement(iterations = 3) @Fork(3) -public class ENFExtraLargeBenchmark { +public class ENFExtraLargePerformance { @State(Scope.Benchmark) public static class MyState { @@ -36,10 +36,10 @@ public static class MyState { @Setup public void setup() { try { - String schemaString = BenchmarkUtils.loadResource("extra-large-schema-1.graphqls"); + String schemaString = PerformanceTestingUtils.loadResource("extra-large-schema-1.graphqls"); schema = SchemaGenerator.createdMockedSchema(schemaString); - String query = BenchmarkUtils.loadResource("extra-large-schema-1-query.graphql"); + String query = PerformanceTestingUtils.loadResource("extra-large-schema-1-query.graphql"); document = Parser.parse(query); } catch (Exception e) { throw new RuntimeException(e); diff --git a/src/test/java/performance/OverlappingFieldValidationPerformance.java b/src/test/java/performance/OverlappingFieldValidationPerformance.java new file mode 100644 index 000000000..19e7c0cdd --- /dev/null +++ b/src/test/java/performance/OverlappingFieldValidationPerformance.java @@ -0,0 +1,246 @@ +package performance; + +import graphql.Assert; +import graphql.ExecutionResult; +import graphql.GraphQL; +import graphql.i18n.I18n; +import graphql.language.Document; +import graphql.parser.Parser; +import graphql.schema.GraphQLSchema; +import graphql.schema.idl.SchemaGenerator; +import graphql.validation.LanguageTraversal; +import graphql.validation.RulesVisitor; +import graphql.validation.ValidationContext; +import graphql.validation.ValidationError; +import graphql.validation.ValidationErrorCollector; +import graphql.validation.rules.OverlappingFieldsCanBeMerged; +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 org.openjdk.jmh.infra.Blackhole; + +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.concurrent.TimeUnit; + +import static graphql.Assert.assertTrue; + +@State(Scope.Benchmark) +@Warmup(iterations = 2, time = 5) +@Measurement(iterations = 3) +@Fork(3) +public class OverlappingFieldValidationPerformance { + + + static String schemaSdl = " type Query { viewer: Viewer } interface Abstract { field: Abstract leaf: Int } interface Abstract1 { field: Abstract leaf: Int } interface Abstract2 { field: Abstract leaf: Int }" + + " type Concrete1 implements Abstract1{ field: Abstract leaf: Int} " + + "type Concrete2 implements Abstract2{ field: Abstract leaf: Int} " + + "type Viewer { xingId: XingId } type XingId { firstName: String! lastName: String! }"; + + @State(Scope.Benchmark) + public static class MyState { + + GraphQLSchema schema; + GraphQLSchema schema2; + Document document; + + @Param({"100"}) + int size; + + Document overlapFrag; + Document overlapNoFrag; + Document noOverlapFrag; + Document noOverlapNoFrag; + Document repeatedFields; + Document deepAbstractConcrete; + + @Setup + public void setup() { + try { + overlapFrag = makeQuery(size, true, true); + overlapNoFrag = makeQuery(size, true, false); + noOverlapFrag = makeQuery(size, false, true); + noOverlapNoFrag = makeQuery(size, false, false); + repeatedFields = makeRepeatedFieldsQuery(size); + deepAbstractConcrete = makeDeepAbstractConcreteQuery(size); + + + schema2 = SchemaGenerator.createdMockedSchema(schemaSdl); + + String schemaString = PerformanceTestingUtils.loadResource("large-schema-4.graphqls"); + String query = PerformanceTestingUtils.loadResource("large-schema-4-query.graphql"); + schema = SchemaGenerator.createdMockedSchema(schemaString); + document = Parser.parse(query); + + // make sure this is a valid query overall + GraphQL graphQL = GraphQL.newGraphQL(schema).build(); + ExecutionResult executionResult = graphQL.execute(query); + assertTrue(executionResult.getErrors().size() == 0); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public void overlappingFieldValidationAvgTime(MyState myState, Blackhole blackhole) { + blackhole.consume(validateQuery(myState.schema, myState.document)); + } + + @Benchmark + @BenchmarkMode(Mode.Throughput) + @OutputTimeUnit(TimeUnit.SECONDS) + public void overlappingFieldValidationThroughput(MyState myState, Blackhole blackhole) { + blackhole.consume(validateQuery(myState.schema, myState.document)); + } + + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public void benchmarkRepeatedFields(MyState myState, Blackhole blackhole) { + blackhole.consume(validateQuery(myState.schema2, myState.repeatedFields)); + } + + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public void benchmarkOverlapFrag(MyState myState, Blackhole blackhole) { + blackhole.consume(validateQuery(myState.schema2, myState.overlapFrag)); + } + + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public void benchmarkOverlapNoFrag(MyState myState, Blackhole blackhole) { + blackhole.consume(validateQuery(myState.schema2, myState.overlapNoFrag)); + } + + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public void benchmarkNoOverlapFrag(MyState myState, Blackhole blackhole) { + blackhole.consume(validateQuery(myState.schema2, myState.noOverlapFrag)); + } + + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public void benchmarkNoOverlapNoFrag(MyState myState, Blackhole blackhole) { + blackhole.consume(validateQuery(myState.schema2, myState.noOverlapNoFrag)); + } + + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public void benchmarkDeepAbstractConcrete(MyState myState, Blackhole blackhole) { + blackhole.consume(validateQuery(myState.schema2, myState.deepAbstractConcrete)); + } + + private List validateQuery(GraphQLSchema schema, Document document) { + ValidationErrorCollector errorCollector = new ValidationErrorCollector(); + I18n i18n = I18n.i18n(I18n.BundleType.Validation, Locale.ENGLISH); + ValidationContext validationContext = new ValidationContext(schema, document, i18n); + OverlappingFieldsCanBeMerged overlappingFieldsCanBeMerged = new OverlappingFieldsCanBeMerged(validationContext, errorCollector); + LanguageTraversal languageTraversal = new LanguageTraversal(); + languageTraversal.traverse(document, new RulesVisitor(validationContext, Collections.singletonList(overlappingFieldsCanBeMerged))); + Assert.assertTrue(errorCollector.getErrors().size() == 0); + return errorCollector.getErrors(); + } + + + private static Document makeQuery(int size, boolean overlapping, boolean fragments) { + if (fragments) { + return makeQueryWithFragments(size, overlapping); + } else { + return makeQueryWithoutFragments(size, overlapping); + } + } + + private static Document makeRepeatedFieldsQuery(int size) { + StringBuilder b = new StringBuilder(); + + b.append(" query testQuery { viewer { xingId {"); + + b.append("firstName\n".repeat(Math.max(0, size))); + + b.append("} } }"); + + return Parser.parse(b.toString()); + } + + + private static Document makeQueryWithFragments(int size, boolean overlapping) { + StringBuilder b = new StringBuilder(); + + for (int i = 1; i <= size; i++) { + if (overlapping) { + b.append(" fragment mergeIdenticalFields" + i + " on Query {viewer { xingId { firstName lastName }}}"); + } else { + b.append("fragment mergeIdenticalFields" + i + " on Query {viewer" + i + " { xingId" + i + " { firstName" + i + " lastName" + i + " } }}"); + } + + b.append("\n\n"); + } + + b.append("query testQuery {"); + for (int i = 1; i <= size; i++) { + b.append("...mergeIdenticalFields" + i + "\n"); + } + b.append("}"); + return Parser.parse(b.toString()); + } + + private static Document makeQueryWithoutFragments(int size, boolean overlapping) { + StringBuilder b = new StringBuilder(); + + b.append("query testQuery {"); + + for (int i = 1; i <= size; i++) { + if (overlapping) { + b.append(" viewer { xingId { firstName } } "); + } else { + b.append(" viewer" + i + " { xingId" + i + " { firstName" + i + " } } "); + } + + b.append("\n\n"); + } + + b.append("}"); + + return Parser.parse(b.toString()); + } + + private static Document makeDeepAbstractConcreteQuery(int depth) { + StringBuilder q = new StringBuilder(); + + q.append("fragment multiply on Whatever { field { " + + "... on Abstract1 { field { leaf } } " + + "... on Abstract2 { field { leaf } } " + + "... on Concrete1 { field { leaf } } " + + "... on Concrete2 { field { leaf } } } } " + + "query DeepAbstractConcrete { "); + + for (int i = 1; i <= depth; i++) { + q.append("field { ...multiply "); + } + + for (int i = 1; i <= depth; i++) { + q.append(" }"); + } + + q.append("\n}"); + + return Parser.parse(q.toString()); + } +} diff --git a/src/test/java/performance/PerformanceTestingUtils.java b/src/test/java/performance/PerformanceTestingUtils.java new file mode 100644 index 000000000..9e05fd661 --- /dev/null +++ b/src/test/java/performance/PerformanceTestingUtils.java @@ -0,0 +1,84 @@ +package performance; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.nio.charset.Charset; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.Callable; + +public class PerformanceTestingUtils { + + @SuppressWarnings("UnstableApiUsage") + static String loadResource(String name) { + return asRTE(() -> { + URL resource = PerformanceTestingUtils.class.getClassLoader().getResource(name); + if (resource == null) { + throw new IllegalArgumentException("missing resource: " + name); + } + byte[] bytes; + try (InputStream inputStream = resource.openStream()) { + bytes = inputStream.readAllBytes(); + } + return new String(bytes, Charset.defaultCharset()); + }); + } + + static T asRTE(Callable callable) { + try { + return callable.call(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public static void runInToolingForSomeTimeThenExit(Runnable setup, Runnable r, Runnable tearDown) { + int runForMillis = getRunForMillis(); + if (runForMillis <= 0) { + System.out.print("'runForMillis' environment var is not set - continuing \n"); + return; + } + System.out.printf("Running initial code in some tooling - runForMillis=%d \n", runForMillis); + System.out.print("Get your tooling in order and press enter..."); + readLine(); + System.out.print("Lets go...\n"); + setup.run(); + + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss"); + long now, then = System.currentTimeMillis(); + do { + now = System.currentTimeMillis(); + long msLeft = runForMillis - (now - then); + System.out.printf("\t%s Running in loop... %s ms left\n", dtf.format(LocalDateTime.now()), msLeft); + r.run(); + now = System.currentTimeMillis(); + } while ((now - then) < runForMillis); + + tearDown.run(); + + System.out.printf("This ran for %d millis. Exiting...\n", System.currentTimeMillis() - then); + System.exit(0); + } + + private static void readLine() { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + try { + br.readLine(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private static int getRunForMillis() { + String runFor = System.getenv("runForMillis"); + try { + return Integer.parseInt(runFor); + } catch (NumberFormatException e) { + return -1; + } + } + +} diff --git a/src/test/java/reproductions/SubscriptionReproduction.java b/src/test/java/reproductions/SubscriptionReproduction.java index 07be4d000..47bde26e7 100644 --- a/src/test/java/reproductions/SubscriptionReproduction.java +++ b/src/test/java/reproductions/SubscriptionReproduction.java @@ -9,7 +9,7 @@ import graphql.schema.idl.RuntimeWiring; import graphql.schema.idl.SchemaGenerator; import graphql.schema.idl.SchemaParser; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; import org.reactivestreams.Publisher; import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; @@ -134,7 +134,7 @@ private static Integer getCounter(Map video) { return counter; } - private @NotNull Object mkValue(Integer counter) { + private @NonNull Object mkValue(Integer counter) { // name and isFavorite are future values via DFs return Map.of( "counter", counter, diff --git a/src/test/resources/large-schema-1.graphqls b/src/test/resources/large-schema-1.graphqls index 65f548089..d56a03590 100644 --- a/src/test/resources/large-schema-1.graphqls +++ b/src/test/resources/large-schema-1.graphqls @@ -15,7 +15,11 @@ directive @skip( if: Boolean! ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT -directive @deprecated(reason: String) on FIELD_DEFINITION | ENUM_VALUE +"Marks the field, argument, input field or enum value as deprecated" +directive @deprecated( + "The reason for the deprecation" + reason: String! = "No longer supported" +) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION "Exposes a URL that specifies the behaviour of this scalar." directive @specifiedBy( @@ -544,4 +548,4 @@ input InputObject9 { inputField32: [ID!] inputField33: [Scalar2] inputField34: InputObject8 -} \ No newline at end of file +} diff --git a/src/test/resources/many-fragments.graphqls b/src/test/resources/many-fragments.graphqls index 977da297a..928774ea7 100644 --- a/src/test/resources/many-fragments.graphqls +++ b/src/test/resources/many-fragments.graphqls @@ -25,7 +25,11 @@ directive @Directive8(argument7: Enum3!) on FIELD_DEFINITION directive @Directive9(argument8: String!) on OBJECT -directive @deprecated(reason: String) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION +"Marks the field, argument, input field or enum value as deprecated" +directive @deprecated( + "The reason for the deprecation" + reason: String! = "No longer supported" +) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include(