https://bugs.kde.org/show_bug.cgi?id=391115

--- Comment #5 from Michał Karwowski <pro...@gmail.com> ---
(In reply to Michał Karwowski from comment #4)
> Thanks for 'DebugView' - I didn't know such tool exists.
> 
> I made more detail research on the problem.
> 
> 
> To be precise, my total media count from DigiKam database stats is about
> 108012.
> (I didn't add all folders to DigiKam)
> 
> When I run the application I see in a log:
> [8144] digikam.database: Search result: 1512168
> 
> But: "1 512 168" is much more than "108 012"!
> Strange.. what does it mean?
> 
> 
> ==========================
> ==========================
> Text filter (available on the right) 
> ==========================
> ==========================
> 
> The problem with speed appears to be related to "Text filter" which I use.
> Filtering pictures with that filter takes from 20 seconds to 3 minutes.
> 
> DebugView doesn't show logs for database on "text filter".
> Thus now, I believe that's it's not related to database engine,
> but rather internal filtering system.
> 
> Filter query: 'tajlandia' took 2 minutes 31 seconds (to display results -
> 8586 items).
> Filter query: 'żaba' took 1 minute 25 seconds (to display results - 1862
> items).
> etc.
> Clearing filter also takes lots of time.
> 
> I did tests with offline and online albums.
> By term offline I mean disconnected USB drive with albums.
> By term online I mean connected USB drive with albums.
> Measurements I have don after the inilial digikam scan.
> 
> 
> ==========================
> ==========================
> Search (available on the left) 
> ==========================
> ==========================
> When I use search I see digikam.database logs on DebugView.
> This suggests that for searching database query is made in contrast to
> filtering.
> 
> To be clear I use: digiKam  5.8.0 with mariadb 10.2.10 winx64
> 
> ........................
> Query for: "gosia" (164794 results?)
> ........................
> 00001448      21:55:15        [10424] digikam.general: keywords changed to ' 
> "gosia" '        
> 00001449      21:55:15        [10424] digikam.geoiface: ----  
> 00001450      21:55:15        [10424] digikam.geoiface: ----  
> 00001451      21:55:15        [10424] digikam.geoiface: ----  
> 00001452      21:55:15        [10424] digikam.general: Using  8  CPU core to 
> run threads      
> 00001453      21:55:15        [10424] digikam.general: Action Thread run  1  
> new jobs 
> 00001454      21:55:15        [10424] digikam.database: " ( (  
> (Albums.relativePath LIKE
> ?) OR (Images.name LIKE ?) OR (Images.id IN    (SELECT imageid FROM
> ImageTags     WHERE tagid IN    (SELECT id FROM Tags WHERE name LIKE ?))) OR
> (Albums.caption LIKE ?) OR (Albums.collection LIKE ?) OR (Images.id IN 
> (SELECT imageid FROM ImageComments   WHERE type=? AND comment LIKE ?)) OR
> (Images.id IN  (SELECT imageid FROM ImageComments   WHERE type=? AND comment
> LIKE ?))  ) ) "       
> 00001455      21:55:15        [10424] digikam.database: Search query: 
> 00001458      21:55:16        [10424] digikam.database: Search result: 164794 
> # Result is ready but not visible
> 
> 00001459      21:55:19        [10424] digikam.general: Cancel Main Thread     
> 00001507      21:55:22        [10424] digikam.general: One job is done        
> 00001508      21:55:24        [10424] digikam.general: Cancel Main Thread     
> 00001509      21:55:45        [10424] digikam.geoiface: ----  
> 00001512      21:55:50        [10424] digikam.general: keywords changed to ' 
> "gosia" '        
> 00001513      21:55:50        [10424] digikam.general: same keywords as 
> before,
> ignoring...   
> 00001514      21:55:58        [10424] digikam.general: keywords changed to ' 
> "ekp" '  
> # application is responsive again
> 
> 
> 
> ........................
> Query for: "ekp" (394240 results?)
> ........................
> 
> 00001514      21:55:58        [10424] digikam.general: keywords changed to ' 
> "ekp" '  
> 00001515      21:55:58        [10424] digikam.geoiface: ----  
> 00001516      21:55:58        [10424] digikam.geoiface: ----  
> 00001517      21:55:58        [10424] digikam.geoiface: ----  
> 00001518      21:55:58        [10424] digikam.general: Using  8  CPU core to 
> run threads      
> 00001519      21:55:58        [10424] digikam.general: Action Thread run  1  
> new jobs 
> 00001520      21:55:58        [10424] digikam.database: " ( (  
> (Albums.relativePath LIKE
> ?) OR (Images.name LIKE ?) OR (Images.id IN    (SELECT imageid FROM
> ImageTags     WHERE tagid IN    (SELECT id FROM Tags WHERE name LIKE ?))) OR
> (Albums.caption LIKE ?) OR (Albums.collection LIKE ?) OR (Images.id IN 
> (SELECT imageid FROM ImageComments   WHERE type=? AND comment LIKE ?)) OR
> (Images.id IN  (SELECT imageid FROM ImageComments   WHERE type=? AND comment
> LIKE ?))  ) ) "       
> 00001521      21:55:58        [10424] digikam.database: Search query: 
> 00001524      21:56:00        [10424] digikam.database: Search result: 394240 
> 00001525      21:56:08        [10424] digikam.general: Cancel Main Thread     
> 00001526      21:56:18        [10424] digikam.general: One job is done        
> 00001575      21:56:23        [10424] digikam.geoiface: ----  
> 00001576      21:56:23        [10424] digikam.general: Cancel Main Thread     
> 00001582      21:57:17        [10424] digikam.general: keywords changed to ' 
> "ekp" '  
> 00001582      21:57:17        [10424] digikam.general: keywords changed to ' 
> "ekp" '  
> 00001583      21:57:17        [10424] digikam.general: same keywords as 
> before,
> ignoring...   
> 00001584      21:57:19        [10424] digikam.general: Request to get 
> thumbnail for  ""       
> 00001585      21:57:19        [10424] digikam.general: Video file  ""  does 
> not exist.        
> 00001586      21:57:19        [10424] digikam.general: Failed to extract 
> video thumbnail
> for  ""       
> 00001587      21:57:19        [10424] digikam.general: Request to get 
> thumbnail for  ""       
> 00001588      21:57:19        [10424] digikam.general: Video file  ""  does 
> not exist.        
> 00001589      21:57:19        [10424] digikam.general: Failed to extract 
> video thumbnail
> for  ""       
> 00001637      21:57:23        [10424] digikam.general: 
> # Interface is responsive again
> 
> 
> ........................
> Query for: "ekpzg" 166474 results?)
> ........................
> 00000072      21:17:20        [2136] digikam.general: Cancel Main Thread      
> 00000074      21:17:30        [2136] digikam.general: One job is done 
> 00000075      21:17:30        [2136] digikam.general: Cancel Main Thread      
> 00000076      21:17:38        [2136] digikam.general: Using  8  CPU core to 
> run threads       
> 00000077      21:17:38        [2136] digikam.general: Action Thread run  1  
> new jobs  
> 00000078      21:17:38        [2136] digikam.database: " ( (  
> (Albums.relativePath LIKE
> ?) OR (Images.name LIKE ?) OR (Images.id IN    (SELECT imageid FROM
> ImageTags     WHERE tagid IN    (SELECT id FROM Tags WHERE name LIKE ?))) OR
> (Albums.caption LIKE ?) OR (Albums.collection LIKE ?) OR (Images.id IN 
> (SELECT imageid FROM ImageComments   WHERE type=? AND comment LIKE ?)) OR
> (Images.id IN  (SELECT imageid FROM ImageComments   WHERE type=? AND comment
> LIKE ?))  ) ) "       
> 00000079      21:17:38        [2136] digikam.database: Search query:  
> 00000082      21:17:39        [2136] digikam.database: Search result: 166474  
> 00000083      21:17:47        [2136] digikam.geoiface: ----   
> 00000084      21:17:48        [2136] digikam.general: Cancel Main Thread      
> 00000134      21:18:08        [2136] digikam.general: One job is done 
> 00000135      21:18:08        [2136] digikam.general: keywords changed to ' 
> "ekpzg" ' 
> 00000136      21:18:08        [2136] digikam.general: same keywords as before,
> ignoring...   
> 00000137      21:18:08        [2136] digikam.general: Cancel Main Thread      
> 00000138      21:18:08        [2136] digikam.geoiface: ----   
> 
> ........................
> Query for "Jurek" - 26488 results
> ........................
> 00001637      21:57:23        [10424] digikam.general: keywords changed to ' 
> "Jurek" '        
> 00001638      21:57:23        [10424] digikam.geoiface: ----  
> 00001639      21:57:23        [10424] digikam.geoiface: ----  
> 00001640      21:57:23        [10424] digikam.geoiface: ----  
> 00001641      21:57:23        [10424] digikam.general: Using  8  CPU core to 
> run threads      
> 00001642      21:57:23        [10424] digikam.general: Action Thread run  1  
> new jobs 
> 00001643      21:57:23        [10424] digikam.database: " ( (  
> (Albums.relativePath LIKE
> ?) OR (Images.name LIKE ?) OR (Images.id IN    (SELECT imageid FROM
> ImageTags     WHERE tagid IN    (SELECT id FROM Tags WHERE name LIKE ?))) OR
> (Albums.caption LIKE ?) OR (Albums.collection LIKE ?) OR (Images.id IN 
> (SELECT imageid FROM ImageComments   WHERE type=? AND comment LIKE ?)) OR
> (Images.id IN  (SELECT imageid FROM ImageComments   WHERE type=? AND comment
> LIKE ?))  ) ) "       
> 00001644      21:57:23        [10424] digikam.database: Search query: 
> 00001647      21:57:24        [10424] digikam.database: Search result: 26488  
> 00001648      21:57:24        [10424] digikam.general: Cancel Main Thread     
> 00001650      21:58:10        [10424] digikam.general: One job is done        
> 00001651      21:58:10        [10424] digikam.general: keywords changed to ' 
> "Jurek" '        
> 00001652      21:58:10        [10424] digikam.general: same keywords as 
> before,
> ignoring...   
> 00001653      21:58:10        [10424] digikam.general: Cancel Main Thread     
> 00001654      21:58:10        [10424] digikam.geoiface: ----  
> 00001655      21:58:11        [10424] digikam.general: Request to get 
> thumbnail for  ""       
> 00001656      21:58:11        [10424] digikam.general: Video file  ""  does 
> not exist.        
> 00001657      21:58:11        [10424] digikam.general: Failed to extract 
> video thumbnail
> for  ""       
> 00001658      21:58:19        [10424] digikam.geoiface: ----  
> 
> ==============================
> ==============================
> Summary
> ==============================
> ==============================
> 
> From this analysis it seems, that.
> Huge performance issues are not related to SQL queries (which I was wrongly
> suspecting).
> Querying small sets of pictures gives results quite fast.
> In contrast to queries which results in thousands of pictures.
> Queries are probably quite fast, with 1-second accuracy - queries took 1
> second (probably less). 
> 
> Problem is rather related to displaying huge amount of pictures.
> 
> This is especially visible in when 'text filter' is used.
> When using "text filter" -probably internal DigiKam system for filtering is
> used, which slows application down.
> 
> When I use search - which uses database side filtering.
> After DigiKam receives results from the database it freezes until a huge
> subset of pictures is displayed (thousands of pictures).
> 
> My mistake with blaming database, but performance issues exist.

So, Maik Qualmann, as you expected its probably related to loading 'icon
model'.

Mayby it would be possible to load icon model od demand (when it would be 'in a
view'). For example, Google Picasa somehow is able to show lot's of pictures
quickly.

But probably it is a topic for another ticket.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to