Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add UX for common notebook renderer performance issues #170309

Open
sbatten opened this issue Dec 30, 2022 · 2 comments
Open

Add UX for common notebook renderer performance issues #170309

sbatten opened this issue Dec 30, 2022 · 2 comments
Assignees
Labels
feature-request Request for new features or functionality notebook perf
Milestone

Comments

@sbatten
Copy link
Member

sbatten commented Dec 30, 2022

Continuing the work started in #154873, @rebornix and I have identified a few common scenarios where we can smartly detect issues and direct the user to filing meaningful reports.

@sbatten sbatten added this to the January 2023 milestone Dec 30, 2022
@sbatten sbatten added the feature-request Request for new features or functionality label Dec 30, 2022
@sbatten
Copy link
Member Author

sbatten commented Jan 13, 2023

Here are the results of our discussion:

2 Scenarios to focus on for now:

  • File Open
  • Run Cell

For file open, we currently warm up markdown renderers and their rendered output before rendering the notebook, this makes markdown cells stable on first load. However, for output cells, we do not warmup and the renderers can take any amount of time causing some amount of flicker on load. In order to reduce flicker, we propose allowing some small amount of time for warming up the outputs say up to 250ms. In performant cases, this will mean no flicker for the user. In other case, it will be the similar to today. In that case, it would be nice to measure and display the renderer time and allow users to see and report it. No ideas yet have been proposed on how to show this.

For cell execution, there are several markers in time which we consider. The flow is as follows:

  1. User clicks Run Cell
  2. Cell is pending execution (no timer in UI)
  3. Kernel starts executions (timer starts in UI)
  4. Kernel finishes execution (timer still running in UI)
  5. VS Code process kernel results (timer is showing elapsed time 3-5, timer in UI is updated to Kernel execution time 3-4)
  6. Output renders execute and update outputs
  7. Outputs are done rendering

We are concerned with 2 timespans:

  1. VS Code Processing Time (span between 4 and 5)
  2. Output Rendering Time (span between 5 and 7)

Our proposal is to detect when these times are above a threshold and indicate this to the user with a non-intrusive warning icon near the timer. Hovering this icon will reveal our stats and allow them to file an issue on the appropriate repo.

@sbatten
Copy link
Member Author

sbatten commented Feb 17, 2023

First steps merged here #171888

@sbatten sbatten modified the milestones: March 2023, Backlog Mar 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request Request for new features or functionality notebook perf
Projects
None yet
Development

No branches or pull requests

2 participants