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

            Bug ID: 400604
           Summary: excessive stat() syscalls
           Product: digikam
           Version: 5.9.0
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: FilesIO-Engine
          Assignee: digikam-bugs-n...@kde.org
          Reporter: johan...@sipsolutions.net
  Target Milestone: ---

Created attachment 116057
  --> https://bugs.kde.org/attachment.cgi?id=116057&action=edit
(postprocessed) strace -e stat log

SUMMARY


STEPS TO REPRODUCE
1. add an album containing PNG files

OBSERVED RESULT
*far* too many stat() calls, to the point where this is becomes the bottleneck
(though admittedly that might in part also be because this is on NFS for me)

EXPECTED RESULT
Not limited by stat() calls as the result is not expected to change within
milliseconds.

SOFTWARE VERSIONS
(available in About System)
KDE Plasma Version: unknown (mostly gnome system)
KDE Frameworks Version: unknown (mostly gnome system)
Qt Version: unknown (mostly gnome system)

ADDITIONAL INFORMATION

I suspect that somehow there's a read() routine in or for the PNG decompressor
that does a stat() call for each 8k block being read. When doing the strace
fully without limiting to stat() [which I did in the attached file] I also see
the following pattern (over and over again):

stat("/path/to/picture.png", {st_mode=S_IFREG|0644, st_size=112550827, ...}) =
0
stat("/path/to/picture.png", {st_mode=S_IFREG|0644, st_size=112550827, ...}) =
0
lseek(36, 29933568, SEEK_SET)           = 29933568
lseek(36, 29958144, SEEK_SET)           = 29958144
read(36, "<snip>"..., 8192) = 8192
stat("/path/to/picture.png", {st_mode=S_IFREG|0644, st_size=112550827, ...}) =
0
stat("/path/to/picture.png", {st_mode=S_IFREG|0644, st_size=112550827, ...}) =
0
lseek(36, 29966336, SEEK_SET)           = 29966336
lseek(36, 29990912, SEEK_SET)           = 29990912
read(36, "<snip>"..., 8192) = 8192

for ever 8k in the file.

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

Reply via email to