Skip to content

Commit cbff946

Browse files
Benchmark results: rack-falcon
1 parent 8006b04 commit cbff946

12 files changed

Lines changed: 7002 additions & 0 deletions

File tree

site/data/baseline-4096.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,26 @@
806806
"status_4xx": 0,
807807
"status_5xx": 0
808808
},
809+
{
810+
"framework": "rack-falcon",
811+
"language": "Ruby",
812+
"rps": 550257,
813+
"avg_latency": "7.45ms",
814+
"p99_latency": "11.90ms",
815+
"cpu": "6547.7%",
816+
"memory": "1.3GiB",
817+
"connections": 4096,
818+
"threads": 64,
819+
"duration": "5s",
820+
"pipeline": 1,
821+
"bandwidth": "46.69MB/s",
822+
"input_bw": "42.51MB/s",
823+
"reconnects": 0,
824+
"status_2xx": 2751285,
825+
"status_3xx": 0,
826+
"status_4xx": 0,
827+
"status_5xx": 0
828+
},
809829
{
810830
"framework": "rack-iodine",
811831
"language": "Ruby",

site/data/baseline-512.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,26 @@
806806
"status_4xx": 0,
807807
"status_5xx": 0
808808
},
809+
{
810+
"framework": "rack-falcon",
811+
"language": "Ruby",
812+
"rps": 576090,
813+
"avg_latency": "888us",
814+
"p99_latency": "1.79ms",
815+
"cpu": "6576.0%",
816+
"memory": "1.2GiB",
817+
"connections": 512,
818+
"threads": 64,
819+
"duration": "5s",
820+
"pipeline": 1,
821+
"bandwidth": "48.88MB/s",
822+
"input_bw": "44.50MB/s",
823+
"reconnects": 0,
824+
"status_2xx": 2880451,
825+
"status_3xx": 0,
826+
"status_4xx": 0,
827+
"status_5xx": 0
828+
},
809829
{
810830
"framework": "rack-iodine",
811831
"language": "Ruby",

site/data/limited-conn-4096.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,26 @@
806806
"status_4xx": 0,
807807
"status_5xx": 0
808808
},
809+
{
810+
"framework": "rack-falcon",
811+
"language": "Ruby",
812+
"rps": 496292,
813+
"avg_latency": "8.19ms",
814+
"p99_latency": "71.60ms",
815+
"cpu": "6544.9%",
816+
"memory": "1.3GiB",
817+
"connections": 4096,
818+
"threads": 64,
819+
"duration": "5s",
820+
"pipeline": 1,
821+
"bandwidth": "42.11MB/s",
822+
"input_bw": "38.34MB/s",
823+
"reconnects": 248097,
824+
"status_2xx": 2481460,
825+
"status_3xx": 0,
826+
"status_4xx": 0,
827+
"status_5xx": 0
828+
},
809829
{
810830
"framework": "rack-iodine",
811831
"language": "Ruby",

site/data/limited-conn-512.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,26 @@
806806
"status_4xx": 0,
807807
"status_5xx": 0
808808
},
809+
{
810+
"framework": "rack-falcon",
811+
"language": "Ruby",
812+
"rps": 497281,
813+
"avg_latency": "1.02ms",
814+
"p99_latency": "2.03ms",
815+
"cpu": "6569.5%",
816+
"memory": "1.3GiB",
817+
"connections": 512,
818+
"threads": 64,
819+
"duration": "5s",
820+
"pipeline": 1,
821+
"bandwidth": "42.20MB/s",
822+
"input_bw": "38.41MB/s",
823+
"reconnects": 248638,
824+
"status_2xx": 2486409,
825+
"status_3xx": 0,
826+
"status_4xx": 0,
827+
"status_5xx": 0
828+
},
809829
{
810830
"framework": "rack-iodine",
811831
"language": "Ruby",

site/data/pipelined-4096.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,25 @@
776776
"status_4xx": 0,
777777
"status_5xx": 0
778778
},
779+
{
780+
"framework": "rack-falcon",
781+
"language": "Ruby",
782+
"rps": 800040,
783+
"avg_latency": "81.44ms",
784+
"p99_latency": "147.50ms",
785+
"cpu": "6594.3%",
786+
"memory": "1.0GiB",
787+
"connections": 4096,
788+
"threads": 64,
789+
"duration": "5s",
790+
"pipeline": 16,
791+
"bandwidth": "67.89MB/s",
792+
"reconnects": 0,
793+
"status_2xx": 4000203,
794+
"status_3xx": 0,
795+
"status_4xx": 0,
796+
"status_5xx": 0
797+
},
779798
{
780799
"framework": "rack-iodine",
781800
"language": "Ruby",

site/data/pipelined-512.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,25 @@
776776
"status_4xx": 0,
777777
"status_5xx": 0
778778
},
779+
{
780+
"framework": "rack-falcon",
781+
"language": "Ruby",
782+
"rps": 868025,
783+
"avg_latency": "9.44ms",
784+
"p99_latency": "14.20ms",
785+
"cpu": "6723.8%",
786+
"memory": "716MiB",
787+
"connections": 512,
788+
"threads": 64,
789+
"duration": "5s",
790+
"pipeline": 16,
791+
"bandwidth": "73.66MB/s",
792+
"reconnects": 0,
793+
"status_2xx": 4340127,
794+
"status_3xx": 0,
795+
"status_4xx": 0,
796+
"status_5xx": 0
797+
},
779798
{
780799
"framework": "rack-iodine",
781800
"language": "Ruby",
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
{"time":"2026-05-21T21:12:41+00:00","severity":"info","process_id":1,"fiber_id":888,"pid":1,"subject":"Falcon::Command::Host","object_id":896,"message":"Falcon Host v0.54.2 taking flight!\n- Configuration: falcon.rb\n- To terminate: Ctrl-C or kill 1\n- To reload: kill -HUP 1\n"}
2+
{"time":"2026-05-21T21:12:41+00:00","severity":"info","process_id":1,"fiber_id":888,"pid":1,"subject":"Async::Container::Notify::Console","object_id":904,"message":{"status":"Initializing controller..."}}
3+
{"time":"2026-05-21T21:12:41+00:00","severity":"info","process_id":1,"fiber_id":888,"pid":1,"subject":"Falcon::Service::Server","object_id":920,"message":"Starting app on #<Async::HTTP::Endpoint http://0.0.0.0:8080/ {protocol: Async::HTTP::Protocol::HTTP11}>"}
4+
{"time":"2026-05-21T21:12:41+00:00","severity":"info","process_id":1,"fiber_id":888,"pid":1,"subject":"Async::Service::Controller","object_id":928,"message":"Controller starting..."}
5+
{"time":"2026-05-21T21:12:41+00:00","severity":"info","process_id":1,"fiber_id":888,"pid":1,"subject":"Async::Service::Controller","object_id":928,"message":"Starting container..."}
6+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
7+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
8+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
9+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
10+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
11+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
12+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
13+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
14+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
15+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
16+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
17+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
18+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
19+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
20+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
21+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
22+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
23+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
24+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
25+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
26+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
27+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
28+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
29+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
30+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
31+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
32+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
33+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
34+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
35+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
36+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
37+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
38+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
39+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
40+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
41+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
42+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
43+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
44+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
45+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
46+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
47+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
48+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
49+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
50+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
51+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
52+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
53+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
54+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
55+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
56+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
57+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
58+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
59+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
60+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
61+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
62+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
63+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
64+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
65+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
66+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
67+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
68+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
69+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
70+
{"time":"2026-05-21T21:12:41+00:00","severity":"info","process_id":1,"fiber_id":888,"pid":1,"subject":"Async::Service::Controller","object_id":928,"message":"Waiting for startup..."}
71+
/app/vendor/bundle/ruby/4.0.0/gems/async-container-0.30.0/lib/async/container/notify/pipe.rb:68: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
72+
{"time":"2026-05-21T21:12:41+00:00","severity":"info","process_id":1,"fiber_id":888,"pid":1,"subject":"Async::Service::Controller","object_id":928,"message":"Finished startup."}
73+
{"time":"2026-05-21T21:12:41+00:00","severity":"info","process_id":1,"fiber_id":888,"pid":1,"subject":"Async::Container::Notify::Console","object_id":904,"message":{"ready":true,"size":65}}
74+
{"time":"2026-05-21T21:12:41+00:00","severity":"info","process_id":1,"fiber_id":888,"pid":1,"subject":"Async::Service::Controller","object_id":928,"message":"Controller started..."}

0 commit comments

Comments
 (0)