From ef87fbae19f367f9514c99493c912e19913eb481 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Mon, 10 Nov 2025 16:57:01 +0000 Subject: [PATCH 01/39] run benchmarks in CI on macOS as well --- .github/workflows/benchmarks.yml | 142 +++++++++++++++++++++++++++++-- 1 file changed, 137 insertions(+), 5 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index a89131eb36a..3c87ef154d7 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -71,6 +71,37 @@ on: description: "Boolean to enable the Windows nightly main Swift version matrix job. Currently has no effect!" # TODO: implement Windows benchmarking default: false + macos_xcode_16_3_enabled: + type: boolean + description: "Boolean to enable the macOS Xcode 16.3 benchmark job. Defaults to true." + default: true + macos_xcode_16_4_enabled: + type: boolean + description: "Boolean to enable the macOS Xcode 16.4 benchmark job. Defaults to true." + default: true + macos_xcode_26_0_enabled: + type: boolean + description: "Boolean to enable the macOS Xcode 26.0 benchmark job. Defaults to true." + default: true + macos_xcode_26_1_enabled: + type: boolean + description: "Boolean to enable the macOS Xcode 26.1 benchmark job. Defaults to true." + default: true + macos_xcode_latest_beta_enabled: + type: boolean + description: "Boolean to enable the macOS Xcode latest beta benchmark job. Defaults to true." + default: true + + macos_runner_pool: + type: string + description: "The runner pool which will be requested for macOS jobs." + default: "nightly" + + macos_env_vars: + type: string + description: "Environment variables for macOS jobs as JSON (e.g., '{\"DEBUG\":\"1\",\"LOG_LEVEL\":\"info\"}')." + default: "{}" + linux_env_vars: type: string description: "Environment variables for Linux jobs as JSON (e.g., '{\"DEBUG\":\"1\",\"LOG_LEVEL\":\"info\"}')." @@ -82,8 +113,8 @@ on: default: "" jobs: - construct-matrix: - name: Construct Benchmarks matrix + construct-matrix-linux: + name: Construct Linux Benchmarks matrix runs-on: ubuntu-latest outputs: benchmarks-matrix: '${{ steps.generate-matrix.outputs.benchmarks-matrix }}' @@ -115,11 +146,112 @@ jobs: MATRIX_LINUX_NIGHTLY_NEXT_ENABLED: ${{ inputs.linux_nightly_6_1_enabled && inputs.linux_nightly_next_enabled }} MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }} + construct-matrix-macos: + name: Construct macOS Benchmarks matrix + runs-on: ubuntu-latest + outputs: + macos-matrix: '${{ steps.generate-matrix.outputs.macos-matrix }}' + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + persist-credentials: false + - id: generate-matrix + run: | + # Validate JSON environment variables + macos_env_vars_json='${{ inputs.macos_env_vars }}' + + if ! echo "$macos_env_vars_json" | jq empty 2>/dev/null; then + echo "Error: macos_env_vars is not valid JSON" + exit 1 + fi + + runner_pool="${MACOS_RUNNER_POOL}" + xcode_16_3_enabled="${MACOS_XCODE_16_3_ENABLED}" + xcode_16_4_enabled="${MACOS_XCODE_16_4_ENABLED}" + xcode_26_0_enabled="${MACOS_XCODE_26_0_ENABLED}" + xcode_26_1_enabled="${MACOS_XCODE_26_1_ENABLED}" + xcode_latest_beta_enabled="${MACOS_XCODE_LATEST_BETA_ENABLED}" + + # Create matrix from inputs + matrix='{"config": []}' + + if [[ "$xcode_16_3_enabled" == "true" ]]; then + matrix=$(echo "$matrix" | jq -c \ + --arg runner_pool "$runner_pool" \ + --argjson env_vars "$macos_env_vars_json" \ + '.config[.config| length] |= . + { "name": "macOS Xcode 16.3", "xcode_version": "16.3", "xcode_app": "Xcode_16.3.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + fi + + if [[ "$xcode_16_4_enabled" == "true" ]]; then + matrix=$(echo "$matrix" | jq -c \ + --arg runner_pool "$runner_pool" \ + --argjson env_vars "$macos_env_vars_json" \ + '.config[.config| length] |= . + { "name": "macOS Xcode 16.4", "xcode_version": "16.4", "xcode_app": "Xcode_16.4.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + fi + + if [[ "$xcode_26_0_enabled" == "true" ]]; then + matrix=$(echo "$matrix" | jq -c \ + --arg runner_pool "$runner_pool" \ + --argjson env_vars "$macos_env_vars_json" \ + '.config[.config| length] |= . + { "name": "macOS Xcode 26.0", "xcode_version": "26.0", "xcode_app": "Xcode_26.0.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + fi + + if [[ "$xcode_26_1_enabled" == "true" ]]; then + matrix=$(echo "$matrix" | jq -c \ + --arg runner_pool "$runner_pool" \ + --argjson env_vars "$macos_env_vars_json" \ + '.config[.config| length] |= . + { "name": "macOS Xcode 26.1", "xcode_version": "26.1", "xcode_app": "Xcode_26.1.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + fi + + if [[ "$xcode_latest_beta_enabled" == "true" ]]; then + matrix=$(echo "$matrix" | jq -c \ + --arg runner_pool "$runner_pool" \ + --argjson env_vars "$macos_env_vars_json" \ + '.config[.config| length] |= . + { "name": "macOS Xcode latest beta", "xcode_version": "latest beta", "xcode_app": "Xcode-latest.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + fi + + echo "macos-matrix=$matrix" >> "$GITHUB_OUTPUT" + env: + MACOS_RUNNER_POOL: ${{ inputs.macos_runner_pool }} + MACOS_XCODE_16_3_ENABLED: ${{ inputs.macos_xcode_16_3_enabled }} + MACOS_XCODE_16_4_ENABLED: ${{ inputs.macos_xcode_16_4_enabled }} + MACOS_XCODE_26_0_ENABLED: ${{ inputs.macos_xcode_26_0_enabled }} + MACOS_XCODE_26_1_ENABLED: ${{ inputs.macos_xcode_26_1_enabled }} + MACOS_XCODE_LATEST_BETA_ENABLED: ${{ inputs.macos_xcode_latest_beta_enabled }} + benchmarks: - name: Benchmarks - needs: construct-matrix + name: Linux Benchmarks + needs: construct-matrix-linux # Workaround https://github.com/nektos/act/issues/1875 uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main with: name: "Benchmarks" - matrix_string: '${{ needs.construct-matrix.outputs.benchmarks-matrix }}' + matrix_string: '${{ needs.construct-matrix-linux.outputs.benchmarks-matrix }}' + + macos-benchmarks: + name: ${{ matrix.config.name }} + needs: construct-matrix-macos + runs-on: [self-hosted, macos, "${{ matrix.config.os }}", "${{ matrix.config.arch }}", "${{ matrix.config.pool }}"] + timeout-minutes: 30 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.construct-matrix-macos.outputs.macos-matrix) }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + persist-credentials: false + submodules: true + - name: Export environment variables + if: ${{ matrix.config.env != '' && matrix.config.env != '{}'}} + run: | + echo "Exporting environment variables from matrix configuration..." + echo '${{ toJSON(matrix.config.env) }}' | jq -r 'to_entries[] | "\(.key)=\(.value)"' >> $GITHUB_ENV + echo '${{ toJSON(matrix.config.env) }}' | jq -r 'to_entries[] | "exporting \(.key)=\(.value)"' + - name: Run benchmarks + run: | + swift --version + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash + env: + DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From bd8637d07829f9819137fe1f31640265b1f28a91 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Tue, 11 Nov 2025 12:43:34 +0000 Subject: [PATCH 02/39] custom branch --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 83dafb3a607..8f4b1bf7a0b 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -31,7 +31,7 @@ jobs: benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/benchmarks.yml@main + uses: apple/swift-nio/.github/workflows/benchmarks.yml@run-benchmarks-in-CI-on-macOS with: benchmark_package_path: "Benchmarks" From 9902bde37b6ef4c3792fb092c36ce7f823492406 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Tue, 11 Nov 2025 12:50:33 +0000 Subject: [PATCH 03/39] fixup! custom branch --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 8f4b1bf7a0b..fbe722c0445 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -31,7 +31,7 @@ jobs: benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/benchmarks.yml@run-benchmarks-in-CI-on-macOS + uses: ./.github/workflows//benchmarks.yml with: benchmark_package_path: "Benchmarks" From 595fa376baefb936ee9c7f2f4b908f2db1d4168f Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Tue, 11 Nov 2025 12:51:29 +0000 Subject: [PATCH 04/39] fixup! custom branch --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index fbe722c0445..6f64dc78011 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -31,7 +31,7 @@ jobs: benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: ./.github/workflows//benchmarks.yml + uses: ./.github/workflows/benchmarks.yml with: benchmark_package_path: "Benchmarks" From 23405cb2266943561fa3aed1d821645976c29224 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Tue, 11 Nov 2025 16:18:15 +0000 Subject: [PATCH 05/39] add command_arguments --- .github/workflows/benchmarks.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 3c87ef154d7..c33410826a9 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -97,6 +97,11 @@ on: description: "The runner pool which will be requested for macOS jobs." default: "nightly" + command_arguments: + type: string + description: "" + default: "" + macos_env_vars: type: string description: "Environment variables for macOS jobs as JSON (e.g., '{\"DEBUG\":\"1\",\"LOG_LEVEL\":\"info\"}')." @@ -214,13 +219,14 @@ jobs: echo "macos-matrix=$matrix" >> "$GITHUB_OUTPUT" env: MACOS_RUNNER_POOL: ${{ inputs.macos_runner_pool }} + MACOS_SWIFT_ARGUMENTS: ${{ inputs.macos_command_arguments }} MACOS_XCODE_16_3_ENABLED: ${{ inputs.macos_xcode_16_3_enabled }} MACOS_XCODE_16_4_ENABLED: ${{ inputs.macos_xcode_16_4_enabled }} MACOS_XCODE_26_0_ENABLED: ${{ inputs.macos_xcode_26_0_enabled }} MACOS_XCODE_26_1_ENABLED: ${{ inputs.macos_xcode_26_1_enabled }} MACOS_XCODE_LATEST_BETA_ENABLED: ${{ inputs.macos_xcode_latest_beta_enabled }} - benchmarks: + benchmarks-linux: name: Linux Benchmarks needs: construct-matrix-linux # Workaround https://github.com/nektos/act/issues/1875 @@ -229,7 +235,7 @@ jobs: name: "Benchmarks" matrix_string: '${{ needs.construct-matrix-linux.outputs.benchmarks-matrix }}' - macos-benchmarks: + benchmarks-macos: name: ${{ matrix.config.name }} needs: construct-matrix-macos runs-on: [self-hosted, macos, "${{ matrix.config.os }}", "${{ matrix.config.arch }}", "${{ matrix.config.pool }}"] @@ -252,6 +258,6 @@ jobs: - name: Run benchmarks run: | swift --version - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh ${{ inputs.command_arguments }} | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From 42151371f7c661705dcd887ac9b2060f53598c23 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Tue, 11 Nov 2025 17:06:47 +0000 Subject: [PATCH 06/39] fixup! add command_arguments --- .github/workflows/benchmarks.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index c33410826a9..e1651bafd9c 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -98,9 +98,9 @@ on: default: "nightly" command_arguments: - type: string - description: "" - default: "" + type: string + description: "" + default: "" macos_env_vars: type: string @@ -258,6 +258,6 @@ jobs: - name: Run benchmarks run: | swift --version - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh ${{ inputs.command_arguments }} | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash - ${{ inputs.command_arguments }} env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From b3d187ece9eb824c1b4418c56a6c9fa061945fac Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Tue, 11 Nov 2025 17:22:36 +0000 Subject: [PATCH 07/39] fixup! add command_arguments --- .github/workflows/benchmarks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index e1651bafd9c..229145df8b1 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -100,7 +100,7 @@ on: command_arguments: type: string description: "" - default: "" + default: " " macos_env_vars: type: string From 894bd5ea0b3e7698477c0b0dbad2a224de127dbd Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Tue, 11 Nov 2025 17:33:01 +0000 Subject: [PATCH 08/39] fixup! add command_arguments --- .github/workflows/benchmarks.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 229145df8b1..ddea32cb0d6 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -97,9 +97,9 @@ on: description: "The runner pool which will be requested for macOS jobs." default: "nightly" - command_arguments: + macos_command_arguments: type: string - description: "" + description: "Additional arguments passed to swift package benchmark. Default to empty." default: " " macos_env_vars: @@ -177,6 +177,7 @@ jobs: xcode_26_0_enabled="${MACOS_XCODE_26_0_ENABLED}" xcode_26_1_enabled="${MACOS_XCODE_26_1_ENABLED}" xcode_latest_beta_enabled="${MACOS_XCODE_LATEST_BETA_ENABLED}" + command_arguments="${MACOS_COMMAND_ARGUMENTS}" # Create matrix from inputs matrix='{"config": []}' @@ -185,41 +186,41 @@ jobs: matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 16.3", "xcode_version": "16.3", "xcode_app": "Xcode_16.3.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + '.config[.config| length] |= . + { "name": "macOS Xcode 16.3", "xcode_version": "16.3", "xcode_app": "Xcode_16.3.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') fi if [[ "$xcode_16_4_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 16.4", "xcode_version": "16.4", "xcode_app": "Xcode_16.4.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + '.config[.config| length] |= . + { "name": "macOS Xcode 16.4", "xcode_version": "16.4", "xcode_app": "Xcode_16.4.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') fi if [[ "$xcode_26_0_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 26.0", "xcode_version": "26.0", "xcode_app": "Xcode_26.0.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + '.config[.config| length] |= . + { "name": "macOS Xcode 26.0", "xcode_version": "26.0", "xcode_app": "Xcode_26.0.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') fi if [[ "$xcode_26_1_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 26.1", "xcode_version": "26.1", "xcode_app": "Xcode_26.1.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + '.config[.config| length] |= . + { "name": "macOS Xcode 26.1", "xcode_version": "26.1", "xcode_app": "Xcode_26.1.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') fi if [[ "$xcode_latest_beta_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode latest beta", "xcode_version": "latest beta", "xcode_app": "Xcode-latest.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') + '.config[.config| length] |= . + { "name": "macOS Xcode latest beta", "xcode_version": "latest beta", "xcode_app": "Xcode-latest.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') fi echo "macos-matrix=$matrix" >> "$GITHUB_OUTPUT" env: MACOS_RUNNER_POOL: ${{ inputs.macos_runner_pool }} - MACOS_SWIFT_ARGUMENTS: ${{ inputs.macos_command_arguments }} + MACOS_COMMAND_ARGUMENTS: ${{ inputs.macos_command_arguments }} MACOS_XCODE_16_3_ENABLED: ${{ inputs.macos_xcode_16_3_enabled }} MACOS_XCODE_16_4_ENABLED: ${{ inputs.macos_xcode_16_4_enabled }} MACOS_XCODE_26_0_ENABLED: ${{ inputs.macos_xcode_26_0_enabled }} @@ -258,6 +259,6 @@ jobs: - name: Run benchmarks run: | swift --version - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash - ${{ inputs.command_arguments }} + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash - " " ${{ inputs.command_arguments }} env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From 74758e24e805aa87cb4c7f103eb1a97424274e51 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Tue, 11 Nov 2025 18:06:34 +0000 Subject: [PATCH 09/39] fixup! add command_arguments --- .github/workflows/benchmarks.yml | 19 ++++++++++++------- .github/workflows/main.yml | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index ddea32cb0d6..086c80b7854 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -100,7 +100,7 @@ on: macos_command_arguments: type: string description: "Additional arguments passed to swift package benchmark. Default to empty." - default: " " + default: "" macos_env_vars: type: string @@ -185,36 +185,41 @@ jobs: if [[ "$xcode_16_3_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ + --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 16.3", "xcode_version": "16.3", "xcode_app": "Xcode_16.3.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') + '.config[.config| length] |= . + { "name": "macOS Xcode 16.3", "xcode_version": "16.3", "xcode_app": "Xcode_16.3.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi if [[ "$xcode_16_4_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ + --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 16.4", "xcode_version": "16.4", "xcode_app": "Xcode_16.4.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') + '.config[.config| length] |= . + { "name": "macOS Xcode 16.4", "xcode_version": "16.4", "xcode_app": "Xcode_16.4.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi if [[ "$xcode_26_0_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ + --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 26.0", "xcode_version": "26.0", "xcode_app": "Xcode_26.0.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') + '.config[.config| length] |= . + { "name": "macOS Xcode 26.0", "xcode_version": "26.0", "xcode_app": "Xcode_26.0.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi if [[ "$xcode_26_1_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ + --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 26.1", "xcode_version": "26.1", "xcode_app": "Xcode_26.1.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') + '.config[.config| length] |= . + { "name": "macOS Xcode 26.1", "xcode_version": "26.1", "xcode_app": "Xcode_26.1.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi if [[ "$xcode_latest_beta_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ + --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode latest beta", "xcode_version": "latest beta", "xcode_app": "Xcode-latest.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": "$command_arguments" }') + '.config[.config| length] |= . + { "name": "macOS Xcode latest beta", "xcode_version": "latest beta", "xcode_app": "Xcode-latest.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi echo "macos-matrix=$matrix" >> "$GITHUB_OUTPUT" @@ -259,6 +264,6 @@ jobs: - name: Run benchmarks run: | swift --version - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash - " " ${{ inputs.command_arguments }} + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s ${{ inputs.command_arguments }} env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f2b96f0c03f..748ffee5b68 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,7 +30,7 @@ jobs: benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/benchmarks.yml@main + uses: ./.github/workflows/benchmarks.yml with: benchmark_package_path: "Benchmarks" From 96814a282733300083b81b7ff32b3359f2008d0e Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Tue, 11 Nov 2025 18:08:29 +0000 Subject: [PATCH 10/39] fixup! add command_arguments --- .github/workflows/benchmarks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 086c80b7854..8d91ea174d6 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -264,6 +264,6 @@ jobs: - name: Run benchmarks run: | swift --version - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s ${{ inputs.command_arguments }} + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s " " ${{ inputs.command_arguments }} env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From c45d18845ba6b3a1c045a919676224a83adc56c0 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Wed, 12 Nov 2025 09:17:18 +0000 Subject: [PATCH 11/39] fixup! add command_arguments --- .github/workflows/benchmarks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 8d91ea174d6..99713a542e6 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -100,7 +100,7 @@ on: macos_command_arguments: type: string description: "Additional arguments passed to swift package benchmark. Default to empty." - default: "" + default: "-Xswiftc -warnings-as-errors" macos_env_vars: type: string @@ -264,6 +264,6 @@ jobs: - name: Run benchmarks run: | swift --version - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s " " ${{ inputs.command_arguments }} + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s -v ${{ inputs.command_arguments }} env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From 1fba5f0518a47ab35c830785c0d2d2bcdc67d4dd Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Wed, 12 Nov 2025 16:55:41 +0000 Subject: [PATCH 12/39] fixup! add command_arguments --- .github/workflows/benchmarks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 99713a542e6..6f70ee2ff33 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -264,6 +264,6 @@ jobs: - name: Run benchmarks run: | swift --version - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s -v ${{ inputs.command_arguments }} + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s -v ${{ matrix.config.command_arguments }} env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From 2ea75f7117b4c9c50dc65b03892aa559e589a899 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Wed, 12 Nov 2025 16:58:51 +0000 Subject: [PATCH 13/39] fixup! add command_arguments --- .github/workflows/benchmarks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 6f70ee2ff33..4415a11f536 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -100,7 +100,7 @@ on: macos_command_arguments: type: string description: "Additional arguments passed to swift package benchmark. Default to empty." - default: "-Xswiftc -warnings-as-errors" + default: " " macos_env_vars: type: string From 2b3e37cda6c3e5b256ccf773908e2d47335d77b4 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Wed, 12 Nov 2025 16:59:52 +0000 Subject: [PATCH 14/39] aaaaaa --- .github/workflows/benchmarks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 4415a11f536..fe7162787ee 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -100,7 +100,7 @@ on: macos_command_arguments: type: string description: "Additional arguments passed to swift package benchmark. Default to empty." - default: " " + default: "\"\"" macos_env_vars: type: string From 8b1855503cd2f1f95413c1ae49985a5f9f3b2bad Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Wed, 12 Nov 2025 17:06:20 +0000 Subject: [PATCH 15/39] fixup! aaaaaa --- .github/workflows/benchmarks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index fe7162787ee..6fc8b2854bd 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -100,7 +100,7 @@ on: macos_command_arguments: type: string description: "Additional arguments passed to swift package benchmark. Default to empty." - default: "\"\"" + default: "\"-Xswiftc -warnings-as-errors\"" macos_env_vars: type: string From af1aaa6929d3818086771ebdf5c1c3b6a40e75bf Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Wed, 12 Nov 2025 17:55:23 +0000 Subject: [PATCH 16/39] this is horrible --- .github/workflows/benchmarks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 6fc8b2854bd..17663c25ac7 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -264,6 +264,6 @@ jobs: - name: Run benchmarks run: | swift --version - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s -v ${{ matrix.config.command_arguments }} + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s -v "\"-Xswiftc -warnings-as-errors\"" env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From 2ac8a696fb32332a8747382f7b0e93ac71f7ad73 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Wed, 12 Nov 2025 18:00:37 +0000 Subject: [PATCH 17/39] run benchmark directly --- .github/workflows/benchmarks.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 17663c25ac7..a5ebdbfb781 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -264,6 +264,15 @@ jobs: - name: Run benchmarks run: | swift --version - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION=xcode_${{ matrix.config.xcode_version }} bash -s -v "\"-Xswiftc -warnings-as-errors\"" + # curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION="xcode_${{ matrix.config.xcode_version }}" bash -s -v ${{ matrix.config.command_arguments }} + swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/xcode_${{ matrix.config.xcode_version }}/" + rc="$?" + + if [[ "$rc" != 0 ]]; then + log "Recalculating thresholds..." + swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/xcode_${{ matrix.config.xcode_version }}/" + echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped + git diff --exit-code HEAD + fi env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From 3630ed4fe383978913540107b6d9784b4d617848 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Wed, 12 Nov 2025 18:03:50 +0000 Subject: [PATCH 18/39] BENCHMARK_DISABLE_JEMALLOC=true --- .github/workflows/benchmarks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index a5ebdbfb781..984809d267b 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -265,12 +265,12 @@ jobs: run: | swift --version # curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION="xcode_${{ matrix.config.xcode_version }}" bash -s -v ${{ matrix.config.command_arguments }} - swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/xcode_${{ matrix.config.xcode_version }}/" + BENCHMARK_DISABLE_JEMALLOC=true swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/xcode_${{ matrix.config.xcode_version }}/" rc="$?" if [[ "$rc" != 0 ]]; then log "Recalculating thresholds..." - swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/xcode_${{ matrix.config.xcode_version }}/" + BENCHMARK_DISABLE_JEMALLOC=true swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/xcode_${{ matrix.config.xcode_version }}/" echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped git diff --exit-code HEAD fi From 96d685caf558611997dcb9e7f4364e219d765762 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 09:55:22 +0000 Subject: [PATCH 19/39] Xcode thresholds --- .github/workflows/benchmarks.yml | 6 +++--- .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 +++ .../Xcode_16.3/NIOPosixBenchmarks.TCPEcho.p90.json | 3 +++ .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 +++ .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 +++ .../Xcode_16.4/NIOPosixBenchmarks.TCPEcho.p90.json | 3 +++ .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 +++ .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 +++ .../Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json | 3 +++ .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 +++ .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 +++ .../Xcode_26.1/NIOPosixBenchmarks.TCPEcho.p90.json | 3 +++ .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 +++ 13 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 Benchmarks/Thresholds/Xcode_16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEcho.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEcho.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEcho.p90.json create mode 100644 Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 984809d267b..00716bab61c 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -264,13 +264,13 @@ jobs: - name: Run benchmarks run: | swift --version - # curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION="xcode_${{ matrix.config.xcode_version }}" bash -s -v ${{ matrix.config.command_arguments }} - BENCHMARK_DISABLE_JEMALLOC=true swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/xcode_${{ matrix.config.xcode_version }}/" + # curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION="Xcode_${{ matrix.config.xcode_version }}" bash -s -v ${{ matrix.config.command_arguments }} + BENCHMARK_DISABLE_JEMALLOC=true swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode_${{ matrix.config.xcode_version }}/" rc="$?" if [[ "$rc" != 0 ]]; then log "Recalculating thresholds..." - BENCHMARK_DISABLE_JEMALLOC=true swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/xcode_${{ matrix.config.xcode_version }}/" + BENCHMARK_DISABLE_JEMALLOC=true swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode_${{ matrix.config.xcode_version }}/" echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped git diff --exit-code HEAD fi diff --git a/Benchmarks/Thresholds/Xcode_16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode_16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json new file mode 100644 index 00000000000..ec2d0ad0f87 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 8000 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEcho.p90.json new file mode 100644 index 00000000000..c6a93680d0a --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEcho.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 108 +} diff --git a/Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json new file mode 100644 index 00000000000..390ed2415a7 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 164376 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode_16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode_16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json new file mode 100644 index 00000000000..ec2d0ad0f87 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 8000 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEcho.p90.json new file mode 100644 index 00000000000..c6a93680d0a --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEcho.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 108 +} diff --git a/Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json new file mode 100644 index 00000000000..390ed2415a7 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 164376 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode_26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode_26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json new file mode 100644 index 00000000000..ec2d0ad0f87 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 8000 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json new file mode 100644 index 00000000000..b54e4cd69d7 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 608 +} diff --git a/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json new file mode 100644 index 00000000000..f0d21b99ae9 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 82530 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode_26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode_26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json new file mode 100644 index 00000000000..ec2d0ad0f87 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 8000 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEcho.p90.json new file mode 100644 index 00000000000..b54e4cd69d7 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEcho.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 608 +} diff --git a/Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json new file mode 100644 index 00000000000..f0d21b99ae9 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 82530 +} \ No newline at end of file From a545e5619062369c93e0112d46f8a861c50de90f Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 11:49:41 +0000 Subject: [PATCH 20/39] use general pool --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6f64dc78011..fe9f980173c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -34,6 +34,7 @@ jobs: uses: ./.github/workflows/benchmarks.yml with: benchmark_package_path: "Benchmarks" + runner_pool: general cxx-interop: name: Cxx interop From d3d3e5c69cb3b1b83cbd706f35cc48d3d5dedb7d Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 11:50:49 +0000 Subject: [PATCH 21/39] fixup! use general pool --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index fe9f980173c..6947e40c74e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -34,7 +34,7 @@ jobs: uses: ./.github/workflows/benchmarks.yml with: benchmark_package_path: "Benchmarks" - runner_pool: general + macos_runner_pool: general cxx-interop: name: Cxx interop From 94223af14b6125422641829dff6179e1459cbb31 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 13:03:26 +0000 Subject: [PATCH 22/39] try with jemalloc --- .github/workflows/benchmarks.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 00716bab61c..f85ffe9baf2 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -255,6 +255,9 @@ jobs: with: persist-credentials: false submodules: true + - name: Install jemalloc + run: | + brew install jemalloc - name: Export environment variables if: ${{ matrix.config.env != '' && matrix.config.env != '{}'}} run: | @@ -264,13 +267,13 @@ jobs: - name: Run benchmarks run: | swift --version - # curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} SWIFT_VERSION="Xcode_${{ matrix.config.xcode_version }}" bash -s -v ${{ matrix.config.command_arguments }} - BENCHMARK_DISABLE_JEMALLOC=true swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode_${{ matrix.config.xcode_version }}/" + swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode_${{ matrix.config.xcode_version }}/" rc="$?" + echo "rc = $rc" - if [[ "$rc" != 0 ]]; then + if [[ "$rc" != 0 ]]; then log "Recalculating thresholds..." - BENCHMARK_DISABLE_JEMALLOC=true swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode_${{ matrix.config.xcode_version }}/" + swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode_${{ matrix.config.xcode_version }}/" echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped git diff --exit-code HEAD fi From 356f95fd32b0bbbdd346dcebc93e88d1b807872b Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 13:09:52 +0000 Subject: [PATCH 23/39] break a threshold --- .../Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json index b54e4cd69d7..48a777fc5d6 100644 --- a/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 608 + "mallocCountTotal" : 1 } From 829837a1ea3217e905b39fd8d8ae2c2f4fe4eccf Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 13:11:48 +0000 Subject: [PATCH 24/39] rename Xcode thresholds folders --- .github/workflows/benchmarks.yml | 4 ++-- .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 0 .../NIOPosixBenchmarks.TCPEcho.p90.json | 0 .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 0 .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 0 .../NIOPosixBenchmarks.TCPEcho.p90.json | 0 .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 0 .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 0 .../NIOPosixBenchmarks.TCPEcho.p90.json | 0 .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 0 .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 0 .../NIOPosixBenchmarks.TCPEcho.p90.json | 0 .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 0 .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 +++ .../Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json | 3 +++ .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 +++ 16 files changed, 11 insertions(+), 2 deletions(-) rename Benchmarks/Thresholds/{Xcode_16.3 => Xcode 16.3}/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_16.3 => Xcode 16.3}/NIOPosixBenchmarks.TCPEcho.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_16.3 => Xcode 16.3}/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_16.4 => Xcode 16.4}/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_16.4 => Xcode 16.4}/NIOPosixBenchmarks.TCPEcho.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_16.4 => Xcode 16.4}/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_26.0 => Xcode 26.0}/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_26.0 => Xcode 26.0}/NIOPosixBenchmarks.TCPEcho.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_26.0 => Xcode 26.0}/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_26.1 => Xcode 26.1}/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_26.1 => Xcode 26.1}/NIOPosixBenchmarks.TCPEcho.p90.json (100%) rename Benchmarks/Thresholds/{Xcode_26.1 => Xcode 26.1}/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json (100%) create mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json create mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json create mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index f85ffe9baf2..59d54b9cf2b 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -267,13 +267,13 @@ jobs: - name: Run benchmarks run: | swift --version - swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode_${{ matrix.config.xcode_version }}/" + swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" rc="$?" echo "rc = $rc" if [[ "$rc" != 0 ]]; then log "Recalculating thresholds..." - swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode_${{ matrix.config.xcode_version }}/" + swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped git diff --exit-code HEAD fi diff --git a/Benchmarks/Thresholds/Xcode_16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json rename to Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json diff --git a/Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEcho.p90.json rename to Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json diff --git a/Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json rename to Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json diff --git a/Benchmarks/Thresholds/Xcode_16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json rename to Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json diff --git a/Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEcho.p90.json rename to Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json diff --git a/Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json rename to Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json diff --git a/Benchmarks/Thresholds/Xcode_26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json rename to Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json diff --git a/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEcho.p90.json rename to Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json diff --git a/Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json rename to Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json diff --git a/Benchmarks/Thresholds/Xcode_26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json rename to Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json diff --git a/Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEcho.p90.json rename to Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json diff --git a/Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json similarity index 100% rename from Benchmarks/Thresholds/Xcode_26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json rename to Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json new file mode 100644 index 00000000000..ec2d0ad0f87 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 8000 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json new file mode 100644 index 00000000000..b54e4cd69d7 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 608 +} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json new file mode 100644 index 00000000000..f0d21b99ae9 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 82530 +} \ No newline at end of file From 1789f787efd7805487441b2b5228b46146dc5591 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 13:15:53 +0000 Subject: [PATCH 25/39] unified job name format --- .github/workflows/benchmarks.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 59d54b9cf2b..205bd6ce830 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -187,7 +187,7 @@ jobs: --arg runner_pool "$runner_pool" \ --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 16.3", "xcode_version": "16.3", "xcode_app": "Xcode_16.3.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode 16.3)", "xcode_version": "16.3", "xcode_app": "Xcode_16.3.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi if [[ "$xcode_16_4_enabled" == "true" ]]; then @@ -195,7 +195,7 @@ jobs: --arg runner_pool "$runner_pool" \ --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 16.4", "xcode_version": "16.4", "xcode_app": "Xcode_16.4.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode 16.4)", "xcode_version": "16.4", "xcode_app": "Xcode_16.4.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi if [[ "$xcode_26_0_enabled" == "true" ]]; then @@ -203,7 +203,7 @@ jobs: --arg runner_pool "$runner_pool" \ --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 26.0", "xcode_version": "26.0", "xcode_app": "Xcode_26.0.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode 26.0)", "xcode_version": "26.0", "xcode_app": "Xcode_26.0.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi if [[ "$xcode_26_1_enabled" == "true" ]]; then @@ -211,7 +211,7 @@ jobs: --arg runner_pool "$runner_pool" \ --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode 26.1", "xcode_version": "26.1", "xcode_app": "Xcode_26.1.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode 26.1)", "xcode_version": "26.1", "xcode_app": "Xcode_26.1.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi if [[ "$xcode_latest_beta_enabled" == "true" ]]; then @@ -219,7 +219,7 @@ jobs: --arg runner_pool "$runner_pool" \ --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS Xcode latest beta", "xcode_version": "latest beta", "xcode_app": "Xcode-latest.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode latest beta)", "xcode_version": "latest beta", "xcode_app": "Xcode-latest.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') fi echo "macos-matrix=$matrix" >> "$GITHUB_OUTPUT" From c26818a94b892a5a85666f925d1a08fda84a8e9b Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 13:16:53 +0000 Subject: [PATCH 26/39] TCPEcho is failing --- .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 4 ++-- .../Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json index ec2d0ad0f87..48a777fc5d6 100644 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 8000 -} \ No newline at end of file + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json index 48a777fc5d6..b54e4cd69d7 100644 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 1 + "mallocCountTotal" : 608 } From 89b9086ecce95d654886eb893874c7d4c36cdc60 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 13:42:00 +0000 Subject: [PATCH 27/39] recalculate thresholds on failure --- .github/workflows/benchmarks.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 205bd6ce830..340ea8b48d1 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -268,14 +268,13 @@ jobs: run: | swift --version swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" - rc="$?" - echo "rc = $rc" - - if [[ "$rc" != 0 ]]; then - log "Recalculating thresholds..." - swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" - echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped - git diff --exit-code HEAD - fi + env: + DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" + - name: Recalculate thresholds + if: failure() + run: | + swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" + echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped + git diff --exit-code HEAD env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" From 5b58626ce5c2c47294bd1b78ca3012f5a4de7496 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 13:50:56 +0000 Subject: [PATCH 28/39] fixup! recalculate thresholds on failure --- scripts/check_benchmark_thresholds.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check_benchmark_thresholds.sh b/scripts/check_benchmark_thresholds.sh index 5fb57360598..777e831b50a 100755 --- a/scripts/check_benchmark_thresholds.sh +++ b/scripts/check_benchmark_thresholds.sh @@ -41,6 +41,6 @@ fi log "Recalculating thresholds..." -swift package --package-path "$benchmark_package_path" "${swift_package_arguments[@]}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${benchmark_package_path}/Thresholds/${swift_version}/" +swift package --package-path "$benchmark_package_path" "${swift_package_arguments[@]}" --allow-writing-to-package-directory benchmark thresholds update --format metricP90AbsoluteThresholds --path "${benchmark_package_path}/Thresholds/${swift_version}/" echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped git diff --exit-code HEAD From 127c8f8f903d22bb2d650213f32324cd125197e4 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 14:01:33 +0000 Subject: [PATCH 29/39] fixup! recalculate thresholds on failure --- .github/workflows/benchmarks.yml | 2 +- scripts/check_benchmark_thresholds.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 340ea8b48d1..a86dd853137 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -273,7 +273,7 @@ jobs: - name: Recalculate thresholds if: failure() run: | - swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" + swift package --package-path "${{ inputs.benchmark_package_path }}" --allow-writing-to-package-directory benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped git diff --exit-code HEAD env: diff --git a/scripts/check_benchmark_thresholds.sh b/scripts/check_benchmark_thresholds.sh index 777e831b50a..5fb57360598 100755 --- a/scripts/check_benchmark_thresholds.sh +++ b/scripts/check_benchmark_thresholds.sh @@ -41,6 +41,6 @@ fi log "Recalculating thresholds..." -swift package --package-path "$benchmark_package_path" "${swift_package_arguments[@]}" --allow-writing-to-package-directory benchmark thresholds update --format metricP90AbsoluteThresholds --path "${benchmark_package_path}/Thresholds/${swift_version}/" +swift package --package-path "$benchmark_package_path" "${swift_package_arguments[@]}" benchmark thresholds update --format metricP90AbsoluteThresholds --path "${benchmark_package_path}/Thresholds/${swift_version}/" echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped git diff --exit-code HEAD From 8b544bdba9e9d03f81cd7f510a88237b99d51caa Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 14:44:21 +0000 Subject: [PATCH 30/39] fixup! TCPEcho is failing --- .github/workflows/benchmarks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index a86dd853137..49b048d183c 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -267,13 +267,13 @@ jobs: - name: Run benchmarks run: | swift --version - swift package --package-path "${{ inputs.benchmark_package_path }}" benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" + swift package --package-path "${{ inputs.benchmark_package_path }}" --disable-sandbox benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" - name: Recalculate thresholds if: failure() run: | - swift package --package-path "${{ inputs.benchmark_package_path }}" --allow-writing-to-package-directory benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" + swift package --package-path "${{ inputs.benchmark_package_path }}" --disable-sandbox --allow-writing-to-package-directory benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped git diff --exit-code HEAD env: From ebd8fdafb9c118ade1fd514d46263b1537e1b6d7 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 15:16:41 +0000 Subject: [PATCH 31/39] updated thresholds --- .../Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ++++ ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 +++ ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ++++ .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 +++ .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 +++ .../Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 4 ++-- .../Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ++++ ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 +++ ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ++++ .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 +++ .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 +++ .../Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 4 ++-- .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 4 ++-- .../Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ++++ ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 +++ ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ++++ .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 +++ .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 +++ .../Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 4 ++-- .../Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ++++ ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 +++ ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ++++ .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 +++ .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 +++ .../Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 4 ++-- .../NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ++++ ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 +++ ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ++++ .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 +++ .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 +++ .../Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 4 ++-- .../Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 +++ .../Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ++++ ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 +++ ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ++++ .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 +++ .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 +++ .../Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json | 3 +++ .../Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 +++ 44 files changed, 128 insertions(+), 17 deletions(-) create mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.WaitOnPromise.p90.json create mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json create mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json create mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json create mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json create mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json create mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json create mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json create mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json create mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json new file mode 100644 index 00000000000..e3098976fb1 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json @@ -0,0 +1,4 @@ +{ + "mallocCountTotal" : 6000, + "memoryLeaked" : 0 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json new file mode 100644 index 00000000000..92e81dac30e --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json @@ -0,0 +1,4 @@ +{ + "contextSwitches" : 2000, + "mallocCountTotal" : 1000 +} diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json new file mode 100644 index 00000000000..4419b735225 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 4000001 +} diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json index c6a93680d0a..a87c4606d8b 100644 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 108 + "mallocCountTotal" : 344 } diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index 390ed2415a7..d8a155bfb12 100644 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 164376 -} \ No newline at end of file + "mallocCountTotal" : 97516 +} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json new file mode 100644 index 00000000000..e3098976fb1 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json @@ -0,0 +1,4 @@ +{ + "mallocCountTotal" : 6000, + "memoryLeaked" : 0 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json new file mode 100644 index 00000000000..92e81dac30e --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json @@ -0,0 +1,4 @@ +{ + "contextSwitches" : 2000, + "mallocCountTotal" : 1000 +} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json new file mode 100644 index 00000000000..4419b735225 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 4000001 +} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json index c6a93680d0a..a87c4606d8b 100644 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 108 + "mallocCountTotal" : 344 } diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index 390ed2415a7..d8a155bfb12 100644 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 164376 -} \ No newline at end of file + "mallocCountTotal" : 97516 +} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json index 48a777fc5d6..ec2d0ad0f87 100644 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 1 -} + "mallocCountTotal" : 8000 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json new file mode 100644 index 00000000000..e3098976fb1 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json @@ -0,0 +1,4 @@ +{ + "mallocCountTotal" : 6000, + "memoryLeaked" : 0 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json new file mode 100644 index 00000000000..92e81dac30e --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json @@ -0,0 +1,4 @@ +{ + "contextSwitches" : 2000, + "mallocCountTotal" : 1000 +} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json new file mode 100644 index 00000000000..4419b735225 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 4000001 +} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json index b54e4cd69d7..a87c4606d8b 100644 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 608 + "mallocCountTotal" : 344 } diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index f0d21b99ae9..d8a155bfb12 100644 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 82530 -} \ No newline at end of file + "mallocCountTotal" : 97516 +} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json new file mode 100644 index 00000000000..e3098976fb1 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json @@ -0,0 +1,4 @@ +{ + "mallocCountTotal" : 6000, + "memoryLeaked" : 0 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json new file mode 100644 index 00000000000..92e81dac30e --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json @@ -0,0 +1,4 @@ +{ + "contextSwitches" : 2000, + "mallocCountTotal" : 1000 +} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json new file mode 100644 index 00000000000..4419b735225 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 4000001 +} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json index b54e4cd69d7..a87c4606d8b 100644 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 608 + "mallocCountTotal" : 344 } diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index f0d21b99ae9..d8a155bfb12 100644 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 82530 -} \ No newline at end of file + "mallocCountTotal" : 97516 +} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.WaitOnPromise.p90.json new file mode 100644 index 00000000000..e3098976fb1 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.WaitOnPromise.p90.json @@ -0,0 +1,4 @@ +{ + "mallocCountTotal" : 6000, + "memoryLeaked" : 0 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json new file mode 100644 index 00000000000..92e81dac30e --- /dev/null +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json @@ -0,0 +1,4 @@ +{ + "contextSwitches" : 2000, + "mallocCountTotal" : 1000 +} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json new file mode 100644 index 00000000000..4419b735225 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 4000001 +} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json index b54e4cd69d7..a87c4606d8b 100644 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 608 + "mallocCountTotal" : 344 } diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index f0d21b99ae9..d8a155bfb12 100644 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 82530 -} \ No newline at end of file + "mallocCountTotal" : 97516 +} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json new file mode 100644 index 00000000000..ec2d0ad0f87 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 8000 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json new file mode 100644 index 00000000000..e3098976fb1 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json @@ -0,0 +1,4 @@ +{ + "mallocCountTotal" : 6000, + "memoryLeaked" : 0 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json new file mode 100644 index 00000000000..92e81dac30e --- /dev/null +++ b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json @@ -0,0 +1,4 @@ +{ + "contextSwitches" : 2000, + "mallocCountTotal" : 1000 +} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json new file mode 100644 index 00000000000..48a777fc5d6 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 1 +} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json new file mode 100644 index 00000000000..4419b735225 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 4000001 +} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json new file mode 100644 index 00000000000..a87c4606d8b --- /dev/null +++ b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 344 +} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json new file mode 100644 index 00000000000..d8a155bfb12 --- /dev/null +++ b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 97516 +} From d6130bd56ad3c097d0fdadc384e3047e0d4c543a Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Thu, 13 Nov 2025 15:29:45 +0000 Subject: [PATCH 32/39] =?UTF-8?q?let=E2=80=99s=20see=20if=20this=20is=20re?= =?UTF-8?q?producible?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 2 +- .../Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 2 +- .../Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 2 +- .../Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 2 +- .../Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json | 2 +- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json index a87c4606d8b..d126a0e457d 100644 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 344 + "mallocCountTotal" : 1284 } diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index d8a155bfb12..6d942e381b4 100644 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 97516 + "mallocCountTotal" : 179766 } diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json index a87c4606d8b..b2f6b879321 100644 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 344 + "mallocCountTotal" : 1516 } diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index d8a155bfb12..e665204454b 100644 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 97516 + "mallocCountTotal" : 180170 } diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json index a87c4606d8b..e2915b6af49 100644 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 344 + "mallocCountTotal" : 1104 } diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index d8a155bfb12..ca2a327cfc2 100644 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 97516 + "mallocCountTotal" : 179957 } diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json index a87c4606d8b..44c7ed66dd5 100644 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 344 + "mallocCountTotal" : 987 } diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index d8a155bfb12..098c1e541ac 100644 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 97516 + "mallocCountTotal" : 180414 } diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json index a87c4606d8b..cb121324883 100644 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 344 + "mallocCountTotal" : 708 } diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json index d8a155bfb12..d0ae8a7e754 100644 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -1,3 +1,3 @@ { - "mallocCountTotal" : 97516 + "mallocCountTotal" : 183235 } From 1cb7987845320aa8a93e2d6723217bfa8aba5ca9 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Mon, 17 Nov 2025 13:33:57 +0000 Subject: [PATCH 33/39] remove swift-nio thresholds --- .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 --- .../Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ---- ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 --- ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ---- .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 --- .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 --- .../Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json | 3 --- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 --- .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 --- .../Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ---- ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 --- ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ---- .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 --- .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 --- .../Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json | 3 --- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 --- .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 --- .../Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ---- ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 --- ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ---- .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 --- .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 --- .../Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json | 3 --- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 --- .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 --- .../Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ---- ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 --- ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ---- .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 --- .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 --- .../Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json | 3 --- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 --- .../NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 --- .../NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ---- ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 --- ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ---- .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 --- .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 --- .../Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json | 3 --- .../NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 --- .../Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json | 3 --- .../Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json | 4 ---- ....Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json | 3 --- ..._EL_and_back_using_execute_and_unsafecontinuation.p90.json | 4 ---- .../NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json | 3 --- .../NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json | 3 --- .../Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json | 3 --- .../Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json | 3 --- 48 files changed, 156 deletions(-) delete mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.WaitOnPromise.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json delete mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json delete mode 100644 Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json deleted file mode 100644 index ec2d0ad0f87..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 8000 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json deleted file mode 100644 index e3098976fb1..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOCoreBenchmarks.WaitOnPromise.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "mallocCountTotal" : 6000, - "memoryLeaked" : 0 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json deleted file mode 100644 index 92e81dac30e..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "contextSwitches" : 2000, - "mallocCountTotal" : 1000 -} diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json deleted file mode 100644 index 4419b735225..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 4000001 -} diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json deleted file mode 100644 index d126a0e457d..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEcho.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1284 -} diff --git a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json deleted file mode 100644 index 6d942e381b4..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.3/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 179766 -} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json deleted file mode 100644 index ec2d0ad0f87..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 8000 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json deleted file mode 100644 index e3098976fb1..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOCoreBenchmarks.WaitOnPromise.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "mallocCountTotal" : 6000, - "memoryLeaked" : 0 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json deleted file mode 100644 index 92e81dac30e..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "contextSwitches" : 2000, - "mallocCountTotal" : 1000 -} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json deleted file mode 100644 index 4419b735225..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 4000001 -} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json deleted file mode 100644 index b2f6b879321..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEcho.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1516 -} diff --git a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json deleted file mode 100644 index e665204454b..00000000000 --- a/Benchmarks/Thresholds/Xcode 16.4/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 180170 -} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json deleted file mode 100644 index ec2d0ad0f87..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 8000 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json deleted file mode 100644 index e3098976fb1..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOCoreBenchmarks.WaitOnPromise.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "mallocCountTotal" : 6000, - "memoryLeaked" : 0 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json deleted file mode 100644 index 92e81dac30e..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "contextSwitches" : 2000, - "mallocCountTotal" : 1000 -} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json deleted file mode 100644 index 4419b735225..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 4000001 -} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json deleted file mode 100644 index e2915b6af49..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEcho.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1104 -} diff --git a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json deleted file mode 100644 index ca2a327cfc2..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.0/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 179957 -} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json deleted file mode 100644 index ec2d0ad0f87..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 8000 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json deleted file mode 100644 index e3098976fb1..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOCoreBenchmarks.WaitOnPromise.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "mallocCountTotal" : 6000, - "memoryLeaked" : 0 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json deleted file mode 100644 index 92e81dac30e..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "contextSwitches" : 2000, - "mallocCountTotal" : 1000 -} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json deleted file mode 100644 index 4419b735225..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 4000001 -} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json deleted file mode 100644 index 44c7ed66dd5..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEcho.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 987 -} diff --git a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json deleted file mode 100644 index 098c1e541ac..00000000000 --- a/Benchmarks/Thresholds/Xcode 26.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 180414 -} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json deleted file mode 100644 index ec2d0ad0f87..00000000000 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 8000 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.WaitOnPromise.p90.json deleted file mode 100644 index e3098976fb1..00000000000 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOCoreBenchmarks.WaitOnPromise.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "mallocCountTotal" : 6000, - "memoryLeaked" : 0 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json deleted file mode 100644 index 92e81dac30e..00000000000 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "contextSwitches" : 2000, - "mallocCountTotal" : 1000 -} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json deleted file mode 100644 index 4419b735225..00000000000 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 4000001 -} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json deleted file mode 100644 index cb121324883..00000000000 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEcho.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 708 -} diff --git a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json deleted file mode 100644 index d0ae8a7e754..00000000000 --- a/Benchmarks/Thresholds/Xcode latest beta/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 183235 -} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json deleted file mode 100644 index ec2d0ad0f87..00000000000 --- a/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 8000 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json deleted file mode 100644 index e3098976fb1..00000000000 --- a/Benchmarks/Thresholds/Xcode-dev/NIOCoreBenchmarks.WaitOnPromise.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "mallocCountTotal" : 6000, - "memoryLeaked" : 0 -} \ No newline at end of file diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_actor_with_EL_executor.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json deleted file mode 100644 index 92e81dac30e..00000000000 --- a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.Jump_to_EL_and_back_using_execute_and_unsafecontinuation.p90.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "contextSwitches" : 2000, - "mallocCountTotal" : 1000 -} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json deleted file mode 100644 index 48a777fc5d6..00000000000 --- a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleCallback(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 1 -} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json deleted file mode 100644 index 4419b735225..00000000000 --- a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.MTELG.scheduleTask(in:_:).p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 4000001 -} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json deleted file mode 100644 index a87c4606d8b..00000000000 --- a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEcho.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 344 -} diff --git a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json deleted file mode 100644 index d8a155bfb12..00000000000 --- a/Benchmarks/Thresholds/Xcode-dev/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mallocCountTotal" : 97516 -} From a37d8069c92186ccc90fadcbf0c561f6bcb4bb27 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Mon, 17 Nov 2025 13:34:17 +0000 Subject: [PATCH 34/39] do not run benchmarks by default --- .github/workflows/benchmarks.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 49b048d183c..3e4fcbdd189 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -74,23 +74,23 @@ on: macos_xcode_16_3_enabled: type: boolean description: "Boolean to enable the macOS Xcode 16.3 benchmark job. Defaults to true." - default: true + default: false macos_xcode_16_4_enabled: type: boolean description: "Boolean to enable the macOS Xcode 16.4 benchmark job. Defaults to true." - default: true + default: false macos_xcode_26_0_enabled: type: boolean description: "Boolean to enable the macOS Xcode 26.0 benchmark job. Defaults to true." - default: true + default: false macos_xcode_26_1_enabled: type: boolean description: "Boolean to enable the macOS Xcode 26.1 benchmark job. Defaults to true." - default: true + default: false macos_xcode_latest_beta_enabled: type: boolean description: "Boolean to enable the macOS Xcode latest beta benchmark job. Defaults to true." - default: true + default: false macos_runner_pool: type: string From d0a6399f672a80486c931496cebcff05d7dfe18f Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Mon, 17 Nov 2025 13:49:18 +0000 Subject: [PATCH 35/39] check if opt-in works --- .github/workflows/benchmarks.yml | 39 ++++++++++++++++++------------ .github/workflows/main.yml | 1 + .github/workflows/pull_request.yml | 1 + 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 3e4fcbdd189..187f1da4b4e 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -73,23 +73,23 @@ on: macos_xcode_16_3_enabled: type: boolean - description: "Boolean to enable the macOS Xcode 16.3 benchmark job. Defaults to true." + description: "Boolean to enable the macOS Xcode 16.3 benchmark job. Defaults to false." default: false macos_xcode_16_4_enabled: type: boolean - description: "Boolean to enable the macOS Xcode 16.4 benchmark job. Defaults to true." + description: "Boolean to enable the macOS Xcode 16.4 benchmark job. Defaults to false." default: false macos_xcode_26_0_enabled: type: boolean - description: "Boolean to enable the macOS Xcode 26.0 benchmark job. Defaults to true." + description: "Boolean to enable the macOS Xcode 26.0 benchmark job. Defaults to false." default: false macos_xcode_26_1_enabled: type: boolean - description: "Boolean to enable the macOS Xcode 26.1 benchmark job. Defaults to true." + description: "Boolean to enable the macOS Xcode 26.1 benchmark job. Defaults to false." default: false macos_xcode_latest_beta_enabled: type: boolean - description: "Boolean to enable the macOS Xcode latest beta benchmark job. Defaults to true." + description: "Boolean to enable the macOS Xcode latest beta benchmark job. Defaults to false." default: false macos_runner_pool: @@ -264,17 +264,24 @@ jobs: echo "Exporting environment variables from matrix configuration..." echo '${{ toJSON(matrix.config.env) }}' | jq -r 'to_entries[] | "\(.key)=\(.value)"' >> $GITHUB_ENV echo '${{ toJSON(matrix.config.env) }}' | jq -r 'to_entries[] | "exporting \(.key)=\(.value)"' - - name: Run benchmarks + - name: Run benchmarks script run: | - swift --version - swift package --package-path "${{ inputs.benchmark_package_path }}" --disable-sandbox benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" - env: - DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" - - name: Recalculate thresholds - if: failure() - run: | - swift package --package-path "${{ inputs.benchmark_package_path }}" --disable-sandbox --allow-writing-to-package-directory benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" - echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped - git diff --exit-code HEAD + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} bash -s -- --disable-sandbox --allow-writing-to-package-directory env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" + SWIFT_VERSION: "Xcode ${{ matrix.config.xcode_version }}" + + # - name: Run benchmarks + # run: | + # swift --version + # swift package --package-path "${{ inputs.benchmark_package_path }}" --disable-sandbox benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" + # env: + # DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" + # - name: Recalculate thresholds + # if: failure() + # run: | + # swift package --package-path "${{ inputs.benchmark_package_path }}" --disable-sandbox --allow-writing-to-package-directory benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" + # echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped + # git diff --exit-code HEAD + # env: + # DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 748ffee5b68..a5773559408 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,6 +33,7 @@ jobs: uses: ./.github/workflows/benchmarks.yml with: benchmark_package_path: "Benchmarks" + macos_runner_pool: nightly construct-integration-test-matrix: name: Construct integration test matrix diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6947e40c74e..75c7acf95d0 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -35,6 +35,7 @@ jobs: with: benchmark_package_path: "Benchmarks" macos_runner_pool: general + macos_xcode_26_1_enabled: true cxx-interop: name: Cxx interop From 5d79b6be00f9254cc4923f2ac6cd5340c97b6bf0 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Mon, 17 Nov 2025 13:56:56 +0000 Subject: [PATCH 36/39] fixup! do not run benchmarks by default --- .github/workflows/benchmarks.yml | 15 --------------- .github/workflows/pull_request.yml | 1 - 2 files changed, 16 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 187f1da4b4e..c8ff0c16f56 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -270,18 +270,3 @@ jobs: env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" SWIFT_VERSION: "Xcode ${{ matrix.config.xcode_version }}" - - # - name: Run benchmarks - # run: | - # swift --version - # swift package --package-path "${{ inputs.benchmark_package_path }}" --disable-sandbox benchmark thresholds check --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" - # env: - # DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" - # - name: Recalculate thresholds - # if: failure() - # run: | - # swift package --package-path "${{ inputs.benchmark_package_path }}" --disable-sandbox --allow-writing-to-package-directory benchmark thresholds update --format metricP90AbsoluteThresholds --path "${{ inputs.benchmark_package_path }}/Thresholds/Xcode ${{ matrix.config.xcode_version }}/" - # echo "=== BEGIN DIFF ===" # use echo, not log for clean output to be scraped - # git diff --exit-code HEAD - # env: - # DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 75c7acf95d0..6947e40c74e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -35,7 +35,6 @@ jobs: with: benchmark_package_path: "Benchmarks" macos_runner_pool: general - macos_xcode_26_1_enabled: true cxx-interop: name: Cxx interop From f5ac86763c9b7f2611ff35a5146e8d22d514e7a7 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Mon, 17 Nov 2025 13:57:28 +0000 Subject: [PATCH 37/39] revert back to the absolute url --- .github/workflows/main.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a5773559408..d5cb3441086 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,7 +30,7 @@ jobs: benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: ./.github/workflows/benchmarks.yml + uses: apple/swift-nio/.github/workflows/benchmarks.yml@main with: benchmark_package_path: "Benchmarks" macos_runner_pool: nightly diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6947e40c74e..9ce4dd7cc59 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -31,7 +31,7 @@ jobs: benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: ./.github/workflows/benchmarks.yml + uses: apple/swift-nio/.github/workflows/benchmarks.yml@main with: benchmark_package_path: "Benchmarks" macos_runner_pool: general From fbbe95c201e230083ff28c6027f800d4c175e2aa Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Mon, 17 Nov 2025 14:02:44 +0000 Subject: [PATCH 38/39] macos_runner_pool has a default value --- .github/workflows/main.yml | 1 - .github/workflows/pull_request.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d5cb3441086..f2b96f0c03f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,7 +33,6 @@ jobs: uses: apple/swift-nio/.github/workflows/benchmarks.yml@main with: benchmark_package_path: "Benchmarks" - macos_runner_pool: nightly construct-integration-test-matrix: name: Construct integration test matrix diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 9ce4dd7cc59..83dafb3a607 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -34,7 +34,6 @@ jobs: uses: apple/swift-nio/.github/workflows/benchmarks.yml@main with: benchmark_package_path: "Benchmarks" - macos_runner_pool: general cxx-interop: name: Cxx interop From 65d47494ad82ff5e29239b5c4ca2c9f405264ab2 Mon Sep 17 00:00:00 2001 From: Vladimir Kukushkin Date: Mon, 17 Nov 2025 17:05:13 +0000 Subject: [PATCH 39/39] remove macos_command_arguments --- .github/workflows/benchmarks.yml | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index c8ff0c16f56..3090e9746fa 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -97,11 +97,6 @@ on: description: "The runner pool which will be requested for macOS jobs." default: "nightly" - macos_command_arguments: - type: string - description: "Additional arguments passed to swift package benchmark. Default to empty." - default: "\"-Xswiftc -warnings-as-errors\"" - macos_env_vars: type: string description: "Environment variables for macOS jobs as JSON (e.g., '{\"DEBUG\":\"1\",\"LOG_LEVEL\":\"info\"}')." @@ -177,7 +172,6 @@ jobs: xcode_26_0_enabled="${MACOS_XCODE_26_0_ENABLED}" xcode_26_1_enabled="${MACOS_XCODE_26_1_ENABLED}" xcode_latest_beta_enabled="${MACOS_XCODE_LATEST_BETA_ENABLED}" - command_arguments="${MACOS_COMMAND_ARGUMENTS}" # Create matrix from inputs matrix='{"config": []}' @@ -185,47 +179,41 @@ jobs: if [[ "$xcode_16_3_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ - --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS (Xcode 16.3)", "xcode_version": "16.3", "xcode_app": "Xcode_16.3.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode 16.3)", "xcode_version": "16.3", "xcode_app": "Xcode_16.3.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') fi if [[ "$xcode_16_4_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ - --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS (Xcode 16.4)", "xcode_version": "16.4", "xcode_app": "Xcode_16.4.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode 16.4)", "xcode_version": "16.4", "xcode_app": "Xcode_16.4.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') fi if [[ "$xcode_26_0_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ - --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS (Xcode 26.0)", "xcode_version": "26.0", "xcode_app": "Xcode_26.0.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode 26.0)", "xcode_version": "26.0", "xcode_app": "Xcode_26.0.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') fi if [[ "$xcode_26_1_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ - --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS (Xcode 26.1)", "xcode_version": "26.1", "xcode_app": "Xcode_26.1.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode 26.1)", "xcode_version": "26.1", "xcode_app": "Xcode_26.1.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') fi if [[ "$xcode_latest_beta_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg runner_pool "$runner_pool" \ - --arg command_arguments "$command_arguments" \ --argjson env_vars "$macos_env_vars_json" \ - '.config[.config| length] |= . + { "name": "macOS (Xcode latest beta)", "xcode_version": "latest beta", "xcode_app": "Xcode-latest.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars, "command_arguments": $command_arguments }') + '.config[.config| length] |= . + { "name": "macOS (Xcode latest beta)", "xcode_version": "latest beta", "xcode_app": "Xcode-latest.app", "os": "sequoia", "arch": "ARM64", "pool": $runner_pool, "env": $env_vars }') fi echo "macos-matrix=$matrix" >> "$GITHUB_OUTPUT" env: MACOS_RUNNER_POOL: ${{ inputs.macos_runner_pool }} - MACOS_COMMAND_ARGUMENTS: ${{ inputs.macos_command_arguments }} MACOS_XCODE_16_3_ENABLED: ${{ inputs.macos_xcode_16_3_enabled }} MACOS_XCODE_16_4_ENABLED: ${{ inputs.macos_xcode_16_4_enabled }} MACOS_XCODE_26_0_ENABLED: ${{ inputs.macos_xcode_26_0_enabled }}