-
Notifications
You must be signed in to change notification settings - Fork 1.3k
JSON vs Arrow Client Performance #2995
-
Hi all, have put together a POC with a client mode data grid. Around 300k rows, 40 columns updated via json over websocket.
I am having a bit of scrolling slowness with the mouse (seems better with moving via scroll bar however).
I was wondering if there would be better rendering performance if I was to switch the server to push arrow buffers to the front end instead of json? There is not too much in the docs on the performance improvements between approaches. I assume chrome will use less memory for the grid, but I am more concerned with UI responsiveness. Using latest 3.x release.
Many thanks.
Beta Was this translation helpful? Give feedback.
All reactions
JSON vs Arrow JavaScript Table constructor performance from the OSS CI benchmarks (raw)
Likely yes, but I would need to see your implementation - there can be more than one reason things are slow and scrolling for 300k rows in Perspective should be quite fast. Updating via serialized Arrow IPC encoded ArrayBuffer batches is more efficient than doing so from JSON strings (worse) or JavaScript Objects (much worse), and should also utilize far less of your browser's main thread (used otherwise for rendering).
You can test this pretty easily using Perspective's Client/Server replicated mode (which uses Arrow deltas to sync).
Replies: 1 comment
-
JSON vs Arrow JavaScript Table constructor performance from the OSS CI benchmarks (raw)
Likely yes, but I would need to see your implementation - there can be more than one reason things are slow and scrolling for 300k rows in Perspective should be quite fast. Updating via serialized Arrow IPC encoded ArrayBuffer batches is more efficient than doing so from JSON strings (worse) or JavaScript Objects (much worse), and should also utilize far less of your browser's main thread (used otherwise for rendering).
You can test this pretty easily using Perspective's Client/Server replicated mode (which uses Arrow deltas to sync).
Beta Was this translation helpful? Give feedback.