Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    87

    nothing

    Ciao a tutti,
    vorrei sapere se con vb.net ha ancora senso 'settare' una var oggetto = nothing.
    Sono alle prime armi con il .net, ma leggendo i vari manuali ho capito che la disallocazione degli oggetti in memoria è gestita dal garbage collector...anche se ho trovato ancora molte routine che utilizzano nothing al termine dell'elaborazione

    grazie per la collaborazione

  2. #2
    Secondo me è utile, perchè cmq in questa maniera imponi te il dover liberare la memoria dalla roba ormai inutilizzata. Il Garbage collecto invece è un ottima cosa che implementa VB.net per eliminare la roba che viene considerata inutlie ma che non è stata deallocata manualmente.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da pol86
    nothing
    Un titolo più significativo potevi almeno metterlo...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    158
    Originariamente inviato da Seyen
    Secondo me è utile, perchè cmq in questa maniera imponi te il dover liberare la memoria dalla roba ormai inutilizzata. Il Garbage collecto invece è un ottima cosa che implementa VB.net per eliminare la roba che viene considerata inutlie ma che non è stata deallocata manualmente.
    Da quello che so io(e probabilmente è sbagliato) impostare un'oggetto a nothing (in .NET) non libera la memoria in senso lato, al massimo permette che venga liberata prima, che è diverso.

    Sempre da quel che ho capito è sempre e comunque il Garbage Collector che sega i riferimenti alla memoria, quando gli tira.
    DISCLAIMER
    quello che sta scritto qui sopra è dettato esclusivamente dall'intuito, non da specifiche conoscenze tecniche. Usate queste informazioni a vostro rischio e pericolo (anhe sui server di produzione

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da vaitrafra
    Da quello che so io(e probabilmente è sbagliato) impostare un'oggetto a nothing (in .NET) non libera la memoria in senso lato, al massimo permette che venga liberata prima, che è diverso.
    Il Garbage Collector è in grado di determinare quando un oggetto non viene più utilizzato in base al codice, indipendentemente dall'impostazione a Nothing, per quanto ho letto.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    87
    Per concludere si può allora dire che meglio lasciare fare il lavoro sporco al garbage collector


    ciao

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da pol86
    Per concludere si può allora dire che meglio lasciare fare il lavoro sporco al garbage collector
    Il "lavoro sporco" lo fa comunque il GC, che tu lo voglia o no.

    Il punto è che io non inserirei delle fuorvianti impostazioni a Nothing all'interno del codice, a meno che non sia necessario per motivi logici.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    87
    Hai perfettamente ragione, intendevo dire anche io la stessa cosa : il nothing a differenza di vb 6 ha un ruolo decisamente 'diverso' e direi anche inutile

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    158
    Originariamente inviato da pol86
    Hai perfettamente ragione, intendevo dire anche io la stessa cosa : il nothing a differenza di vb 6 ha un ruolo decisamente 'diverso' e direi anche inutile
    oddio, inutile, prima di downgradare a VB6 causa cambio lavoro usavo spesso nothing per azzerare miei oggetti. Ci sono diversi ambiti di utilità di nothing... quello che mi viene in mente sul momento è lo scatenare eventi in base allo stato di un'oggetto.

    Comunque alka, riguardo al GC:
    se in un tuo percoso applicativo un'oggetto è istanziato nello scope di una funzione che richiama altre 80 funzioni nestate, Settarlo a nothing prima o dopo una determinata istruzione direi che velocizza il risucchio di quest'ultimo da parte del GC...non mi sono spiegato lo so, ma fa lo stesso.
    DISCLAIMER
    quello che sta scritto qui sopra è dettato esclusivamente dall'intuito, non da specifiche conoscenze tecniche. Usate queste informazioni a vostro rischio e pericolo (anhe sui server di produzione

  10. #10
    Meglio impostare il riferimento ad un oggetto a Nothing il prima possibile (quantomeno per chiarezza), così alla prima GC verrà sicuramente cancellato; come dice vatifra, se la variabile non esce rapidamente dall'ambito di validità il GC crederà che l'oggetto possa ancora servire al programma.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.