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 ×1.

0100k200k300k400k500k600k02004006008001k MT section gzip — bytes, linear FCP — ms, linear VDOM · 1k N=1004 FCP=86.6ms MT gz=7.1KBVDOM · 3k N=3004 FCP=143.4ms MT gz=7.1KBVDOM · 5k N=5004 FCP=188.3ms MT gz=7.1KBVDOM · 10k N=10004 FCP=310.4ms MT gz=7.1KBVDOM · 20k N=20004 FCP=586.9ms MT gz=7.1KBVDOM · 30k N=30004 FCP=841.5ms MT gz=7.1KB1k3k5k10k20k30kVDOMVDOM+IFR · 1k N=1004 FCP=77.7ms MT gz=33.8KBVDOM+IFR · 3k N=3004 FCP=119.6ms MT gz=34.6KBVDOM+IFR · 5k N=5004 FCP=163.1ms MT gz=35.4KBVDOM+IFR · 10k N=10004 FCP=378.9ms MT gz=37.1KBVDOM+IFR · 20k N=20004 FCP=695.1ms MT gz=40.2KBVDOM+IFR · 30k N=30004 FCP=1010.0ms MT gz=43.1KBVDOM+IFRVDOM+IFR+ET · 1k N=1004 FCP=70.0ms MT gz=54.1KBVDOM+IFR+ET · 3k N=3004 FCP=118.8ms MT gz=94.4KBVDOM+IFR+ET · 5k N=5004 FCP=160.9ms MT gz=134.3KBVDOM+IFR+ET · 10k N=10004 FCP=278.4ms MT gz=233.9KBVDOM+IFR+ET · 20k N=20004 FCP=526.1ms MT gz=432.1KBVDOM+IFR+ET · 30k N=30004 FCP=770.6ms MT gz=628.3KBVDOM+IFR+ETVapor · 1k N=1004 FCP=93.3ms MT gz=7.1KBVapor · 3k N=3004 FCP=156.3ms MT gz=7.1KBVapor · 5k N=5004 FCP=209.5ms MT gz=7.1KBVapor · 10k N=10004 FCP=365.4ms MT gz=7.1KBVapor · 20k N=20004 FCP=691.7ms MT gz=7.1KBVapor · 30k N=30004 FCP=1010.1ms MT gz=7.1KBVaporVapor+IFR · 1k N=1004 FCP=86.9ms MT gz=43.3KBVapor+IFR · 3k N=3004 FCP=141.0ms MT gz=54.3KBVapor+IFR · 5k N=5004 FCP=193.3ms MT gz=65.4KBVapor+IFR · 10k N=10004 FCP=337.6ms MT gz=90.5KBVapor+IFR · 20k N=20004 FCP=637.1ms MT gz=138.7KBVapor+IFR · 30k N=30004 FCP=905.9ms MT gz=185.2KBVapor+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 ×1.

05k10k15k20k25k30k02004006008001k elements N — linear FCP — ms, linear VDOM · 1k N=1004 FCP=86.6ms MT gz=7.1KBVDOM · 3k N=3004 FCP=143.4ms MT gz=7.1KBVDOM · 5k N=5004 FCP=188.3ms MT gz=7.1KBVDOM · 10k N=10004 FCP=310.4ms MT gz=7.1KBVDOM · 20k N=20004 FCP=586.9ms MT gz=7.1KBVDOM · 30k N=30004 FCP=841.5ms MT gz=7.1KB1k3k5k10k20k30kVDOMVDOM+IFR · 1k N=1004 FCP=77.7ms MT gz=33.8KBVDOM+IFR · 3k N=3004 FCP=119.6ms MT gz=34.6KBVDOM+IFR · 5k N=5004 FCP=163.1ms MT gz=35.4KBVDOM+IFR · 10k N=10004 FCP=378.9ms MT gz=37.1KBVDOM+IFR · 20k N=20004 FCP=695.1ms MT gz=40.2KBVDOM+IFR · 30k N=30004 FCP=1010.0ms MT gz=43.1KBVDOM+IFRVDOM+IFR+ET · 1k N=1004 FCP=70.0ms MT gz=54.1KBVDOM+IFR+ET · 3k N=3004 FCP=118.8ms MT gz=94.4KBVDOM+IFR+ET · 5k N=5004 FCP=160.9ms MT gz=134.3KBVDOM+IFR+ET · 10k N=10004 FCP=278.4ms MT gz=233.9KBVDOM+IFR+ET · 20k N=20004 FCP=526.1ms MT gz=432.1KBVDOM+IFR+ET · 30k N=30004 FCP=770.6ms MT gz=628.3KBVDOM+IFR+ETVapor · 1k N=1004 FCP=93.3ms MT gz=7.1KBVapor · 3k N=3004 FCP=156.3ms MT gz=7.1KBVapor · 5k N=5004 FCP=209.5ms MT gz=7.1KBVapor · 10k N=10004 FCP=365.4ms MT gz=7.1KBVapor · 20k N=20004 FCP=691.7ms MT gz=7.1KBVapor · 30k N=30004 FCP=1010.1ms MT gz=7.1KBVaporVapor+IFR · 1k N=1004 FCP=86.9ms MT gz=43.3KBVapor+IFR · 3k N=3004 FCP=141.0ms MT gz=54.3KBVapor+IFR · 5k N=5004 FCP=193.3ms MT gz=65.4KBVapor+IFR · 10k N=10004 FCP=337.6ms MT gz=90.5KBVapor+IFR · 20k N=20004 FCP=637.1ms MT gz=138.7KBVapor+IFR · 30k N=30004 FCP=905.9ms MT gz=185.2KBVapor+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 ×1. Lower-left dominates.

