Currently `PlotModel.Update(...)` and `PlotModel.Render(...)` are called in one bundle inside `PlotControl.UpdateModelAndVisuals()`. Thus every invalidation forces also a rendering, what is limiting the performance (see attached current_architecture.png).
By separating invalidation and rendering, the data updates are not limited by the rendering speed. So it will be possible to update data more than 60 times (assumed 60fps rendering). As the plot model would only notify the plot control that it has been invalidated and should be rendered but does not need to wait for it to complete.
Comments: Yes, the other issue is a major refactoring of the PlotModel, this issue is probably much easier. But both are related to updates and rendering. I think this issue can be a good first step, and hopefully make step two (#10133) easier.
By separating invalidation and rendering, the data updates are not limited by the rendering speed. So it will be possible to update data more than 60 times (assumed 60fps rendering). As the plot model would only notify the plot control that it has been invalidated and should be rendered but does not need to wait for it to complete.
Comments: Yes, the other issue is a major refactoring of the PlotModel, this issue is probably much easier. But both are related to updates and rendering. I think this issue can be a good first step, and hopefully make step two (#10133) easier.