digiKam takes up lots of CPU while rebuilding thumbnails, process should be given lower priority

Bug #243225 reported by tdn
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
digiKam
Invalid
Wishlist
digikam (Ubuntu)
Invalid
Wishlist
Unassigned

Bug Description

Binary package hint: digikam

When digiKam rebuilds thumbnails it takes up 100% CPU in very long time.

I think that it would be nice if the process that handles the thumbnailing is being automatically reniced to 10 or some other priority that is a bit lower than default. That way slow systems will still be responsive while thumbnails are being generated.

Revision history for this message
In , dhjt (d-h-j-takken) wrote :

Version: 0.7.3 (using KDE KDE 3.4.1)
Installed from: Gentoo Packages
OS: Linux

When I open a album and start a OpenGL slideshow, the slideshow does not run smoothly because the thumb generation process consumes too many resources. The only solution seems waiting until all thumbs are generated before starting a slideshow.

Please lower the process priority of the thumbnail generation process.

Revision history for this message
In , rainer (krienke) wrote :

If low priority should be implemented it should be an option. I run my system (P4, 3GHZ) in dynamic mode i.e. the CPU speed is scaled down to keep the system silent if there is nothing to do. When there is nothing to do for the cpu it runs at a Speed of 1GHZ producing less heat than with 3GHZ and less noise. When there is something to do the system automatically scales up to the full speed of 3GHZ and down again if there is no active process.

The problem is, that this scaling process to full speed happens only if the process is *not* running at a low nice level. So when thumb generation happens at a low nice level I would have the problem that the thumb generation is very very slow since it would be performed with 1GHZ speed instead of 3GHZ used now.

Revision history for this message
In , Caulier-gilles-9 (caulier-gilles-9) wrote :
Download full text (3.8 KiB)

SVN commit 578815 by cgilles:

digikam from trunk : When the Exif auto-rotation option is canged in setup dialog, digiKam ask now to user if the new batch tool to re-generate all albums items thumbnails must be started to refresh thumbs database.

CCBUGS: 127179, 110658, 128308

 M +16 -0 setup.cpp
 M +25 -5 setupmetadata.cpp
 M +4 -1 setupmetadata.h

--- trunk/extragear/graphics/digikam/utilities/setup/setup.cpp #578814:578815
@@ -30,11 +30,13 @@

 #include <klocale.h>
 #include <kiconloader.h>
+#include <kmessagebox.h>
 #include <kconfig.h>
 #include <kapplication.h>

 // Local includes.

+#include "batchthumbsgenerator.h"
 #include "setupgeneral.h"
 #include "setupmetadata.h"
 #include "setupidentity.h"
@@ -214,6 +216,20 @@
     d->slideshowPage->applySettings();
     d->iccPage->applySettings();
     d->miscPage->applySettings();
+
+ if (d->metadataPage->exifAutoRotateAsChanged())
+ {
+ QString msg = i18n("The Exif auto-rotate thumbnails option has been changed.\n"
+ "Do you want to rebuild all albums items thumbnails now?\n\n"
+ "Note: thumbnails processing can take a while!");
+ int result = KMessageBox::warningYesNo(this, msg);
+ if (result != KMessageBox::Yes)
+ return;
+
+ BatchThumbsGenerator *thumbsGenerator = new BatchThumbsGenerator(this);
+ thumbsGenerator->exec();
+ }
+
     close();
 }

--- trunk/extragear/graphics/digikam/utilities/setup/setupmetadata.cpp #578814:578815
@@ -58,6 +58,7 @@

     SetupMetadataPriv()
     {
+ ExifAutoRotateAsChanged = false;
         saveCommentsBox = 0;
         ExifRotateBox = 0;
         ExifSetOrientationBox = 0;
@@ -68,6 +69,9 @@
         saveCreditsIptcBox = 0;
     }

