Clementine-audio-player-Mac.../src
Simeon Bird 09e839353e Speed up playlist restoring by moving sqlite query off main thread
The playlist fetching uses QtConcurrent to make the playlist on a
different thread (possibly concurrently for each item).
However, profiling reveals that the slow operation is fetching
the rows from the SQLite database, making this redundant.

Instead move the whole playlist loading, including the database access,
into a single function, and call that function in a different thread via
QtConcurrent::run.

This has the side effect of moving all the concurrent stuff from
PlaylistBackend into the callers.

kstartperf measures:

Before: 7.5s cold
        3.6 s warm

After: ~4.0 s cold
       3.5 s warm
2014-12-09 12:47:37 -05:00
..
analyzers Fix some errors in src/analyzers introduced while fixing cpplint.py errors 2014-11-29 21:05:59 +01:00
core Fix cpplint.py errors, fix copyright notices in src/analyzers, move src/core/fht* to src/analyzers 2014-11-29 20:07:01 +01:00
covers Remove temporary cover-art from /tmp on exit. Fixes #4349 2014-05-15 16:21:19 +10:00
dbus Implement MediaPlayer2.Playlists from MPRIS2. 2012-10-11 15:38:51 +02:00
devices Make format 2014-11-05 13:05:58 +01:00
engines Revert "Use constructor for QString and make format" 2014-11-05 12:25:09 +01:00
globalsearch Also add internet_service method for other search providers which have a internet services. 2014-12-03 22:33:29 +01:00
internet Add Spotify tracks to Spotify playlists by drag and drop 2014-12-03 23:58:09 +01:00
library Revert "Use constructor for QString and make format" 2014-11-05 12:25:09 +01:00
mac Open the right part of the system preferences for global shortcuts on Mavericks. 2014-04-02 16:27:07 +02:00
moodbar Make format after update to avoid conflicts 2014-10-15 21:57:57 +02:00
musicbrainz Sort music brainz releases according to status 2014-12-06 17:54:13 +01:00
networkremote Cancel transcode when downloader disconnects. 2014-11-18 11:55:27 +01:00
playlist Speed up playlist restoring by moving sqlite query off main thread 2014-12-09 12:47:37 -05:00
playlistparsers Fix accents issue in when save playlist in xspf format 2014-11-30 10:36:36 +01:00
podcasts Set ctime and mtime in Song returned by PodcastEpisode::ToSong 2014-11-30 15:49:13 +01:00
smartplaylists Some more NULL -> nullptr conversions. 2014-02-21 17:30:46 +01:00
songinfo Use nullptr as parent parameter default everywhere 2014-02-10 16:03:54 +01:00
transcoder Remove async bus callback from transcoder. This caused the UI to get unresponsive after a song was converted. 2014-11-14 23:50:59 +01:00
translations Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-12-01 10:01:25 +01:00
ui Network remote can now transcode lossless files before sending them to the remote. 2014-11-13 22:31:49 +01:00
visualisations Merge branch 'master' into gstreamer-1.2 2014-06-09 16:20:24 +10:00
widgets Added a preference to disable the pause notification. Fixes #2450. 2014-09-16 12:54:35 +02:00
wiimotedev Use nullptr as parent parameter default everywhere 2014-02-10 16:03:54 +01:00
CMakeLists.txt Fix cpplint.py errors, fix copyright notices in src/analyzers, move src/core/fht* to src/analyzers 2014-11-29 20:07:01 +01:00
config.h.in Use the system's sha2 library if it's available. Fixes #4217 2014-09-25 23:51:46 +10:00
main.cpp Set log levels after commandline options are parsed. Fixes --verbose, --quiet and --log-levels 2014-10-04 21:22:29 +10:00
version.h.in Create a 1.0 release branch, and rework the way version numbers are done everywhere. 2011-12-02 14:48:19 +00:00