http://www.freedesktop.org/software/systemd/man/systemd-analyze.html
1.3. init 进程
在所有依赖项启动之后,应尽快启动:
取决于您的init进程。在这里,我们假设使用sysV init脚本。
init脚本按字母数字顺序运行,并以字母开头(K表示停止(杀死),S表示开始)。
将应用程序启动脚本使用最小的号码。
甚至可以用应用程序替换init!如果可以成为第一个启动的应用程序,启动速度无疑大大加快!
直接通过一个启动脚本启动所有服务(例如/etc/init.d/rcS)。这消除了对/ bin / sh的多次调用。
甚至可以直接在应用程序的C代码中挂载文件系统:如
1.4 减少fork的使用
fork/exec系统调用开销很大。故从Shell调用可执行文件的速度很慢。
即使BusyBox实现的shell中echo也会导致fork 系统调用!
在BusyBox配置中选择Shells-》 Standalone shell,以使Shell尽可能调用小程序。
管道和反引号也由fork/exec实现。应减少它们在脚本中的使用。例:
cat /proc/cpuinfo | grep model
应修改为:
grep model /proc/cpuinfo
更详细,请参考:
http://elinux.org/Optimize_RC_Scripts
又例如:
仅此一项优化就可以在ARM AT91SAM9263系统(200MHz)上节省87毫秒!
1.5 减小固件的尺寸