gpt4 book ai didi

c - 将帮助内联到我的可执行文件中会降低加载/执行速度吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:49:23 25 4
gpt4 key购买 nike

我写了一个用 C 编写的程序,用于命令行使用,预计会经常使用,散布在 shell 脚本中有专门的帮助,maninfo 因为它大量使用 ANSI 转义序列来表示颜色。

包含转义序列的纯文本帮助重 18.7 KiB。内联为零终止字符串(以及根据请求显示它的 if 子句)的可执行文件重 39.0 KiB,没有它的重 19 KiB。 (编译时没有优化或调试选项。)

我正在考虑将帮助内联到可执行文件中,以便用户可以轻松访问它,而不必记住单独的文件名和位置以 cat 到他们的终端。 (可执行文件将位于 shell 搜索路径中,因此这不是问题。)

但我担心加倍会降低加载/执行速度。

OTOH 我似乎已经读到/听说操作系统会缓存加载的可执行文件,所以我不必太担心这一点。

另一种选择是制作另一个单独的 -help 可执行文件(它重 28 KiB,但我不需要担心,因为它不经常使用)。

对于这种情况有什么最佳实践吗?请指教。谢谢!

最佳答案

您无需担心。

Linux 对可执行文件使用请求分页。这意味着首次启动可执行文件时,不会从磁盘读取任何内容。只有当发生页面错误(意味着程序试图访问尚未存在的内存)时,页面才会真正从磁盘读取。

一些用 Go 编写的二进制文件的大小数十兆字节,并且没有明显的启动延迟。

我鼓励您实际尝试每种方法并对启动延迟进行基准测试。

关于c - 将帮助内联到我的可执行文件中会降低加载/执行速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47053247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com