Bugzilla – Bug 9189
_addJiveSong causes slow statusQuery responses, especially without cover-art
Last modified: 2010-08-24 04:16:04 UTC
statusQuery -> _addJiveSong takes c. 1s per track on my 1GHz, slow-disk system. With a playlist of 15 or more songs this pretty-much consumes all the server resources. More details. The worst offender is the call to '$track->coverArtExists() ', which takes c. 84ms but only when the track does not have cover-art. If it has cover-art then there is no problem. The second expensive call is '$artistObj = $track->artist() ' which costs 11ms. On my 2.5GHz (Athlon 4800+ 64-bit dual-core) system with fast disks, these numbers are 10ms and 4ms respectively. Overall, _addJiveSong seems to be very expensive, especially given that it is called every 30s from every connected SBC. The status query is taking 110ms for a 15-track playlist with cover art on my fast system.
Yeah lots of room for improvement in the artwork code.
Alan: Is your recent patch to address this? Is this a 7.2 fix?
Yes, it does address that, but It feels rather risky to me to include in 7.2. I have only done minimal testing.
The artwork non-caching issue had been moved to bug 9400. The fact that Track::artist() is also expensive and relevant now covered in bug 9194. Unassigning and untargeting for reconsideration with respect to further issues