【发布时间】:2015-12-15 17:12:38
【问题描述】:
我将 C#.NET 用于 Web 应用程序。我读过 JIT 编译发生在运行时,这意味着(如果我错了,请纠正我)当请求到达 IIS 时会发生编译。
在解决方案的构建阶段使用csc.exe 进行另一次编译,使用MSBuild 将高级代码转换为CIL。
如果没有 JIT 并且我们想使用 AOT,那么 AOT 将适合所有这一切吗?
我的问题是,在从构建代码到第一个请求的整个阶段,AOT 编译发生在什么时候? (平台/框架无关紧要)
【问题讨论】:
-
“构建”是指 AOT 编译就像 C、C++ 应用程序一样发生时,C# 代码将直接编译为“构建”期间指定的特定平台的机器代码。
-
好吧,平台/框架确实很重要。 .NET 中唯一完整的纯 AOT 发生在典型用户运行程序之前的几周。在 Redmond 的 Store 服务器上,使用 .NET Native。与 Web 应用程序没有任何关系,您只能使用 Ngen。反射代码和一些泛型仍然是 jitted。
标签: c# compilation jit