Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zašto su Delphi aplikacije tako velike i kako ih smanjiti?

[es] :: Pascal / Delphi / Kylix :: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?

[ Pregleda: 1723 | Odgovora: 13 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

borovac
127.0.0.1

Član broj: 29278
Poruke: 220
*.dlp357.bih.net.ba.



Profil

icon Zašto su Delphi aplikacije tako velike i kako ih smanjiti?04.07.2005. u 22:46

Znam da su velike zato što koriste VCL. Imali li još razloga??
Znam da se mogu smanjiti koristeći UPX compressor. Ja svoje aplikacije smanjujem na još jedan način. Otvorim ih u Borland C++ -u . Onda se pokaže resource. Izbacim one bitmaps i cursors, tako budu manje za nekoliko kb.
Ima li još načina da se smanji nešto napravljeno u Delphi-u?????
04.07.2005. u 22:46 

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.pat-pool.bgd.sbb.co.yu.



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?04.07.2005. u 23:23
Ima vec ovakav thread, koristi pretragu...
04.07.2005. u 23:23 

milex
NLB Montenegrobanka
Podgorica

Član broj: 26783
Poruke: 28
195.66.176.*

Jabber: milex@elitesecurity.org
ICQ: 291956322


Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?05.07.2005. u 07:09
Ima, vrlo jednostavan compresor, Aspack.exe. Kompresuje sve iz Delphia pa čak i dll-ove.



<M I L E X>
05.07.2005. u 07:09 

vardarce

Član broj: 58207
Poruke: 26
62.162.246.*



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?05.07.2005. u 08:11
Evo ti dobre primer za nonVCL aplikacije. Ako hoces da naucis nesto poslozenije prouci ove primere i aplikacije ce ti bude goleme kao da su pravene u C++

www.freewebs.com/vardarce/download/examples/Win32APITutorials.rar
05.07.2005. u 08:11 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Član broj: 32202
Poruke: 3995
*.yu1.net.

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?05.07.2005. u 08:28
Citat:
milex: Ima, vrlo jednostavan compresor, Aspack.exe. Kompresuje sve iz Delphia pa čak i dll-ove.


malo sam progooglao i svi rezultati pominju ASPACK zajedno sa SPYWARE... no dobro... imas li ti link za download tog ASpack-a (jako mi je poznato ime, vec sam ga video, ali ne znam gde), jer mi ovi sajtovi koje nadjem na google-u ne daju link za download (posto kazu da je spyware)?
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
05.07.2005. u 08:28 

vardarce

Član broj: 58207
Poruke: 26
62.162.246.*



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?05.07.2005. u 10:24
Evo ti oficijalnu stranu.

http://www.aspack.com
05.07.2005. u 10:24 

obucina

Član broj: 38191
Poruke: 714
*.vdial.verat.net.



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?05.07.2005. u 13:15
Delphi programi nisu veliki zato što koriste VCL vec zato što se po defaultu u program sve linkuje statički. VC++ programi su mali zato što se u njima sve linkuje dinamički, a može da se linkuje dinamički zato što sve što je potrebno za njihov rad dolazi uz Windows.
Drugo, Delphi na veoma neekonomičan način čuva resurse i definicije formi, tako da nekada program možeš kompresovati na do deset puta manju veličinu.
Treće, u Delphi program se linkuje sve što se nalazi u uses, a u VC++ samo ono što je potrebno. Delphi programi takođe mogu da se linkuju dinamički, ali da bi takav program radio moraš na ciljnu mašinu instalirati runtime pakete (pošto oni ne dolaze uz windows). Opcija kojom to radiš je "Build with runtime packages". Kada iskombinuješ "Build with runtime packages" i exe kompresor (lični favorit je UPX), dobijaš čudo. 6MB pada na 200kb. Osim ovoga, imaš na raspolaganju i druge arhitekture programa, tj možeš da premestiš delove svog programa u dll-ove.
05.07.2005. u 13:15 

borovac
127.0.0.1

Član broj: 29278
Poruke: 220
*.dlp13.bih.net.ba.



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?05.07.2005. u 17:16
Kako instalirati te RunTime pakete, i kako znati koje trebaš instalirati??
05.07.2005. u 17:16 

morlic
Milos Orlic
Beograd

Moderator
Član broj: 6081
Poruke: 732
*.52.eunet.yu.



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?06.07.2005. u 00:30
Samo da napomenem da Delphi ne linkuje sve sto se nalazi u uses listama. Da je tako programi bi vam bili mnogo, mnogo veci. Delphi, naprotiv radi dobru optimizaciju, cak na nivou samih klasa vrsi neke izbore prilikom kompajliranja, da sada ne ulazim u detalje. Poenta je dakle, da Delphi predstavlja odlican jezik opste namene i da je default exe fajl takav da pokriva neke osnovne namene. Stednja u kilobajtima se moze ostvariti u Delphi-u kao u recimo c-u, samo treba znati. Vecini korisnika nije bitno to sto je osnovni exe sa jednom formom velik oko par stotina KB, bitno im je da ne moraju da uloze veliki trud kako bi tih recimo 300KB smanjili na 50KB. Momci u Borlandu su napravili po meni dobar odnos brzine razvoja aplikacije i velicine rezultujuceg exe-a. Kome treba manje ima sasvim dovoljno prostora za rad, naravno ako ima dovoljno vremena ;)

[Ovu poruku je menjao morlic dana 06.07.2005. u 01:30 GMT+1]
06.07.2005. u 00:30 

obucina

