Ich verwende das .NET 4.0-Client-Profil für meine App und ich betreibe einen Dual-Core mit 4 GB Ram und eine schnelle Festplatte.
Am Anfang wird nichts Großes getan, es wird nur eine allgemeine Liste in einer WPF-Listenansicht angezeigt.
Wie kann ich den Kaltstart meiner Baugruppe beschleunigen?
Ich habe jetzt wieder einen Kaltstart gemacht und die windowsapplication.exe in meinem \ obj \ x86 \ Debug-Ordner ausgeführt und meine Festplatte läuft wie die Hölle und es hat 10,5 Sekunden gedauert ???
Was ist los?
Der Warmstart nach dem Erkalten dauerte 1 Sekunde.
Java 6 apps hat dieses Problem nicht, überhaupt nicht zu vergleichen ...
UPDATE:
Ich entferne alle Methoden, die Daten lesen, wenn meine ViewModels erstellt werden.
Noch 10 Sekunden zum Auftauchen. Es ist kein Problem beim Lesen von Daten aus dem RAM. Das Problem ist die stark ausgelastete Festplatte, die noch nie so laut war, außer eine .net 4.0 wpf App laufen zu lassen ...
Ich verweise nicht auf Drittanbieter-DLLs.
Dies sind die Baugruppen, auf die ich Bezug nehme:
Microsoft.CSharp Präsentation.Kore Präsentationsrahmen System System.Kern Systemdaten System.Xaml System.Xml System.Xml.Ling WindowsBase
UPDATE 2:
Ich habe jetzt ein .NET 4.0 wpf-Projekt von Grund auf mit nur einem leeren Fenster und grünem Hintergrund erstellt ;-)
Der Kaltstart dauerte 3 Sekunden (Festplatte wurde sehr beschäftigt)
Dann laufe ich meine andere wpf-App, die früher 10 Sekunden dauerte. Jetzt braucht es nur noch 1,5 Sekunden, um auf dem Bildschirm zu erscheinen.
Die Situation ist mir jetzt klar:
Meine Bewerbung als nichts, was es langsam machen könnte. Es ist nur über die erste WPF-App geladen oder nicht.
Ich denke, ich werde es wie ADOBE Reader machen. Setzen Sie einen Anwendungsbeschleuniger ... in den Autostart, der eine kleine hallo Weltwpf-APP ist ...
Sie können ngen zum Vorkompilieren Ihrer Assemblys verwenden. Das sollte helfen.
Bearbeiten: Es kann eine Sache geben, die helfen kann. Wenn dies eine wpf-Anwendung ist, die auf der Vorlage "new wpf application" in Visual Studio basiert, verweist Ihre Anwendung auf eine Reihe von Baugruppen, die Sie möglicherweise nicht verwenden. Versuchen Sie, alle nicht verwendeten Assemblys aus Ihren Anwendungsreferenzen zu entfernen und sehen Sie, ob das hilft.
Vielleicht möchten Sie sich das ansehen MSDN Blogpost von Jossef Goldberg.
Tags und Links wpf .net performance startup