Some discussion has shown that BMF performance still can be improved. So here's my next tweak.

In 7.8 I improved performance by caching results, which sped up drilling down sub-folders considerably. But still, the initial reading of the folder could take too long, causing clients to time out. Using erland's 100k test collection on SSD on a MacBook Pro still caused LMS to spend >12s for the initial reading of the root's 7596 folders. It would have been even worse on a disk.

Most of that time would be spent on DB lookups, to get the complete track object. But this usually is not required for the full list of items, but only the few to be shown in the current page: 50 in the web UI, 200 at a time in SP and other clients. The initial filtering should only check whether a track is available in the DB, or create it if not. By replacing the expensive object lookup (Slim::Schema->objectForUrl()) with a simple SQL query the same folder now return within about 3s.

I yet have to run some real world tests on slower systems. But a long weekend is awaiting - time to head out :-).

Please give it a try yourself: git pull or wait for the next nightly builds. Test BMF after adding new tracks, too. Thanks!

--

Michael
_______________________________________________
beta mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/beta

Reply via email to