我一直在研究如何加快我的 ASP.NET 项目的调试过程,并且看到一些 SO 海报谈论将 optimizeCompliations
设置为 true。我试过了,它似乎确实让启动速度更快了一点(貌似),但这到底是做什么的,它将如何使我的项目运行得更快?对编译过程进行了哪些“优化”?
最佳答案
我相信它清楚地解释了这是什么:
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/