gpt4 book ai didi

c - execv() 贵吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:50 26 4
gpt4 key购买 nike

我有一个要求。我的进程必须在其代码路径之一期间 fork->exec 另一个进程。子进程运行一些检查,当某些条件为真时,它必须重新执行自身。当我在高端机器上测试时,它没有引起任何性能问题。

但是在同一个进程中再次调用 execv() 会很昂贵吗?尤其是当它自己执行时?

注意:第二次没有涉及到fork()。该进程将第二次执行 execv() 本身,以在其虚拟地址空间中重新映射某些内容。

最佳答案

第二次 execv() 调用并不比第一次更昂贵。它甚至可能更便宜,因为系统可能不需要从磁盘读取程序镜像,并且不需要加载任何新的动态库。

另一方面,execv() 只是在同一个程序中进行分支,成本要高得多。我无法想象我想要编写一个重新执行自身(无需 fork )而不是仅仅调用函数的程序。

另一方面,“便宜”和“贵”是相对的。除非您经常这样做,否则您实际上可能不会注意到任何差异。

关于c - execv() 贵吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32785262/

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