Newsgroup: it.comp.lang.delphi
Titolo: RunTime Packages...   Si o No ?

Vorrei un consiglio su questa opzione, conviene utilizzarla per una 
grossa procedura (Exe di 3 MB circa) ?. Quando e in che modo porta 
benefici ? Grazie in aticipo a tutti!
--- posted by geoForum on 
http://www.delphiedintorni.it

 benefici ? Grazie in aticipo a tutti!
La domanda è un pochino vaga... cosa intendi per "grossa procedura"? Hai 
altre parti del programma che devono essere separate in un package?
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 benefici ? Grazie in aticipo a tutti!
La tua applicazione (tutto compreso) occupa SOLO 3 mb?
Se la risposta e' si', lascia stare i package.
Ciao
ACSH
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 benefici ? Grazie in aticipo a tutti!


benefici ? Grazie in aticipo a tutti!
Benefici:
- Modularità: è possibile aggiornare solo un package (purché 
l'interfaccia non cambi)
- Condivisione: lo stesso package può essere usato da più programmi, 
risparmiando spazio.
- Dimensione dell'eseguibile.
Svantaggi:
- Il package contiene tutto il codice delle unit contenute, anche quello 
che il linker eliminerebbe in un exe. La spazio totale package + exe 
potrebbe essere maggiore di quello del singolo exe.
- Prestazioni: leggermente inferiori perché i riferimenti ai dati del 
package sono indiretti (vedere gli eccellenti articoli di Vassbotn 
sull'argomento)
- Installazione più complessa (devi assicurarti di installare tutti i 
package richiesti e nel posto giusto)



Dipende. Se hai strutturato il programma in modo da poter utilizzare
alcuni moduli per altre applicazioni, allora potrebbe tornarti utile,
a prescindere dalle dimensioni. Personalmente tendo ad utilizzare
questo metodo perchè evito di scrivere più volte lo stesso codice per
eseguire le stesse cose. Immagina per esempio un data module che
contiene tutta la gestione delle transazioni e la connessione al DB:
in tutte le mia applicazioni è sempre lo stesso datamodule dello
stesso package. Il vantaggio è che se aggiungo qualche ottimizzazione,
mi basta ricompilare tutte le applicazioni ed il gioco è fatto...
Ciao
  Gaetano.


Per "grossa" intendo una precedura che, quando gira su un pc con poca 
RAM (meno di 512 MB), spesso mi da errori del tipo "Out of Resource ecc".
Riguardo ai Packages, io intendo quelli standard di Delphi (aime! io 
utilizzo ancora la versione 4)ed alcuni tipo Fuzzy, RxLib ecc.
P.S. Ringrazio tutti per le risposte con augurio di buon lavoro!


 grossa procedura (Exe di 3 MB circa) ?. 
Più che la grandezza dell'exe, devi considerare altri vantaggi:
modularità, capacità di aggiornare l'applicazione per parti distinte,
ecc...
Personalmente, ho usato poche volte i run-time package (anche perché la
gestione in Delphi è un pochetto buggata) e preferisco di gran lunga
(laddove possibile) usare exe monolitici. Uno dei tanti programmi che
racchiude l'intero sistema informativo di un mio cliente ha un eseguibile
monolitico che occupa circa 8 mega (con upx si riesce a ridurlo
moltissimo). Un eseguibile di 3 Mb è decisamente piccolo.


utilizzo ancora la versione 4)ed alcuni tipo Fuzzy, RxLib ecc.
La 4 non č stata una delle versioni piů riuscite di Delphi, e senza le 
patch era abbastanza "difettosa". Č possibile che ci sia qualche leak 
nel codice delle librerie, ma č lo stesso che c'č nei package.


PS: prova ad usare FastMM. Dovrebbe funzionare anche su D4 ed è 
meraviglioso per far saltare fuori i memory leak. Se invece hai dei leak 
di risorse di Windows quella è un'altra storia.


versioni 95 e 98 di Windows.
Grazie Stefano F!
Credo che  Tu abbia centrato il problema, infatti, avevo dimenticato di 
dire (chiedo venia) che questo capita solo su 98 e 98Me. Scusa la mia 
ignoranza, ma non so cosa sono i leak e come posso tener d'occhio le 
risores. Grazie moltissimo per la Tua disponibilità e comptetenza.


risores. Grazie moltissimo per la Tua disponibilità e comptetenza.
Per "leak" si intende la "perdita irrecuperabile" di qualcosa, memoria, 
risorse grafiche, ecc.
95 e 98 hanno delle strutture fisse per tenere traccia delle risorse di 
sistema (controlli, ecc.) in utilizzo. Se non c'è più spazio 
l'applicazione non può più funzionare. Anche queste possono 
essere "leaked" se non vengono distrutte correttamente.
In Windows 95 e 98 dovrebbe esserci un "misuratore di risorse". Routine 
per tenere sotto controllo le risorse ci sono anche nella JCL 
(
www.delphi-jedi.org
). Poi ci sono strumenti sofisticati come i profiler 
che analizzano il funzionamento del programma per vedere cosa succede.
O allochi troppe risorse, o c'è un errore da qualche parte che non le 
disalloca correttamente e quindi BUM!
