The timeline plot of profiling data shows a bar chart with many bars, and matplotlib performance leaves something to be desired. So if you have a large run, then panning and zooming is very unresponsive. We currently limit the number of events that are shown in one go, and that help with the initial drawing, but now you cannot see all the data.
It would be better if we could dynamically load the events that are currently in range, getting new data from the database as needed when the user pans and zooms. There would still be missing data when zoomed out, but you could zoom in to see it.
[x] Load data dynamically
[x] Clearly show where events have been omitted from the plot
[x] Show a warning about that in the plot, rather than on the command line, and update dynamically
The timeline plot of profiling data shows a bar chart with many bars, and matplotlib performance leaves something to be desired. So if you have a large run, then panning and zooming is very unresponsive. We currently limit the number of events that are shown in one go, and that help with the initial drawing, but now you cannot see all the data.
It would be better if we could dynamically load the events that are currently in range, getting new data from the database as needed when the user pans and zooms. There would still be missing data when zoomed out, but you could zoom in to see it.