Slow dashboard with multiple graphs

I’m using panel dashboard for data analysis, so I use multiple linked selectors to display images and to show 3 graphs and in each graph there are more than one curve. The problem is that the dashboard is really very slow. It took 1,32 minutes to load the dashboard and it took more than 2 minutes to update the results after changing the selector’s value.


However, when I plot a single curve in each graph the dashboard becomes faster in loading and in results updating . I’m wondering if there is a way to fix it ?
Thank you!

1 Like

Hi @monadhif

That looks like a very nice application.

It can be very difficult to suggest any cause without knowing the code. My advice would be to make a copy (or seperate branch) of you application and then start removing functionality from your application one small step at the time. For each step you check if it changed the performance.

You will either identify the cause there or end up with a minimum reproducible example you can post here. Then its much easier for the community to provide help.

Thanks.

1 Like

Thank you for your reply!
The problem was using Matplotlib to show the images without setting the right Matplotlib’s backend.

1 Like

Could you please explain how you ended up fixing it? I have similar issue with my dashboard but I use holoviews (hvplots) to create all my plots. Whenever I select a signal I want to plot from my list of dropdown, it takes 5-10s to show the plot results. Thank you in advance! @Marc @monadhif

Try wrapping hv.DynamicMap Performance of DynamicMap vs Panel (param.Parameterized)

1 Like

Could you please elaborate on what you referred to? :slight_smile:

“”"
The DynamicMap approach is always going to be more optimized than using Panel param support since HoloViews automatically figures out a minimal diff to apply to the plot while Panel+Param generally triggers a full re-render of the plot. You can in fact use the exact syntax for both however, e.g. this is valid (pseudo-code):

“”"

https://pydeas.readthedocs.io/en/latest/holoviz_interactions/tips_and_tricks.html#Wrap-DynamicMap-around-Panel-methods-to-maintain-extents-and-improve-runtime

1 Like

Thank you! Have you come across any good example that compares param and DynamicMap?

In which aspect?

I was using hvplot to plot all the graphs and I noticed that it took a lot of time comparing to plotly or matplotlib. So, I switched to matplotlib and setting the matplotlib back-end to "matplotlib.use(‘agg’)".