[KimDaBa] Profiling Kimdaba startup

Robert L Krawitz rlk at alum.mit.edu
Tue Jan 4 01:29:58 GMT 2005

I put some very rough profiling code in Kimdaba to measure the startup
overhead (I also valground it, and I can provide the binary and the
callgrind.out file if anyone cares).  This is on a 1 GHz Pentium 3,
with 6700 images, run a second time to bring everything into memory.

Note that the big consumers are:

1) setContent() (the Qt call to slurp in the index.xml file) -- this
   takes about 2.5 seconds.  This time is proportional to the size of
   the index.xml file (which presumably is roughly proportional to the
   number of images).

2) Setting up the image database in memory (groveling the big data
   structure) -- about 1 second.  This too is proportional to the
   number of images.

3) Setting up the UI -- about 3 seconds.  This time is constant.

The total is about 9 seconds.

A 6700 image database takes about 3.5 seconds to read at present; a
50,000 image database would take about 8 times as long, or about 25
seconds on a 1 GHz machine.  On a 3 GHz or equivalent machine,
presumably it would take about 8 seconds, and setting up the UI would
take about 1 second, for a 10 second startup time.  This falls in the
nuisance category, but there are plenty of other things that take that
long or longer to start.

Entering main				       20:19:51.377
Added command line options                     20:19:51.386
kimdaba: Create splash screen		       20:19:51.785
kimdaba: Show splash screen		       20:19:52.057
kimdaba: Register formats		       20:19:52.064
kimdaba: Calling MainView::MainView	       20:19:52.071
kimdaba: About to call MainView::load	       20:19:52.100
kimdaba: MainView::load() at		       20:19:52.178
kimdaba: About to check for config file at     20:19:52.183
kimdaba: Calling setContent at		       20:19:52.188
kimdaba: Called setContent at		       20:19:54.671
kimdaba: Getting top element		       20:19:54.672
kimdaba: Parsing header			       20:19:54.675
kimdaba: Parsed header			       20:19:54.678
kimdaba: Setting options		       20:19:54.681
kimdaba: Setting up image db		       20:19:54.685
kimdaba: Done setting up image db	       20:19:55.863
kimdaba: Done calling MainView::load	       20:19:56.361
kimdaba: Connecting Options::instance	       20:19:57.084
kimdaba: Creating top			       20:19:57.086
kimdaba: Creating stack			       20:19:57.089
kimdaba: Creating date bar		       20:19:57.092
kimdaba: Creating line			       20:19:57.098
kimdaba: Creating browser		       20:19:57.100
kimdaba: Creating thumbnail view	       20:19:57.110
kimdaba: Adding widgets to stack	       20:19:57.121
kimdaba: Setting up menu bar		       20:19:57.123
kimdaba: Setting up search tool bar	       20:19:57.183
kimdaba: Setting up status bar		       20:19:57.194
kimdaba: Setting up indicators		       20:19:57.198
kimdaba: Setting up locked indicator	       20:19:57.245
kimdaba: Setting up partial image counter      20:19:57.255
kimdaba: Setting up total image counter	       20:19:57.258
kimdaba: Setting up auto save timer	       20:19:57.260
kimdaba: Starting timer			       20:19:57.262
kimdaba: Started timer and connecting signals  20:19:57.265
kimdaba: Setting total			       20:19:57.267
kimdaba: Welcome to KimDaBa		       20:19:57.273
kimdaba: Done with MainView::MainView	       20:19:57.274
kimdaba: Called MainView::MainView	       20:19:57.277
kimdaba: Calling setMainWidget		       20:19:57.280
kimdaba: Exec'ing app			       20:19:57.282
kimdaba: In MainView::delayedInit	       20:19:59.343
kimdaba: Loading plugins		       20:19:59.355
KIPI (loading): Plugin_Mpegencoder plugin loaded
kimdaba: Done loading plugins		       20:19:59.815
kimdaba: Processing events		       20:19:59.828
kimdaba: Searching for images		       20:19:59.837
kimdaba: Done searching for images	       20:19:59.838
kimdaba: Showing main window		       20:19:59.993
kimdaba: Done showing main window	       20:20:00.010
kimdaba: Done parsing args		       20:20:00.011
kimdaba: Done in delayedInit		       20:20:00.014
kimdaba: Done with app			       20:20:00.573
kimdaba: Deleted view			       20:20:00.849

Robert Krawitz                                     <rlk at alum.mit.edu>

Tall Clubs International  --  http://www.tall.org/ or 1-888-IM-TALL-2
Member of the League for Programming Freedom -- mail lpf at uunet.uu.net
Project lead for Gimp Print   --    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