10k30k100k300k1003001k MT section gzip — bytes, log FCP — ms, log VDOM · 1k N=1004 FCP=86.6ms MT gz=7.1KBVDOM · 3k N=3004 FCP=143.4ms MT gz=7.1KBVDOM · 5k N=5004 FCP=188.3ms MT gz=7.1KBVDOM · 10k N=10004 FCP=310.4ms MT gz=7.1KBVDOM · 20k N=20004 FCP=586.9ms MT gz=7.1KBVDOM · 30k N=30004 FCP=841.5ms MT gz=7.1KB1k3k5k10k20k30kVDOMVDOM+IFR · 1k N=1004 FCP=77.7ms MT gz=33.8KBVDOM+IFR · 3k N=3004 FCP=119.6ms MT gz=34.6KBVDOM+IFR · 5k N=5004 FCP=163.1ms MT gz=35.4KBVDOM+IFR · 10k N=10004 FCP=378.9ms MT gz=37.1KBVDOM+IFR · 20k N=20004 FCP=695.1ms MT gz=40.2KBVDOM+IFR · 30k N=30004 FCP=1010.0ms MT gz=43.1KBVDOM+IFRVDOM+IFR+ET · 1k N=1004 FCP=70.0ms MT gz=54.1KBVDOM+IFR+ET · 3k N=3004 FCP=118.8ms MT gz=94.4KBVDOM+IFR+ET · 5k N=5004 FCP=160.9ms MT gz=134.3KBVDOM+IFR+ET · 10k N=10004 FCP=278.4ms MT gz=233.9KBVDOM+IFR+ET · 20k N=20004 FCP=526.1ms MT gz=432.1KBVDOM+IFR+ET · 30k N=30004 FCP=770.6ms MT gz=628.3KBVDOM+IFR+ETVapor · 1k N=1004 FCP=93.3ms MT gz=7.1KBVapor · 3k N=3004 FCP=156.3ms MT gz=7.1KBVapor · 5k N=5004 FCP=209.5ms MT gz=7.1KBVapor · 10k N=10004 FCP=365.4ms MT gz=7.1KBVapor · 20k N=20004 FCP=691.7ms MT gz=7.1KBVapor · 30k N=30004 FCP=1010.1ms MT gz=7.1KBVaporVapor+IFR · 1k N=1004 FCP=86.9ms MT gz=43.3KBVapor+IFR · 3k N=3004 FCP=141.0ms MT gz=54.3KBVapor+IFR · 5k N=5004 FCP=193.3ms MT gz=65.4KBVapor+IFR · 10k N=10004 FCP=337.6ms MT gz=90.5KBVapor+IFR · 20k N=20004 FCP=637.1ms MT gz=138.7KBVapor+IFR · 30k N=30004 FCP=905.9ms MT gz=185.2KBVapor+IFR

FCP vs content scale (log)

Log-log. Same generated SFC at ~1k→30k elements. Lynx for Web, CPU ×1. α ≈ 1 → linear in N; α ≪ 1 → dominated by fixed costs.

