Kaltstartleistung WPF

8

Ich verwende die Leistungsanalyse-Tools in Visual Studio, um eine ziemlich große und komplexe WPF-Anwendung auszuwerten, an der ich arbeite. Ich war in der Lage, die Kaltstart-Zeit erheblich zu reduzieren, indem ich die meisten Benutzersteuerelemente, die ich zuvor auf die Anwendung geladen habe, langsam lade. Allerdings sehe ich immer noch den Großteil meiner CPU-Zyklen in der Assembly 'PresentationFramework.ni.dll' ". Dies hilft mir nicht herauszufinden, was die Ursache ist, weil alles, was es sagt, ist, dass die Zeit für ein bestimmtes Benutzersteuerelement 'InitializeComponent' (d. H. XAML-Parsing) oder Window.Show (d. H. XAML-Parsing) ausgegeben wird.

Meine Frage lautet: Wie kann ich detailliertere Erkenntnisse darüber erhalten, welche spezifischen XAML-Elemente das Leistungsproblem verursachen?

Ich verwende Visual Studio 2013 und Windows 8.1. Ich verwendete das alte Windows 7 SDK WPF Performance Toolkit, das eine wirklich nützliche Rendering-Zeitanzeige zeigte, die die Farbe auf dem Bildschirm änderte, als ein bestimmtes UIElement neu zeichnete, aber ich kann nicht das gleiche Tool finden, das unter Windows 8 läuft .

    
markti 30.04.2014, 20:26
quelle

1 Antwort

1

Ich vermute, dass das Benutzersteuerelement einen "tiefen" visuellen Baum hat, so dass es Zeit benötigt, um es zu initialisieren. Ich war selbst damit konfrontiert und benutzte eine Umgehungslösung, um die Benutzersteuerelemente im Hintergrund zu laden, sobald die Anwendung gestartet wurde. Das hilft.

    
amolDotnet 01.05.2014 13:48
quelle

Tags und Links