WhoBuilt

Reassure - Open Source performance regression measurement tool

Jul 28, 2022· 1 h 3 min· 5.5K views·Watch on YouTube

Speakers

Callstack head of technology Michał and senior developer Mate, with host Mukesh in Callstack’s Wrocław podcast room, explain Reassure, an open-source tool for measuring React and React Native component performance.

Why Reassure was created

Michał describes performance work for Entain’s sports betting apps, where new features sometimes broke existing memoization without obvious signs in code review. The team wanted a way to catch regressions after optimization, but found no suitable tool. Mate built a proof of concept with React Native Testing Library and React Profiler, which led to an in-house tool and then an open-source library.

What it measures

Reassure measures render performance for React and React Native components by wrapping test scenarios with React Profiler. Tests can mimic user flows, such as opening a screen, entering data, or pressing a button. The speakers say the tool focuses on JavaScript rendering, so it complements rather than replaces real-user and native performance monitoring.

Making measurements comparable

The useful signal is the change between a baseline and a proposed branch, not the absolute render time, which varies across machines. Reassure runs each scenario multiple times, with 10 as the default, and controls factors such as garbage collection and JIT compilation to reduce measurement noise. Users can increase the run count for less stable environments.

Choosing scenarios and reading results

The team recommends measuring high-impact user flows and using performance tests to track work on a known bottleneck. In the demo, removing derived state cut a list’s render time from 28 milliseconds to 15 milliseconds and reduced its render count from two to one. A separate memoization change reduced an async scenario’s render duration by nearly 70 percent.

Running locally and on CI

Developers can establish a baseline and compare changes locally, then run both versions on the same CI agent for a more consistent comparison. Reassure produces console output and a Markdown report for pull requests, including significant changes, render-count changes, and added or removed scenarios. The speakers also discuss expanding web examples and CI integrations.

Takeaways

  • Add performance tests around the user journeys where regressions would matter most.
  • Compare the same scenarios on baseline and proposed code in the same environment.
  • Treat render duration as a relative signal, since machine speed changes absolute timings.
  • Use Reassure to detect regressions; use profiling tools to investigate their cause.
  • Keep performance tests separate from regular tests because repeated runs take longer.

Mentioned in this talk

Search inside this talk

What was claimed 9

Show all 9 facts

Related talks