Slow start up times

Thorsten Hohage thohage at objectmanufactur.com
Sat Feb 16 11:05:31 CST 2008


Hi,

some comments regarding the topic - without replying to a specific post:

a) On Mac OS X it's a system issue - yes. And with 10.5 it will become  
even more worse.

Mac OS X uses dynamic library and loaded many, many things if needed.  
When an application started the first time, the libraries are loaded  
and keep in RAM until next reboot. Try it start Safari for the first  
time, quit it and start it again. The more an application system is  
going to used "internal" libraries the faster the start is.

BUT RB and all RB made apps are Carbon - and more and more (Apple)  
apps changed to Cocoa as Apple is telling since years. So ALL Carbon  
libs are loaded when the first RB app starts up - that's slow.

Comparing other aps behaviour to a Cocoa made app you will several, if  
not many, things find out, where you're is going to be significantly  
slower. Let you're app run on windows and compare the time there.

Of course you can blame Apple for this, but the right addresse would  
be IMHO REAL Software.



b) You must make a difference between VServer and client and "local"  
system. The first start of the first client is (much) slower then any  
other start due to the fact, that the VServer must load the db at this  
point.

A good feature request might be an option "Load DB at startup" like  
some other DB offers, but a small simple app, just doing a connection  
and a "select * from ..." on all needed DB on the server at startup  
would do the trick and DOES the trick very efficiently for one of my  
apps (restaurant cassier) where the speed up time of client was  
critical.

For speed issues of client/server-apps you should also check the  
running apps. I experienced a commonly running set of apps on some  
complaining users is / was:

	Safari (with some fance sites open and repeatly reloading), Mail,  
iChat (with several open sessions), Skype (with several open  
sessions), often a live stream of music, ... working with 4GB(sic!)  
images in PhotoShop which are opened from a server ...

With this heavy using network-apps there might be the one or other  
speed issue related to the network usage.



c) So when talking about "local db-file" usage and with keeping a) in  
mind there might be really things to speed up the application start.  
You can check the size of the db-files and e.g. if you writing a log  
like Beatrix look at the last start time. Then you can determine  
dynamically the Cache-Size you set for this specific app and db.

Then you can try to make a difference between important, necessary and  
actual data AND all the other data. If speed is really serious, then  
you perhaps use more then one db. And open dynamically archive db's if  
needed and make this difference clear in the gui.


When arguing with an user, then you must make him clear that there is  
a difference between a document orientated app and a database app  
which loaded the full data at start up. If you say your users didn't  
accept this, then you've got two different options:

a) learn to argue in a better way ;-)

b) re-design you app. E.g. as above mentioned: only keep app data and  
some kind of indexes in the main db, then the user can decide to open  
"2007" and you're load the 2007-db and so on.



regards

Thorsten Hohage
--
objectmanufactur.com - Hamburg,Germany




More information about the Valentina mailing list