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 减小固件的尺寸

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查