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