如何知道我的代码是否内联
本文关键字:是否 代码 何知道 我的 | 更新日期: 2023-09-27 18:28:36
我想知道我的代码是否可以内联。我找到了一种方法,那就是:
Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name);
但我不确定它应该如何告诉我。如果我在这个上使用它:
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static ImageCodecInfo GetEncoderInfo(ImageFormat format)
{
Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name);
return ImageCodecInfo.GetImageEncoders().ToList().Find(delegate(ImageCodecInfo codec)
{
return codec.FormatID == format.Guid;
});
}
如果控制台是内联的,那么它应该写什么?根据我的理解,它应该写下呼叫者的名字,例如:
Private void Caller()
{
ImageCodecInfo GetEncoderInfo(bmpFormat)
}
控制台将写入Caller。
这是正确的吗?如果是这样,那么我尝试过的任何东西都不会内联。
GetCurrentMethod阻止内联(源http://prdlxvm0001.codify.net/pipermail/ozdotnet/2011-March/009085.html)
请记住,内联是在JIT期间完成的,而不是编译。