Performance: late previous-playlist load

Nanno Langstraat langstr at gmail.com
Wed Apr 14 15:24:00 CEST 2010


Something that irks me about starting Amarok is the long delay before 
the MainWindow shows, particularly if you have a large playlist.

When I start Amarok on my "Media" virtual desktop, I can't switch to my 
"Work" virtual desktop to do something useful until MainWindow shows and 
X11 locks it to the right virtual desktop. That takes 13 seconds; an 
annoyance.

I did an experiment a while ago where the previous playlist was loaded 
on a QTimer::singleShot() instead of during the constructors.

I think that with a recent patch from Nikil Marathe / Nikolaj, Amarok 
now contains all the patches necessary to do that.


----
Timings: with my 8000-track playlist, the time for MainWinow to show 
goes from 13 to 3.5 seconds, which is "tolerable" territory.

MainWindow then "freezes" (stays blank) for 9 seconds while it loads the 
playlist, but I'm liberated to do something else.

Could keep the Splash Screen up during that time. Future elaboration: 
load the playlist in a background thread.


----
Some minor points:

    * The QTimer call needs to go at the end of 'App::continueInit()' in
      App.cpp.
      If you start the QTimer in PlaylistActions, it triggers too soon.

    * It allows us to get rid of some constructor ordering trickery,
      e.g. forced early init of The::playlistManager().

    * In Dynamic Playlist mode, new tracks will be chosen before
      'restoreDefaultPlaylist()' gets the chance to run.



----
What do you think of this?

    Cheers,
    Nanno

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/amarok-devel/attachments/20100414/a8d21e37/attachment.htm 


More information about the Amarok-devel mailing list