gpt4 book ai didi

c - fork与动态库交互

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:14 24 4
gpt4 key购买 nike

我考虑了以下实验:简单的 C 程序,只返回 0,但与gcc 允许我链接的所有库 - 总共 207 个。运行这个程序需要很多时间 -2.1 冷启动,0.24 热启动。所以下一步就是写程序,也链接这一堆图书馆,谁会根据要求 fork 和执行。想法是,如果它已经加载库,然后 fork 创建进程的相同副本,然后我将运行第一个程序很快。但我发现没有区别,通过 shell 或通过第二个程序运行第一个程序,与所有库链接。我的错误是什么?

编辑:是的,我错过了 exec 的重点。但是我的想法是否有任何可能的改进来加速启动应用程序。我知道预链接,但它的想法有点不同。

最佳答案

您正在做的事情的唯一优势是它将所有库从磁盘读取到文件系统缓存中(与您的“热启动”相同)。否则,您所做的正是 shell 加载程序的方式(forkexec),所以我不明白您期望它如何更快。如果您只是fork,但您也exec,这将“复制”进程的想法是正确的。

用文件系统做一个“复制”类比,就像你拿了一个生成速度非常慢的文件,复制它,然后 rm 并重新生成它而不是而不是使用副本。

关于c - fork与动态库交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9838582/

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