Ich hätte gedacht, dass es klar wäre, ob die Speicherzuweisung in verwaltetem Code schneller ist als in nativem Code - but there seems to be some controversy. Vielleicht ist die Speicherverwaltung unter einer virtuellen Maschine schneller, weil keine Aufrufe von Kontextwechseln zum Betriebssystem erfolgen, aber dann sehe ich, dass die VM selbst periodisch mehr Speicher für das Betriebssystem benötigt und den Verwaltungsaufwand für den Speicher selbst hat eher als das Betriebssystem.Ist .NET-Speicherverwaltung in verwaltetem Code schneller als in systemeigenem Code?
Anstatt unbegründete Behauptungen wie ich zu machen, geben Sie bitte Links zu Referenzen, die Ihre Position unterstützen.
Würde das nicht zu einem ständig wachsenden Stapel führen? Und Stapelfragmentierung? – Josh
Josh, hier kommt die Garbage Collection ins Spiel. Sie entfernt de-referenzierte Objekte aus dem Heap und verschiebt dann alle verbleibenden Objekte wieder in einen zusammenhängenden Block aus verwendetem Speicher und aktualisiert dann alle betroffenen Referenzen mit den neuen Zeigerwerten. –
So ist Speicherzuweisung in verwaltetem Code schnell, aber die Langsamkeit gelegentlicher Garbage Collection-Ereignisse ist der Kompromiss. –