Član broj: 38191
Poruke: 714
213.244.197.*



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?06.07.2005. u 14:39
Napravi
Citat:
morlic: Samo da napomenem da Delphi ne linkuje sve sto se nalazi u uses listama. Da je tako programi bi vam bili mnogo, mnogo veci. Delphi, naprotiv radi dobru optimizaciju, cak na nivou samih klasa vrsi neke izbore prilikom kompajliranja, da sada ne ulazim u detalje.


Nije u potpunosti tacno, bar ne na D7 SP1. Verovatno ne linkuje BAS sve, ali neke suvisne stvari linkuje. Evo primera:

Napravi prazan projekat, kompajliraj ga. Velicina ovog fajla je 370176.

U uses dodas "Grids" i "DBGrids", kompajliraj ga. Ovde primeti da ti je DBGrid samo u uses, a nemas ga nigde na formi, tj ne koristis ga. Velicina ovog fajla je 465920.

Dodaj na formu DBGrid, kompajliraj projekat. Velicina ovog fajla je 703976.

U prilogu se nalazi sadrzaj ovih fajlova prema JCL-ovom Analyze Project alatu. Vidi se da se tu nesto desava (u drugom slucaju unit Controls ucestvuje sa ~68000B, a u trecem sa ~70000B), ali isto tako se vidi da je ukljucen DBGrid tamo gde se uopste ne koristi.

Citat:
morlic:... Momci u Borlandu su napravili po meni dobar odnos brzine razvoja aplikacije i velicine rezultujuceg exe-a. Kome treba manje ima sasvim dovoljno prostora za rad, naravno ako ima dovoljno vremena ;)


Ovde se u potpunosti slazemo. Moje misljenje je da bilo kakvo cimanje oko velicine fajla nije vredno truda. Eventualno ako se radi udaljena administracija programa pa je potrebno ponekad propustiti novu verziju programa kroz vezu od 56k.

Dodatak:
Evo sad sam probao sve ovo ali u kombinaciji sa QuantumGrid-om. Velicine fajlova u ova tri slucaja su redom: 370176, 2254336, 2266624.
Ispada da linkuje sve u sesnaest...



[Ovu poruku je menjao obucina dana 06.07.2005. u 15:49 GMT+1]
Prikačeni fajlovi
06.07.2005. u 14:39 

alexione
Aleksa Todorovic
Sremski Karlovci

Član broj: 46927
Poruke: 26
*.ftn.ns.ac.yu.

Sajt: alexionne.blogspot.com


Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?06.07.2005. u 18:50
Citat:
Napravi prazan projekat, kompajliraj ga. Velicina ovog fajla je 370176.

U uses dodas "Grids" i "DBGrids", kompajliraj ga. Ovde primeti da ti je DBGrid samo u uses, a nemas ga nigde na formi, tj ne koristis ga. Velicina ovog fajla je 465920.

Dodaj na formu DBGrid, kompajliraj projekat. Velicina ovog fajla je 703976.


Ovo je sasvim razumljivo, mada se ni meni ne svidja to tako funkcionise :(

Razlog je jednostavan: u Grids i DBGrids imas initialization sekcije koje inicijalizuju neke promenljive. Zbog toga, Delphi u zavrsni EXE ukljucuje inicijalizacione sekcije kao i kompletan kod koji je potreban iz odgovarajucih klasa i sve konstante i promenljive koje se u tom kodu pominju.

Sto se tice eksplozije velicine prilikom stavljanja na formu, uopste me ne cudi, posto Delphi tada ubacuje dobar deo VCL koda za tu komponentu (da ne kazem sve, nisam tacno siguran sta).

Na kraju, ne treba zaboraviti na DLL-ove. Sta ako pozelis da neki objekat posaljes nekom DLL-u? Tada ce tvoj EXE fajl morati da sadrzi kompletan kod svih virtuelnih funkcija plus jos ko zna sta. A ne postoji nacin da Delphi zna sta ces ti u tom DLL-u raditi sa objektom, i koje metode ces koristiti a koje ne...
06.07.2005. u 18:50 

obucina

Član broj: 38191
Poruke: 714
*.vdial.verat.net.



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?07.07.2005. u 00:02
Citat:
alexione:Razlog je jednostavan: u Grids i DBGrids imas initialization sekcije koje inicijalizuju neke promenljive.

Ni Grids.pas ni DBGrids.pas ne sadrze initialization sekcije. Bar ne u D7.
07.07.2005. u 00:02 

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1402
82.208.201.*

ICQ: 246436949


Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?07.07.2005. u 06:43
Zasto se uopste opterecujete velicinom... danas su mediji za cuvanje podataka ogromni (vise desetina gigabajta), brzine interneta dosta velike... razlika izmedju 100kb i 2Mb ili 3Mb se i ne primecuje.

Zasto je velicina bas toliko bitna?
DirectX na srpskom | GLScene na srpskom

There are only 10 types of people in this world; those who understand binary and those who don't.
07.07.2005. u 06:43 

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 616
*.zaslon-telecom.si.



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?07.07.2005. u 08:00
Citat:
Ni Grids.pas ni DBGrids.pas ne sadrze initialization sekcije. Bar ne u D7.


Sadrže neki uniti iz njihove uses liste (npr. Variants, Graphics...). Ko zna šta se sve tu dešava...

ss.


When something is hard to do, then it's not worth doing.
07.07.2005. u 08:00 

[es] :: Pascal / Delphi / Kylix :: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?

[ Pregleda: 1723 | Odgovora: 13 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.