Czas uruchamiania programu

0

Witam,

W jaki sposób skrócić czas uruchamiania programu. Czy wrzucenie niektórych zasobów do DLL dużo pomoże. Może jest jakiś inny sposób?

Z góry dziękuję za pomoc,
Piotr Murawski

0

Jeżeli dany program ma sporą ilość form, należy wykreślić ich tworzenie z pliku projektu. Lepiej jest je tworzyć w momencie wywołania. Znacznie skraca to czas uruchamiania.

0

Problem w tym, że jest jedna forma a na niej sporo komponentów.
Program po skompilowaniu ma 1,4 MB czas uruchomienia to około 4-5 sek.
Przecież są większe pliki wykonywalne np. MS Word a uruchamiają się błyskawicznie.

0

MS Word uruchamia sie blyskawicznie?! U mnie Word 2002 na Athlonie XP 2000+ i 512MB DDR333 (@400MHz) startuje wcale nie szybciej!

0

W takim razie pomoże tylko optymalizacja kodu.. i zdaje się, że zmniejszenie ilości zmiennych globalnych (ale tego ostatniego nie jestem pewny).

0

MS Word uruchamia sie blyskawicznie?! U mnie Word 2002 na Athlonie XP 2000+ i 512MB DDR333 (@400MHz) startuje wcale nie szybciej!

Wybaczcie ten Off Topic, ale na PIII 500E 384MB Word97 odpala się (tak na oko) 1/3 sekundy, a Word2000 za pierwszym razem 7 sekund a następne uruchomienia zajmują 3 sekundy.

0

Mała rada: Jak czegoś nie potrzebujesz to tego nie bierz, ale jak bedziesz póżniej potrzebował to weź dopiero kiedy bedziesz potrzebował, czyli w skrócie kombinuj z tworzeniem dynamicznym rzadko używanych komponentów, a będzie dobrze

0

Word97 odpala się (tak na oko) 1/3 sekundy, a Word2000 za pierwszym razem 7 sekund a następne uruchomienia zajmują 3 sekundy.

Miałem na myśli niewiele szybciej niż wspomniane przez niego 4-5 sekund :). A poza tym może to przez moją fragmentację MFT :). Koniec tematu :) (a w sumie to offtopica)

0

możesz zrobić takie coś jak w delphi, że jak włącza sie program to pokazuje sie taki obrazek, o ile dobrze sie orientuje to nazywa sie to 'splash screen' w artykułach (albo w faq, gotowcach) jest napisane jak takie coś zrobić

0

Tylko w jaki sposób Splash Screen (zwany przez niektórych Nag Screen-em) ma przyspieszyć uruchamianie aplikacji ? Skutek będzie raczej odwrotny.

A propos pytania. Jak wspomniano powyżej, stosuj jak najmniej zmiennych globalnych. Pamięć dla nich jest rezerwowana przy uruchamianiu aplikacji. Stosuj jak najmniejszą liczbę komponentów, zwłaszcza form. A jeśli jest to możliwe stosuj tzw. "tworzenie dynamiczne".
Jeśli tempo uruchamiania aplikacji jest "extremely important", zrezygnuj całkowicie z komponentów Borlanda i używaj tylko funkcji API (WndProc + RegisterClass + CreateWindow + GetMessage + itp.). Tylko, że to znacznie skomplikuje sytuację.
Umieszczenie części zasobów w DLL-u może przyspieszyć uruchamianie programu, pod warunkien jednak, że zasoby te nie będą wykorzystywane w trakcie uruchamiania aplikacji.

(Celeron 333 MHz, 256 MB RAM, Win2000 - uruchamianie Worda 2000 - ok. 20 sekund)

//Pozwolę się tu wtrącić, bo nie ma sensu tworzyć osobnego posta. Splash screen i Nag screen - pomimo, że oba pojawiają się przy uruchamianiu programu - mają całkowicie inne funkcje i nie powinny być uważane za to samo - m.M

///////////////////////////////////////////////
Nag Screen wyświetlający tylko np. informację o tym, że program nie jest zarejestrowany można, z przymrużeniem oka, potraktować jako Spalsh Screen. Ale przyznaję się do błędu. Nag i Splash Screen to nie to samo.

0

"Najszybszy kod to ten, który nie jest wykonywany".
Usuwaj wszystko co zbędne z programu.
Skoro masz tylko jedną formę, to pewnie problem stanowią komponenty. Nie ładuj tak duzej ich liczby, a jeżeli już musisz, to odwlecz w czasie ich tworzenie.

(Word XP - 2 s., ale jak mu odbija i dysk jest zapchany na full to może mu i z 10 s. zająć Duron 800)

0

Tylko w jaki sposób Splash Screen (zwany przez niektórych Nag Screen-em) ma przyspieszyć uruchamianie aplikacji ? Skutek będzie raczej odwrotny.

no wiadomo że nie przyspieszy, ale przynajmniej bedzie jakoś to wyglądało, wyobraź sobie żeby delphi które uruchamia sie ok minute (tak jest u mnie) niemiało by tego splash screena, bezsensu by było żeby sie tak wczytywało, mógłbym nawet nie wiedzieć ze sie wczytuje, a tak przynajmnoiej wiem. We wszystkich programach które wczytują sie nawet pare sekund jest splash screen

0

Autorowi pytania chodziło wyraźnie o to, cytuję: "w jaki sposób skrócić czas uruchamiania programu", a nie: w jaki sposób powiadomić użytkownika, że program został uruchomiony !

1 użytkowników online, w tym zalogowanych: 0, gości: 1