First post here. Please let me begin by thanking the developers for building this awesome tool and the community for providing learning material!
I’m developing an app for my team of roughly 20-30 people. Currently, the app is hosted on one of the laptops in the office. The laptop is on 24/7 and pretty much idle most of the time.
When testing the app, we noticed it’s quite slow when multiple people are using it (queries, refreshing pages, etc) simultaneously. Is this normal? The users would use the IP address to visit the app via the intranet.
I’m aware that streamlit creates different sessions for users, but it seems those different sessions are all connected to the same python backend (single-threaded)?
For example, when person A runs something, followed by person B immediately runs something else. Then the backend runs the request sequentially (person A first, then person B), and not in parallel. It feels like there’s a “job queue” and the jobs have to run one by one for my application, but I’m not sure if that’s the right interpretation or if maybe there’s a problem in my setup/code.
My app is using @st.cache decorator when loading data from a sqlite database, then all other queries are performed on the fly (depending on user input) in pandas and plotted using pyecharts and plotly.
Since the dashboard will be shared among 20-30 people, it will be extremely slow if everyone has to wait until all other processes finish…any way to solve this? Thanks!