.net - 拥有多个 DLL 好还是单个大 DLL 好?

标签 .net performance memory dll namespaces

拥有多个 DLL 更好还是单个大 DLL 更好?或者说有什么关系吗?

我正在开发的应用程序很大,有很多命名空间。目前,每个命名空间都包含在一个单独的 DLL 中,但是我们一直在考虑将其中的几个命名空间组合起来以简化依赖性问题。

当一个命名空间被引用时,所有其他命名空间是否也会被加载到内存中?我只关心性能。

最佳答案

命名空间和程序集 (DLL) 都提供了对项目进行分区的方法,但它们的实现方式不同:命名空间提供逻辑分区,而程序集提供物理分区。

通常这些分区的边界完全匹配,但不一定如此:您可以让来自同一命名空间的类出现在多个程序集中;您还可以将多个命名空间中的类放入同一个程序集中。

我遵循的创建新程序集的经验法则很简单:如果存在一组类可以独立于另一组类使用的情况,则这两个组应该进入不同的程序集。这使您可以更灵活地将程序集混合为其他项目的依赖项。由于依赖项的依赖项是延迟加载的,因此制作较小的 DLL 可以让您更好地管理应用程序的运行时占用空间。

与多个 DLL 相关的最大问题是编译时间显着增加。幸运的是,可以通过 managing the "Copy Local" 来解决。设置。

关于.net - 拥有多个 DLL 好还是单个大 DLL 好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12749694/

相关文章:

java - 在 Java 中取消引用 `null` 时是否可能产生未定义的行为?

c++ - C/C++中的内存分配

c# - IList<T> 接口(interface)的用例

.net - C# 7 : Why is tuple deconstruction not implemented through an interface?

Android ViewPager 和 TabLayout 运行不快

java - 减少 Java 进程的内存使用

c# - 枚举时修改 .NET 字典

c# - 如何通过列表属性将对象拆分为对象列表 C#

jquery - 在 .attr 上组合多个元素

android - 优化/组合相关的Android布局