正如问题所说,我想知道有没有任何影响CLR编译/优化字节码的属性。是否存在一个属性会影响代码中的内联决策?展开循环?
生成匿名类型/委托的类上是否有未记录的属性?
可能有一些为了调试目的而禁用优化的属性,但我对这些并不太感兴趣。
正如问题所说,我想知道有没有任何影响CLR编译/优化字节码的属性。是否存在一个属性会影响代码中的内联决策?展开循环?
生成匿名类型/委托的类上是否有未记录的属性?
可能有一些为了调试目的而禁用优化的属性,但我对这些并不太感兴趣。
我在调试时只用过这个:
[MethodImpl(MethodImplOptions.NoInlining)]
这将防止JIT内联一个方法。还有一个:
[MethodImpl(MethodImplOptions.NoOptimization)]
这只是防止JIT在代码生成中发现罕见的Bug,从而导致问题。