JIT Loop Invariant Hoisting
在上一篇文章中,我们已经对 Loop Invariant
概念有一个简单的了解,在文章的最后提到的 Loop Invariant
将在这篇文章做一个简单的介绍。
在我们开始之前
如果你了解 C#
程序的运行,应该知道 C#
代码先被编译器编译为 MSIL
中间代码,在实际运行的时候才通过 JIT
编译器将 MSIL
代码编译成机器代码并运行。因此,编译器有两个时段可以对代码进行优化:
- C# -> MSIL
- MSIL -> MACHINE CODE