Benchmarks
How does gp-grid performs compared to the available and well known grids
Date: 2026-01-11T18:35:49.890Z
Platform: linux
Node: v24.11.1
| Metric | Higher/Lower is Better |
|---|
| Avg FPS | ⬆️ Higher is better |
| Min FPS | ⬆️ Higher is better |
| Frame Drops | ⬇️ Lower is better |
| P95 FPS | ⬆️ Higher is better |
| Grid | Avg FPS | Min FPS | Frame Drops | P95 FPS |
|---|
| ag-grid | 87.08265322258761 | 58.479532163623254 | 0 | 78.37438790032886 |
| gp-grid | 73.39931365677035 | 55.24861875723972 | 0 | 66.05938229109331 |
| handsontable | 285.7 | 60 | 0 | 60 |
| tanstack-table | 80.05803776116485 | 57.47126436658565 | 0 | 72.05223398504837 |
| Grid | Avg FPS | Min FPS | Frame Drops | P95 FPS |
|---|
| ag-grid | 87.02196708852313 | 58.13953488368158 | 0 | 78.31977037967081 |
| gp-grid | 80.08334497124598 | 58.139534873647136 | 0 | 72.07501047412138 |
| handsontable | 333.1 | 60 | 0 | 60 |
| tanstack-table | 73.51809587801158 | 57.142857142857146 | 0 | 66.16628629021042 |
| Grid | Avg FPS | Min FPS | Frame Drops | P95 FPS |
|---|
| ag-grid | 60.12655564823211 | 58.8235294117647 | 0 | 54.1139000834089 |
| gp-grid | 71.38808826388417 | 54.644808752068535 | 0 | 64.24927943749576 |
| handsontable | 70.48941461287924 | 56.497175140648395 | 0 | 63.44047315159132 |
| tanstack-table | 87.05713617634078 | 57.80346820560307 | 0 | 78.3514225587067 |
| Metric | Higher/Lower is Better |
|---|
| First Paint | ⬇️ Lower is better |
| Full Render | ⬇️ Lower is better |
| LCP | ⬇️ Lower is better |
| TBT | ⬇️ Lower is better |
| Grid | First Paint | Full Render | LCP | TBT |
|---|
| ag-grid | 512ms | 369ms | 512ms | 165ms |
| gp-grid | 208ms | 113ms | 248ms | 0ms |
| handsontable | 400ms | 300ms | 400ms | 42ms |
| tanstack-table | 184ms | 343ms | 356ms | 69ms |
| Grid | First Paint | Full Render | LCP | TBT |
|---|
| ag-grid | 664ms | 600ms | 664ms | 371ms |
| gp-grid | 92ms | 270ms | 312ms | 111ms |
| handsontable | 192ms | 452ms | 192ms | 175ms |
| tanstack-table | 76ms | 678ms | 612ms | 410ms |
| Grid | First Paint | Full Render | LCP | TBT |
|---|
| ag-grid | 3220ms | 3161ms | 3220ms | 2928ms |
| gp-grid | 100ms | 1718ms | 1764ms | 1511ms |
| handsontable | 188ms | 1897ms | 188ms | 1633ms |
| tanstack-table | 76ms | 5111ms | 5040ms | 4839ms |
| Metric | Higher/Lower is Better |
|---|
| All timing metrics | ⬇️ Lower is better |
| Grid | Sort Asc | Sort Desc | Text Filter | Number Filter |
|---|
| ag-grid | 250ms | 277ms | 119ms | 188ms |
| gp-grid | 115ms | 98ms | 85ms | 93ms |
| handsontable | 109ms | 90ms | 113ms | 92ms |
| tanstack-table | 142ms | 134ms | 93ms | 74ms |
| Grid | Sort Asc | Sort Desc | Text Filter | Number Filter |
|---|
| ag-grid | 449ms | 318ms | 159ms | 168ms |
| gp-grid | 231ms | 209ms | 96ms | 90ms |
| handsontable | 163ms | 162ms | 352ms | 209ms |
| tanstack-table | 341ms | 332ms | 142ms | 72ms |
| Grid | Sort Asc | Sort Desc | Text Filter | Number Filter |
|---|
| ag-grid | 1940ms | 1829ms | 384ms | 351ms |
| gp-grid | 690ms | 703ms | 197ms | 178ms |
| handsontable | 1222ms | 1120ms | 3024ms | 1529ms |
| tanstack-table | 2759ms | 3915ms | 484ms | 192ms |
| Metric | Higher/Lower is Better |
|---|
| After Load | ⬇️ Lower is better |
| Peak | ⬇️ Lower is better |
| Growth Rate | ⬇️ Lower is better |
| Retained | ⬇️ Lower is better |
| Grid | After Load | Peak | Growth (MB/1K) | Retained |
|---|
| ag-grid | 18.37MB | 99.82MB | 1.241 | 2.57MB |
| gp-grid | 7.52MB | 39.17MB | 0.418 | 1.75MB |
| handsontable | 9.3MB | 14.91MB | 0.409 | 2.02MB |
| tanstack-table | 35.44MB | 143.43MB | 3.314 | 1.8MB |
| Grid | After Load | Peak | Growth (MB/1K) | Retained |
|---|
| ag-grid | 57.77MB | 201.16MB | 0.518 | 2.76MB |
| gp-grid | 30.44MB | 71.43MB | 0.271 | 1.79MB |
| handsontable | 37.41MB | 43.62MB | 0.322 | 2.28MB |
| tanstack-table | 295.41MB | 397.84MB | 2.931 | 289.67MB |
| Grid | After Load | Peak | Growth (MB/1K) | Retained |
|---|
| ag-grid | 451.81MB | 642.09MB | 0.446 | 2.81MB |
| gp-grid | 257.07MB | 315.76MB | 0.254 | 1.8MB |
| handsontable | 316.21MB | 324.41MB | 0.311 | 2.29MB |
| tanstack-table | 2896.87MB | 2996.4MB | 2.895 | 1.81MB |
- ⬆️ Higher is better - For these metrics, larger values indicate better performance
- ⬇️ Lower is better - For these metrics, smaller values indicate better performance
| Metric | Description |
|---|
| Avg FPS | Average frames per second during scroll |
| Min FPS | Minimum FPS observed (worst case) |
| Frame Drops | Number of frames that took >25ms |
| P95 FPS | 95th percentile FPS (excludes outliers) |
| First Paint | Time to first contentful paint |
| Full Render | Time until grid is fully interactive |
| LCP | Largest Contentful Paint |
| TBT | Total Blocking Time |
| After Load | Heap size after data is loaded |
| Peak | Maximum heap size during operation |
| Growth Rate | Memory increase per 1000 rows |
| Retained | Memory not released after clearing data |