1

この質問の長い性質についてお詫び申し上げます。TL;DR: 最後の段落にジャンプします。

このことについてしばらく頭を悩ませていましたが、同じ DLL の複数のコピーがパフォーマンスのオーバーヘッドをもたらすという私の理論をテストする方法が思いつきません。私たちのサーバーの 1 つには、ビジネス ロジックと中央データベースへのデータ アクセスを処理するモノリシック カーネルを参照する 20 ~ 30 個の社内分析ソフトウェアがあります。各アプリケーションの/binディレクトリには、この ~5MB の DLL のローカル コピーが格納されており、おそらく*各アプリケーションが最初に実行されるときにメモリにロードされます。おそらく今は大したことではありませんが、100 以上の (計画された) エージェントがこの方法で実行されるようになると、警鐘が鳴り始めます。

私はオンラインでいくつかの記事を読みました (例: http://www.codeproject.com/Articles/4352/Demystifying-the-NET-Global-Assembly-Cache )。.NET GACを使用していますが、上層部の関心を引く唯一の確実なトピックであるパフォーマンスについては何も触れていません。

私が知りたいのは、グローバル アセンブリがプロジェクトで参照されている場合、他のコンシューマー アプリケーションと同じライブラリ インスタンスを共有するのか、それともアプリケーションが実行時に必要なものすべてを独自の別の領域にロードするのかということです。

4

0 に答える 0