3 Stimmen

.NET: Leistung von Windows-Formularen/Steuerelementen

Wir haben eine Anwendung mit sehr schwerem UI. Kürzlich begannen unsere Kunden, sich über die Startleistung der Anwendung zu beschweren. (Zuvor unsere Steuerelemente/Formulare wurden initialisiert, während eine Art der Splash-Screen mit einer Nachricht "Starten" angezeigt wurde).

Ich habe eine Forschung gemacht und gefunden, dass das Steuerelement InitializeComponent() (die von VS-Designer generiert wird) Methodenaufruf bis zu ~ 0,4-0,5s für komplexe Steuerelemente nehmen kann. Und es gibt eine Menge solcher Steuerelemente, so dass ich ~10-15 Sekunden der Anwendung Startzeit als das Ergebnis erhalten. Es gibt nichts, was wirklich schwer sein könnte, nur die Initialisierung der Steuerelemente (z.B. verschiedene Toolstrips, Toolstripbuttons, Initialisierung der Menustrips, Einrichtung der verschiedenen Texte usw.).

Gibt es eine Möglichkeit, die Leistung der Initialisierung von Steuerelementen in diesem Fall zu verbessern? Vielleicht eine Art Zwischenspeicherung oder etwas Ähnliches (so dass unsere Anwendung nur beim ersten Laden langsam gestartet wird)?

P.S. Wir verwenden .NET 2.0

Vielen Dank im Voraus.

1voto

Rich Turner Punkte 10400

Sie geben an, dass Sie zumindest eine rudimentäre Analyse der Startzeit Ihrer Anwendung durchgeführt haben, aber haben Sie Ihre Anwendung mit dem Profiler von Visual Studio, ANTS oder ähnlichem gründlich profiliert?

Eine gründliche Profilierung Ihrer App gibt Ihnen die genaueste Aufschlüsselung darüber, wo Ihre App ihre Zeit verbringt. Alles andere ist reine Spekulation.

Sie könnten auch in Erwägung ziehen, Teile Ihrer Anwendung mit NGEN zu versehen und die Startzeiten Ihrer Anwendung neu zu profilieren, um festzustellen, ob die NGEN-Behandlung Ihres Codes tatsächlich zu einer Leistungssteigerung geführt hat.

Wenn Sie jedoch etwas sehr Komplexes entwickelt haben, kann es sein, dass Sie die Rechner Ihrer Benutzer einfach überfordern. Deshalb ist es von entscheidender Bedeutung, die Leistung Ihres Codes auf einem Gerät zu messen, das der Hardware und der Umgebung Ihrer Endbenutzer so ähnlich wie möglich ist.

Eine weitere Sache, die man bedenken sollte, ist, dass WinForms nicht wirklich die Vorteile der modernen hardwarebeschleunigten Grafik nutzt. Möglicherweise finden Sie, dass die Portierung auf WPF Ihnen genau den Schub gibt, den Sie brauchen, aber stellen Sie sicher, dass Sie Prototypen und Profile sorgfältig erstellen, bevor Sie erhebliche Ressourcen für diesen Weg einsetzen.

HTH.

0voto

Ralf de Kleine Punkte 11038
  • Daten asynchron laden

  • Schnellere PCs kaufen

  • WPF (.net 3.5) verwenden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X