Feature #21651
closedUse virtual lists for panels with large amounts of text
Description
From discussion:
Virtual lists significantly improves performance of the I/O panels, but it turns out the "JSON" I/O tab and "Command" process panel are still very slow when they start to become very large.
These are "CodeSnippet" controls.
These are good candidates to be virtualized because the main prop is the "lines" array and they are monospace text of fixed height.
Create a "VirtualCodeSnippet" that has the same interface but uses a virtual list, and use that for the JSON I/O tab and Command panel.
Updated by Stephen Smith 10 months ago
- Related to Bug #21508: Browser struggles with very large number of input or output parameters added
Updated by Stephen Smith 9 months ago
Changes at arvados|4d892bd66c5d11d8cbde42348099e92da0c21a99 branch 21651-cmd-card-virtual-list
Tests developer-run-tests-services-workbench2: #692
- All agreed upon points are implemented / addressed.
- Added virtual code snippet, implemented in cmd card
- Added on demand line formatting to virtual code snippet
- Added custom copy to clipboard component to use callback to format and fetch copied text on demand using callback
- Implemented virtual list in json tab
- Updated unit tests, browserdb, removed warnings
- Anything not implemented (discovered or discussed during work) has a follow-up story.
- none
- Code is tested and passing, both automated and manual, what manual testing was done is described
- Passes automated tests, manually tested with many rows
- Documentation has been updated.
- n/a
- Behaves appropriately at the intended scale (describe intended scale).
- works well at 400K lines
- Considered backwards and forwards compatibility issues between client and server.
- n/a
- Follows our coding standards and GUI style guidelines.
- no changes
Updated by Peter Amstutz 9 months ago
Stephen Smith wrote in #note-6:
Changes at arvados|4d892bd66c5d11d8cbde42348099e92da0c21a99 branch 21651-cmd-card-virtual-list
Tests developer-run-tests-services-workbench2: #692
- All agreed upon points are implemented / addressed.
- Added virtual code snippet, implemented in cmd card
- Added on demand line formatting to virtual code snippet
- Added custom copy to clipboard component to use callback to format and fetch copied text on demand using callback
- Implemented virtual list in json tab
- Updated unit tests, browserdb, removed warnings
- Anything not implemented (discovered or discussed during work) has a follow-up story.
- none
- Code is tested and passing, both automated and manual, what manual testing was done is described
- Passes automated tests, manually tested with many rows
- Documentation has been updated.
- n/a
- Behaves appropriately at the intended scale (describe intended scale).
- works well at 400K lines
- Considered backwards and forwards compatibility issues between client and server.
- n/a
- Follows our coding standards and GUI style guidelines.
- no changes
This is great, I tried out stress test container request and it works very well, loads almost immediately and is perfectly performant instead of causing the browser to struggle and stutter. Huge, huge improvement, thank you. Please merge.
Updated by Stephen Smith 9 months ago
- Status changed from In Progress to Resolved
Applied in changeset arvados|31f0010ed0833ff91600cd8ce31d4df1847882cc.