ASP.NET编译结构中需要中间程序集

时间:2016-04-21 09:10:45

标签: asp.net assembly compilation

在asp.net编译时,代码在IL Assembly中转换,然后在本机代码中转换。 为什么我们需要IL汇编状态? 为什么我们不能将高级语言代码转换为机器代码?我认为它会增加时间和速度吗?

1 个答案:

答案 0 :(得分:1)

确实可以立即编译到机器代码,但由于.Net专注于portability,因此编译为IL而不是机器代码是一个很好的权衡。然后,每个平台(Win7,Win 2008 Server,Win 10等)都具有特定的JIT-compilers,可以在运行时处理特定于平台的代码。否则,您必须为您应该托管应用程序的特定平台编译.Net代码。 (例如,您的开发机器和服务器的另一台机器。)

此外,由于JIT编译是在runtime完成的,因此它可以根据预编译版本不能的数据进行优化。这使得JIT编译的代码有时会更快。

默认情况下,JIT编译的代码缓存在内存中并重用,因此只需编译一次代码即可。

Here是一篇很好的文章,与JIT vs Native相比有利有弊。