SnapFire FSR CPU and memory benchmarks
What the server used while it was loaded and what it takes to start.
Throughput in req/s: Responses read in full per second. Measured on Apple M4 Pro (14 cores).
Higher is better for requests per second. Lower is better for latency, memory, build time and size. Bold marks the best figure in a row and every figure within 5% of it.
Starting and idling
| Measure | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| Spawn to first 200 | 16 ms | 322 ms | 54 ms | 212 ms | 30 ms | 24 ms |
| Resident at first 200 | 19.5 MB | 95.0 MB | 60.4 MB | 80.1 MB | 5.7 MB | 10.2 MB |
| Peak resident over the run | 124.0 MB | 669.6 MB | 406.1 MB | 791.9 MB | 101.0 MB | 97.8 MB |
home: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | 49% / 29.2 MB | 101% / 283.0 MB | 137% / 142.2 MB | 91% / 152.3 MB | 68% / 19.0 MB | 95% / 22.2 MB |
| 8 | 252% / 29.2 MB | 108% / 283.0 MB | 261% / 143.5 MB | 199% / 152.3 MB | 435% / 19.0 MB | 597% / 22.9 MB |
| 32 | 429% / 30.7 MB | 108% / 283.0 MB | 253% / 143.8 MB | 204% / 153.0 MB | 777% / 19.6 MB | 557% / 24.3 MB |
| 64 | 454% / 31.6 MB | 108% / 283.2 MB | 224% / 144.5 MB | 206% / 155.5 MB | 823% / 20.8 MB | 552% / 26.8 MB |
| 128 | 468% / 30.9 MB | 108% / 289.8 MB | 219% / 146.1 MB | 200% / 159.2 MB | 856% / 23.0 MB | 552% / 32.2 MB |
| 256 | 482% / 33.9 MB | 108% / 305.1 MB | 232% / 181.1 MB | 199% / 160.5 MB | 891% / 36.9 MB | 553% / 42.5 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
counter: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | 49% / 33.9 MB | 101% / 306.5 MB | 112% / 181.8 MB | 91% / 161.4 MB | 65% / 37.3 MB | 97% / 42.6 MB |
| 8 | 252% / 33.9 MB | 108% / 306.5 MB | 213% / 181.8 MB | 199% / 161.4 MB | 429% / 37.3 MB | 588% / 42.7 MB |
| 32 | 430% / 33.9 MB | 108% / 306.5 MB | 220% / 181.8 MB | 204% / 161.5 MB | 762% / 37.4 MB | 543% / 42.7 MB |
| 64 | 454% / 33.9 MB | 108% / 306.5 MB | 221% / 181.8 MB | 206% / 161.6 MB | 825% / 37.4 MB | 538% / 43.0 MB |
| 128 | 467% / 33.9 MB | 108% / 306.6 MB | 219% / 181.8 MB | 199% / 161.8 MB | 849% / 37.4 MB | 540% / 43.2 MB |
| 256 | 483% / 34.0 MB | 108% / 307.3 MB | 229% / 193.6 MB | 198% / 162.4 MB | 846% / 41.1 MB | 543% / 43.8 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
catalog: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | 90% / 42.5 MB | 112% / 504.9 MB | 101% / 253.0 MB | 106% / 225.7 MB | 101% / 42.7 MB | 111% / 50.6 MB |
| 8 | 661% / 42.6 MB | 117% / 505.0 MB | 110% / 253.0 MB | 116% / 225.7 MB | 763% / 42.7 MB | 843% / 52.4 MB |
| 32 | 1186% / 43.9 MB | 122% / 516.5 MB | 110% / 256.4 MB | 116% / 250.0 MB | 1188% / 43.2 MB | 911% / 53.2 MB |
| 64 | 1194% / 44.5 MB | 123% / 526.8 MB | 111% / 268.5 MB | 117% / 276.3 MB | 1193% / 44.0 MB | 910% / 53.4 MB |
| 128 | 1190% / 44.7 MB | 125% / 548.9 MB | 112% / 285.1 MB | 118% / 276.4 MB | 1194% / 46.8 MB | 910% / 53.7 MB |
| 256 | 1177% / 45.2 MB | 126% / 502.3 MB | 112% / 300.8 MB | 117% / 279.0 MB | 1184% / 52.7 MB | 901% / 55.5 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
product: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | 78% / 45.4 MB | 107% / 514.6 MB | 100% / 303.6 MB | 109% / 279.2 MB | 100% / 53.5 MB | 101% / 55.7 MB |
| 8 | 543% / 45.4 MB | 117% / 514.7 MB | 116% / 303.5 MB | 129% / 279.2 MB | 633% / 53.6 MB | 660% / 55.8 MB |
| 32 | 1032% / 45.6 MB | 119% / 515.0 MB | 116% / 303.6 MB | 129% / 279.2 MB | 936% / 53.7 MB | 654% / 56.0 MB |
| 64 | 1052% / 45.7 MB | 121% / 520.8 MB | 117% / 304.3 MB | 129% / 279.4 MB | 975% / 53.7 MB | 650% / 55.2 MB |
| 128 | 1070% / 45.7 MB | 124% / 524.6 MB | 118% / 321.3 MB | 131% / 762.5 MB | 1001% / 53.8 MB | 649% / 55.3 MB |
| 256 | 1087% / 45.7 MB | 127% / 528.0 MB | 119% / 335.0 MB | 130% / 762.5 MB | 990% / 55.7 MB | 652% / 55.7 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
search: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | 82% / 45.9 MB | 105% / 537.6 MB | 101% / 336.2 MB | 107% / 762.5 MB | 100% / 56.0 MB | 108% / 55.8 MB |
| 8 | 580% / 45.9 MB | 117% / 537.6 MB | 115% / 336.2 MB | 124% / 762.5 MB | 685% / 56.0 MB | 712% / 55.8 MB |
| 32 | 1089% / 46.1 MB | 120% / 537.6 MB | 115% / 336.5 MB | 125% / 762.5 MB | 1070% / 56.3 MB | 741% / 55.9 MB |
| 64 | 1107% / 46.1 MB | 121% / 539.4 MB | 115% / 337.4 MB | 125% / 762.6 MB | 1082% / 56.4 MB | 735% / 56.0 MB |
| 128 | 1127% / 46.3 MB | 124% / 539.7 MB | 116% / 341.5 MB | 125% / 762.6 MB | 1056% / 56.5 MB | 739% / 56.0 MB |
| 256 | 1122% / 46.3 MB | 127% / 543.0 MB | 117% / 352.6 MB | 126% / 762.6 MB | 1078% / 56.7 MB | 721% / 56.3 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
missing: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | 72% / 46.3 MB | 109% / 543.9 MB | 99% / 353.4 MB | 112% / 760.4 MB | 104% / 56.8 MB | 98% / 52.0 MB |
| 8 | 495% / 46.3 MB | 118% / 543.9 MB | 118% / 353.2 MB | 129% / 760.4 MB | 548% / 56.8 MB | 600% / 52.0 MB |
| 32 | 901% / 46.3 MB | 122% / 544.3 MB | 118% / 353.3 MB | 129% / 760.6 MB | 795% / 56.8 MB | 565% / 52.1 MB |
| 64 | 930% / 46.3 MB | 124% / 544.5 MB | 119% / 353.5 MB | 129% / 760.6 MB | 809% / 56.8 MB | 554% / 52.3 MB |
| 128 | 967% / 46.3 MB | 126% / 545.3 MB | 120% / 353.9 MB | 130% / 760.8 MB | 820% / 56.8 MB | 564% / 52.5 MB |
| 256 | 980% / 46.3 MB | 127% / 546.8 MB | 121% / 364.0 MB | 131% / 761.3 MB | 828% / 56.8 MB | 568% / 53.1 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
api: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | 70% / 46.5 MB | 111% / 512.5 MB | 92% / 367.7 MB | 72% / 761.3 MB | 59% / 57.1 MB | 59% / 53.5 MB |
| 8 | 434% / 46.5 MB | 113% / 512.4 MB | 119% / 367.7 MB | 100% / 761.3 MB | 334% / 57.1 MB | 421% / 53.6 MB |
| 32 | 768% / 46.5 MB | 113% / 512.4 MB | 120% / 368.0 MB | 100% / 761.3 MB | 571% / 57.1 MB | 790% / 54.2 MB |
| 64 | 867% / 46.5 MB | 113% / 513.0 MB | 121% / 368.4 MB | 101% / 761.4 MB | 612% / 57.1 MB | 766% / 54.5 MB |
| 128 | 890% / 46.5 MB | 114% / 512.8 MB | 121% / 369.7 MB | 101% / 761.4 MB | 628% / 57.1 MB | 797% / 55.0 MB |
| 256 | 911% / 46.7 MB | 114% / 512.7 MB | 122% / 370.7 MB | 102% / 761.4 MB | 647% / 57.2 MB | 806% / 61.5 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
primes: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | native 87% / 115.8 MB99% / 113.6 MB | 103% / 577.6 MB | 92% / 389.3 MB | 105% / 769.8 MB | 102% / 59.1 MB | 97% / 62.2 MB |
| 8 | native 627% / 109.0 MB711% / 111.3 MB | 110% / 582.4 MB | 109% / 393.5 MB | 115% / 774.1 MB | 648% / 59.1 MB | 692% / 62.3 MB |
| 32 | native 1141% / 93.0 MB1333% / 121.7 MB | 112% / 576.7 MB | 112% / 386.0 MB | 116% / 773.3 MB | 1067% / 59.6 MB | 746% / 62.3 MB |
| 64 | native 1146% / 93.0 MB1335% / 121.7 MB | 115% / 591.7 MB | 112% / 384.0 MB | 117% / 777.5 MB | 1091% / 59.8 MB | 754% / 62.3 MB |
| 128 | native 1161% / 93.0 MB1326% / 121.8 MB | 116% / 582.9 MB | 106% / 392.1 MB | 116% / 764.0 MB | 1094% / 59.9 MB | 748% / 62.3 MB |
| 256 | native 1168% / 93.2 MB1337% / 121.8 MB | 119% / 590.2 MB | 106% / 386.5 MB | 116% / 770.4 MB | 1097% / 61.4 MB | 756% / 62.5 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
Under FSR's figure, marked native: the same page with its loader calling the Rust in shared/compute.rs through #[native], the code Leptos and Dioxus run. The view and the render are FSR's either way. It is ranked with the other figures.
report: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | native 82% / 91.2 MB96% / 93.2 MB | 106% / 584.9 MB | 101% / 373.0 MB | 110% / 762.5 MB | 100% / 61.5 MB | 101% / 62.5 MB |
| 8 | native 576% / 91.2 MB720% / 93.3 MB | 118% / 584.9 MB | 113% / 373.0 MB | 128% / 762.5 MB | 643% / 61.5 MB | 670% / 62.6 MB |
| 32 | native 1091% / 91.2 MB1323% / 91.0 MB | 121% / 585.0 MB | 113% / 373.1 MB | 128% / 762.5 MB | 976% / 61.6 MB | 690% / 62.6 MB |
| 64 | native 1102% / 91.2 MB1300% / 91.0 MB | 121% / 585.2 MB | 114% / 373.2 MB | 128% / 762.5 MB | 1026% / 61.7 MB | 690% / 62.7 MB |
| 128 | native 1106% / 91.2 MB1327% / 91.0 MB | 125% / 587.8 MB | 115% / 376.5 MB | 129% / 762.5 MB | 1034% / 62.0 MB | 685% / 62.8 MB |
| 256 | native 1118% / 101.4 MB1329% / 91.0 MB | 127% / 592.6 MB | 116% / 386.8 MB | 129% / 762.5 MB | 1039% / 62.4 MB | 688% / 63.0 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
Under FSR's figure, marked native: the same page with its loader calling the Rust in shared/compute.rs through #[native], the code Leptos and Dioxus run. The view and the render are FSR's either way. It is ranked with the other figures.
words: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | native 96% / 101.9 MB99% / 101.5 MB | 105% / 592.8 MB | 98% / 388.0 MB | 102% / 762.5 MB | 96% / 62.5 MB | 96% / 63.6 MB |
| 8 | native 722% / 101.9 MB718% / 101.5 MB | 108% / 592.8 MB | 101% / 387.7 MB | 105% / 762.5 MB | 753% / 62.5 MB | 778% / 63.6 MB |
| 32 | native 1332% / 101.9 MB1346% / 101.5 MB | 107% / 593.3 MB | 103% / 388.1 MB | 106% / 762.6 MB | 1292% / 62.6 MB | 1234% / 63.7 MB |
| 64 | native 1333% / 101.9 MB1336% / 101.5 MB | 107% / 594.6 MB | 104% / 388.8 MB | 106% / 762.6 MB | 1297% / 62.6 MB | 1223% / 63.7 MB |
| 128 | native 1334% / 102.2 MB1346% / 101.5 MB | 110% / 594.7 MB | 104% / 389.3 MB | 105% / 762.6 MB | 1291% / 62.7 MB | 1257% / 63.9 MB |
| 256 | native 1327% / 102.3 MB1337% / 101.8 MB | 110% / 594.9 MB | 89% / 389.3 MB | 93% / 762.6 MB | 1260% / 63.0 MB | 1238% / 64.0 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
Under FSR's figure, marked native: the same page with its loader calling the Rust in shared/compute.rs through #[native], the code Leptos and Dioxus run. The view and the render are FSR's either way. It is ranked with the other figures.
table: server CPU % and resident MB
| Clients | fsr | nextjs | sveltekit | nuxt | leptos | dioxus |
|---|---|---|---|---|---|---|
| 1 | 90% / 107.0 MB | 111% / 666.0 MB | 98% / 397.7 MB | 106% / 762.6 MB | 96% / 68.4 MB | 104% / 81.3 MB |
| 8 | 710% / 107.0 MB | 118% / 678.8 MB | 108% / 397.7 MB | 114% / 762.6 MB | 778% / 68.5 MB | 824% / 81.4 MB |
| 32 | 1281% / 107.3 MB | 119% / 695.0 MB | 110% / 431.4 MB | 116% / 762.6 MB | 1180% / 70.3 MB | 1117% / 88.0 MB |
| 64 | 1287% / 107.3 MB | 121% / 691.2 MB | 109% / 441.4 MB | 117% / 762.7 MB | 1191% / 72.9 MB | 1121% / 89.8 MB |
| 128 | 1279% / 107.3 MB | 122% / 709.2 MB | 107% / 441.4 MB | 119% / 762.8 MB | 1216% / 79.8 MB | 1106% / 94.1 MB |
| 256 | 1271% / 107.7 MB | 112% / 703.1 MB | 108% / 441.4 MB | 118% / 763.2 MB | 1200% / 101.0 MB | 1113% / 97.8 MB |
CPU is the server's user and system time over the cell's wall time, 100 per core. Ranked on resident memory at the end of the cell.
