All demos › Performance

ApexMaps performance

Measured in this browser, on this machine. Frame times are real rAF deltas during a scripted pan and zoom, not a simulation. Parse is JSON.parse of the pack and Render is library work on already-parsed geometry, so neither includes the network. Reproject switches to Plate Carrée, which rebuilds every path, so it isolates path generation from projection maths. Note the asymmetry on US counties: the initial render uses the pack's recommended albersUsa, a composite of three sub-projections with a point-in-region test per coordinate, and it costs roughly three times a simple projection.

Case Features Parse Render Reproject Labels JS/frame p95 Frame p50 Frame p95 Worst Dropped p95 budget

Budget: p95 pan and zoom frame under 16 ms at 3,000 features. Panning writes one transform on one group, so the per-frame cost in library code is constant in the feature count; what scales is the browser rasterising the paths. That is the point of keeping features in world space instead of reprojecting them.

Read Dropped and JS/frame, not Frame p50. With headroom, rAF intervals are clamped to the display's refresh rate, so a p50 of 8.3 ms means "120 Hz display", not "8.3 ms of work". Dropped counts frames that overran their refresh interval by half again, which is what a user perceives as stutter.