1

コンパイルされたCILを見ると、コードサイズがコンパイルされたCILに含まれていることがわかります。コメントアウトされています。以下は例です

C#:

static void MakeACar()
{
Car myCar = new Car();
}

CIL:

.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
}

コードサイズは何を表していますか?

4

1 に答える 1

3

これは、CILがバイトコード形式で占有しているバイト数です。

(例を見てください。最後の命令(ret)はバイトオフセット6()で始まることがわかりますIL_0006:retは1バイトのオペコードとしてエンコードされているため、バイトコードストリームの全長は6 + 1=7になります。バイト。)

于 2010-12-11T02:22:34.100 に答える