Einzelnen Beitrag anzeigen

freimatz

Registriert seit: 20. Mai 2010
1.385 Beiträge
 
Delphi 11 Alexandria
 
#1

Programmstart langsam

  Alt 16. Mai 2019, 20:32
Hallo,
ein Anwender stört sich daran, dass mein Programm langsam startet. Mich hat es auch schon gestört. Es gibt viele kleinere Aktionen und einen größeren Block mit 30 Sekunden. Mein Programm ist eine Windows-Anwendung, XE-2, MDI und Expressbars von DevExpress.
Durch debuggen stellte ich fest, dass die Zeit in der unit System.Classes hier gebraucht wird:
Delphi-Quellcode:
procedure NotifyGlobalLoading;
var
  I: Integer;
  G: TList;
begin
  G := GlobalLoaded; // performance: eliminate repeated trips through TLS lookup
  for I := 0 to G.Count - 1 do
    TComponent(G[I]).Loaded;
end;
G.Count ist 726. Das erscheint recht viel, dürfte aber der Anzahl der Komponenten in meinem Programm entsprechen. Ich sehe derzeit auch keine Möglichkeit einen Teil auszulagern, weil DevExpress das Menüband u.a. beim Start ja auch lädt.
Einige Fälle hab eich durchgesteppt. Irgendwann kommt man in procedure TComponent.Loaded; an wo dann Exclude(FComponentState, csLoading); gemacht wird.

Ist jemand ein Problem bekannt und/oder eine Idee wie man das verbessern kann?

Hier ist das auch schon behandelt, ist aber wohl ein anderes Problem.
  Mit Zitat antworten Zitat