theia-trace-extension icon indicating copy to clipboard operation
theia-trace-extension copied to clipboard

Update view range during trace indexing

Open PatrickTasse opened this issue 1 year ago • 2 comments

While the trace context component updateTrace() loop is iterating, update the unit controller's view range if the current view range is the full range and the full range has changed.

If the user zooms the view range, it will stop updating to prevent snapping out of the user's view range. If the users zooms back out to the full range it will restart updating again.

After updateTrace() is complete, update the view range only if the current view range is the full range.

In TimegraphOutputComponent, use the analysis-running-overflow overlay while the analysis is running. Render the search bar only once the analysis is completed, to prevent unexplained stack overflow in the TextField's InputBase component.

Let the analysis-running-overflow pass through pointer events to the underlying layer.

PatrickTasse avatar Jul 05 '24 18:07 PatrickTasse

I tried this PR with a large trace. When I opened the trace, then the overview view shows an overlay "Analysis Running". When opening a view I see the same message. I'm not able to change the time range while the analysis is running. So, I'm not sure how to test this change and verify the changed behaviour.

Could you please describe how to test? If you have a video that you can share would also help.

bhufmann avatar Jul 12 '24 12:07 bhufmann

I'm testing your patch that allows for continuous update of views. When having a time graph view open and do some random zooming (with right mouse button and drag) and time selection (with left mouse button and drag) I get the following exception and the trace viewer panel looses all graphs. It doesn't happen in master because I can't zoom/select during analysis running:

I'm currently unable to explain this exception, but found that we can prevent it by waiting for analysis completion before rendering the search bar.

PatrickTasse avatar Aug 19 '24 13:08 PatrickTasse

The solution has been changed to initialize the view range only once, to prevent slowdown due to constant refresh of the time charts.

This PR should be used with the following changes in timeline-chart: https://github.com/eclipse-cdt-cloud/timeline-chart/pull/293 https://github.com/eclipse-cdt-cloud/timeline-chart/pull/294 https://github.com/eclipse-cdt-cloud/timeline-chart/pull/295

PatrickTasse avatar Sep 13 '24 18:09 PatrickTasse