witam! stworzyłem rozbudowany programik (ma ponad 30 okienek i sporo kodu). niestety bardzo wolno się włącza ok. 40 sek. Jak można to przyspieszyć? Usunąłem wszystkie niepotrzebne moduły ale mało to pomogło...
Uruchamiaj okienka dynamicznie a nie podczas startu programu
Spróbuj tworzyć te okienka dopiero wtedy kiedy są potrzebne tuż przed wywołaniem, to powinno znacząco wpłynąć na szybkość uruchamiania się aplikacji.
Przedwewszystkim wszystkie okienka prócz okna głównego przesuń do Available forms
Project->Options zakładka Forms.
Przy Wywołaniu Okienka robisz
Form2:=Tform2.Create(self);
Form2.Show;
{a w on Close okienka Dajesz} Action:=Cafree;
Dodatkowo algorytmy posprawdzaj bo 40 sec to jednak dużo ;-P
(coś za dużo robisz na starcie) poprzenoś takie procedury tam gdzie jest to możliwe tak aby wykonywały się gdy użytkownik tego zechce , bo wiadomo że wszystkich 30 okienek czy też funkcji programu nie będzie wywoływał natychmiast a być może części nie wykorzysta wcale lub tylko czasem.
No i Optymalizuj kod gdzie się da.
niestety niewiele to pomogło(jeśli w ogóle :-( ) dodam jeszcze, że przy starcie program obciąża procka na ponad 90%. podczas startu pobieram kilka danych z pliku INI, wyświetlam okno powitalne, sprawdzam czy to pierwsze włączenie programu aby wyświetlić odpowiednie okno, dane z INI zastosowuje do wyglądu aplikacji. Nie wiem czy to może powodować takie obciążenie i lagi... [glowa]
Nie, to stanowczo za długo - problem musi leżeć gdzie indziej.
pozostają mi już tylko 2 pomysły na tak wolne włączanie:
1.nie wiem czy to ma wpływ ale w opcjach projektu w zakładce packages jest sporo nieużywanych przez program modułów.
2.skórka programu tak bardzo obciąża procka i spowalnia włączanie
Pierwsze powinno być bez znaczenia, drugie - źle zrobione (obciążanie dysku, nie koniecznie procesora) - może być zabójcze dla aplikacji. Poszukaj, bo problem może jeszcze gdzieś indziej leżeć.
wsadzę podczas ładowania do programu progressbar i w różnych momentach algorytmu startującego program będę dodawał kilka procent. Może coś z tego wyjdzie...