Newsgroup: it.comp.lang.visual-basic
Titolo: Utilizzo memoria con windows98

Ciao a tutto il newsgroup,
    a lavoro abbiamo realizzato una applicazione con VB 6.0 utilizzando
oltre gli ocx di VB anche degli oggetti usercontrol creati da noi.
Utilizzando l'applicazione con windows 98 abbiamo notato che c'è un
eccessivo utilizzo della memoria e il programma sistematicamente va in
errore dicendo che non può caricare più il nostro oggetto usercontrol.Sotto
windows 2000 e xp invece il problema non si pone. Pensiamo quindi che
dipenda dalla gestione della memoria di windows 98. Avete mai avuto problemi
di questo tipo ? Se si come li avete risolti ?
Grazie mille
Loris

 li avete risolti ?
la gestione della memoria e' sempre stata la pecca + grossa del 98 (che
sopravvive ancora e si comporta ancora bene) purtroppo o ottimizzi
l'utilizzo delle risorse nel tuo programma ( limitare le chiamate e settare
a nothing il + possibile tutti gli oggetti scaricabili )
il problema della mem che non si scarica e' anche dovuto a cicli di Set
oggetto ... qualcosa e set oggetto nothing ... insomma anche se tu da codice
li scarichi il windossino tende a bloccarli per un po in ram e usando sempre
spazio nuovo che poco dopo termina !
Cerca cmq di limitare il + possibile le chiamate all'user control.
-- 
[Gigio2k]
http://www.g2kweb.it
[ it-alt.comp.hardware.modding ] - 
http://www.g2kweb.it/ichm


Prego
ciao

 che non mi hanno mai convinto, questo ovviamente IMHO.
Noi sviluppiamo un 20% delle soluzioni come Servizi NT, un altro 20% come
UserDocument, e un buon 40% come UserControl.
Tutto con VB6.
Posso garantire che le problematiche inerenti la memoria sono esattamente le
stesse di un applicativo classico con form normalissime.
Certo, gli ActiveX sono oggetti che vivono di vita propria, va gestita bene
la loro creazione e distruzione, ma se si trascura questa gestione delle
istanze, anche con le semplici form si hanno grossi problemi di memoria.
Il problema dei memory leak, non riguarda quasi mai la memoria Ram normale,
ma le sezioni User e Gdi, che per questioni di retrocompatibilità sono
indirizzate a 16bit, quindi particolarmente sfigate e limitate.
Facendo una ricerca su MSDN con 'memory leak' e VB, si trova parecchia
documentazione che spiega come prevenirli.
Con VB6 ce ne sono tantissimi, ma da SP4 (o forse già con SP3, non ricordo),
sono stati tutti correttamente chiusi.
Con VB6 SP5 posso dire che il problema è assolutamente inesistente, salvo
grosse cazzate di programmazione.
Ciao
Alberto
--
E tutto mi sembrava andasse bene...



OK, grazie dell'informazione. Per ragioni di tempo non ho mai
approfondito questo problema, aggirandolo con soluzioni alternative e
limitandomi a cercare di distruggere gli oggetti nell'ordine giusto e
impostandoli a Nothing, che per ora mi e' bastato.
Sicuramente pero' e' un argomento che vale la pena di essere
approfondito (tempo permettendo). Apprezzo le tue risposte che sono
sempre precise e rigorose.
ciao

 Tutto con VB6.
20+20+40= 80!!!!
il 20% residuo che fate?
a) Giocate a battaglia navale
b) Tampinate la segretaria personale del capo
c) Vi dedicate al download con Emule
d) Giocate a Ultima Online
e) Vi "fate" di caffè e cornetti al bar di fronte
...o cosa?
....era solo una curiosità!
:-)
Saluti!
:-D

 e) Vi "fate" di caffč e cornetti al bar di fronte
Il bar č sotto, e ha il caffč peggiore dell'Emilia.
La macchinetta di caffč in ufficio invece non č male.
