Optimieren von AOT-Bereitstellungen
Der native AOT-Veröffentlichungsprozess generiert eine eigenständige ausführbare Datei mit einer Teilmenge der Laufzeitbibliotheken, die speziell für Ihre App angepasst sind. Die Kompilierung basiert in der Regel auf der statischen Analyse der Anwendung, um die bestmögliche Ausgabe zu generieren. Der Begriff „bestmöglich“ kann jedoch viele Bedeutungen haben. Manchmal können Sie die Ausgabe der Kompilierung verbessern, indem Sie Hinweise zum Veröffentlichungsprozess bereitstellen.
Optimieren für Größe oder Geschwindigkeit
Während der Kompilierung trifft der Veröffentlichungsprozess Entscheidungen und Kompromisse zwischen der Generierung der theoretisch schnellstmöglichen ausführbaren Datei und der Größe der ausführbaren Datei. Standardmäßig wählt der Compiler einen gemischten Ansatz: Schnellen Code generieren, aber auf die Größe der Anwendung achten.
Die MSBuild-Eigenschaft <OptimizationPreference>
kann verwendet werden, um ein allgemeines Optimierungsziel anstelle des gemischten Standardansatzes zu kommunizieren:
<OptimizationPreference>Size</OptimizationPreference>
Das Festlegen von OptimizationPreference
auf Size
weist den Veröffentlichungsprozess an, der Größe der ausführbaren Datei vor anderen Leistungsmetriken den Vorzug zu geben. Es wird erwartet, dass die App kleiner ist, aber andere Leistungsmetriken können betroffen sein.
<OptimizationPreference>Speed</OptimizationPreference>
Das Festlegen von OptimizationPreference
auf Speed
weist den Veröffentlichungsprozess an, die Codeausführungsgeschwindigkeit zu bevorzugen. Es wird erwartet, dass der Spitzendurchsatz der App höher ist, aber andere Leistungsmetriken könnten betroffen sein.
Weitere Optionen zur Größenoptimierung
Da native AOT-Bereitstellungen mit Kürzungen verbunden sind, kann die Größe der Anwendung durch Angabe weiterer Kürzungsoptionen noch mehr verringert werden. Im Abschnitt Bei der Kürzung deaktivierte Frameworkfeatures wird beispielsweise erläutert, wie Sie Bibliotheksfeatures wie Globalisierung deaktivieren.