IFR architecture scale trends
Five product architectures on one generated content SFC, scaled from ~1k to ~30k elements. Lead chart is cost space (MT gzip × FCP); FCP vs N follows. See also the Unified Benchmark Matrix for the same-host IFR × VDOM/Vapor × React story.
Linear scale — cost space + FCP vs N
Paint vs MT load cost (linear) Linear cost space (playground-style, zero baseline). Same points as the framework bench's create×update chart: architectures that pay MT gzip without buying FCP shoot right; those that scale poorly shoot up. CPU ×4.
0 50k 100k 150k 200k 250k 0 200 400 600 800 1k 1.2k
MT section gzip — bytes, linear
FCP — ms, linear
VDOM · 1k
N=1004 FCP=263.7ms MT gz=7.1KB VDOM · 3k
N=3004 FCP=431.1ms MT gz=7.1KB VDOM · 5k
N=5004 FCP=619.7ms MT gz=7.1KB VDOM · 10k
N=10004 FCP=1015.1ms MT gz=7.1KB 1k 3k 5k 10k VDOM VDOM+IFR · 1k
N=1004 FCP=258.2ms MT gz=33.8KB VDOM+IFR · 3k
N=3004 FCP=467.5ms MT gz=34.6KB VDOM+IFR · 5k
N=5004 FCP=608.7ms MT gz=35.4KB VDOM+IFR · 10k
N=10004 FCP=1165.8ms MT gz=37.1KB VDOM+IFR VDOM+IFR+ET · 1k
N=1004 FCP=235.5ms MT gz=54.1KB VDOM+IFR+ET · 3k
N=3004 FCP=420.2ms MT gz=94.4KB VDOM+IFR+ET · 5k
N=5004 FCP=622.9ms MT gz=134.3KB VDOM+IFR+ET · 10k
N=10004 FCP=913.9ms MT gz=233.9KB VDOM+IFR+ET Vapor · 1k
N=1004 FCP=265.5ms MT gz=7.1KB Vapor · 3k
N=3004 FCP=438.5ms MT gz=7.1KB Vapor · 5k
N=5004 FCP=634.4ms MT gz=7.1KB Vapor · 10k
N=10004 FCP=1076.2ms MT gz=7.1KB Vapor Vapor+IFR · 1k
N=1004 FCP=289.6ms MT gz=43.3KB Vapor+IFR · 3k
N=3004 FCP=492.2ms MT gz=54.3KB Vapor+IFR · 5k
N=5004 FCP=708.6ms MT gz=65.4KB Vapor+IFR · 10k
N=10004 FCP=1192.7ms MT gz=90.5KB Vapor+IFR
FCP vs content scale (linear) Linear, zero baseline, 1k→30k — absolute FCP gaps. VDOM+IFR without ET crosses above plain VDOM and can DNF on deep MT mount. CPU ×4.
0 2k 4k 6k 8k 10k 0 200 400 600 800 1k 1.2k
elements N — linear
FCP — ms, linear
VDOM · 1k
N=1004 FCP=263.7ms MT gz=7.1KB VDOM · 3k
N=3004 FCP=431.1ms MT gz=7.1KB VDOM · 5k
N=5004 FCP=619.7ms MT gz=7.1KB VDOM · 10k
N=10004 FCP=1015.1ms MT gz=7.1KB 1k 3k 5k 10k VDOM VDOM+IFR · 1k
N=1004 FCP=258.2ms MT gz=33.8KB VDOM+IFR · 3k
N=3004 FCP=467.5ms MT gz=34.6KB VDOM+IFR · 5k
N=5004 FCP=608.7ms MT gz=35.4KB VDOM+IFR · 10k
N=10004 FCP=1165.8ms MT gz=37.1KB VDOM+IFR VDOM+IFR+ET · 1k
N=1004 FCP=235.5ms MT gz=54.1KB VDOM+IFR+ET · 3k
N=3004 FCP=420.2ms MT gz=94.4KB VDOM+IFR+ET · 5k
N=5004 FCP=622.9ms MT gz=134.3KB VDOM+IFR+ET · 10k
N=10004 FCP=913.9ms MT gz=233.9KB VDOM+IFR+ET Vapor · 1k
N=1004 FCP=265.5ms MT gz=7.1KB Vapor · 3k
N=3004 FCP=438.5ms MT gz=7.1KB Vapor · 5k
N=5004 FCP=634.4ms MT gz=7.1KB Vapor · 10k
N=10004 FCP=1076.2ms MT gz=7.1KB Vapor Vapor+IFR · 1k
N=1004 FCP=289.6ms MT gz=43.3KB Vapor+IFR · 3k
N=3004 FCP=492.2ms MT gz=54.3KB Vapor+IFR · 5k
N=5004 FCP=708.6ms MT gz=65.4KB Vapor+IFR · 10k
N=10004 FCP=1192.7ms MT gz=90.5KB Vapor+IFR
Log-log scale
Paint vs MT load cost (log) Log-log cost space (playground-style). Each polyline is one architecture through 1k→30k. Right = heavier main-thread bundle; up = slower FCP. CPU ×4. Lower-left dominates.
10k 30k 100k 300k 300 1k
MT section gzip — bytes, log
FCP — ms, log
VDOM · 1k
N=1004 FCP=263.7ms MT gz=7.1KB VDOM · 3k
N=3004 FCP=431.1ms MT gz=7.1KB VDOM · 5k
N=5004 FCP=619.7ms MT gz=7.1KB VDOM · 10k
N=10004 FCP=1015.1ms MT gz=7.1KB 1k 3k 5k 10k VDOM VDOM+IFR · 1k
N=1004 FCP=258.2ms MT gz=33.8KB VDOM+IFR · 3k
N=3004 FCP=467.5ms MT gz=34.6KB VDOM+IFR · 5k
N=5004 FCP=608.7ms MT gz=35.4KB VDOM+IFR · 10k
N=10004 FCP=1165.8ms MT gz=37.1KB VDOM+IFR VDOM+IFR+ET · 1k
N=1004 FCP=235.5ms MT gz=54.1KB VDOM+IFR+ET · 3k
N=3004 FCP=420.2ms MT gz=94.4KB VDOM+IFR+ET · 5k
N=5004 FCP=622.9ms MT gz=134.3KB VDOM+IFR+ET · 10k
N=10004 FCP=913.9ms MT gz=233.9KB VDOM+IFR+ET Vapor · 1k
N=1004 FCP=265.5ms MT gz=7.1KB Vapor · 3k
N=3004 FCP=438.5ms MT gz=7.1KB Vapor · 5k
N=5004 FCP=634.4ms MT gz=7.1KB Vapor · 10k
N=10004 FCP=1076.2ms MT gz=7.1KB Vapor Vapor+IFR · 1k
N=1004 FCP=289.6ms MT gz=43.3KB Vapor+IFR · 3k
N=3004 FCP=492.2ms MT gz=54.3KB Vapor+IFR · 5k
N=5004 FCP=708.6ms MT gz=65.4KB Vapor+IFR · 10k
N=10004 FCP=1192.7ms MT gz=90.5KB Vapor+IFR
FCP vs content scale (log) Log-log. Same generated SFC at ~1k→30k elements. Lynx for Web, CPU ×4. α ≈ 1 → linear in N; α ≪ 1 → dominated by fixed costs.
1k 3k 10k 300 1k
elements N — log
FCP — ms, log
VDOM · 1k
N=1004 FCP=263.7ms MT gz=7.1KB VDOM · 3k
N=3004 FCP=431.1ms MT gz=7.1KB VDOM · 5k
N=5004 FCP=619.7ms MT gz=7.1KB VDOM · 10k
N=10004 FCP=1015.1ms MT gz=7.1KB 1k 3k 5k 10k VDOM VDOM+IFR · 1k
N=1004 FCP=258.2ms MT gz=33.8KB VDOM+IFR · 3k
N=3004 FCP=467.5ms MT gz=34.6KB VDOM+IFR · 5k
N=5004 FCP=608.7ms MT gz=35.4KB VDOM+IFR · 10k
N=10004 FCP=1165.8ms MT gz=37.1KB VDOM+IFR VDOM+IFR+ET · 1k
N=1004 FCP=235.5ms MT gz=54.1KB VDOM+IFR+ET · 3k
N=3004 FCP=420.2ms MT gz=94.4KB VDOM+IFR+ET · 5k
N=5004 FCP=622.9ms MT gz=134.3KB VDOM+IFR+ET · 10k
N=10004 FCP=913.9ms MT gz=233.9KB VDOM+IFR+ET Vapor · 1k
N=1004 FCP=265.5ms MT gz=7.1KB Vapor · 3k
N=3004 FCP=438.5ms MT gz=7.1KB Vapor · 5k
N=5004 FCP=634.4ms MT gz=7.1KB Vapor · 10k
N=10004 FCP=1076.2ms MT gz=7.1KB Vapor Vapor+IFR · 1k
N=1004 FCP=289.6ms MT gz=43.3KB Vapor+IFR · 3k
N=3004 FCP=492.2ms MT gz=54.3KB Vapor+IFR · 5k
N=5004 FCP=708.6ms MT gz=65.4KB Vapor+IFR · 10k
N=10004 FCP=1192.7ms MT gz=90.5KB Vapor+IFR
Scaling exponents
α ≈ 0 → FCP dominated by fixed overhead (bundle parse / boot / IPC). α ≈ 1 → cost grows with content.
metric ~ Nα VDOM VDOM+IFR VDOM+IFR+ET Vapor Vapor+IFR FCP α=0.58 α=0.64 α=0.60 α=0.60 α=0.61 MT gzip α=0.00 α=0.07 α=0.73 α=0.00 α=0.43 web gzip α=0.08 α=0.09 α=0.74 α=0.43 α=0.44
Raw medians
architecture · scale elements FCP ms Δ vs VDOM MT gzip web gzip VDOM · 1k 1004 263.7 — 7.1 KB 35.0 KB VDOM+IFR · 1k 1004 258.2 -2% 33.8 KB 62.9 KB VDOM+IFR+ET · 1k 1004 235.5 -11% 54.1 KB 104.6 KB Vapor · 1k 1004 265.5 +1% 7.1 KB 44.5 KB Vapor+IFR · 1k 1004 289.6 +10% 43.3 KB 85.9 KB VDOM · 3k 3004 431.1 — 7.1 KB 35.9 KB VDOM+IFR · 3k 3004 467.5 +8% 34.6 KB 64.7 KB VDOM+IFR+ET · 3k 3004 420.2 -3% 94.4 KB 184.9 KB Vapor · 3k 3004 438.5 +2% 7.1 KB 55.8 KB Vapor+IFR · 3k 3004 492.2 +14% 54.3 KB 108.3 KB VDOM · 5k 5004 619.7 — 7.1 KB 36.8 KB VDOM+IFR · 5k 5004 608.7 -2% 35.4 KB 66.5 KB VDOM+IFR+ET · 5k 5004 622.9 +1% 134.3 KB 266.3 KB Vapor · 5k 5004 634.4 +2% 7.1 KB 66.6 KB Vapor+IFR · 5k 5004 708.6 +14% 65.4 KB 129.9 KB VDOM · 10k 10004 1015.1 — 7.1 KB 39.0 KB VDOM+IFR · 10k 10004 1165.8 +15% 37.1 KB 70.7 KB VDOM+IFR+ET · 10k 10004 913.9 -10% 233.9 KB 465.7 KB Vapor · 10k 10004 1076.2 +6% 7.1 KB 92.5 KB Vapor+IFR · 10k 10004 1192.7 +17% 90.5 KB 180.8 KB