c# - web.config 中的 optimizeCompilations 有什么作用?

标签 c# asp.net

我一直在研究如何加快我的 ASP.NET 项目的调试过程,并且看到一些 SO 海报谈论将 optimizeCompliations 设置为 true。我试过了,它似乎确实让启动速度更快了一点(貌似),但这到底是做什么的,它将如何使我的项目运行得更快?对编译过程进行了哪些“优化”?

最佳答案

请检查此链接:https://blogs.msdn.microsoft.com/davidebb/2009/04/15/a-new-flag-to-optimize-asp-net-compilation-behavior/

我相信它清楚地解释了这是什么:

ASP.NET 使用每个应用程序的哈希代码,其中包括许多事物的状态,包括 bin 和 App_Code 文件夹以及 global.asax。每当 ASP.NET 应用程序域启动时,它都会检查此哈希码是否已从它之前计算的值发生变化。如果有,则整个 codegen 文件夹(已编译和影子复制的程序集所在的位置)将被清除。

当启用此优化时(通过 <compilation optimizeCompilations="true" /> ),哈希不再考虑 bin、App_Code 和 global.asax。因此,如果这些发生变化,我们不会清除 codegen 文件夹。

当然,如果 App_Code 或 global.asax 发生了变化,它们将被重建。但是之前编译过的页面则不会(除非它们自己进行了更改)。

请注意,此优化不会影响应用域关闭行为。也就是说,一旦任何顶级文件发生变化,我们仍然会立即关闭该域。受影响的只是新域中的编译量。

关于c# - web.config 中的 optimizeCompilations 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40346591/

相关文章:

c# - 防止 Autofixture 填充子集合

c# - 为什么我不能在通用 IEnumerable 对象上调用 ToArray?

c# - 无法验证 Windows Live 帐户 Windows Azure AD

c# - 引用滥用 : Worth Cleaning Up?

c# - 向 DataTable 添加多行

asp.net - 使用 StructureMap3 在 MVC 应用程序中注入(inject)当前用户的依赖项

c# - "The type mapping for ' Instant ' has not implemented code literal generation"分割实体时

asp.net - 在 Visual Studio 中使用查询字符串参数进行调试

c# - 为什么导航属性有时会返回 null?

javascript - Asp.net 在按钮按下时执行 html 代码