[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