首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >execv()贵吗?

execv()贵吗?
EN

Stack Overflow用户
提问于 2015-09-25 15:08:32
回答 1查看 831关注 0票数 1

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

但是,在相同的过程中再次调用execv()会很昂贵吗?特别是当它是exec()自己?

注意:没有第二次涉及叉()。该进程将只是第二次执行execv()本身,以便在其虚拟地址空间中进行映射。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-25 15:22:26

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

另一方面,简单地在同一个程序中进行分支,execv()的开销要大得多。我很难想象一种情况,在这种情况下,我想要编写一个程序来重新执行它自己(而不是只调用一个函数)。

第三,“便宜”和“昂贵”是相对的。除非你经常这样做,否则你可能不会注意到任何不同之处。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32785262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档