Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Garbage Collector

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423

    Garbage Collector

    Qualcuno mi farebbe la cortesia di spiegarmi l'effettiva utilità di un Garbage Collector, dato che io non l'ho ancora capita ?

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

    Re: Garbage Collector

    Originariamente inviato da pprllo
    Qualcuno mi farebbe la cortesia di spiegarmi l'effettiva utilità di un Garbage Collector, dato che io non l'ho ancora capita ?
    Il Garbage Collector si occupa - al posto dello sviluppatore, s'intende - di distruggere gli oggetti che non sono più utilizzati (di cui non esistono più riferimenti) provvedendo al recupero della memoria da loro occupata.

    In linguaggi come C, C++, Delphi (Win32, non .NET), è il programmatore ad avere la piena responsabilità della distruzione di tutti gli oggetti creati; in Java, C#, VB.NET, Delphi.NET, è il "runtime" (termine generico e in alcuni casi improprio, ma concedimi la licenza di usarlo) a gestire, attraverso il "garbage collector", il rilascio della memoria per gli oggetti non più utilizzati.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    linguaggio e versione anche nel titolo
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423

    Re: Re: Garbage Collector

    Originariamente inviato da alka
    Il Garbage Collector si occupa - al posto dello sviluppatore, s'intende - di distruggere gli oggetti che non sono più utilizzati (di cui non esistono più riferimenti) provvedendo al recupero della memoria da loro occupata.

    In linguaggi come C, C++, Delphi (Win32, non .NET), è il programmatore ad avere la piena responsabilità della distruzione di tutti gli oggetti creati; in Java, C#, VB.NET, Delphi.NET, è il "runtime" (termine generico e in alcuni casi improprio, ma concedimi la licenza di usarlo) a gestire, attraverso il "garbage collector", il rilascio della memoria per gli oggetti non più utilizzati.

    Ciao!
    Quindi questa è la sua unica funzione ? Non c'è un modo di "disattivare" il Garbage Collector ?

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    pero anche noi possiamo invoare la distruzione di un oggetto col metodo Dispose,poi sarà il GC a ripulire il tutto

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da cassano
    pero anche noi possiamo invoare la distruzione di un oggetto col metodo Dispose,poi sarà il GC a ripulire il tutto
    Il metodo Dispose viene generalmente implementato per inserire al suo interno le istruzioni necessarie a liberare risorse esterne (non gestite) quali handle di file o grafica, connessioni a basi di dati e così via.

    La chiamata a Dispose, in ogni caso, non indica al Garbage Collector che è possibile rimuovere l'oggetto dalla memoria, poichè essa è regolata dalla mancanza di riferimenti all'oggetto stesso.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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

    Re: Re: Re: Garbage Collector

    Originariamente inviato da pprllo
    Quindi questa è la sua unica funzione?
    Sostanzialmente, sì.

    Originariamente inviato da pprllo
    Non c'è un modo di "disattivare" il Garbage Collector ?
    No, è parte integrante del CLR (Common Language Runtime)...

    ...ma perchè vorresti rimuoverlo? (divengo curioso...)
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Perchè per alcune applicazioni rompe le balle in maniera assoluta ... Per capirci, in alcuni casi (da me sperimentati) sarebbe molto meglio avere il controllo diretto della memoria, piuttosto che il GC, oppure almeno poter lasciare gran parte della gestion della memoria al GC e gestire alcune cose "manualmente". Insomma, in alcuni casi il GC non è proprio il top dell'efficienza, per capirci.

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da pprllo
    Insomma, in alcuni casi il GC non è proprio il top dell'efficienza, per capirci.
    Non ho riscontrato problemi di sorta riguardo il Garbage Collector; parli in modo astratto, non si capisce a cosa ti riferisci.

    Cosa significa "in alcuni casi"? In QUALI casi?

    Ho paura che si stia prendendo "fisci per fiaschi" attribuendo erroneamente responsabilità al Garbage Collector che non competono ad esso, che magari sono dovute ad un uso improprio delle classi o alla scelta di soluzioni che richiedono una maggiore quantità di lavoro al GC quando, invece, attraverso un mezzo alternativo si aggiungono ottimi risultati.

    Il caso più lampante e frequente è la concatenazione delle stringhe.

    Ad ogni modo, fino a quando non si passa ad illustrare un caso specifico (pubblicando i dati tangibili del tuo esperimento), rimango dell'idea che si sta denigrando il GC inutilmente.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Non so se posso parlare nello specifico del progetto, perchè non è una cosa che riguarda solo me. Comunque, il problema di solito si ha perchè non si può prevedere come e quando interverrà il GC (sto parlando di .NET, non ho mai massicciamente usato Java, quindi non mi esprimo su Java).

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 © 2026 vBulletin Solutions, Inc. All rights reserved.