Open benchmark · June 2026

React data grid benchmark

Compatible React data grids ranked with one deterministic 50,000-row continuous-scroll fixture. Published packages, raw samples, exclusions, and limitations are included.

50,000rows
20columns
1,200 × 600viewport
10measured runs
Measured output

Compatible continuous-scroll results

Gold, silver, and bronze mark the three best values in each compatible metric. Lower is better except estimated FPS.

Production-build measurements on this machine
LibraryVersionJS gzipReady medianScroll settleMounted cells
Ace Grid Core1.0.15Bronze224.5 KBBronze387.4 msBronze28.1 msSilver220
AG Grid Community35.3.1358.7 KB443.2 ms29.8 ms360
TanStack Table + Virtual8.21.3Silver78.7 KBSilver369.3 msSilver21.7 ms444
Handsontable17.1.0380.9 KB872.8 ms49.8 msGold198
React Data Grid7.0.0-beta.57Gold72.3 KBGold367.6 msGold21.2 msBronze264
Excluded from ranked tables: MUI X Data Grid Community (MUI X Community forces pagination and limits pages to 100 rows.). Excluded adapters remain available in the live fixtures and raw JSON.

Apple M1 Pro · Chrome 149.0.7827.116 · generated June 22, 2026

Scorecard

Gold, silver, bronze

Rank points across 10 compatible metrics. Lower score wins. Incompatible adapters are excluded from scoring instead of being mixed into the ranking.

Overall medal ranking across compatible metrics
LibraryRankScoreCategory wins or best rankAnalysis
GoldReact Data Grid112JS gzip, Ready, Jump scrollBest overall in this fixture: smallest bundle, lowest heap, lowest long-task time, and top smoothness.
SilverAce Grid Core227Dropped framesStrong on ready time, scroll settle, low DOM count, and smooth continuous scroll; memory is the main gap.
BronzeTanStack Table + Virtual332Best rank #2: JS gzip, Ready, Jump scrollSmooth continuous scrolling, but heap growth is high for this fixture.
AG Grid Community437Best rank #2: Heap ready, Heap after scroll, Long tasksBalanced memory profile and low long-task cost, but continuous-scroll FPS trails the leaders.
Handsontable540Mounted cellsLowest mounted-cell count, but startup and long tasks are expensive here.
Metric guide

What the numbers mean

JS gzip
Reachable JavaScript after gzip. Lower means less code to download and parse. CSS is excluded.
Ready median
The middle of 10 runs from navigation until the adapter mounts and two animation frames pass. Lower is better.
Scroll settle
Time for one large vertical and horizontal scroll jump plus three animation frames. It is not an FPS score.
Mounted cells
Body cells in the DOM after the scroll. Fewer cells reduce DOM work, but very low overscan can expose blank edges.
Methodology

Same fixture, repeatable protocol

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

Measurement protocol

  • Production bundles in headless Chrome
  • Three warmups discarded, then 10 fresh browser contexts
  • The same vertical and horizontal scroll jump for compatible grids
  • Every raw sample committed with exact package versions
Excluded from ranked tables: MUI X Data Grid Community (MUI X Community forces pagination and limits pages to 100 rows.). Excluded adapters remain available in the live fixtures and raw JSON.
Published-package verification

Ace Grid 1.0.15 vs AG Grid

Thirty alternating-order runs, five discarded warmups, and a fresh browser context for every sample.

Focused 30-run comparison
LibraryReady medianReady p95Scroll medianScroll p95Mounted cells
Ace Grid CoreGold390 msGold398.3 msGold23.9 msGold31.6 msGold220
AG Grid CommunitySilver444.2 msSilver454 msSilver29.7 msSilver34 msSilver360
On this machine: Ace Grid reached ready 12.2% sooner, settled the scripted scroll 19.5% sooner, and mounted 140 fewer cells. View all raw samples.
Interaction health

Memory, long tasks, and smoothness

Five measured runs after one warmup. Each run performs a two-second continuous scroll in a fresh Chrome context.

Continuous scroll interaction measurements
LibraryHeap readyHeap after scrollLong-task totalEstimated FPSDropped frames >20ms
Ace Grid CoreBronze56.1 MBBronze59 MBBronze133 msBronze85 FPSGold1
AG Grid CommunitySilver33.9 MBSilver36.7 MBSilver106 ms57.8 FPS21
TanStack Table + Virtual148.7 MB241.6 MB181 msSilver108.1 FPSBronze2
Handsontable93.4 MB102.1 MB967 ms75.4 FPSBronze2
React Data GridGold17.3 MBGold18 MBGold0 msGold119 FPSGold1
Additional interaction measurements
LibraryHeap deltaWorst long taskp95 frameWorst frame
Ace Grid CoreBronze2.8 MBBronze86 msBronze16.8 msSilver24.5 ms
AG Grid CommunitySilver2.8 MBSilver56 ms25 msBronze33.3 ms
TanStack Table + Virtual92.9 MB123 msSilver16.6 ms42.3 ms
Handsontable8.6 MB516 ms16.9 ms41.6 ms
React Data GridGold0.7 MBGold0 msGold8.9 msGold24.2 ms

Apple M1 Pro · Chrome 149.0.7827.116 · generated June 25, 2026 · View raw samples

Analysis

What the results show

Fastest interactive path

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 vs AG Grid

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.

Memory-sensitive apps

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.

Compatibility rule

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.