Skip to main content

Benchmarks

The example app includes a benchmark that measures per-frame animation overhead across different approaches. All approaches run the same animation (translateX loop, linear, 2s) on a configurable number of views.

Android

UI thread time per frame: anim + layout + draw (ms). Lower is better.

Android benchmark

Detailed numbers
ViewsMetricEaseReanimated SVReanimated SV (FF)Reanimated CSSReanimated CSS (FF)RN Animated
10Avg0.211.150.750.990.450.36
10P950.331.701.531.440.800.62
10P990.481.942.261.621.350.98
100Avg0.362.711.812.191.010.71
100P950.563.092.292.671.911.08
100P990.713.202.632.972.251.36
500Avg0.608.315.375.502.371.60
500P950.759.266.366.342.861.88
500P990.879.596.896.883.223.84

iOS

Display link callback time per frame (ms). Lower is better.

iOS benchmark

Detailed numbers
ViewsMetricEaseReanimated SVReanimated SV (FF)Reanimated CSSReanimated CSS (FF)RN Animated
10Avg0.011.331.081.060.630.83
10P950.021.671.591.341.011.18
10P990.031.901.681.501.081.31
100Avg0.013.723.332.712.483.32
100P950.015.214.503.833.394.28
100P990.025.684.754.913.794.55
500Avg0.016.846.544.163.704.91
500P950.017.697.324.594.225.66
500P990.028.107.454.714.335.89

Ease stays near zero because animations run entirely on platform APIs. On iOS, Core Animation runs on a separate render server process off the main thread. On Android, ObjectAnimator runs on the UI thread but is significantly lighter than other approaches.