首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用任何类型的情况下加载许多托管DLL是不是很糟糕?

在不使用任何类型的情况下加载许多托管DLL是不是很糟糕?
EN

Stack Overflow用户
提问于 2008-09-16 07:35:55
回答 4查看 601关注 0票数 3

背景:在我的公司,我们正在开发一些使用相同核心dll的应用程序,这些dll使用Spring.net的IoC容器来连接(自动连接)。所有应用程序都使用相同的spring配置文件,此配置文件指向许多不同dll中的许多类。但并不是所有应用程序都需要来自每个dll的功能。但由于IoC-containers的工作方式,所有的动态链接库都是为Spring.net加载的,以检查类型和它们实现的接口等等。

核心问题:我知道最好只加载你真正用到的dll。但是仅仅加载托管dll真的对内存使用不利吗?或者是先使用dll中的类,然后才使用dll中的类,而这些类使用了最多的内存?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-09-16 08:06:37

如果程序集中的任何代码都没有使用过,那么最终该程序集中的页面将从内存移动到页面文件中,以支持活跃使用的页面。在这种情况下,总体的长期影响可能很小。不过,这会对启动时间产生负面影响。

票数 1
EN

Stack Overflow用户

发布于 2008-09-16 07:42:16

我不认为这有那么糟糕。唯一的问题是,由于您的应用程序需要大量的元数据和内存量,应用程序中正在使用的某些部分更有可能位于不同的内存页,这可能会导致一些性能泄漏,但这是非常低的应用程序段,这种类型的事情是至关重要的。

票数 1
EN

Stack Overflow用户

发布于 2008-09-16 07:43:24

真的很糟糕是一个很难量化的术语,我想这取决于事情的规模,一般来说,我会说如果你可以避免加载你不需要的东西,那么你应该这样做。当然,如果您使用反射来确定是否可以使用它,您首先必须加载it...chicken和egg问题。

需要注意的是,一旦将程序集加载到应用程序域中,就无法将其从该应用程序域中卸载,但是可以动态创建应用程序域,将程序集加载到其中,并在完成后卸载整个应用程序域。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档