【发布时间】:2012-10-02 08:26:50
【问题描述】:
我正在尝试生成一些会导致 JIT 内联的“Hello World”大小的 C# 代码 sn-p。到目前为止,我有这个:
class Program
{
static void Main(string[] args)
{
Console.WriteLine( GetAssembly().FullName );
Console.ReadLine();
}
static Assembly GetAssembly()
{
return System.Reflection.Assembly.GetCallingAssembly();
}
}
我从 Visual Studio 编译为“Release”-“Any CPU”和“Run without debugging”。它清楚地显示了我的示例程序程序集的名称GetAssembly() 没有内联到Main(),否则它将显示mscorlib 程序集名称。
如何编写一些会导致 JIT 内联的 C# 代码 sn-p?
【问题讨论】:
-
我认为内联会改变程序的可观察行为,我想你一定会失望 :)
-
@jalf:即使使用反射?
-
@jalf:这不太正确。例如,堆栈跟踪确实受到内联的影响。
-
@DanielHilgarth:堆栈跟踪不算作“可观察行为”:)