[KimDaBa] Profiling Kimdaba startup
Jesper K. Pedersen
blackie at blackie.dk
Tue Jan 4 06:46:37 GMT 2005
Robert, thx for your profiling.
As it looks now, I can't see that there are any thing else I can do to speed
up things, except rewritting to a real database.
Well I could delay loading the plugins, but it is a constant of 500msec in
your profiling, so I don't see much gained there either.
Rewritting to a real db would be a huge job, and currently I dont see it worth
it to save at most 2.5+1=3.5 secs. People with 50.000 images might disagree,
but we aren't really there yet (at least that is not what I hear from most
kimdaba users), and once we are there, computers are likely so much faster
that the 25 secs has gone done.
On Tuesday 04 January 2005 02:29, Robert L Krawitz wrote:
| 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
Having trouble finding a given image in your collection containing
thousands of images?
http://ktown.kde.org/kimdaba might be the answer.
More information about the Kphotoalbum