可以.net JIT编译器内联的方法是用属性装饰?



如果有一个属性(任何属性),可能是有原因的,所以理论上,它不应该内联,但这只是一个猜测。
如果我想建议我不想要内联,我必须使用[MethodImpl(MethodImplOptions.NoInlining)]吗?

一般属性?确定;然而,编译器和JIT都可以自由地特别关注System.Runtime.CompilerServices中的任何内容,并应用特殊规则(好吧,技术上它们可以特别关注任何内容,但是相关类型倾向于;反例是[Obsolete][Serializable],它们不在该名称空间中,但具有特殊规则)。[MethodImpl(...)]是具有JIT特殊规则的属性之一。

但是,一般意义上的属性;没有真正的区别。

是的,[MethodImpl(MethodImplOptions.NoInlining)]请求JIT不应该内联这个。

最新更新