The Great Cross-Cloud Ruby Benchmark

Comparing iteration times across 9 machine types on several public clouds.

This site was borne of my continuous frustration at Speedshop of clients running on old generation AWS instances, when I knew "free speed" was on the table if they just upgraded to a newer generation. However, I could never quantify the speed boost. This page simply runs ruby-bench, a series of mostly CPU-bound benchmarks maintained by Ruby core and the YJIT developers. We run across multiple instances to reduce the effect of noisy neighbors.

For Rails apps, the most relevant benchmark is likely shipit. Keep in mind that this benchmark likely still overstates the performance difference because it runs the database in-memory, which makes the benchmark more CPU-bound than a real-world app with a real database.

All benchmarks were run on December 22, 2025 and December 18, 2025 with YJIT enabled on Ruby 3.4.8. View the code for this page here.

aws: c8a c7a c8g c8i c7g c7i c6i c6g | local: apple-m3-max select all | deselect all
0%
300%+ (% slower than fastest)
Benchmark aws-c8a local-apple-m3-max aws-c7a aws-c8g aws-c8i aws-c7g aws-c7i aws-c6i aws-c6g
ms ±% vs best ms ±% vs best ms ±% vs best ms ±% vs best ms ±% vs best ms ±% vs best ms ±% vs best ms ±% vs best ms ±% vs best
all 8509 8585 +0.9% 12427 +46.0% 12654 +48.7% 14737 +73.2% 18490 +117.3% 18822 +121.2% 21667 +154.6% 23376 +174.7%
activerecord 177 ±0.4 +2.9% 172 ±0.4 270 ±1.5 +57.0% 271 ±0.3 +57.6% 273 ±7.0 +58.7% 354 ±1.5 +105.8% 361 ±8.2 +109.9% 447 ±9.6 +159.9% 510 ±2.4 +196.5%
chunky-png 468 ±0.9 503 ±0.6 +7.5% 685 ±1.3 +46.4% 751 ±0.1 +60.5% 808 ±8.0 +72.6% 1060 ±0.1 +126.5% 1018 ±8.7 +117.5% 1379 ±11.1 +194.7% 1382 ±0.6 +195.3%
erubi-rails 860 ±1.3 899 ±1.0 +4.5% 1198 ±2.2 +39.3% 1113 ±0.4 +29.4% 1458 ±7.6 +69.5% 2020 ±0.5 +134.9% 1845 ±7.1 +114.5% 2405 ±9.2 +179.7% 2476 ±1.2 +187.9%
hexapdf 1685 ±0.3 +12.0% 1504 ±0.5 2326 ±0.9 +54.7% 2255 ±0.5 +49.9% 2834 ±7.5 +88.4% 3109 ±0.5 +106.7% 3698 ±8.4 +145.9% 4287 ±9.1 +185.0% 4224 ±1.2 +180.9%
liquid-c 36 ±0.1 +5.9% 34 ±0.4 50 ±0.5 +47.1% 51 ±0.2 +50.0% 59 ±2.3 +73.5% 76 ±0.7 +123.5% 78 ±2.9 +129.4% 95 ±3.5 +179.4% 110 ±0.6 +223.5%
liquid-compile 40 ±0.4 +5.3% 38 ±0.4 55 ±0.8 +44.7% 57 ±0.3 +50.0% 63 ±2.1 +65.8% 78 ±0.4 +105.3% 84 ±2.7 +121.1% 95 ±3.1 +150.0% 108 ±0.5 +184.2%
liquid-render 97 ±0.3 +9.0% 89 ±0.6 135 ±0.9 +51.7% 134 ±0.2 +50.6% 152 ±4.0 +70.8% 193 ±0.8 +116.9% 194 ±5.5 +118.0% 228 ±6.8 +156.2% 257 ±0.9 +188.8%
lobsters 730 ±1.4 747 ±1.4 +2.3% 1026 ±3.1 +40.5% 1157 ±1.4 +58.5% 1171 ±6.0 +60.4% 1606 ±1.8 +120.0% 1512 ±5.4 +107.1% 1639 ±5.3 +124.5% 1863 ±2.9 +155.2%
mail 83 ±0.3 +2.5% 81 ±0.4 119 ±0.4 +46.9% 121 ±0.1 +49.4% 133 ±3.4 +64.2% 175 ±0.5 +116.0% 169 ±4.3 +108.6% 197 ±4.8 +143.2% 236 ±1.0 +191.4%
psych-load 1374 ±1.0 +2.4% 1342 ±0.3 2103 ±1.8 +56.7% 2236 ±0.2 +66.6% 2268 ±7.4 +69.0% 2859 ±0.3 +113.0% 3149 ±8.6 +134.6% 3732 ±9.1 +178.1% 3986 ±1.1 +197.0%
railsbench 1412 ±0.6 1438 ±0.7 +1.8% 2194 ±0.9 +55.4% 2230 ±0.8 +57.9% 2851 ±6.0 +101.9% 3404 ±2.0 +141.1% 3449 ±5.9 +144.3% 3598 ±6.3 +154.8% 4154 ±2.9 +194.2%
rubocop 124 ±0.7 129 ±0.7 +4.0% 187 ±0.9 +50.8% 191 ±0.3 +54.0% 192 ±3.4 +54.8% 265 ±0.8 +113.7% 249 ±4.4 +100.8% 270 ±5.9 +117.7% 323 ±1.0 +160.5%
ruby-lsp 114 ±0.3 119 ±0.6 +4.4% 167 ±1.1 +46.5% 159 ±0.6 +39.5% 177 ±3.8 +55.3% 218 ±0.2 +91.2% 220 ±5.0 +93.0% 246 ±7.1 +115.8% 296 ±0.6 +159.6%
sequel 32 ±0.1 34 ±0.8 +6.3% 48 ±0.1 +50.0% 52 ±0.3 +62.5% 64 ±2.7 +100.0% 79 ±0.3 +146.9% 81 ±3.4 +153.1% 105 ±3.5 +228.1% 114 ±0.9 +256.3%
shipit 1277 ±1.2 1456 ±3.7 +14.0% 1864 ±1.8 +46.0% 1876 ±1.3 +46.9% 2234 ±7.3 +74.9% 2994 ±1.4 +134.5% 2715 ±7.4 +112.6% 2944 ±6.1 +130.5% 3337 ±1.4 +161.3%
Instance all activerecord chunky-png erubi-rails hexapdf liquid-c liquid-compile liquid-render lobsters mail psych-load railsbench rubocop ruby-lsp sequel shipit
aws-c8a 8509 177 +2.9% 468 860 1685 +12.0% 36 +5.9% 40 +5.3% 97 +9.0% 730 83 +2.5% 1374 +2.4% 1412 124 114 32 1277
local-apple-m3-max 8585 +0.9% 172 503 +7.5% 899 +4.5% 1504 34 38 89 747 +2.3% 81 1342 1438 +1.8% 129 +4.0% 119 +4.4% 34 +6.3% 1456 +14.0%
aws-c7a 12427 +46.0% 270 +57.0% 685 +46.4% 1198 +39.3% 2326 +54.7% 50 +47.1% 55 +44.7% 135 +51.7% 1026 +40.5% 119 +46.9% 2103 +56.7% 2194 +55.4% 187 +50.8% 167 +46.5% 48 +50.0% 1864 +46.0%
aws-c8g 12654 +48.7% 271 +57.6% 751 +60.5% 1113 +29.4% 2255 +49.9% 51 +50.0% 57 +50.0% 134 +50.6% 1157 +58.5% 121 +49.4% 2236 +66.6% 2230 +57.9% 191 +54.0% 159 +39.5% 52 +62.5% 1876 +46.9%
aws-c8i 14737 +73.2% 273 +58.7% 808 +72.6% 1458 +69.5% 2834 +88.4% 59 +73.5% 63 +65.8% 152 +70.8% 1171 +60.4% 133 +64.2% 2268 +69.0% 2851 +101.9% 192 +54.8% 177 +55.3% 64 +100.0% 2234 +74.9%
aws-c7g 18490 +117.3% 354 +105.8% 1060 +126.5% 2020 +134.9% 3109 +106.7% 76 +123.5% 78 +105.3% 193 +116.9% 1606 +120.0% 175 +116.0% 2859 +113.0% 3404 +141.1% 265 +113.7% 218 +91.2% 79 +146.9% 2994 +134.5%
aws-c7i 18822 +121.2% 361 +109.9% 1018 +117.5% 1845 +114.5% 3698 +145.9% 78 +129.4% 84 +121.1% 194 +118.0% 1512 +107.1% 169 +108.6% 3149 +134.6% 3449 +144.3% 249 +100.8% 220 +93.0% 81 +153.1% 2715 +112.6%
aws-c6i 21667 +154.6% 447 +159.9% 1379 +194.7% 2405 +179.7% 4287 +185.0% 95 +179.4% 95 +150.0% 228 +156.2% 1639 +124.5% 197 +143.2% 3732 +178.1% 3598 +154.8% 270 +117.7% 246 +115.8% 105 +228.1% 2944 +130.5%
aws-c6g 23376 +174.7% 510 +196.5% 1382 +195.3% 2476 +187.9% 4224 +180.9% 110 +223.5% 108 +184.2% 257 +188.8% 1863 +155.2% 236 +191.4% 3986 +197.0% 4154 +194.2% 323 +160.5% 296 +159.6% 114 +256.3% 3337 +161.3%