Queued call Crossing packet Jank crossing Delivered

Native Bridge Latency 2D: Batching vs Jank

Every cross-platform mobile app pays a hidden tax on the boundary between its JavaScript/Dart layer and native platform code: each call across that bridge must be serialized, queued, hopped to the UI thread, and deserialized before native code ever runs. This 2D dashboard spawns real call traffic at a chosen rate, coalesces it into batches under a size cap and a wait-time window exactly like React Native's legacy bridge or a Flutter platform channel, and lays the result out across three linked panels: a live queue-and-crossing lane, a scrolling per-call latency timeline against the 16.7 ms frame budget, and a cost-breakdown chart that reacts to the sliders instantly. Live readouts track delivered throughput, average per-call latency, and how often a crossing's serialization cost blows past the frame budget and drops a frame — the same trade-off app teams profile when deciding how aggressively to batch native calls.