Best Mount Improvement
-16.45 msv6 mounts fastest relative to v5 at 10,000 anchors in the current snapshot.
Benchmark
A version-to-version benchmark focused on the runtime cost of React Tooltip v6 relative to v5 under the same workloads.
Best Mount Improvement
-16.45 msv6 mounts fastest relative to v5 at 10,000 anchors in the current snapshot.
Best Memory Reduction
-1.30 MiBv6 retains less mount-time memory than v5 at 10,000 anchors.
Highest Tested Workload
10,000Largest published scenario in this benchmark snapshot.
V6 now trends lower on mount time, lower on unmount time, and lower on mount memory across the full range of tested workloads.
The v6 work keeps the existing feature surface while reducing the internal cost of supporting it. Most of the gains come from removing repeated work and making high-frequency runtime paths cheaper.
These changes matter most under load. At small counts, repeated work can hide behind fixed overhead. As the workload grows, the cost of duplicated tracking, redundant listeners, and per-anchor work becomes visible.
Each row compares the same scenario in v5 and v6. Anchor count is the workload variable, but the benchmark itself is a version-to-version runtime comparison.
These metrics map to practical frontend concerns. Mount cost affects render, hydration, and large UI updates. Memory retention matters because tooltip state stays resident after setup, especially when many anchors are active on the same page.
| Anchors | V5 Mount | V6 Mount | Mount Delta | Mount Variation | V5 Unmount | V6 Unmount | Unmount Delta | Unmount Variation | V5 Mount Mem | V6 Mount Mem | Mount Mem Delta | Mount Mem Variation |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 50 | 0.70 ms | 0.60 ms | -0.10 ms | 0.0% | 0.20 ms | 0.20 ms | 0.00 ms | 0.0% | +60.0 KiB | +41.5 KiB | -18.5 KiB | 5.3% |
| 100 | 0.90 ms | 0.70 ms | -0.20 ms | 14.3% | 0.20 ms | 0.20 ms | 0.00 ms | 50.0% | +87.4 KiB | +72.3 KiB | -15.0 KiB | 3.4% |
| 500 | 3.00 ms | 2.60 ms | -0.40 ms | 6.7% | 0.50 ms | 0.40 ms | -0.10 ms | 20.0% | +391.4 KiB | +358.3 KiB | -33.2 KiB | 0.0% |
| 2,000 | 15.60 ms | 14.90 ms | -0.70 ms | 6.0% | 1.60 ms | 1.00 ms | -0.60 ms | 20.0% | +1.43 MiB | +1.40 MiB | -34.7 KiB | 14.0% |
| 5,000 | 91.55 ms | 87.25 ms | -4.30 ms | 21.9% | 4.10 ms | 2.40 ms | -1.70 ms | 16.7% | +4.19 MiB | +3.48 MiB | -719.6 KiB | 0.0% |
| 10,000 | 381.20 ms | 364.75 ms | -16.45 ms | 13.0% | 8.40 ms | 4.90 ms | -3.50 ms | 10.7% | +8.25 MiB | +6.96 MiB | -1.30 MiB | 0.0% |
Delta compares v5 and v6 for the same scenario.
Variation reflects how much repeated runs moved for that metric across repeated runs of the same scenario.
Spread shows how stable the metric was across repeated runs.
Each row summarizes 100 benchmark runs for the same scenario. It shows the aggregated result for v5 and v6 at that workload size, along with the delta between versions and the run-to-run variation for each metric.
Mount behavior is the most useful signal here because it represents the cost of enabling tooltip behavior in the first place.
That cost shows up during page load, hydration, and large UI updates. If setup is expensive, users pay for it immediately through slower render work and slower interaction readiness.
Lower mount time reduces that blocking work and lower mount memory reduces the steady overhead that remains after initialization.
Unmount data still matters, but cleanup timing is more sensitive to browser scheduling, deferred work, and memory reclamation behavior.
For that reason, unmount measurements work better as supporting evidence than as the primary basis for declaring one version faster.
In the current snapshot, v6 is lower on mount memory at every tested workload. That means the implementation is not only doing less work during initialization, but also carrying less state while doing the same job.
The importance of that difference increases with density. Small memory wins at low counts are easy to dismiss. The same pattern at higher counts is much more consequential.
Across the full range of tested workloads, v6 mounts faster, unmounts faster, and retains less memory than v5.
For the full migration surface between v5 and v6, including API changes and new capabilities, check the v5 → v6 changelog.