Anjuta startup time
9. October 2008
Anjuta start-up is really quite slow, taking about 5 seconds even if no session is loaded. So, I tried to find out what happens and why it is slow, using Frederico’s tools:
1.5 seconds => ld for linking about 80 libraries (will be improved by removing the deprecated bonobo/gnomeui/gnome-vfs stuff)
1.5 seconds => gtk_icon_theme_get_default()
2 seconds => loading the plugins
So, I think there is not much to improve for linking other then to remove some dependencies. For the plugins loading I hope to make some improvements but these are pretty big libraries so it might be difficult. But what annoys me is that the loading of the icon cache takes so long though it should actually get a shared object from the screen. Or am I wrong here? This is no cold start-up, the GNOME Desktop was already fully up. Any chance to shorten this time?
Update: alexl points out that it is because of the gtk-icon-cache being out-of-date and indeed running gtk-update-icon-cache on several directories fixed the issue. Anyway, I wonder if gtk+/gnome/something else should check for an up-to-date icon theme in the background and update it when idle.
9. October 2008 at 13:48
For abiword we introduced the option to link plugins statically, this led to a considerable improvement.
9. October 2008 at 14:00
Its likely that your icon cache file is not up to date, so all the icons were read from disk, which is slow.
Try running gtk-update-icon-cache on all your icon dirs.
9. October 2008 at 14:39
Thanks for looking into this, but startup-time doesn’t matter much for Anjuta. It’s not a hit’n’run application, you start it once and then work for hours and hours without restart.
It’s always the leftmost application in my taskbar – simply because it has been running for weeks 🙂
9. October 2008 at 16:36
Is your icon cache up to date? If a single icon file is newer than the cache file, then the cache won’t be used.
Most distros update the icon cache correctly when you install packages that install new icons… maybe you installed a package by hand or something like that?
Once Anjuta loads, can you run pmap on it to see if it has the icon cache files mmap()ed?
9. October 2008 at 17:13
Are you using a “bad formed” icon theme? Some users had that problem with some themes… Take a look a t this little thread: http://mail.gnome.org/archives/gtk-app-devel-list/2008-October/msg00000.html
9. October 2008 at 17:39
I am working daily with an IDE that takes some 25 minutes to start completely on a super-high-end workstation, before you can start working with it. It’s made by one of the largest IT companies in the world, and is not very obscure IDE.
9. October 2008 at 18:31
Look at the way Gnome caches it’s plugins, and only imports them lazily.
The technique is to always load a plugin the first time it is seen. You then record a catalog of what features the plugin supports. When starting the next time there is no need to load the plugin at startup, if the timestamp has not changed.
I’m not sure if there is benefit to lazily loading the Anjuta plugins. Surely not all of them are running code all the time?