I have a performance issue I would like to share with the hope to get some pointers about how to situation could be improved.
Ideally I would get a list of best practices related to performance when using Bokeh (do this, do not do this kind of list).
Scenario:
- We want to display plots in three different tabs (let us call these A, B and C, marked with pink arrows in the picture).
- Only the contents of a single tab is visible at a time (the selected tab).
- Each of these tabs have their own CDS.
- Each plot in a given tab uses an IndexFilter to decide what it should display.
- To give an idea of the amount of data we are dealing with a CDS can look like these:
- CDS column count: 3966.
- CDS Row count: 69.
- Plot count: 44.
- The Plots are arranged in two columns (Bokeh layout).
- The plots are created lazily, that is when a tab is selected.
- When tab A is selected then the plots of A are loaded etc.
Current situation:
- If we just select a single tab the interaction with the plots (like clicking on a sample) is okay.
- If we select all tab once (so all plots have been created) the interaction degrades a lot.
- It seems to me that if we pay a big price in terms of performance just by creating plots even though they are not visible.
Concrete question:
- Can I somehow temporarily unlink/hide/disable (or similar) the plots for the tabs that are currently not visible?
I understand you might need an example to go deeper. That being said, I was hoping there are some general best practices related to performance that some of you are willing to share or link to?



