Sie sind hier: Startseite | Wissen
BASTA 2016
Begriff Managed Profile Guided Optimization
Abkürzung MPGO
Eintrag zuletzt aktualisiert am 16.11.2016

 Zur Stichwortliste unseres Lexikons

Was ist Managed Profile Guided Optimization?

Durch Aufzeichnung des tatsächlichen Nutzung des Programmcodes wird die Reihenfolge des Programmcodes im Kompilat optimiert.

Microsoft verwendet für die Erstellung der Native Images der .NET Framework Assemblies schon länger einen Optimierungsprozess, der die Reihenfolge des Programmcodes im Native Image an die tatsächliche Verwendung des Programmcodes anpasst. Diese Managed Profile Guided Optimization (MPGO) ist ab .NET 4.5 auch für selbstgeschriebene Assemblies in Form des Werkzeugs mpgo.exe in Visual Studio Ultimate verfügbar.
Zunächst zeichnet man mit dem Werkzeug Nutzungsdaten einer Anwendung auf:

MPGO -scenario Anwendung.exe -AssembyList meineBibliothek.dll -OutDir C:\temp\Ausgabe\

Nach dem Start der Anwendung sollte eine Reihe repräsentativer Benutzungsszenarien in der Anwendung durchlaufen.
Anschließend muss man die DLL noch mit dem Native Image Generator (ngen.exe) zu einem Native Image verwandeln und im Native Image Cache (einem Teil des GAC) installieren:

ngen.exe install C:\temp\Ausgabe\meineBibliothek.dll

Hinweis: Managed Profile Guided Optimization (MPGO) darf nicht mit der Parallel JIT Compilation (alias Multi-Core-JIT – MCJ) verwechselt werden. MCJ beschleunigt Anwendungen, die in Intermediate Langu-age vorliegen. MPGO beschleunigt Native Images. Native Images an sich sind tendentiell schneller als Intermediate Language-Assemblies. Daher sollte MPGO in der Regel zu einem besseren Ergebnis führen also MCJ.

Achtung: Microsoft schreibt in der Dokumentation (http://msdn.microsoft.com/de-de/library/hh873180(v=vs.110).aspx), dass Ngen.exe und Mpgo.exe für IIS-basierte Serveranwendungen (ASP.NET und WCF) nicht empfohlen sind. Mpgo.exe ist zudem nicht möglich für Windows 8-Metro-Apps

PGO in .NET Core

Ab Version 1.1 verwendet Microsoft PGO auch für die .NET Core Runtime-Assemblies.

Querverweise zu anderen Begriffen im Lexikon

Beratung & Support:

Schulungen zu diesem Thema:

 Anfrage für eine individuelle Schulung zum Thema Managed Profile Guided Optimization  Gesamter Schulungsthemenkatalog