C# 在单元测试项目中加载托管程序集似乎会减慢Visual Studio 2010的速度

C# 在单元测试项目中加载托管程序集似乎会减慢Visual Studio 2010的速度,c#,.net,unit-testing,reflection,.net-assembly,C#,.net,Unit Testing,Reflection,.net Assembly,我正在单元测试中加载多个托管程序集。程序集来自解决方案内部,而不是第三方,这并不重要。我注意到,VisualStudio在运行这些测试几次(通常是10次)后,往往会增加内存消耗,并在构建时间和响应能力方面总体上降低速度。如果没有运行这些特定的单元测试,则不会出现这种行为 加载的程序集用于检索嵌入类型并仅创建枚举类型的实例,因此该程序集中的代码不可能导致问题。我尝试了[ReflectionOnlyLoad],但这自然不允许创建类型实例 显然,除非卸载整个应用程序域,否则加载后无法显式卸载程序集 我

我正在单元测试中加载多个托管程序集。程序集来自解决方案内部,而不是第三方,这并不重要。我注意到,VisualStudio在运行这些测试几次(通常是10次)后,往往会增加内存消耗,并在构建时间和响应能力方面总体上降低速度。如果没有运行这些特定的单元测试,则不会出现这种行为


加载的程序集用于检索嵌入类型并仅创建枚举类型的实例,因此该程序集中的代码不可能导致问题。我尝试了
[ReflectionOnlyLoad]
,但这自然不允许创建类型实例

显然,除非卸载整个应用程序域,否则加载后无法显式卸载程序集

我的问题是,单元测试项目是否在VS进程下运行?如果是,这些加载的程序集是否会堆积起来?我假设单元测试上下文将在其自身之后进行清理。

“加载的程序集用于检索嵌入类型并创建的实例”

可能是自我修改代码的问题

如果asm运行在缓存的非绑定部分,它会重写,这会对执行速度产生巨大影响,旁观者不会因为任何逻辑原因而感到惊讶

使用asm,您必须将动态数据和指令数据锁定在一起

读/写动态数据应存储在包含代码的内存块之外

打击是巨大的,速度慢了10倍

基本上,asm计划应该是:

分配2048k

[动态数据]

分配4096k

[守则]

任何装配的味道

如果你做不到,就要学会如何去做,区别就像白天和黑夜