Skocz do zawartości
SGJ

Delphi > Wielkość plików exe/dll

Rekomendowane odpowiedzi

Potrzeba mi zmniejszyc wielkośc tworzonych plików .

Wyrzucenie niepotrzebnych z uses nic nie daje, kilka KB mozna zyskać kasując niepotrzebne zasoby z juz skompilowanych plików, kompresja upx/aspack zmniejsza plik o połowe ale pliki nadal są za duże.

 

Mozna jeszcze przestawić na niewkompilowywanie bibliotek rtl w program ale wtedy będe musiał dołączyć pliki do programu bo nie odpali się na systemie bez delphi.

 

Da sie cos jeszcze zrobić?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Potrzeba mi zmniejszyc wielkośc tworzonych plików .

Wyrzucenie niepotrzebnych z uses nic nie daje, kilka KB mozna zyskać kasując niepotrzebne zasoby z juz skompilowanych plików, kompresja upx/aspack zmniejsza plik o połowe ale pliki nadal są za duże.

Ponieważ nie napisałeś dokładnie co w Delphi piszesz (a Delphi wcale nie implikuje programu okienkowego i to jeszcze w VCL...) to podaje różne możliwości.

 

RTFH na temat generowania kodu.

Wyłączyć generowanie/linkowanie debug info, line numbers, itd.

Włączyć generację nastawioną na rozmiar, nie na szybkość.

Włączyć generację kodu dla procesora Pentium (lub nowszego).

Linkować tylko używane biblioteki (o ile automatycznie Delphi tego nie robi?).

Wyłączyć wyjątki (?).

Wyłączyć sprawdzanie indeksów tablic, NULL pointerów, itp. (?)

[(?) Niestety akurat nie mam w tej chwili dostępu do Delphi i dokładnie nie mogę sprawdzić jakie są te opcje, i czy są w Delphi]

 

NIE UŻYWAĆ VCL! Zamiast tego Windows API (o ile się umie i można...). [inne wyjście -> KOL http://bonanzas.rinet.ru/]

Zmienić Delphi na nowszą wersję.

Zmienić język programowania na C/C++ :)

 

No niestety - jak się chce mieć łatwo to płaci się wielkością pliku, i jeszcze ten VCL... ech.

 

Mozna jeszcze przestawić na niewkompilowywanie bibliotek rtl w program ale wtedy będe musiał dołączyć pliki do programu bo nie odpali się na systemie bez delphi.

No niestety, tu już nic nie poradzisz... Albo runtime DLL, albo linkowanie do (dużego) exe.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

 

Zmienić Delphi na nowszą wersję.

To akurat daje odwrotny efekt bo program/dll skompilowany pod delphi 2005 jest większy niz w D7.

Oczywiście poprawienie generacji/optymalizacji kodu nie oznacza, że nie dodają mnóstwo rzeczy (klas czy całych technologi) do VCL... No ale to tak jak napisałem: albo małe albo VCL :roll:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zmienić język programowania na C/C++ :)

No niestety - jak się chce mieć łatwo to płaci się wielkością pliku, i jeszcze ten VCL... ech.

Albo runtime DLL, albo linkowanie do (dużego) exe.

1. A po co ? Object Pascal w niczym nie ustępuje C++ , jest równie szybki.

2. Co chcesz od VCL, to jest ogólnie mówiąc najbardziej user-friendly biblioteka (MFC i WinApi, jest bleee)

3. Jak słyszę gadanie o dużym .exe to smutno mi się robi :)

 

To nie te czasy już, bo teraz nie liczy się +400 kB kodu więcej tylko jego szykość i stabilność , a dam se głowę uciąć że te + 400kb kodu (czy ile tam jest w Delphi) sprawia że program wykonuje się szybciej mając to w sobie na stałe zintegrowane niż jakby miał to tworzyć dynamicznie przez MSWirusa czy odczytywać z jakiegoś pliku biliotek.

 

Większy .exe , .dll ale szybszy i bezproblemowy.

 

Te, gościu czytaj może oryginalny post, co?

Ja nie gość :wink: ja tu już od dawna jestem :) :x

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

 

Zmienić język programowania na C/C++ :)

No niestety - jak się chce mieć łatwo to płaci się wielkością pliku, i jeszcze ten VCL... ech.

Albo runtime DLL, albo linkowanie do (dużego) exe.

1. A po co ? Object Pascal w niczym nie ustępuje C++ , jest równie szybki.

2. Co chcesz od VCL, to jest ogólnie mówiąc najbardziej user-friendly biblioteka (MFC i WinApi, jest bleee)

3. Jak słyszę gadanie o dużym .exe to smutno mi się robi :)

 

To nie te czasy już, bo teraz nie liczy się +400 kB kodu więcej tylko jego szykość i stabilność , a dam se głowę uciąć że te + 400kb kodu (czy ile tam jest w Delphi) sprawia że program wykonuje się szybciej mając to w sobie na stałe zintegrowane niż jakby miał to tworzyć dynamicznie przez MSWirusa czy odczytywać z jakiegoś pliku biliotek.

 

Większy .exe , .dll ale szybszy i bezproblemowy.

Tak, tak... Mnie też by się przydał masażysta...

 

Te, gościu czytaj może oryginalny post, co?

"Potrzeba mi zmniejszyc wielkośc tworzonych plików . [...]"

 

:evil:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Większy .exe , .dll ale szybszy i bezproblemowy.

Tak, dobrze, przy pojedynczym programie nie jest zle ale mój program będzie miał kilkanascie(/dziesiat) dll'i.

 

 

Ogólie to chyba nie będe wkompilowywał rtl i vcl , te pliki zajmują 2 MB, po kompresji ~1MB a i tak całośc będzie dużo mniejsza, bo dll'e bedą miały od 20 do 40 KB zamiast 400. Tylko program głowny musze skompilowac normalnie bo mi jakimis błedami wali.

 

 

Ale w sumie i tak w Delphi te pliki nie są takie duże, wczoraj zainstalowaem Lazarus(taki darmowy odpowiednik delphi) i tam program z pustą formą po kompilacji ma 5.8 MB 8O

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...