如何最小化程序启动时间

大麦人

我用 C 语言编写了一个简单的工具,使用 Raspberry Pi 的代码块,它通过 SPI 总线执行命令。代码块使用 GCC 编译器。问题是,虽然实际的 SPI 事务需要个位数毫秒,但程序总执行时间可能是 100 毫秒或更多。代码中的实际程序执行也不需要很长时间,因此大概都被设置进程等消耗掉了。

在这里最小化启动延迟的好方法是什么?Raspberry pi 几乎不是一个速度守护进程,程序需要以 SPI 库所需的 root 权限执行。可执行文件大约为 70kB,因此在 Glacial RPI Sdcard 接口上(对于 4kB 块读取大约为 6MB/s),单独加载可执行文件大约需要 12 毫秒。我想我总是可以为它创建一个小的 ramdisk。

单独执行 Sudo 需要大约 50 毫秒,因此实际启动根会话会将执行时间缩短至 30-40 毫秒。有什么方法可以让 sudo 更快地发生,所以我不必为此打开 root 控制台..?

彼得·齐尔霍夫

因为sudo我认为设置 SUID 位是一个好的开始。

将这一位和二进制文件的所有权设置为root您可以允许普通用户运行您的文件而无需引用sudo.

chown root:root your_binary
chmod u+s your_binary

当然,您应该了解使用 SUID 的所有可能的危险,尤其是当您在应用程序中接受用户输入或参数时。这是我发现的第一个热门:http : //unix.worldiswelcome.com/why-suid-programs-are-dangerous

另一方面,SUID 也不错就像goto还不错。它可能以不好的方式使用,但机制就在那里,它可能会解决您的问题。

编辑:第二个想法 - 您是否针对许多库动态链接?据我所知,这可能会导致一些延迟。也许您可以针对静态链接?但是,老实说,我认为您也可能会因为内存/缓存使用率低而降低性能,我不确定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

最小化启动时间

来自分类Dev

最小化Spring Boot启动时间

来自分类Dev

如何在启动时最小化启动Thunderbird?

来自分类Dev

如何在启动时运行程序,将其最小化?

来自分类Dev

如何使在Windows启动时运行的程序自动最小化/关闭?

来自分类Dev

如何在启动时运行程序,将其最小化?

来自分类Dev

如何最小化启动程序,并最大化还原?

来自分类Dev

如何在系统启动时最小化启动Viber?

来自分类Dev

kubuntu 13.04-在启动时运行最小化的应用程序

来自分类Dev

在应用程序启动时最小化控制台 C#

来自分类Dev

如何在启动时将Thunderbird最小化到Unity系统托盘?

来自分类Dev

如何在Ubuntu 16.04中启动时最小化打开Thunderbird

来自分类Dev

如何使grub菜单在启动时代替grub最小化bash出现?

来自分类Dev

在尝试最小化Firebase Cloud函数的冷启动时间时,如何导入一个类以在一个函数中使用?

来自分类Dev

在脚本启动时最小化PHP内存使用

来自分类Dev

在脚本启动时最小化PHP内存使用

来自分类Dev

最小化系统启动时的Windows窗体

来自分类Dev

如何最小化启动Android通知

来自分类Dev

如何最小化向量的加载时间?

来自分类Dev

如何创建快捷方式来启动,最小化程序并将程序置于前台

来自分类Dev

如何在自动启动时将Skype for Linux alpha最小化到系统托盘

来自分类Dev

如何使用官方TTrayIcon(delphi)启动最小化的应用程序?

来自分类Dev

如何使用cmd在最小化的窗口中启动Windows 10应用程序?

来自分类Dev

如何实际启动Windows 10中最小化的程序?

来自分类Dev

一段时间后如何使应用程序最小化?

来自分类Dev

从任务计划程序启动服务的过程已最小化

来自分类Dev

当PC启动时,Xdotool不会在启动应用程序中使用时最小化终端窗口吗?

来自分类Dev

如何在Windows启动时自动运行Windows窗体应用程序?并将其最小化到任务栏后,从任务栏中删除其图标?

来自分类Dev

我想在系统启动时打开Thunderbird,但将其最小化

Related 相关文章

  1. 1

    最小化启动时间

  2. 2

    最小化Spring Boot启动时间

  3. 3

    如何在启动时最小化启动Thunderbird?

  4. 4

    如何在启动时运行程序,将其最小化?

  5. 5

    如何使在Windows启动时运行的程序自动最小化/关闭?

  6. 6

    如何在启动时运行程序,将其最小化?

  7. 7

    如何最小化启动程序,并最大化还原?

  8. 8

    如何在系统启动时最小化启动Viber?

  9. 9

    kubuntu 13.04-在启动时运行最小化的应用程序

  10. 10

    在应用程序启动时最小化控制台 C#

  11. 11

    如何在启动时将Thunderbird最小化到Unity系统托盘?

  12. 12

    如何在Ubuntu 16.04中启动时最小化打开Thunderbird

  13. 13

    如何使grub菜单在启动时代替grub最小化bash出现?

  14. 14

    在尝试最小化Firebase Cloud函数的冷启动时间时,如何导入一个类以在一个函数中使用?

  15. 15

    在脚本启动时最小化PHP内存使用

  16. 16

    在脚本启动时最小化PHP内存使用

  17. 17

    最小化系统启动时的Windows窗体

  18. 18

    如何最小化启动Android通知

  19. 19

    如何最小化向量的加载时间?

  20. 20

    如何创建快捷方式来启动,最小化程序并将程序置于前台

  21. 21

    如何在自动启动时将Skype for Linux alpha最小化到系统托盘

  22. 22

    如何使用官方TTrayIcon(delphi)启动最小化的应用程序?

  23. 23

    如何使用cmd在最小化的窗口中启动Windows 10应用程序?

  24. 24

    如何实际启动Windows 10中最小化的程序?

  25. 25

    一段时间后如何使应用程序最小化?

  26. 26

    从任务计划程序启动服务的过程已最小化

  27. 27

    当PC启动时,Xdotool不会在启动应用程序中使用时最小化终端窗口吗?

  28. 28

    如何在Windows启动时自动运行Windows窗体应用程序?并将其最小化到任务栏后,从任务栏中删除其图标?

  29. 29

    我想在系统启动时打开Thunderbird,但将其最小化

热门标签

归档