共有ライブラリと静的ライブラリの読み込み時間について質問があります。
liba、libb、libc を使用する実行可能ファイル foo.exe があるとします。また、ある時点で、実行可能ファイルの 10 を超えるインスタンスがマシン上で実行されています。
上記の 3 つのライブラリが共有ライブラリである場合: 最初のインスタンスが RAM にロードされます: かかる時間は、foo.exe の main() がメモリをロードするのにかかる時間 (無視できると仮定) + liba をロードする時間 + ロードする時間です。 libb + libc をロードする時間 2 番目のインスタンスが開始されました : この実行可能ファイルの 2 番目のインスタンスが実行されたとします。すべてのライブラリは既にメイン メモリにロードされているため、かかる時間は main() をメモリにロードするためだけであり、無視できます。
上記の 3 つのライブラリが静的ライブラリである場合: 最初のインスタンスが RAM にロードされます: かかる時間は、foo.exe の main() がメモリをロードするのにかかる時間 (無視できると仮定) + liba をロードする時間 + ロードする時間です。 libb + libc をロードする時間 (もちろん、現在は実行可能ファイル全体のすべての部分です) 2 番目のインスタンスが開始されます: この実行可能ファイルの 2 番目のインスタンスが実行されると仮定します。かかる時間は、foo.exe の main() がメモリをロードするのにかかる時間 (無視できると仮定) + liba をロードする時間 + libb をロードする時間 + libc をロードする時間になります。(これらは静的ライブラリであるため、各実行可能ファイルはライブラリを共有できないため)
したがって、静的ライブラリを使用すると、読み込み時間が長くなるというのが私の結論です。しかし、共有ライブラリは静的ライブラリよりも読み込みに時間がかかるため、遅延が発生するため、共有ライブラリは適切なオプションではないと言われました。これはどのように可能ですか?