2017-10-10 20 views
2

すべてのコードを1つのdllファイルにマージする方が良いでしょうか?たとえば、それぞれの名前空間に別々のプロジェクトを作成する方が良いですか?私はコードが名前空間で分離されているので、コードの読みやすさには何ら影響を与えないと思います。ライブラリを整理する最良の方法は何ですか

私の質問は:

はどのようにライブラリ害性能の大きさ?

+1

多くのプロジェクトを持つと、オーバーヘッドが発生しますが、パフォーマンスは無視できます。それは認知的なオーバーヘッドを引き起こしますが、循環参照の機会が増えるなどの潜在的な問題も引き起こします。 – stuartd

+1

[大きなアセンブリとパフォーマンス](https://stackoverflow.com/q/337144/1997232) – Sinatr

+0

ありがとう@Sinatr、それはまさに私が探していたものです! – ZuLeweiner

答えて

1

これは一般的には初期ロード時にアプリケーションに影響します。依存関係インジェクションがあるシナリオでは、依存関係インジェクションツールが問題を解決するために少し時間を費やさなければならないため、DLLのロードに時間がかかります。

アプリケーションが別のプロジェクトまたはコンポーネントを直接参照する明示的な依存関係に関しては、アプリケーションの負荷でパフォーマンスが犠牲になりますが、存在によってパフォーマンスに影響を与えるべきではありません。これはもちろん、にあるDLLは、どのような作業をしていてもそれらのサイズが読み込み時間を増やすものとして説明しています。

アプリケーションには、ロード時にパフォーマンスが低下するプラグインがある可能性もあります。それが起こるときしかし、あなたはアプリケーションです。

+0

したがって、トピック/名前空間ごとに複数のDLLを作成し、ユーザーが個別に参照として追加できるようにする方がよいでしょうか? – ZuLeweiner

+0

これは、アプリケーションの個々のニーズに対応するため、難しい答えです。アプリケーションが小さく、特定のタスクを実行する状況では、1つのexeだけで十分です。アプリケーションが大きくなればなるほど、それを別のコンポーネントやライブラリに分けることが理にかなっています。特に、複数の場所でコードを再利用したい場合に適しています。 DLLをロードするためのオーバーヘッドは、全体的なプロジェクト、特に大規模なアプリケーション – DiskJunky

関連する問題