Ho una domanda per quanto riguarda il GC e la memoria.
Lo so che non è un problema di codice e me ne scuso.
Dunque, ho letto da qualche parte che quando un oggetto esce dal suo scope, viene marcato come cancellabile dalla routine del GC, e quando la memoria scarseggia, o viene comunque data una spazolata di GC, viene rilasciata la memoria occupata dall'oggetto (detto in modo maccheronico).
Ora, ho anche letto che le Collection in generale non vengono rilasciate, nel senso che se genero un oggetto Collection et simila, dura per tutta la vita dell'applicativo.
E' vero?
Se metto a null quando non mi serve più l'oggetto, il GC lo cancella invece?
E' normale che la voce più grossa in termini di memoria usata sia un oggetto riconducibile a java.awt.image.DataBufferInt? Io ho pensato che sia dovuto al double buffering delle applicazioni swing visto che se vario dimensione alla finestra, i byte aumentano anche a 1MB, 2MB, salvo poi tornare a pochi kB quando il GC entra in funzione.
PS: ho scoperto il profiler e stavo cercando memory leak nell'applicativo

al volante son nervoso
Rispondi quotando