Wenn bei den kompilierten CIL suchen, merke ich, die Codegröße in der kompilierten CIL enthalten ist. Es ist auskommentiert. Unten ist ein Beispiel.NET CIL-Code Größe
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
}
Was repräsentiert die Codegröße? Diese
Was meinst du? Ist dies die tatsächliche Größe des generierten Codes oder die Größe der neu erstellten Car-Klasse, die auf dem verwalteten Heap abgelegt wird? – contactmatt
Die tatsächliche Größe des generierten (zusammengesetzten) CIL-Codes. Zum Beispiel hat eine ret-Anweisung die Bytecode-Darstellung "2A". stloc.0 belegt ebenfalls 1 Byte, und der Befehl newobj ist 1 Byte, gefolgt von einem 4 Byte methoddef. –