Skip to content

[rails] Enable frozen string literal across app, including dependencies#675

Merged
MDA2AV merged 1 commit intoMDA2AV:mainfrom
p8:rails/bootsnap-frozen-literal
May 1, 2026
Merged

[rails] Enable frozen string literal across app, including dependencies#675
MDA2AV merged 1 commit intoMDA2AV:mainfrom
p8:rails/bootsnap-frozen-literal

Conversation

@p8
Copy link
Copy Markdown
Contributor

@p8 p8 commented May 1, 2026

This is a new default in Rails applications:
rails/rails#57252

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented May 1, 2026

/benchmark -f rails

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

👋 /benchmark request received. A collaborator will review and approve the run.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

Benchmark Results

Framework: rails | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 59,116 5503.7% 6.7GiB +7.7% ~0%
baseline 4096 32,189 4816.6% 6.2GiB -0.7% +3.3%
pipelined 512 332,462 6500.3% 2.6GiB +2.1% +23.8%
pipelined 4096 323,603 6480.2% 2.6GiB -1.8% +13.0%
limited-conn 512 27,783 4609.2% 5.9GiB -2.7% +1.7%
limited-conn 4096 27,587 4447.6% 6.1GiB -3.0% +7.0%
json 4096 125,262 6406.6% 4.4GiB -1.4% +7.3%
json-comp 512 90,141 6445.3% 4.1GiB -3.1% -8.9%
json-comp 4096 92,324 6501.1% 4.1GiB -0.5% -6.8%
json-comp 16384 91,543 6509.2% 5.7GiB +0.6% +21.3%
upload 32 933 3165.8% 8.7GiB -0.2% -2.2%
upload 256 900 6359.7% 7.6GiB +7.8% -8.4%
api-4 256 10,322 393.7% 388MiB +2.1% -7.8%
api-16 1024 26,553 1744.4% 1.1GiB -2.0% -21.4%
static 1024 188,757 6512.5% 9.6GiB -7.0% -2.0%
static 4096 192,658 6528.0% 9.6GiB -2.7% -2.0%
static 6800 192,130 6542.1% 9.6GiB -2.3% ~0%
async-db 1024 71,552 6372.0% 3.7GiB +1.6% +32.1%
Full log
Transfer/sec:      2.61GB
[info] CPU 6348.9% | Mem 9.8GiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    20.52ms    6.31ms 252.84ms   85.80%
    Req/Sec     3.03k   658.00    11.59k    90.70%
  982383 requests in 5.10s, 15.12GB read
Requests/sec: 192658.68
Transfer/sec:      2.96GB
[info] CPU 6528.0% | Mem 9.6GiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    20.64ms    6.56ms 255.03ms   87.85%
    Req/Sec     3.02k   695.60    17.41k    90.63%
  977687 requests in 5.10s, 15.05GB read
Requests/sec: 191728.30
Transfer/sec:      2.95GB
[info] CPU 6474.9% | Mem 9.5GiB

=== Best: 192658 req/s (CPU: 6528.0%, Mem: 9.6GiB) ===
[info] saved results/static/4096/rails.json
httparena-bench-rails
httparena-bench-rails

==============================================
=== rails / static / 6800c (tool=wrk) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    35.27ms   21.45ms 366.98ms   90.76%
    Req/Sec     2.70k     1.03k    7.08k    78.62%
  866698 requests in 5.10s, 13.34GB read
Requests/sec: 169799.09
Transfer/sec:      2.61GB
[info] CPU 6330.9% | Mem 10.0GiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    33.53ms   20.45ms 486.28ms   97.41%
    Req/Sec     3.03k     1.00k   12.17k    79.96%
  980597 requests in 5.10s, 15.09GB read
Requests/sec: 192130.20
Transfer/sec:      2.96GB
[info] CPU 6542.1% | Mem 9.6GiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    35.15ms   28.79ms 561.70ms   97.85%
    Req/Sec     2.99k     0.94k    8.04k    78.64%
  969590 requests in 5.11s, 14.92GB read
Requests/sec: 189920.29
Transfer/sec:      2.92GB
[info] CPU 6443.1% | Mem 9.8GiB

=== Best: 192130 req/s (CPU: 6542.1%, Mem: 9.6GiB) ===
[info] saved results/static/6800/rails.json
httparena-bench-rails
httparena-bench-rails

==============================================
=== rails / async-db / 1024c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   14.34ms   13.40ms   21.00ms   34.60ms   179.40ms

  683612 requests in 10.00s, 683613 responses
  Throughput: 68.34K req/s
  Bandwidth:  283.32MB/s
  Status codes: 2xx=683613, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 683613 / 683613 responses (100.0%)
  Reconnects: 26858
  Per-template: 136422,137133,137223,136709,136126
  Per-template-ok: 136422,137133,137223,136709,136126
[info] CPU 6098.1% | Mem 3.7GiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   13.64ms   13.50ms   20.60ms   28.90ms   37.90ms

  715524 requests in 10.00s, 715524 responses
  Throughput: 71.53K req/s
  Bandwidth:  296.83MB/s
  Status codes: 2xx=715524, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 715521 / 715524 responses (100.0%)
  Reconnects: 28303
  Per-template: 142904,143071,143331,143405,142810
  Per-template-ok: 142904,143071,143331,143405,142810
[info] CPU 6372.0% | Mem 3.7GiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   13.74ms   13.50ms   20.80ms   28.70ms   37.40ms

  712057 requests in 10.00s, 712060 responses
  Throughput: 71.18K req/s
  Bandwidth:  295.30MB/s
  Status codes: 2xx=712060, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 712059 / 712060 responses (100.0%)
  Reconnects: 28214
  Per-template: 142306,142701,142442,142281,142329
  Per-template-ok: 142306,142701,142442,142281,142329
[info] CPU 6402.3% | Mem 3.7GiB

=== Best: 71552 req/s (CPU: 6372.0%, Mem: 3.7GiB) ===
[info] input BW: 4.78MB/s (avg template: 70 bytes)
[info] saved results/async-db/1024/rails.json
httparena-bench-rails
httparena-bench-rails
[info] skip: rails does not subscribe to crud
[info] skip: rails does not subscribe to baseline-h2
[info] skip: rails does not subscribe to static-h2
[info] skip: rails does not subscribe to baseline-h2c
[info] skip: rails does not subscribe to json-h2c
[info] skip: rails does not subscribe to baseline-h3
[info] skip: rails does not subscribe to static-h3
[info] skip: rails does not subscribe to gateway-64
[info] skip: rails does not subscribe to gateway-h3
[info] skip: rails does not subscribe to production-stack
[info] skip: rails does not subscribe to unary-grpc
[info] skip: rails does not subscribe to unary-grpc-tls
[info] skip: rails does not subscribe to stream-grpc
[info] skip: rails does not subscribe to stream-grpc-tls
[info] skip: rails does not subscribe to echo-ws
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-16-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-4-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/async-db-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-6800.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-32.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

@MDA2AV MDA2AV merged commit 8b0daa5 into MDA2AV:main May 1, 2026
4 checks passed
@p8 p8 deleted the rails/bootsnap-frozen-literal branch May 1, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants