Review Request 112417: FIX: 283022 - Performance with large feed (6000 items) very poor
Commit Hook
null at kde.org
Sun Sep 8 18:29:16 UTC 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/112417/
-----------------------------------------------------------
(Updated Sept. 8, 2013, 6:29 p.m.)
Status
------
This change has been marked as submitted.
Review request for Amarok.
Description
-------
Using callgrind it was very visible that amarok is spending an enormous amount of time to turn podcast episodes into tracks.
Initially i noticed that the PlaylistBrowserModel is calling Playlist::tracks().count() while it should be calling Playlist::trackCount().
Constructing a list of tracks is expensive for the case of Podcasts (as internally podcast episodes are converted into tracks which
get added to a new list). This change already improved the situation a bit, but the UI was still sluggish. Callgrind was still showing
that we are turning episodes into tracks - over and over.
To fix that i added a cache to the PodcastChannel. As long as the episodes haven't changed, there is no point in constructing
a new list of tracks each time tracks() is called.
With that second fix the UI is now pretty useable.
Diffs
-----
src/browsers/playlistbrowser/PlaylistBrowserModel.cpp 281694a
src/core-impl/podcasts/sql/SqlPodcastMeta.h 02a18d3
src/core-impl/podcasts/sql/SqlPodcastMeta.cpp 20bcaff
Diff: http://git.reviewboard.kde.org/r/112417/diff/
Testing
-------
Tested with http://www.justing.com.cn/justpod/justpod_ch.xml
Thanks,
Frank Meerkoetter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/amarok-devel/attachments/20130908/1963e52f/attachment.html>
More information about the Amarok-devel
mailing list