Come visto nello screenshot qui, 0 oggetti live, 9 oggetti allocati. Qual è la differenza tra un oggetto vivo e un oggetto assegnato?jvisualvm differenza tra oggetti live e oggetti assegnati
16
A
risposta
3
- oggetti allocati sono tutti gli oggetti che sono stati creati da inizio applicazione (o reset)
- oggetti Live sono oggetti raggiungibili che vengono attivamente utilizzati dal programma (probabilmente ancora nelle giovani generazioni
11
Il numero di oggetti allocati non è il numero di oggetti non ancora recuperati dal garbage collector. Piuttosto, è il numero di oggetti creati dall'avvio dell'applicazione, o dal reset del "Buffer dei risultati raccolti" in VisualVM (c'è un pulsante nella vista del profiler della memoria per reimpostare il buffer dei risultati raccolti).
Gli oggetti live sono quegli oggetti che non sono stati recuperati dal garbage collector; questo può includere oggetti irraggiungibili e includerà sicuramente oggetti che sono ancora in uso nell'applicazione.
Direi che un oggetto assegnato che non è vivo è solo uno che non è stato ancora sottoposto a GC. –
Anche questa è la mia ipotesi, ma mi piacerebbe avere alcuni fatti precisi :-) – Anonym