Review Request 127236: Leverage QDir to know what's in a KIconThemeDir

Aleix Pol Gonzalez aleixpol at kde.org
Tue Mar 1 12:01:10 UTC 2016



> On March 1, 2016, 10:19 a.m., Kai Uwe Broulik wrote:
> > src/kicontheme.cpp, line 675
> > <https://git.reviewboard.kde.org/r/127236/diff/1/?file=446153#file446153line675>
> >
> >     This looks like it causes a lot of transient allocations, creating a QList just to do a contains() on it. Or is this list kept/cached by QFile?

The list is cached by QDir. See there's a `QStringList QDirPrivate::files` defined in qdir_p.h.


- Aleix


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127236/#review92976
-----------------------------------------------------------


On March 1, 2016, 4:25 a.m., Aleix Pol Gonzalez wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127236/
> -----------------------------------------------------------
> 
> (Updated March 1, 2016, 4:25 a.m.)
> 
> 
> Review request for KDE Frameworks and Christoph Feck.
> 
> 
> Repository: kiconthemes
> 
> 
> Description
> -------
> 
> At the moment we're playing Battleship to see if an icon is present in a subdirectory. This means that we are checking on every directory if there's an icon that matches the size with a said name on every request.
> 
> This can be seen easily with strace:
> ```
> $ strace kwrite |& grep ENOENT | wc -l
> 6212
> ```
> After the patch: 
> ```
> $ strace kwrite |& grep ENOENT | wc -l
> 1993
> ```
> We reduce these accesses to let QDir keep the list of files inside the directory (that was already being generated at some point, it just was being discarded).
> 
> 
> Diffs
> -----
> 
>   src/kicontheme.cpp 0996054 
> 
> Diff: https://git.reviewboard.kde.org/r/127236/diff/
> 
> 
> Testing
> -------
> 
> Builds, tests still pass, applications start noticeably faster.
> 
> 
> Thanks,
> 
> Aleix Pol Gonzalez
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20160301/a50dc24a/attachment.html>


More information about the Kde-frameworks-devel mailing list