共享库加载和性能

时间:2012-07-13 12:08:32

标签: c++ c shared-libraries

我正在用C / C ++编写一个服务器端应用程序,它由1个主守护进程和几个子进程组成。

我希望子进程非常轻量级,以便可以在没有太多开销的情况下生成/杀死它们(超出操作系统强加的开销)。

我正在构建主守护程序和子应用程序以广泛使用共享库。实际上,主守护进程会加载子应用程序所需的所有共享库,并设置所需的(共享)内存结构等。

我的基本假设是,由于主守护程序已经加载了共享库(其中一些巨大),子应用程序将能够快速启动并简单地附加到加载的库 - 无需加载共享库,从而导致产生的时间稍快 - 这个假设是正确的吗?

[[添加]]

我正在研究Ubuntu 10.0.4 LTS

1 个答案:

答案 0 :(得分:1)

您的共享库的代码段将由所有进程共享,没有特别限制w.r.t谁加载/生成。但是,它可能需要可变的时间,具体取决于过程中使用的符号数,因为这些符号将在加载期间解析。

但是如果你要分叉,那么就没有太多可行的事情,就推出新的二进制文件来说它会很快。