Skip to content

Add laravel framework - #1118

Merged
MDA2AV merged 2 commits into
MDA2AV:mainfrom
nigrosimone:add-laravel
Aug 14, 2026
Merged

Add laravel framework#1118
MDA2AV merged 2 commits into
MDA2AV:mainfrom
nigrosimone:add-laravel

Conversation

@nigrosimone

Copy link
Copy Markdown
Contributor

Description

Adds Laravel 13 on Laravel Octane + FrankenPHP, standard mode.

  • meta.json: PHP / flagship / standard, subscribed to baseline, pipelined, limited-conn, json, json-comp and upload
  • routes/api.php: routes go through the api group, so no session, no cookies and no CSRF token
  • Octane is the runtime Laravel documents for production, compression is the Caddy encode directive Octane generates
  • php.ini: post_max_size=0, otherwise PHP rejects the 20 MB upload profile with 413

./scripts/validate.sh laravel passes locally, 23 checks.

@nigrosimone

Copy link
Copy Markdown
Contributor Author

/benchmark -f laravel --save

@github-actions

Copy link
Copy Markdown
Contributor

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

@nigrosimone
nigrosimone marked this pull request as ready for review August 14, 2026 06:04
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: laravel | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 28,454 5742.0% 589MiB ~0% ~0%
baseline 4096 29,496 5917.4% 686MiB ~0% ~0%
pipelined 512 31,532 5941.6% 502MiB ~0% ~0%
pipelined 4096 32,207 5745.5% 814MiB ~0% ~0%
limited-conn 512 27,813 5728.5% 495MiB ~0% ~0%
limited-conn 4096 29,531 5929.1% 749MiB ~0% ~0%
json 4096 28,891 5770.6% 745MiB ~0% ~0%
json-comp 512 24,871 5849.8% 966MiB ~0% ~0%
json-comp 4096 25,824 6065.3% 1.9GiB ~0% ~0%
json-comp 16384 25,399 6099.7% 2.2GiB ~0% ~0%
upload 32 949 3260.0% 583MiB ~0% ~0%
upload 256 1,041 6064.9% 654MiB ~0% ~0%
Full log
==============================================
[info] waiting for server...
[info] server ready

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   33.77ms   35.30ms   78.20ms   86.10ms   92.20ms

  4731 requests in 5.00s, 4730 responses
  Throughput: 945 req/s
  Bandwidth:  192.34KB/s
  Status codes: 2xx=4730, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 4730 / 4730 responses (100.0%)
  Reconnects: 936
  Per-template: 1151,1142,1231,1206
  Per-template-ok: 1151,1142,1231,1206
[info] CPU 3173.4% | Mem 582MiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   33.60ms   35.20ms   78.00ms   85.70ms   90.10ms

  4747 requests in 5.00s, 4747 responses
  Throughput: 949 req/s
  Bandwidth:  193.02KB/s
  Status codes: 2xx=4747, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 4747 / 4747 responses (100.0%)
  Reconnects: 944
  Per-template: 1160,1154,1221,1212
  Per-template-ok: 1160,1154,1221,1212
[info] CPU 3260.0% | Mem 583MiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   33.89ms   35.40ms   78.20ms   88.10ms   124.80ms

  4705 requests in 5.00s, 4705 responses
  Throughput: 940 req/s
  Bandwidth:  191.32KB/s
  Status codes: 2xx=4705, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 4705 / 4705 responses (100.0%)
  Reconnects: 934
  Per-template: 1152,1130,1220,1203
  Per-template-ok: 1152,1130,1220,1203
[info] CPU 3156.5% | Mem 587MiB

=== Best: 949 req/s (CPU: 3260.0%, Mem: 583MiB) ===
[info] input BW: 7.53GB/s (avg template: 8516680 bytes)
[info] saved results/upload/32/laravel.json
httparena-bench-laravel
httparena-bench-laravel

==============================================
=== laravel / upload / 256c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   244.44ms   206.90ms   457.10ms   540.10ms   598.30ms

  5205 requests in 5.00s, 5205 responses
  Throughput: 1.04K req/s
  Bandwidth:  211.60KB/s
  Status codes: 2xx=5205, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 5205 / 5205 responses (100.0%)
  Reconnects: 969
  Per-template: 1325,1350,1265,1265
  Per-template-ok: 1325,1350,1265,1265
[info] CPU 6064.9% | Mem 654MiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   244.85ms   207.70ms   450.70ms   535.70ms   569.70ms

  5179 requests in 5.00s, 5179 responses
  Throughput: 1.03K req/s
  Bandwidth:  210.54KB/s
  Status codes: 2xx=5179, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 5179 / 5179 responses (100.0%)
  Reconnects: 967
  Per-template: 1289,1357,1280,1253
  Per-template-ok: 1289,1357,1280,1253
[info] CPU 6222.0% | Mem 661MiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   247.09ms   213.00ms   452.90ms   536.80ms   593.60ms

  5131 requests in 5.00s, 5132 responses
  Throughput: 1.02K req/s
  Bandwidth:  208.65KB/s
  Status codes: 2xx=5132, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 5132 / 5132 responses (100.0%)
  Reconnects: 980
  Per-template: 1255,1339,1271,1267
  Per-template-ok: 1255,1339,1271,1267
[info] CPU 6093.2% | Mem 664MiB

=== Best: 1041 req/s (CPU: 6064.9%, Mem: 654MiB) ===
[info] input BW: 8.26GB/s (avg template: 8516680 bytes)
[info] saved results/upload/256/laravel.json
httparena-bench-laravel
httparena-bench-laravel
[info] skip: laravel does not subscribe to api-4
[info] skip: laravel does not subscribe to api-16
[info] skip: laravel does not subscribe to static
[info] skip: laravel does not subscribe to static-tls
[info] skip: laravel does not subscribe to async-db
[info] skip: laravel does not subscribe to crud
[info] skip: laravel does not subscribe to fortunes
[info] skip: laravel does not subscribe to baseline-h2
[info] skip: laravel does not subscribe to static-h2
[info] skip: laravel does not subscribe to baseline-h2c
[info] skip: laravel does not subscribe to json-h2c
[info] skip: laravel does not subscribe to baseline-h3
[info] skip: laravel does not subscribe to static-h3
[info] skip: laravel does not subscribe to gateway-64
[info] skip: laravel does not subscribe to gateway-h3
[info] skip: laravel does not subscribe to production-stack
[info] skip: laravel does not subscribe to unary-grpc
[info] skip: laravel does not subscribe to unary-grpc-tls
[info] skip: laravel does not subscribe to stream-grpc
[info] skip: laravel does not subscribe to stream-grpc-tls
[info] skip: laravel does not subscribe to echo-ws
[info] skip: laravel does not subscribe to echo-ws-pipeline
[info] skip: laravel does not subscribe to echo-ws-limited
[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/results/laravel.json - 12 new, 12 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
[info] restoring loopback MTU to 65536

@MDA2AV
MDA2AV merged commit a4b430c into MDA2AV:main Aug 14, 2026
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