[KPhotoAlbum] Startup performance: the final frontier

Robert Krawitz rlk at alum.mit.edu
Thu Jun 1 02:32:22 CEST 2017


On Tue, 30 May 2017 22:22:11 -0400 (EDT), Robert Krawitz wrote:
> The last big performance problem I have with kpa is startup.  It takes
> about 18 seconds to start up, with the 220K photos in my database.
>
> I intend to kcachegrind this one of these days.  It's a somewhat
> painful experience, given how long it takes to start that way.  At
> least from the splash screen, it looks like maybe 80% of the time is
> spent in loading the database, the remainder in creating the main
> window (whatever that really means).
>
> Saving is also problematic, and autosave is very annoying, but not as
> bad as startup.
>
> I know there was a move afoot a while back to have an SQL database
> rather than an XML file (and XML's pretty unwieldly for this), but
> IIRC nobody ever got it working and eventually it was pulled out.

So, a little research shows me kpa isn't parsing the config file in
the most efficient way:
http://3gfp.com/wp/2014/07/three-ways-to-parse-xml-in-qt/

It's using QDomDocument, which reads the entire file in.  That makes
it easy to extract things the way we want, but is less efficient than
using QXmlStreamReader, which is more of a tokenizer that feeds us
elements.

It's possible to read the config.xml file quickly; I did so with
xmllint, which took 2 or 3 seconds.  It's something that may be worth
investigating.
-- 
Robert Krawitz                                     <rlk at alum.mit.edu>

***  MIT Engineers   A Proud Tradition   http://mitathletics.com  ***
Member of the League for Programming Freedom  --  http://ProgFree.org
Project lead for Gutenprint   --    http://gimp-print.sourceforge.net

"Linux doesn't dictate how I work, I dictate how Linux works."
--Eric Crampton


More information about the KPhotoAlbum mailing list