Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JSON vs Arrow Client Performance #2995

Answered by texodus
StevenCurran asked this question in Q&A
Discussion options

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.

You must be logged in to vote

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

Comment options

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).

You must be logged in to vote
0 replies
Answer selected by StevenCurran
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet

AltStyle によって変換されたページ (->オリジナル) /