Newsgroup: it.comp.appl.access
Titolo: Quanta Memoria occupa un'istanza di una classe

Buongiorno,
rifacendomi ancora al mio vecchio post sulle classi che vorrei creare 
inizialmente mettendo tutte le proprietą dell'oggetto,
mi viene un dubbio .
Se istanzio un nuovo oggetto e questo ha dimensionato tutte le variabili che 
poi saranno usate dalle proprietą, penso che queste occuperanno memoria.
E' giusto allora creare una classe che mi comprende tutte le variabili anche 
se poi ogni oggetto ne utilizzerą SOLO una parte ?
Per il momento sono a circa 60/70 proprietą.
Qualche consiglio per lo sviluppo della classe ?
Saluti 

 Saluti
Dimenticavo...
Immagino che l'uso della memoria sarà almeno la somma delle dimensioni delle 
variabili , giusto ? 

 
imo ottimizzazioni di memoria di questo tipo hanno senso con linguaggi di 
basso livello, non con il vba di access...
 
hai un pc con 32 mb di ram e pensi che la esaurisca se istanzi troppi 
oggetti?
la soluzione e' comprare piu' memoria.
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--


E' giusto, i PC hanno minimo 1.5 Gb di memoria quindi non credo che per i 
miei sw abbiano problemi.
Grazie mille.


Sono considerazioni inutili quelle che fai per il semplice motivo che
un PC moderno non fa una piega su queste cose...!
Diverso è, come ti ha fatto notare Paolo, nel caso di sviluppi a basso
livello, dove importa non tanto sapere il consumo di memoria ma il
fatto che più memoria impegni più i tempi di accesso sono rallentati e
meno è performante
il codice... e dove i centesimi di secondo sono importanti su codice
che cicla o che deve essere eseguito in RealTime.... conta.
Queste tuttavia sono considerazioni a livello globale che devono
essere un MUST per chi sviluppa codice per elaborazioni matematiche o
grafiche(che poi sono matematiche)...
@Alex

@Alex
Concordo con voi, ma nel mio caso non sapendo come dividere le classi, vado 
così...mi verrebbe da porvi una domanda a voi che di classi sicuramente ne 
sapete di più.
Facciamo un esempio, ho una classe chiamata clsFattura, dove ho molte 
proprietà (datadoc, numero, ragsoc.....) le classiche.
Poi per non dichiarare variabili che userò solo in alcuni casi, voglio 
aggiungere delle proprietà ma solo SE la Nazione del cliente è per esempio 
"USA", quindi andrò a dichiarare anche altre proprietà tipo (datavaluta, 
cambio etc)
come posso procedere ?
Grazie mille


Dipende da come sviluppi le classi...!
Potresti, fare Classi che supportano Classi di Attributi... in questo
caso aggiungi Attributi solo se li hai e non fissi...!
Faccio un'esempio banale...in sostanza crei una Classe Attributo con
NomeAttributo e ValoreAttributo
Crei la tua Classe Master(Oggetto) nella quale metti una Collection
Attributi ed implementi i metodi ADDATTRIBUTO per inserirne di
nuovi...
L'ereditarietà ti consentirà di gestire il tutto...
@Alex

@Alex
Bello, sapessi farlo...e avessi capito cosa devo fare....
Hai qualche linketto o parola magica da googlare ?
Grazie comunque.

 Saluti
Falso problema. cfr @Alex e paolo opg.
Inoltre. Prova ad immaginare di fare una chiamata ricorsiva che istanzia 
sempre la stessa classe.
Inoltre. Per il concetto che io ho di classe. Le classi dovrebbero 
essere "self contained" con questo voglio dire che dovrebbero gestire al 
loro interno le caratteristiche (proprieta') e comportamenti (metodi) 
che gli competono senza disperdere nell'ambiente (e' antiecologico) 
poiche' si fa la fine di Napoli (i.e. la "munnezza" la si ritrova nei 
posti piu' impensati).
Sono proprio in questo momento (sto giocando) alle prese con una classe 
(asp) che mi deve gestire il DOM ed ovviamente sono proprio nella 
situazione della chiamata ricorsiva di cui non conosco a priori la 
possibile profondita' e ogni nuova istanza di classe occupa un suo spazio.
Il problema di fondo, eventuale, non e' tanto quanto sia grande una 
classe (che per definizione, in genere, dovrebbe essere sempre 
contenuta) ma quante istanze di classe sono attivate e persistono in 
memoria.
-- 
ac (x=y-1)