2009-03-07 11 views
2

はここで、全体のDLLのサイズが100Mであると仮定は、2例は以下のとおりです。DLL数と負荷性能

  1. 100M * 1
  2. 10M * 10

そのとき、多くのパフォーマンスへの影響だろう多くの小さなサイズのDLLを使用していますか?どうして?

私は最近テストを行ったが、2つのケースのパフォーマンスの違いはほとんど検出されなかったため、テストで間違ったステップがあるかどうかは分かりません。

+0

"時間の約97%という小さな効率を忘れるべきです。早すぎる最適化はすべての悪の根源です。 - DE Knuth。 – kmkaplan

+0

実際には、私たちは気にしています:) 私たちのアプリケーションは起動に30秒かかるので、多くの小型DLLがボトルネックであるかどうかを知る必要があります。 –

答えて

2

複数のDLLを取得する可能性が高いのは、OSローダーがDLLを見つけて解決して参照する必要があるため、ロード時にそれらのDLLをリベースするためです。しかし、パフォーマンスの影響は心配する価値はありません。特に、10M * 10のDLLを持っている場合は、

0

空きメモリが不足している場合にのみ違いがあると思います。どちらの場合も、OSはDLLを処理する必要があります。また、キャッシュされている必要があります。違いがある場合は、最初のロードでのみ問題になるはずです。

+0

さて、コールドスタートアップ時間とウォームアップスタート時間の両方を比較します(キャッシュの有無にかかわらず) –