React data grid benchmark

We benchmarked React data grids with 50,000 rows. The winner was not the whole story.

A data grid benchmark is useful only when the fixture is boring, repeatable, and honest about what it does not measure. This one compares compatible React grids with the same deterministic 50,000-row dataset and publishes the raw samples.

Open the live benchmark Compare React grid choices

The benchmark starts with a deliberately boring grid

The fixture uses 50,000 deterministic rows, 20 fixed-width columns, a 1,200 by 600 pixel viewport, two editable columns, sorting, filtering, and virtual scrolling. There are no network requests, images, grouping, paid-only features, or dramatic demo tricks. That is intentional. A benchmark should isolate the rendering surface before it tries to explain a whole product.

Only compatible libraries belong in the leaderboard

The ranked table compares libraries that expose the same continuous 50,000-row virtualized surface. MUI X Data Grid Community is kept in the raw data and live fixture, but excluded from the ranked tables because its Community tier uses 100-row pagination for this workload. Mixing pagination and continuous virtualization would make the chart look cleaner and the evidence worse.

What the headline numbers actually mean

JS gzip is reachable JavaScript after gzip, not total application cost. Ready median measures navigation until the adapter mounts and two animation frames pass. Scroll settle measures one scripted vertical and horizontal jump plus animation frames, not sustained FPS. Mounted cells counts body cells in the DOM after the scroll. Each number is useful, but none of them is a product decision by itself.

The result was not a simple victory lap

React Data Grid wins the overall scorecard on this machine. Ace Grid does not win every category, and the report says so. The useful Ace Grid signal is different: it lands near the front of the compatible grid set while also offering a path from MIT Core into spreadsheet workflows, server-backed data, migration tooling, and structured AI output. Performance matters more when the product path is also credible.

Ace Grid vs AG Grid is the sharper comparison

The focused published-package run compares Ace Grid Core 1.0.15 with AG Grid Community across thirty alternating-order samples. On this machine, Ace Grid reached ready sooner, settled the scripted scroll sooner, and mounted fewer cells. That does not make AG Grid weak. AG Grid remains the mature default for many teams. It does make Ace Grid worth testing when the buyer wants a smaller staged adoption path.

Why mounted cells are not automatically good or bad

A low mounted-cell count usually reduces DOM work, but zero-buffer minimalism can expose blank edges during fast scrolling. A higher count may be acceptable when it improves perceived continuity or keeps complex cells stable. Treat mounted cells as a clue about rendering strategy, not a universal grade. The right overscan depends on viewport size, row height, custom renderers, and the way users actually scroll.

The benchmark does not replace your ugly screen

Before choosing any grid, build one unpleasant prototype: stable row IDs, a custom status renderer, editable money, invalid paste, keyboard navigation, selection, filters, pinned totals, horizontal and vertical scrolling, a delayed server response, a rejected save, and restored state. Then measure the code you had to own. The public benchmark tells you where to start; your worst workflow tells you what to ship.

How to use the numbers without fooling yourself

Use the benchmark to remove bad assumptions, not to outsource judgment. If a library is fastest but lacks a mandatory workflow, it still loses. If a broader grid is slightly slower but removes months of product glue, it may win. If procurement or migration risk dominates, performance may be the wrong first filter. The honest question is not which grid wins a chart. It is which grid survives your product.

Product evidence

Raw samples and source are public

The benchmark repository publishes package versions, measurement scripts, raw browser samples, methodology, limitations, and a live GitHub Pages report.

Compatible-only ranking

The report ranks only libraries that expose the same continuous virtualized 50,000-row workload. Pagination-limited adapters are disclosed separately.

Focused Ace Grid versus AG Grid run

A separate thirty-sample run compares Ace Grid Core 1.0.15 and AG Grid Community with alternating order and fresh browser contexts.

Live Ace Grid example

Benchmark fixture preview

A performance-oriented grid with rows, columns, viewport state, mounted cells, and measurement actions.

Visible rowViewportLoad stateCellsRenderAction
Row 12,480VisibleLive98092%Render
Row 12,481VisibleLive87089%Scroll
Row 12,482PrefetchReview33073%Load
Row 12,483PendingEscalate21058%Fetch

Run the benchmark locally

git clone https://github.com/Vitashev/react-data-grid-benchmark.git
cd react-data-grid-benchmark
npm ci
npm run benchmark
npm run benchmark:interaction
npm run report

Read the metrics before reading the leaderboard

Metric Why it matters What it does not prove
JS gzip Smaller reachable JavaScript can reduce download and parse cost Does not include CSS, application code, or feature depth
Ready median Useful for first interactive grid mount on this fixture Not a full page-load or backend measurement
Scroll settle Shows scripted jump-scroll responsiveness Not the same as long continuous-scroll smoothness
Mounted cells Highlights DOM pressure after virtualization Too little overscan can create visual gaps

Limitations and tradeoffs

  • Do not use this benchmark as a universal ranking for every product workload.
  • Do not compare pagination-limited and continuous-scroll adapters as if they measure the same surface.
  • Do not choose a grid from performance alone when licensing, workflow fit, accessibility, or migration risk is mandatory.

Common questions

Which React data grid won the benchmark?

React Data Grid won the overall scorecard on the measured machine. Ace Grid placed strongly in the compatible set and beat AG Grid Community in the focused published-package run on ready time, scripted scroll settle, and mounted cells.

Why is MUI X Data Grid Community excluded from the ranked tables?

Its Community tier uses 100-row pagination for this workload, so it does not expose the same continuous 50,000-row virtualized surface. The fixture and raw data remain available for transparency.

Can I use these results in procurement?

Use them as evidence, not as a final decision. Re-run the benchmark on your target hardware and build a production-shaped prototype with your real column types, renderers, validation, server behavior, and accessibility requirements.

Sources