Skip to content

⚡ perf(simd): unroll the AVX2 kernels, accelerate the ASCII scans, and drop the SWAR bounds checks #638

⚡ perf(simd): unroll the AVX2 kernels, accelerate the ASCII scans, and drop the SWAR bounds checks

⚡ perf(simd): unroll the AVX2 kernels, accelerate the ASCII scans, and drop the SWAR bounds checks #638

Triggered via pull request July 29, 2026 02:57
Status Failure
Total duration 4m 6s
Artifacts 6

benchmark.yml

on: pull_request
benchmark  /  plan
4s
benchmark / plan
Matrix: benchmark / benchmark
benchmark  /  report
16s
benchmark / report
Fit to window
Zoom out
Zoom in

Annotations

1 error and 18 warnings
benchmark / report
# :warning: **Performance Alert** :warning: Possible performance regression was detected for benchmark. Benchmark result of this commit is worse than the previous benchmark result exceeding threshold `1.50`. | Benchmark suite | Current: 21ac61003165bf52a82841c725dec42d85cf30ff | Previous: 1785d22eac8b84068786437f72e74db959ea1a0c | Ratio | |-|-|-|-| | `Benchmark_FormatUint8/strconv (github.com/gofiber/utils/v2)` | `18.96` ns/op 3 B/op 1 allocs/op | `12.03` ns/op 3 B/op 1 allocs/op | `1.58` | | `Benchmark_FormatUint8/strconv (github.com/gofiber/utils/v2) - ns/op` | `18.96` ns/op | `12.03` ns/op | `1.58` | | `Benchmark_IndexAny2/7B/scalar (github.com/gofiber/utils/v2)` | `3.16` ns/op 0 B/op 0 allocs/op | `2.075` ns/op 0 B/op 0 allocs/op | `1.52` | | `Benchmark_IndexAny2/7B/scalar (github.com/gofiber/utils/v2) - ns/op` | `3.16` ns/op | `2.075` ns/op | `1.52` | | `Benchmark_IndexAny2/8B/swar (github.com/gofiber/utils/v2)` | `4.432` ns/op 0 B/op 0 allocs/op | `2.024` ns/op 0 B/op 0 allocs/op | `2.19` | | `Benchmark_IndexAny2/8B/swar (github.com/gofiber/utils/v2) - ns/op` | `4.432` ns/op | `2.024` ns/op | `2.19` | | `Benchmark_IndexAny2/8B/scalar (github.com/gofiber/utils/v2)` | `4.652` ns/op 0 B/op 0 allocs/op | `2.663` ns/op 0 B/op 0 allocs/op | `1.75` | | `Benchmark_IndexAny2/8B/scalar (github.com/gofiber/utils/v2) - ns/op` | `4.652` ns/op | `2.663` ns/op | `1.75` | | `Benchmark_IndexAny2/16B/swar (github.com/gofiber/utils/v2)` | `6.027` ns/op 0 B/op 0 allocs/op | `2.92` ns/op 0 B/op 0 allocs/op | `2.06` | | `Benchmark_IndexAny2/16B/swar (github.com/gofiber/utils/v2) - ns/op` | `6.027` ns/op | `2.92` ns/op | `2.06` | | `Benchmark_IndexAny2/16B/scalar (github.com/gofiber/utils/v2)` | `9.271` ns/op 0 B/op 0 allocs/op | `4.695` ns/op 0 B/op 0 allocs/op | `1.97` | | `Benchmark_IndexAny2/16B/scalar (github.com/gofiber/utils/v2) - ns/op` | `9.271` ns/op | `4.695` ns/op | `1.97` | | `Benchmark_IndexAny2/16B/stdlib-indexany (github.com/gofiber/utils/v2)` | `18.91` ns/op 0 B/op 0 allocs/op | `9.097` ns/op 0 B/op 0 allocs/op | `2.08` | | `Benchmark_IndexAny2/16B/stdlib-indexany (github.com/gofiber/utils/v2) - ns/op` | `18.91` ns/op | `9.097` ns/op | `2.08` | | `Benchmark_IndexAny2/32B/swar (github.com/gofiber/utils/v2)` | `6.781` ns/op 0 B/op 0 allocs/op | `2.726` ns/op 0 B/op 0 allocs/op | `2.49` | | `Benchmark_IndexAny2/32B/swar (github.com/gofiber/utils/v2) - ns/op` | `6.781` ns/op | `2.726` ns/op | `2.49` | | `Benchmark_IndexAny2/32B/scalar (github.com/gofiber/utils/v2)` | `17.5` ns/op 0 B/op 0 allocs/op | `9.511` ns/op 0 B/op 0 allocs/op | `1.84` | | `Benchmark_IndexAny2/32B/scalar (github.com/gofiber/utils/v2) - ns/op` | `17.5` ns/op | `9.511` ns/op | `1.84` | | `Benchmark_IndexAny2/32B/stdlib-indexany (github.com/gofiber/utils/v2)` | `29.34` ns/op 0 B/op 0 allocs/op | `16.11` ns/op 0 B/op 0 allocs/op | `1.82` | | `Benchmark_IndexAny2/32B/stdlib-indexany (github.com/gofiber/utils/v2) - ns/op` | `29.34` ns/op | `16.11` ns/op | `1.82` | | `Benchmark_IndexAny2/64B/swar (github.com/gofiber/utils/v2)` | `7.466` ns/op 0 B/op 0 allocs/op | `3.161` ns/op 0 B/op 0 allocs/op | `2.36` | | `Benchmark_IndexAny2/64B/swar (github.com/gofiber/utils/v2) - ns/op` | `7.466` ns/op | `3.161` ns/op | `2.36` | | `Benchmark_IndexAny2/64B/scalar (github.com/gofiber/utils/v2)` | `33.75` ns/op 0 B/op 0 allocs/op | `21.28` ns/op 0 B/op 0 allocs/op | `1.59` | | `Benchmark_IndexAny2/64B/scalar (github.com/gofiber/utils/v2) - ns/op` | `33.75` ns/op | `21.28` ns/op | `1.59` | | `Benchmark_IndexAny2/64B/stdlib-indexany (github.com/gofiber/utils/v2)` | `49.71` ns/op 0 B/op 0 allocs/op | `27.76` ns/op 0 B/op 0 allocs/op | `1.79` | | `Benchmark_IndexAny2/64B/stdlib-indexany (github.com/gofiber/utils/v2) -
benchmark / benchmark (4)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
benchmark / benchmark (5)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
benchmark / benchmark (2)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
benchmark / benchmark (0)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
benchmark / benchmark (1)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
benchmark / benchmark (3)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
benchmark / report
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
benchmark / report
Performance alert! Previous value was 2.92 and current value is 6.027. It is 2.064041095890411x worse than previous exceeding a ratio threshold 1.5
benchmark / report
Performance alert! Previous value was 2.92 and current value is 6.027. It is 2.064041095890411x worse than previous exceeding a ratio threshold 1.5
benchmark / report
Performance alert! Previous value was 2.663 and current value is 4.652. It is 1.7469019902365754x worse than previous exceeding a ratio threshold 1.5
benchmark / report
Performance alert! Previous value was 2.663 and current value is 4.652. It is 1.7469019902365754x worse than previous exceeding a ratio threshold 1.5
benchmark / report
Performance alert! Previous value was 2.024 and current value is 4.432. It is 2.189723320158103x worse than previous exceeding a ratio threshold 1.5
benchmark / report
Performance alert! Previous value was 2.024 and current value is 4.432. It is 2.189723320158103x worse than previous exceeding a ratio threshold 1.5
benchmark / report
Performance alert! Previous value was 2.075 and current value is 3.16. It is 1.5228915662650602x worse than previous exceeding a ratio threshold 1.5
benchmark / report
Performance alert! Previous value was 2.075 and current value is 3.16. It is 1.5228915662650602x worse than previous exceeding a ratio threshold 1.5
benchmark / report
Performance alert! Previous value was 12.03 and current value is 18.96. It is 1.576059850374065x worse than previous exceeding a ratio threshold 1.5
benchmark / report
Performance alert! Previous value was 12.03 and current value is 18.96. It is 1.576059850374065x worse than previous exceeding a ratio threshold 1.5
benchmark / report
shards ran on different CPUs: AMD EPYC Intel(R) Xeon(R) Processor

Artifacts

Produced during runtime
Name Size Digest
benchmark-.-shard-0 Expired
2.67 KB
sha256:4af48ec8aeae450a6a7dc7a8f918095fcec9861338ff3287e71d86a3983c95ec
benchmark-.-shard-1 Expired
2.39 KB
sha256:94342fde2661525a0b8155e6e61f39b8fdc1615295d826490c6a6801360376bf
benchmark-.-shard-2 Expired
2.58 KB
sha256:9ab1cc18393a7fc4e5b3d7c13b5449df7fa8133b54e83eb17e5717a49901df90
benchmark-.-shard-3 Expired
2.79 KB
sha256:4c18221aac1d5d2787fa8aa3fe03bcaec66b9ffa6557804667b004a191f2bdca
benchmark-.-shard-4 Expired
2.31 KB
sha256:e3c6dc49a76b198310f6defb40a27bb32934cbd13283669edc003845b3d9ac38
benchmark-.-shard-5 Expired
2.51 KB
sha256:9539a822bc3a3ab367d7c638f58f817e3da7da535666f5e8c3f145344a0080e1