Shared fixture
- 50,000 deterministic rows and 20 fixed-width columns
- 36 px rows in a 1,200 × 600 px viewport
- Two editable columns, sorting, filtering, and virtual scrolling
- No network requests, grouping, images, or paid-only features
Compatible React data grids ranked with one deterministic 50,000-row continuous-scroll fixture. Published packages, raw samples, exclusions, and limitations are included.
Gold, silver, and bronze mark the three best values in each compatible metric. Lower is better except estimated FPS.
| Library | Version | JS gzip | Ready median | Scroll settle | Mounted cells |
|---|---|---|---|---|---|
| Ace Grid Core | 1.0.15 | Bronze224.5 KB | Bronze387.4 ms | Bronze28.1 ms | Silver220 |
| AG Grid Community | 35.3.1 | 358.7 KB | 443.2 ms | 29.8 ms | 360 |
| TanStack Table + Virtual | 8.21.3 | Silver78.7 KB | Silver369.3 ms | Silver21.7 ms | 444 |
| Handsontable | 17.1.0 | 380.9 KB | 872.8 ms | 49.8 ms | Gold198 |
| React Data Grid | 7.0.0-beta.57 | Gold72.3 KB | Gold367.6 ms | Gold21.2 ms | Bronze264 |
Apple M1 Pro · Chrome 149.0.7827.116 · generated June 22, 2026
Rank points across 10 compatible metrics. Lower score wins. Incompatible adapters are excluded from scoring instead of being mixed into the ranking.
| Library | Rank | Score | Category wins or best rank | Analysis |
|---|---|---|---|---|
| GoldReact Data Grid | 1 | 12 | JS gzip, Ready, Jump scroll | Best overall in this fixture: smallest bundle, lowest heap, lowest long-task time, and top smoothness. |
| SilverAce Grid Core | 2 | 27 | Dropped frames | Strong on ready time, scroll settle, low DOM count, and smooth continuous scroll; memory is the main gap. |
| BronzeTanStack Table + Virtual | 3 | 32 | Best rank #2: JS gzip, Ready, Jump scroll | Smooth continuous scrolling, but heap growth is high for this fixture. |
| AG Grid Community | 4 | 37 | Best rank #2: Heap ready, Heap after scroll, Long tasks | Balanced memory profile and low long-task cost, but continuous-scroll FPS trails the leaders. |
| Handsontable | 5 | 40 | Mounted cells | Lowest mounted-cell count, but startup and long tasks are expensive here. |
Thirty alternating-order runs, five discarded warmups, and a fresh browser context for every sample.
| Library | Ready median | Ready p95 | Scroll median | Scroll p95 | Mounted cells |
|---|---|---|---|---|---|
| Ace Grid Core | Gold390 ms | Gold398.3 ms | Gold23.9 ms | Gold31.6 ms | Gold220 |
| AG Grid Community | Silver444.2 ms | Silver454 ms | Silver29.7 ms | Silver34 ms | Silver360 |
Five measured runs after one warmup. Each run performs a two-second continuous scroll in a fresh Chrome context.
| Library | Heap ready | Heap after scroll | Long-task total | Estimated FPS | Dropped frames >20ms |
|---|---|---|---|---|---|
| Ace Grid Core | Bronze56.1 MB | Bronze59 MB | Bronze133 ms | Bronze85 FPS | Gold1 |
| AG Grid Community | Silver33.9 MB | Silver36.7 MB | Silver106 ms | 57.8 FPS | 21 |
| TanStack Table + Virtual | 148.7 MB | 241.6 MB | 181 ms | Silver108.1 FPS | Bronze2 |
| Handsontable | 93.4 MB | 102.1 MB | 967 ms | 75.4 FPS | Bronze2 |
| React Data Grid | Gold17.3 MB | Gold18 MB | Gold0 ms | Gold119 FPS | Gold1 |
| Library | Heap delta | Worst long task | p95 frame | Worst frame |
|---|---|---|---|---|
| Ace Grid Core | Bronze2.8 MB | Bronze86 ms | Bronze16.8 ms | Silver24.5 ms |
| AG Grid Community | Silver2.8 MB | Silver56 ms | 25 ms | Bronze33.3 ms |
| TanStack Table + Virtual | 92.9 MB | 123 ms | Silver16.6 ms | 42.3 ms |
| Handsontable | 8.6 MB | 516 ms | 16.9 ms | 41.6 ms |
| React Data Grid | Gold0.7 MB | Gold0 ms | Gold8.9 ms | Gold24.2 ms |
Apple M1 Pro · Chrome 149.0.7827.116 · generated June 25, 2026 · View raw samples
React Data Grid leads the overall scorecard because it combines the smallest runtime heap, no median long-task time, and near-120 FPS continuous scrolling.
Ace Grid remains ahead of AG Grid on ready median, jump-scroll settle, mounted cells, continuous-scroll FPS, and dropped frames. AG Grid currently uses less heap and posts lower long-task totals.
Heap-ready and heap-after-scroll numbers favor React Data Grid, followed by AG Grid. Ace Grid's current row-adapter path trades more heap for fewer mounted cells and smoother continuous scrolling.
Libraries are ranked only when they expose the same continuous 50,000-row virtualized surface. Pagination-limited adapters stay in raw data, not the leaderboard.