-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/112417/
-----------------------------------------------------------

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

_______________________________________________
Amarok-devel mailing list
Amarok-devel@kde.org
https://mail.kde.org/mailman/listinfo/amarok-devel

Reply via email to