Compared with RN <Text> rendering the same content on the same device:
| iOS | Android | |
|---|---|---|
| Time to mount 1000 views | 13–21% faster | ~30% faster |
| Memory per mounted view | 15–25% less | ~33% less |
Time to mount covers input dispatch, React render, Fabric commit, Yoga layout
with text measurement, and native view creation, but not rasterization. It is
the event entry duration reported by PerformanceObserver, the RN metric
closest to INP on the web. Self-measured from the example app: see
measuring.md
for the method and
performance.md
for per-run data.
Time to mount 1000 views, release builds:
PlainText |
RN Text |
Difference | |
|---|---|---|---|
| Android, small (Pixel 3) | 502 ms | 716 ms | 30% faster |
| Android, regular (Pixel 3) | 505 ms | 724 ms | 30% faster |
| Android, large (Pixel 3) | 504 ms | 718 ms | 30% faster |
| iOS, small (iPhone 16) | 142 ms | 164 ms | 13% faster |
| iOS, regular (iPhone 16) | 144 ms | 171 ms | 16% faster |
| iOS, large (iPhone 16) | 165 ms | 210 ms | 21% faster |
Memory per mounted view:
| Text size | PlainText |
RN Text |
Difference |
|---|---|---|---|
| iOS, small | 34.5 KB | 42.6 KB | 19% less |
| iOS, regular | 49.6 KB | 58.4 KB | 15% less |
| iOS, large | 148.6 KB | 197.6 KB | 25% less |
| Android, small | 35.1 KB | 52.9 KB | 34% less |
| Android, regular | 35.4 KB | 52.7 KB | 33% less |
| Android, large | 35.3 KB | 53.2 KB | 34% less |
Each figure is a mean of 3 runs.