Skip to content

Repository files navigation

JavaScript data grid performance comparison

A performance comparison of seven popular JavaScript data grid components. Measures the initial rendering time and scroll performance for the following data grids:

To set each grid up, please see the README.md files in the corresponding folders.

Methodology

To make comparison as fair as possible the following actions were taken:

  • All grids have additional features (such as grouping, sorting) turned off.
  • The same dataset consisting of an array of 10,000 JSON objects is used throughout.
  • Grids was configured with the same set of columns, with custom cell renderers matching each other as close as possible. Measurements where taken once for a grid with locked/fixed/pinned columns and once without.
  • All use the same size on their container: 1280 x 1024 px.
  • Scrollbars where turned on.

Measurements where taken using the same approach and same code for the different grids:

  • Timer for initial rendering started after page and data has loaded, before grid instance is created and populated with the data. Timer stopped when grid is completely rendered, which for some grids is a sync operation while others requires listening for an event.
  • Scroll FPS measured by using a JS frame counter and changing scroll programmatically. Time taken to reach a predefined scroll distance was measured and used to calculate an average FPS value.

Results

All measurements taken on a 2016 MacBook Pro 13-inch (2 GHz Intel Core i5, 8GB RAM).

GridL: Initial renderingL: Average FPSU: Initial renderingU: Average FPS
Ag-grid219 ms53 fps210 ms57 fps
Bryntum112 ms59 fps104 ms60 fps
DevExtreme256 ms29 fps216 ms38 fps
DHTMLX62 ms19 fps55 ms25 fps
ExtJS Modern358 ms54 fps281 ms59 fps
ExtJS Classic211 ms44 fps179 ms44 fps
ComponentatorNot supportedNot supported1122 ms31 fps
Webix32 ms59 fps*34 ms60 fps*

L = With locked/pinned/fixed columns, U = Without

  • Webix does not use native scrolling, it scrolls one row at the time which makes it easier for the browser to keep up. As opposed to others where a flick scroll might jump tens or hundreds of rows at the time. Upside, no whiteouts. Downside, cannot flick scroll to go faster.

The full set of results can be viewed in this Google Sheet

About

Performance comparison for JavaScript data grid components

Topics

Resources

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages