http://bugs.gpodder.org/show_bug.cgi?id=144

           Summary: CoverDownloaded slows things down
           Product: gPodder
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: low
         Component: Application
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]
   Estimated Hours: 0.0


Created an attachment (id=105)
 --> (http://bugs.gpodder.org/attachment.cgi?id=105)
Request covers only when necessary

Covers are downloaded for all channels in gui.py updateComboBox(), which is
called from update_feed_cache_finish_callback(), download_podcast_by_url(),
download_podcast_by_url(), download_podcast_by_url() and other places.

I might be wrong, but it looks like all channel covers are renewed upon almost
every event, like "an episode was downloaded" or when an episode pop-up menu
action was fired.

I think this degrades performance.  Even if the covers are not actually
downloaded, this is still a huge amount of work, because (1) there can be lots
of channels, and (2) every call to services.cover_downloader.request_cover() is
a new thread.  The latter is especially bad because there's no real threading
in Python.

I think the covers should only be updated when the channel is.  I attach a
patch that implements this.  There was some related code in channels_to_model()
already -- I uncommented it.  I also moved some calls to request_cover() from
gui.py to podcastChannel.update() and added some checks whether the cover
really needs to be downloaded, to avoid excessive threads.

This patch works for me, but please test, conditions may vary.


-- 
Configure bugmail: http://bugs.gpodder.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
_______________________________________________
gPodder-Bugs mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/gpodder-bugs

Reply via email to