在这个答案中有一个相当有趣的说法:在 GAC 中有额外的未使用的 .NET 程序集会降低性能。
具体来说,它是关于以下情况:X.Y.Z
机器 GAC 中有程序集,并且该机器上没有程序使用此程序集,并且声称在 GAC 中使用此程序集可能会降低性能。
真的吗?有没有这方面的详细数据?
在这个答案中有一个相当有趣的说法:在 GAC 中有额外的未使用的 .NET 程序集会降低性能。
具体来说,它是关于以下情况:X.Y.Z
机器 GAC 中有程序集,并且该机器上没有程序使用此程序集,并且声称在 GAC 中使用此程序集可能会降低性能。
真的吗?有没有这方面的详细数据?
它影响冷启动,始终是托管代码中最受关注的性能特征,因为它是迄今为止最慢和最引人注目的。托管代码只有很多 DLL 可供查找,包括程序集和 ngen 编辑的 DLL。这在硬盘驱动器上很慢,当文件系统缓存中还没有任何内容时,挖掘文件需要一段时间。更大的目录需要更长的时间来搜索。
这不是托管代码独有的问题,使用大量 DLL 的本机程序也存在此问题。这就是为什么 Office 应用程序或 Acrobat Reader 等大型程序使用“优化器”的原因,这是一个在登录时启动的小程序,除了接触主程序所需的 DLL 集之外什么都不做。预热文件系统缓存。当您第一次登录时,实际上会减慢您真正想要启动的任何程序。我总是删除它们,但它们有被放回去的习惯,尤其是 Adobe 很糟糕。Windows Superfetch 是卓越的解决方案,它根据实际使用情况动态调整可执行文件集以进行预缓存。
实际上从 GAC 中删除程序集当然不是一个现实的解决方案。反正影响很小。