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