+ bool ExifAutoRotateAsChanged;
+ bool ExifAutoRotateOrg;
+
     QCheckBox *saveCommentsBox;
     QCheckBox *ExifRotateBox;
     QCheckBox *ExifSetOrientationBox;
@@ -163,16 +167,18 @@

     mainLayout->addWidget(hbox);
     mainLayout->addStretch();
+ mainLayout->addWidget(this);

+ readSettings();
+ adjustSize();
+
     // --------------------------------------------------------

     connect(exiv2LogoLabel, SIGNAL(leftClickedURL(const QString&)),
             this, SLOT(processExiv2URL(const QString&)));

- readSettings();
- adjustSize();
-
- mainLayout->addWidget(this);
+ connect(d->ExifRotateBox, SIGNAL(toggled(bool)),
+ this, SLOT(slotExifAutoRotateToggled(bool)));
 }

 SetupMetadata::~SetupMetadata()
@@ -207,7 +213,8 @@
     AlbumSettings* settings = AlbumSettings::instance();
     if (!settings) return;

- d->ExifRotateBox->setChecked(settings->getExifRotate());
+ d->ExifAutoRotateOrg = settings->getExifRotate();
+ d->ExifRotateBox->setChecked(d->ExifAutoRotateOrg);
     d->ExifSetOrientationBox->setChecked(settings->getExifSetOrientation());
     d->saveCommentsBox->setChecked(settings->getSaveComments());
     d->saveDateTimeBox->setChecked(settings->getSaveDateTime());
@@ -217,6 +224,19 @@
     d->saveCreditsIptcBox->setChecked(settings->getSaveIptcCredits(...

Read more...

Revision history for this message
In , Andi-clemens (andi-clemens) wrote :

What about this report? Still valid? For me it runs smooth, but of course my hardware is newer then the one of the creation date of the bugreport :-)

Revision history for this message
In , Caulier-gilles-9 (caulier-gilles-9) wrote :

Same for me. Also, in KDE4, we use multithreading, not a kio-slave for previewing.

In all case, we will be able to adjust thread priority if necessary.

Marcel,

What do you mean to add a new settings for preview thread priority (like in Gwenview, if i'm not too wrong)

Gilles Caulier

Changed in digikam:
importance: Undecided → Wishlist
Revision history for this message
In , Caulier-gilles-9 (caulier-gilles-9) wrote :
Revision history for this message
In , Marcel-wiesweg (marcel-wiesweg) wrote :

Yes this is always an option, if we want.
If we are creating thumbnails with the batch tools we can use this of course.
For the thumbnail loading thread for the main icon view, thumbbars or album sidebars we should not decrease priority because loading thumbnails there is directly needed by the user.

FriedChicken (domlyons)
Changed in digikam (Ubuntu):
status: New → Confirmed
Revision history for this message
Luka Renko (lure) wrote :

This bug is already tracked in upstream bug tracker.

Changed in digikam (Ubuntu):
status: Confirmed → Triaged
Changed in digikam:
status: Unknown → Confirmed
Changed in digikam:
importance: Unknown → Wishlist
Revision history for this message
In , Caulier-gilles-9 (caulier-gilles-9) wrote :

*** Bug 291436 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Throwaway-w (throwaway-w) wrote :

Well, this bug is almost seven years old ;).

Revision history for this message
Rohan Garg (rohangarg) wrote :

Thanks for reporting this bug.
This is being tracked upstream, as soon as they implement this feature, it'll land in Kubuntu.

Changed in digikam (Ubuntu):
status: Triaged → Invalid
Revision history for this message
In , Caulier-gilles-9 (caulier-gilles-9) wrote :

Since multi-core computers are available everywhere, and as we have a maintenance tool dedicated to recompute all thumbnails, this entry do not have a sense for me.

In others words, thumbnails processing do not block GUI anymore using current implementation from git/master...

Gilles Caulier

Changed in digikam:
status: Confirmed → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.