eog slowdowns, glib question



Hello,

I've noticed some slowdowns in EOG when switching pictures (I'm using the image catalog at the bottom of the window). Most of the time the switching is very fast or fast enough with a progress bar, but sometimes (one time on 5 or 10) after the choosing the picture the progress bar appears but doesn't move and it takes quite some time for the picture to appear (enough to make compiz decide to change the eog window to black & white most of the time).

I've put debug statements in the code and the problem seems to occur between those two locations:

eog-job-queue.c in handle_job():

    g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
             (GSourceFunc) notify_finished,
             job,
             g_object_unref);

And:

eog-job-queue.c in notify_finished():
    eog_job_finished (EOG_JOB (job));

Most of the time is spent between those two lines (after the first one is ran and before the second one is reached).

    So it seems probably the main loop is busy I guess.
I tried to change the G_PRIORITY_DEFAULT_IDLE to G_PRIORITY_HIGH_IDLE and other priorities but then I'm getting warnings on the command-line (at runtime) and sometimes EOG freezes at startup (why!?).

Anyway those slowdowns are a bit annoying for me (athlon2600+/512Mb/10mpx pictures), I was wondering if you think there's something that can be done about them (I can try to code a solution maybe if you give me tips). Maybe stop the other tasks in the main loop to allow this loading to be done? But that would amount to increasing the priority, I don't understand why that doesn't work well.

    Thanks!

emmanuel


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]