More on this topic. I also did benchmarks using strace.
First, I dropped all caches by doing echo 3 > /proc/sys/vm/drop_caches.
Then I used strace to trace all of the child processes of sddm, and then
login.
This is the result I got.
https://drive.google.com/file/d/0B4BhmC8V2mivMGFRS3BCeFk0ZTQ/view?usp=sharing
We have more than 600,000 system calls during LXQt startup.
This is pretty amazing. More than half of them are just "stat" calls used
to locate icons in the icon theme. This is caused by QIcon::fromTheme() (or
the fixed version in libqtxdg).
Unfortunately, this inefficient poor design is actually "correct" according
to the xdg icon theme spec. Gtk+ solves this with an optional icon cahce. I
believed that KDE does this, too.
To reduce unnecessary I/O, we definitely need some icon theme cache
mechanisms.
However, I'm not sure how much benefit can this brings. It does not seem to
be the major cause of slow startup.
The impact of relocations caused by huge C++ libraries and ld.so is more
prominent than these system calls.
Hence, I think it might be a good idea to use the same hack as kdeinit
(pre-link, fork, and load modules) to speed up.
To do this, we need to make main desktop components loadable modules.
Comments are welcomed.
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Lxde-list mailing list
Lxde-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxde-list