2008-09-13 13 views
4

Was sind die häufigsten Speicheroptimierungen in Csharp, dotnet 2.0. Gesucht wenn es gemeinsame Dinge zu sehen, dass die Menschen standardmäßig in winform AppGemeinsame Speicheroptimierung

Antwort

9
  • Verwendung structs für kleine Wrapper-Objekte zu vermeiden Heapfragmentierung
  • denken Sie sorgfältig über das Objekt Leben kann nicht tun, vor allem für große Objekte, so dass sie tun am Ende nicht auf der LOH, wenn Sie sie zu
  • denken über Zuweisungen innerhalb einer Schleife
  • stellen Sie sicher, dynamisch angepassten Array beabsichtigen, von angemessener Größe sein, sonst partitionieren das Problem
3

Verwenden Sie StringBuilder, anstatt eine Zeichenfolge direkt zu ändern, wenn Sie viele Änderungen an derselben Zeichenfolge vornehmen.

0

Das Versiegeln so vieler Klassen wie möglich sollte auch helfen. AFAIK Dies ist ein Trick, mit dem SmartAssembly den Speicherverbrauch reduziert.

+0

Dies ist nicht für den Speicherverbrauch, sondern für die Geschwindigkeit. Versiegelte Klassen können schneller geladen und aufgerufen werden, da Sie nicht davon ausgehen müssen, dass ihre Methoden überschrieben werden. –

+0

Vielleicht wird die CLR in einer zukünftigen Version der Plattform alle Klassen zuerst als versiegelt laden und sie patchen, wenn sie später abgeleitete Typen lädt. – kokos