.NET CIL代码大小
当查看编译后的CIL时,我注意到编译后的CIL中包含了代码大小。它被注释掉了。下面是一个例子 C#: CIL:.NET CIL代码大小,.net,cil,code-size,.net,Cil,Code Size,当查看编译后的CIL时,我注意到编译后的CIL中包含了代码大小。它被注释掉了。下面是一个例子 C#: CIL: 代码大小代表什么?这只是CIL以字节码形式占用的字节数 (看看您的示例:您可以看到最后一条指令(ret)从字节偏移量6(IL\u 0006:)开始。由于字节码流的总长度为6+1=7字节。)您的意思是什么?这是生成代码的实际大小,还是将放在托管堆上的新创建的Car类的大小?生成(组装)CIL代码的实际大小。例如,ret指令具有字节码表示形式2A。stloc.0还占用1个字节,newobj
代码大小代表什么?这只是CIL以字节码形式占用的字节数
(看看您的示例:您可以看到最后一条指令(
ret
)从字节偏移量6(IL\u 0006:
)开始。由于字节码流的总长度为6+1=7字节。)您的意思是什么?这是生成代码的实际大小,还是将放在托管堆上的新创建的Car类的大小?生成(组装)CIL代码的实际大小。例如,ret指令具有字节码表示形式2A
。stloc.0还占用1个字节,newobj指令是1个字节,后跟4个字节的methoddef。
static void MakeACar()
{
Car myCar = new Car();
}
.method public hidebysig static void MakeAObject() cil managed
{
//Code size 7 (0x7)
.maxstack 1
.locals init ([0] class SimpleGC.Car c)
IL_0000: newobj instance void SimpleGC.Car::.ctor()
IL_0005: stloc.O
IL_0006: ret
}