Project

General

Profile

Actions

Feature #21651

closed

Use virtual lists for panels with large amounts of text

Added by Peter Amstutz about 1 month ago. Updated about 1 month ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Workbench2
Story points:
-
Release relationship:
Auto

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.


Subtasks 1 (0 open1 closed)

Task #21655: ReviewResolvedPeter Amstutz04/08/2024Actions

Related issues

Related to Arvados - Bug #21508: Browser struggles with very large number of input or output parametersResolvedStephen SmithActions
Actions #1

Updated by Peter Amstutz about 1 month ago

  • Description updated (diff)
Actions #2

Updated by Peter Amstutz about 1 month ago

  • Description updated (diff)
Actions #3

Updated by Stephen Smith about 1 month ago

  • Related to Bug #21508: Browser struggles with very large number of input or output parameters added
Actions #4

Updated by Stephen Smith about 1 month ago

  • Status changed from New to In Progress
Actions #5

Updated by Peter Amstutz about 1 month ago

  • Release set to 69
Actions #6

Updated by Stephen Smith about 1 month 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
Actions #7

Updated by Peter Amstutz about 1 month 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.

Actions #8

Updated by Stephen Smith about 1 month ago

  • Status changed from In Progress to Resolved
Actions

Also available in: Atom PDF