Newsgroup: it.comp.lang.delphi
Titolo: Come allegerire il codice?

Salve atutti,
mi chiedevo se qualcuno di voi conosca qualche modo per allegerire un pò il
codice e quindi la dimensione dell'eseguibile finale.
Vi faccio un'esempio pratico:
ho caricato in una form un'immagine e ho fatto dei collegamenti a 3 .exe
L'eseguibile che mi viene fuori è di circa 400 kb!
Come faccio a ridurre le dimensioni?
Grazie.
P.S.: ho caricato una Jpg di soli 24 Kb.

 Come faccio a ridurre le dimensioni?
Molti hanno già risposto a questa domanda, comunque esistono in rete dei
compressori che riducono il peso dell'exe.
Delphi quando inserisci una form include tutto il codice VCL necessario e il
peso aumenta. Si trovano in rete esempi di programmazione Delphi con le sole
API e gli applicativi si riducono a 15/16 Kb comunque non e' piu' sviluppo
RAD. E poi cosa vuoi che sia far girare un applicativo da 400 Kb su un PC
con 512 Mb di RAM e 1,9 Ghz di CPU


 ha scritto nel messaggio
news:LrBl8.39239$1S3.1...@twister1.libero.it...


 ciao
Quota *sotto* il testo a cui stai rispondendo e 
riporta solo lo stretto necessario.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

upx120w
Espando un po' la tua risposta: UPX exe compressor: in pratica il file
.exe viene compresso e gli viene aggiunto un piccolo codice che al
momento dell'esecuzione auto-scompatta il programma originale in
memoria.
Con i computer odierni non ti accorgi di nulla, in compenso la
dimensione cala vistosamente.
Anzi, noto curiosamente con un programma che sto creando che più
aggiungo roba, maggiore è la compressione ottenibile.
Ora il programma originale pesa 1.310 K, ma compresso con UPX diviene
390K (non so tutte le opzioni di debugging inserite aggiungano elementi
facilmente comprimibili...).
UPX lo trovi su:
http://upx.sourceforge.net/
Simone
_______________________________________________________
 Be yourself, because you have to be someone,
     and everyone else is already taken (by LZip).

facilmente comprimibili...).
Le opzioni di debug aggiungono poco al codice, in generale.
Uno dei programmi del mio sistema e' lungo quasi 4 Mb e
contiene diversi report creati in ReportBuilder.
UPX riesce a comprimerlo fino a 900 Kb.
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

 >facilmente comprimibili...).
Aggiungo inoltre con enorme sorpresa che come dimensione:
zip(exe)>rar(upx(exe))
Che superficialmente sembra in contrapposizione con la regola che i dati
meno comprimibili sono quelli già compressi... beh, meglio così... le
distribuzioni zippate di eseguibili compressi con l'UPX risulteranno più
piccole e più veloci da scaricare :))
ciao
Matteo

 meno comprimibili sono quelli già compressi... beh, meglio così... 
La regola che siano i meno comprimibili non viene meno in nessun
caso.  E' risaputo che lo ZIP non ha un algoritmo di compressione
efficiente come quello di RAR.  
BTW, hai compresso con la compressione massima ?


 BTW, hai compresso con la compressione massima ?
Mio errore di sbaglio! :)
Ho scritto male... entrambi compressi con lo ZIP a massima compressione.
Matteo

compressione. 
Hai ragione, infatti ho aggiunto diverse bitmap....


ciao,
trovo interessantissima questa utility,
solo che quando cerco di compattare alcuni exe (per esempio dei setup fatti
con l'installshield - ma anche altri exe)
ricevo un errore del tipo:
Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
UPX 1.20w        Markus F.X.J. Oberhumer & Laszlo Molnar        May 23rd
2001
        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
upx: setup.exe: NotCompressibleException
Packed 1 file: 0 ok, 1 error.
non ho trovato info utili sul sito :(
qualcuno sa se sbaglio qualcosa un particolare o e'un limite effettivo di
UPX che non compatta tutti gli exe?
Grazie mille per la risposta
Matteo

 UPX che non compatta tutti gli exe?
Installshield esegue una propria compressione sui dati.
E' probabile, visto che la condizione peggiore per gli 
algoritmi di compressione e' quella di lavorare su dati 
gia' compressi, che UPX faccia una scansione del file 
.exe, ne calcoli la compressione ottenibile e venga
fuori una dimensione piu' grande dell'originale, per cui
ti solleva un'eccezione "non comprimibile".


già...in effetti è una spiegazione plausibile,
grazie e ciao
Matteo