我编写了一个用C语言编写的程序,用于命令行使用,预计经常使用散布在shell脚本中的程序有专门的帮助,man
或info
无法提供帮助使用ANSI转义序列来表示颜色。
包括转义序列在内的纯文本帮助重18.7 KiB。内联作为零终止字符串(以及根据请求显示它的if
子句)的可执行文件重39.0 KiB,没有它重19 KiB。 (编译时没有优化或调试选项。)
我正在考虑将帮助内联到可执行文件中,以便用户轻松访问它,而不必记住单独的文件名和位置cat
到他们的终端。 (可执行文件将位于shell搜索路径中,因此不存在问题。)
但我担心加倍会降低加载/执行速度。
OTOH我似乎已经读过/听说操作系统会缓存已加载的可执行文件,所以我不用担心这个。
另一种选择是制作另一个单独的-help
可执行文件(重量为28 KiB,但我不需要担心,因为它不经常使用)。
对于这种情况,有没有最佳做法?请指教。谢谢!
答案 0 :(得分:3)
你无需担心。
Linux对可执行文件使用请求分页。这意味着首次启动可执行文件时,不会从磁盘读取任何内容。仅当发生页面错误(意味着程序试图访问尚不存在的内存)时才会实际从磁盘读取页面。
一些用Go编写的二进制文件大小几十兆字节,并且没有明显的启动延迟。
我鼓励您实际尝试每种方法并对启动延迟进行基准测试。