

Delphi 10 Velka velikost exe souboru
Dobrý den.
Nalezl jsem v prací na jednom PC delphi 10 a chtěl si něco vyzkoušet.
Úplně prázdný projekt zkompilovaný do exe má krasných 10,5 MB .
Project - options - target mam nastaven na release.
I toto jsem zkoušel.
https://stackoverflow.com/questions/7398580/reduce-exe-file/7398658#7398658
Furt užaslých 10,5 MB
Kde je problem?
Děláš VCL nebo FMX aplikaci?
Máš do ní zařazeny styly?
VCL aplikace, která měla v Delphi 7 necelých 5,5MB má v Delphi 10 velikost 9,1MB
A to tam mám ještě přilinkovány debug informace.
VLC, je to jen uložený a zkomprimovaný prázdný projekt.
Doma mam delphi 2006 lite a to samé má 384 kB.
Když to pak otevřu v těch 10 a zkomprimují do exe, má to jen 2,03 MB, což je ok.
Čudne to je
2MB je normální velikost.
Vezmi si, že tam máš celý komfort ohledně formulářů, včetně gest a podobných kravin, které nevyužiješ.
Jasně, spokojený, ale proč to nejde přímo v tom delphi 10.
Lazarus mi to také dělal a stačilo změnit na release a ok
Co nejde přímo v D10?
Nový VCL projekt, uložím, nastavím release, platformu Win32 a zkompiluji.
Velikost je 2 205 696 bajtů, takže něco málo přes 2MB
Pro Win64 je to 3,5MB
FMX pro Win 32 má 8.8 MB, pro Win64 má 12,4MB, ale tam jsou v tom rovnou už i styly
Ano přesně tak.
Nový projekt - uložím.
Pak nastavím release configuration - 32 bit windows platform.
A compile projekt.
A máme tu tu obludu co ma přes 10 MB
Velikosti, které jsem psal jsem přímo zkoušel v Delphi 10.2 Tokyo
Nedělal jsem nic jiného než nový projekt a Shift+F9 (build)
Tak pouzi VisualC++ a budes mat 32kB exe (a aj to v nom 30kB su len nuly)
Kniznice si nastav na statically linked, nech to nepotrebuje c++ runtime.
Ale vo VisualC++ budes muset skutocne pracovat s WinAPI, ne ze tam bude tona delphi frameworkov a nejake kanvasy a janeviemco a ty si tam klik sem klik tam, nic take. Skutocne budes programovat.
Já ti klidně taky udělám konzolovku s pár kB
Tohle je ale o něčem jiném. Je to o komfortu a rychlosti, protože s enemusíš starat o spoustu věcí okolo, pokud chceš úpoužívat uživatelské rozhraní.
Pokud bys šel natvrdo přes API (to můžeš i v Delphi), musíš si ošetřit zpracování zpráv, musíš si ošetřit všechny události z ovládacích prvků a budeš hodně dlouho psát jen abys dostal základ.
Jsou věci, kde to význam má. Ale ve většině případů je lepší 2MB obětovat a věnovat se funkčnosti aplikace.
V C++ urobim aj 32kB program s GUI :) GUI nemusi zaberat miesto. Je to len callback (window procedura) a tam switch s XY case polozkami. Je to skoro stejne jak s tymi zbytocnymi frameworkami, len to neni klik sem klik tam, ale pisat text.
(p.s. ja netvrdim ze to je vyhodne, tvrdim len ze ked to exe vyslovene chce mat male tak sa da, ale na to bude musiet skutocne pracovat :D)
p.s.2. a vacsina windows messages ma aj default zakladnu implementaciu vo WinAPI (ked window procedura vrati ze to nespracovala tak sa vola default), ale ano moc tam toho implementovane neni.
Psal jsem ti, že v Delphi můžeš přímo používat Win API a vše okolo, takže uděláš s příslušným úsilím i maličkou aplikaci s GUI. Ale napsal jsi to sám, budeš muset pracovat a hodně psát. Za nějakou dobu se k tomu dostane někdo jiný, kdo bude muset udělat úpravu a stráví spoustu času, aby to jen přečetl a pochopil.
Všechno je něco za něco...