1k3k10k30k1003001k elements N — log FCP — ms, log VDOM · 1k N=1004 FCP=86.6ms MT gz=7.1KBVDOM · 3k N=3004 FCP=143.4ms MT gz=7.1KBVDOM · 5k N=5004 FCP=188.3ms MT gz=7.1KBVDOM · 10k N=10004 FCP=310.4ms MT gz=7.1KBVDOM · 20k N=20004 FCP=586.9ms MT gz=7.1KBVDOM · 30k N=30004 FCP=841.5ms MT gz=7.1KB1k3k5k10k20k30kVDOMVDOM+IFR · 1k N=1004 FCP=77.7ms MT gz=33.8KBVDOM+IFR · 3k N=3004 FCP=119.6ms MT gz=34.6KBVDOM+IFR · 5k N=5004 FCP=163.1ms MT gz=35.4KBVDOM+IFR · 10k N=10004 FCP=378.9ms MT gz=37.1KBVDOM+IFR · 20k N=20004 FCP=695.1ms MT gz=40.2KBVDOM+IFR · 30k N=30004 FCP=1010.0ms MT gz=43.1KBVDOM+IFRVDOM+IFR+ET · 1k N=1004 FCP=70.0ms MT gz=54.1KBVDOM+IFR+ET · 3k N=3004 FCP=118.8ms MT gz=94.4KBVDOM+IFR+ET · 5k N=5004 FCP=160.9ms MT gz=134.3KBVDOM+IFR+ET · 10k N=10004 FCP=278.4ms MT gz=233.9KBVDOM+IFR+ET · 20k N=20004 FCP=526.1ms MT gz=432.1KBVDOM+IFR+ET · 30k N=30004 FCP=770.6ms MT gz=628.3KBVDOM+IFR+ETVapor · 1k N=1004 FCP=93.3ms MT gz=7.1KBVapor · 3k N=3004 FCP=156.3ms MT gz=7.1KBVapor · 5k N=5004 FCP=209.5ms MT gz=7.1KBVapor · 10k N=10004 FCP=365.4ms MT gz=7.1KBVapor · 20k N=20004 FCP=691.7ms MT gz=7.1KBVapor · 30k N=30004 FCP=1010.1ms MT gz=7.1KBVaporVapor+IFR · 1k N=1004 FCP=86.9ms MT gz=43.3KBVapor+IFR · 3k N=3004 FCP=141.0ms MT gz=54.3KBVapor+IFR · 5k N=5004 FCP=193.3ms MT gz=65.4KBVapor+IFR · 10k N=10004 FCP=337.6ms MT gz=90.5KBVapor+IFR · 20k N=20004 FCP=637.1ms MT gz=138.7KBVapor+IFR · 30k N=30004 FCP=905.9ms MT gz=185.2KBVapor+IFR

Scaling exponents

α ≈ 0 → FCP dominated by fixed overhead (bundle parse / boot / IPC). α ≈ 1 → cost grows with content.

metric ~ NαVDOMVDOM+IFRVDOM+IFR+ETVaporVapor+IFR
FCPα=0.68α=0.80α=0.72α=0.71α=0.71
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 · scaleelementsFCP msΔ vs VDOMMT gzipweb gzip
VDOM · 1k100486.67.1 KB35.0 KB
VDOM+IFR · 1k100477.7-10%33.8 KB62.9 KB
VDOM+IFR+ET · 1k100470.0-19%54.1 KB104.6 KB
Vapor · 1k100493.3+8%7.1 KB44.5 KB
Vapor+IFR · 1k100486.9+0%43.3 KB85.9 KB
VDOM · 3k3004143.47.1 KB35.9 KB
VDOM+IFR · 3k3004119.6-17%34.6 KB64.7 KB
VDOM+IFR+ET · 3k3004118.8-17%94.4 KB184.9 KB
Vapor · 3k3004156.3+9%7.1 KB55.8 KB
Vapor+IFR · 3k3004141.0-2%54.3 KB108.3 KB
VDOM · 5k5004188.37.1 KB36.8 KB
VDOM+IFR · 5k5004163.1-13%35.4 KB66.5 KB
VDOM+IFR+ET · 5k5004160.9-15%134.3 KB266.3 KB
Vapor · 5k5004209.5+11%7.1 KB66.6 KB
Vapor+IFR · 5k5004193.3+3%65.4 KB129.9 KB
VDOM · 10k10004310.47.1 KB39.0 KB
VDOM+IFR · 10k10004378.9+22%37.1 KB70.7 KB
VDOM+IFR+ET · 10k10004278.4-10%233.9 KB465.7 KB
Vapor · 10k10004365.4+18%7.1 KB92.5 KB
Vapor+IFR · 10k10004337.6+9%90.5 KB180.8 KB
VDOM · 20k20004586.97.1 KB42.8 KB
VDOM+IFR · 20k20004695.1+18%40.2 KB77.9 KB
VDOM+IFR+ET · 20k20004526.1-10%432.1 KB862.3 KB
Vapor · 20k20004691.7+18%7.1 KB139.8 KB
Vapor+IFR · 20k20004637.1+9%138.7 KB277.4 KB
VDOM · 30k30004841.57.1 KB46.2 KB
VDOM+IFR · 30k300041010.0+20%43.1 KB84.9 KB
VDOM+IFR+ET · 30k30004770.6-8%628.3 KB1260.1 KB
Vapor · 30k300041010.1+20%7.1 KB187.4 KB
Vapor+IFR · 30k30004905.9+8%185.2 KB371.3 KB