A sane implementation would provide pagination so that only a subset of the entries are loaded and returned each time for display. Pagination can be in the form of page numbers (like Google search results) or on-the-fly loading where further results are fetched as you scroll to the end of the page (like Facebook). If Volumio simply fetches and returns all albums in one go, then you can expect the response time to be slow with a library of your size. Basically this is what happens when you select Albums (someone correct me if I’m wrong):
- Volumio fetches data for all 7890 albums
- Volumio sends this data to the browser
- For each album, the browser queries Volumio for the album artwork (i.e. 7890 requests made within a short interval)
- Volumio fetches artwork and returns it to the browser (i.e. 7890 responses)
- Browser displays album data and artwork (all on a single page)
So there’s considerable load on the Volumio device, network and browser. All this contributes to the slow response time.
Subsequent loading of the same pages should be faster because of caching, but remember the browser would still have to handle 7890 objects even when they are loaded from cache, so response time would still be far from ideal.
I have around 900 albums and use Jellyfin running on a separate device for library management. You might want to check it out. You can cast audio to the Volumio device through the web interface Jellyfin provides (which is way way better than Volumio’s), or use the plugin that I wrote.