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: 5455 | Odgovora: 13 ] > FB > Twit

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 - pre 228 meseci
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?????
 
Odgovor na temu

_v!rus_
BGD

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



+1 Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?04.07.2005. u 23:23 - pre 228 meseci
Ima vec ovakav thread, koristi pretragu...
 
Odgovor na temu

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 - pre 228 meseci
Ima, vrlo jednostavan compresor, Aspack.exe. Kompresuje sve iz Delphia pa čak i dll-ove.



<M I L E X>
 
Odgovor na temu

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 - pre 228 meseci
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
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

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

Sajt: https://avramovic.info


+46 Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?05.07.2005. u 08:28 - pre 228 meseci
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)?
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

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 - pre 228 meseci
Evo ti oficijalnu stranu.

http://www.aspack.com
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?05.07.2005. u 13:15 - pre 228 meseci
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.
 
Odgovor na temu

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 - pre 228 meseci
Kako instalirati te RunTime pakete, i kako znati koje trebaš instalirati??
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.52.eunet.yu.



+1 Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?06.07.2005. u 00:30 - pre 228 meseci
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]
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?06.07.2005. u 14:39 - pre 227 meseci
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
 
Odgovor na temu

alexione
Aleksa Todorovic
Sremski Karlovci

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



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?06.07.2005. u 18:50 - pre 227 meseci
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...
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?07.07.2005. u 00:02 - pre 227 meseci
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.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?07.07.2005. u 06:43 - pre 227 meseci
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?
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

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



Profil

icon Re: Zašto su Delphi aplikacije tako velike i kako ih smanjiti?07.07.2005. u 08:00 - pre 227 meseci
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.
 
Odgovor na temu

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

[ Pregleda: 5455 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

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