2

1 つのメイン デーモンと複数の子プロセスで構成される C/C++ でサーバー側アプリケーションを作成しています。

子プロセスを非常に軽量にして、オーバーヘッドをあまりかけずに生成/強制終了できるようにしたい (OS によって課せられる以上の)。

共有ライブラリを広く利用するために、メイン デーモンと子アプリを構築しています。実際、メイン デーモンは、子アプリケーションが必要とするすべての共有ライブラリをロードし、必要な (共有) メモリ構造などをセットアップします。

私の基本的な仮定は、共有ライブラリ (一部は巨大なもの) が既にメイン デーモンによってロードされているため、子アプリケーションはすばやく起動し、ロードされたライブラリに簡単にアタッチできるということです。共有ライブラリをロードする必要はありません。その結果、スポーンされる時間が少し速くなります - この仮定は正しいですか?

[[追加した]]

私はUbuntu 10.0.4 LTSに取り組んでいます

4

1 に答える 1

1

共有ライブラリのコード セグメントはすべてのプロセスで共有され、誰がロード/スポーンしたかについて特に制限はありません。ただし、ロード中に解決されるため、プロセスで使用されるシンボルの数によっては、さまざまな時間がかかる場合があります。

しかし、フォークする場合は、やることはあまりないので、新しいバイナリの起動に関しては高速です。

于 2012-07-13T12:29:33.483 に答える