Assembly.Loadする際に同じDLLを何度もロードすると、重大なパフォーマンスの消耗が発生しますか?

Assembly.Loadメソッドは、プログラム集合をメモリにロードして、Assemblyオブジェクトを返します。同じDLLファイルを複数回Assembly.Loadメソッドでロードすると、そのDLLファイルが複数回ロードされ、各ロードで一定のメモリスペースが使用されます。

この場合、メモリの無駄が生じます。なぜなら、プログラム集をメモリにコピーする度に、100KBのDLLファイルが増えるので、毎回100KBのメモリを使用することになります。

もちろん、CLR(Common Language Runtime)は既にロードされたアセンブリをキャッシュして、次回使用時の読み込み速度を向上させています。しかし、キャッシュがあっても同じDLLファイルを繰り返しロードすると、メモリに一定の負荷が発生します。

したがって、メモリの浪費を防ぐために、コードにシングルトンパターンや他の方法を使用して、DLLファイルが1回だけロードされるようにします。

bannerAds