n° 219
Novembre 2017
Dicembre 12, 2017, 09:38:19 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Liberare Memoria  (Letto 1790 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
orpo970
Newbie
*

Karma: +0/-2
Scollegato Scollegato

Messaggi: 15


Mostra profilo
« inserita:: Ottobre 09, 2016, 08:12:17 »

Buonasera a tutti, volendo ottimizzare l'uso della memoria è possibile, in fase di programmazione, "visualizzare" le risorse che la stanno utilizzando ?
Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #1 inserita:: Ottobre 09, 2016, 10:09:47 »

Con un linguaggio .net non ha senso , la memoria è gestita automaticamente dal GC
Registrato
orpo970
Newbie
*

Karma: +0/-2
Scollegato Scollegato

Messaggi: 15


Mostra profilo
« Risposta #2 inserita:: Ottobre 09, 2016, 10:27:12 »

Volevo riuscire a vedere eventuali risorse lasciate involontariamente ed inutilmente "aperte" in modo da andarle a chiudere ottimizzando al massimo l'uso della memoria
Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #3 inserita:: Ottobre 09, 2016, 10:30:22 »

Di che "risorse" parli esattamente ? E perché ? Hai problemi di memoria evidenti ?
Registrato
orpo970
Newbie
*

Karma: +0/-2
Scollegato Scollegato

Messaggi: 15


Mostra profilo
« Risposta #4 inserita:: Ottobre 09, 2016, 10:57:29 »

Scusami oregon mi spiego meglio. Sai come son fatti i manuali, al capitolo 1 ti spiegano che 2+2+2+2+2=10 al capitolo 2 ti dicono che bastava fare 2x5=10, percui ho iniziano il mio programmino con l'uso di istruzioni tipo
Codice:
Cmd = New SqlCommand(SQL, CnnICAro)
, e
Codice:
Cmd.Dispose
per poi comprendere che l'uso dell'istruzione USING sarebbe stata piu' corretta. Inoltre di non sottovalutare l'argomento in quanto con applicazioni piu' complesse cio' potrebbe comportare il blocco del programma se non del PC. Pensavo allora esistesse la possibilitare di monitorare le risorse aperte in fase di programmazione in modo da "scaricarle" se non piu' necessarie.
Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #5 inserita:: Ottobre 09, 2016, 11:12:14 »

In genere, la memoria viene gestita dal GC ed è meglio farlo fare in maniera automatica al GC.

Le classi che usano risorse di vario tipo, è bene utilizzarle secondo quello che dice la documentazione, che va studiata caso per caso. Per la SqlConnection, ad esempio, è necessario prevedere la Close (o la Dispose) e per l'uso pratico, è comoda la using. Ma le cose variano e vanno studiate per ogni classe, non c'è nulla di standard e non si può generalizzare.

Non puoi monitorare anche se, per certi casi estremi di memory leak causata da gestione di risorse native, esistono tool complessi di controllo.

Per progetti "classici" e non particolarmente complessi, non mi preoccuperei.

Registrato
orpo970
Newbie
*

Karma: +0/-2
Scollegato Scollegato

Messaggi: 15


Mostra profilo
« Risposta #6 inserita:: Ottobre 09, 2016, 11:18:54 »

Ok grazie
Registrato
phoenix_g
Jr. Member
**

Karma: +7/-1
Scollegato Scollegato

Messaggi: 110



Mostra profilo
« Risposta #7 inserita:: Ottobre 10, 2016, 09:01:18 »

Non per questo si distingue tra codice "managed" e codice "unmanaged".
L'unica tipologia di codice per la quale ti devi preoccupare di gestire la memoria è, come dice la parola stessa, la "unmanaged". Per dei neofiti e soprattutto per dei programmi semplici l'uso di risorse unmanaged è molto limitato, quindi difficilmente crea problemi.
Per quanto riguarda il codice "managed" invece, come ti è stato detto, è il misterioso Garbage Collector che fa tutto il lavoro al posto tuo.
Misterioso perchè in effetti nessuno sa quando entra in azione e cosa faccia, e nonostante il framework .NET metta a disposizione delle chiamate, se vai a leggere la documentazione, è sempre il GC a decidere quando e come intervenire.
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines