Übergang von verwaltet zu systemeigen vermeiden
-
Hallo!
Wenn ich eine einfache Zuweisung mache, etwa
double d1,d2; d1 = d2;
dann ist kein Übergang von verwaltet zu systemeigen nötig.
Auch wenn viele elementare Operationen hintereinander
in einer Schleife ausgeführt werden, wird kein "Managed Code"
eingefügt.Sobald aber eine verwaltete Funktion aufgerufen wird, dann
werden in diese mehrere Assemblerinstruktionen geschrieben,
die mit dem eigentlichen Code nichts zu tun haben.
Ich vermute stark, dass diese u.a. mit der Garbage
Collection zu tun haben (um die Ausführung des Codes zu
unterbrechen).
Um diese unnötigen Instruktionen zu vermeiden, könnte ich
die Funktion als systemeigen kompilieren - der Overhead in
der Funktion ist weg, aber dafür hab ich einen Übergang von
verwaltetem zu systemeigenem Code, und das ist ja auch nicht
besser...Lässt sich das irgendwie unterbinden? Insbesondere,
wenn die Funktion nur wenige elementare Instruktionen enthält,
die nur auf systemeigenen Speicher zugreifen. Die Funktion
kann jedoch nicht inline compilert werden kann, da sie als
virtual deklariert ist.)Alex