Zum Erstellen und Anzeigen eines Formulars dauert 10 Sekunden, und ich möchte den Prozess verkürzen.Optimierung der Erstellung eines Formulars
Seitens die
Inherited Create(AOwner);
Welche 2 Sekunden aus der Gesamtlaufzeit erfolgt.
Gibt es eine Möglichkeit, die Eltern erstellen, die das Delphi TForm ist? Oder Sie wissen, was die Gründe für die Zunahme der Zeit in der
Inherited Create(AOwner);
telefonieren?
Update: Nun, ich habe nicht für 18 Kommentare und 3 Antwort erwartet: D danke Ihnen allen für Ihre Antwort.
bei dem aktuellen Zustand habe ich ein paar Profile, die rund um hier, und nicht zu einer echten Codezeile führen, die am Code war, war es hauptsächlich Kernel-Aufrufe oder Systemaufrufe.
so nach der Delphi XE2 zu kaufen, die mit AQTime kommt, im Versuch, das Projekt zu Delphi XE2, zu aktualisieren, die jetzt ein paar Tage dauern. (BIG PROJECT)
krank Informationen hinzufügen, wie ich die Informationen aus der get Profiler.
BTW, außerhalb einer Windows-Server-Domäne, macht die Aktion doppelt so viel langsamer. als ein Innencomputer läuft unter 5 Sekunden. Das ist viel besser, aber immer noch langsam.
Update2: Kompilieren und Ausführen mit Delphi XE2 verbesserte fast 20% in der Zeitpräferenz gegenüber Delphi 2009. AQTime lieferte keine nützlichen Informationen.
update3: links xe2, nicht stabil. ging zurück zu delphi 2009 dort versuchte in Anfang des Konstruktor
SendMessage(application.Handle, WM_SETREDRAW, 0, 0);
und am Ende des Konstruktor
SendMessage(application.Handle, WM_SETREDRAW, -1, 0);
form.Repaint;
0,1 Sekunden verringert.
Wenn ich das mache, wird das Formular sofort erstellt. Offensichtlich unterscheiden sich Code und Code. Ich weiß, was mein Code tut, aber ich weiß nicht, was dein Code ist. –
@none Wenn Sie viele, und ich meine ** viele ** visuelle Komponenten auf dem Formular haben, könnte es erheblich länger dauern, bis Ihre Anwendung die Formulare auf Basis der * .dfm-Ressource (n) erstellt hat. In diesem Fall könnte das Erstellen der Komponenten mit Code die Geschwindigkeit verbessern, aber es wäre ein Overkill. Verwenden Sie die Vererbung von mehreren Formularen? ein paar Code, was genau in OnCreate Ihres Formulars passiert, würde helfen, ich nehme an, dass es aufgrund einer Datenbankverbindung offen bleibt? – ComputerSaysNo
@DorinDuminica Ja, das Formular enthält mehr als hundert visuelle Komponenten. Der Constractor selbst ist riesig und ich versuche, die Probleme einzeln zu isolieren. – none