eseguire l'applicazione Java con lo strumento profiler ( HPROF ) attivato e la registrazione dei profili di heap . Il modo preciso di fare questo dipende dal sistema operativo . Per esempio, su Linux , avviare l'applicazione come segue :
java - Xrunhprof : file = mylog.txt , heap = siti myApp
Replace myApp con il nome della vostra applicazione Java . Questa invocazione inizia la Java Virtual Machine ( JVM ) in modalità di profilatura , . JVM scrive l'uscita del profiler di presentare mylog.txt
2
Rendere il processo di applicazione di alcuni carichi di lavoro , in modo che gli oggetti ( in particolare , HashMaps ) vengono allocate e scartato . Prendete una fotografia dello stato heap . Per esempio, su Linux , il profiler genera un'istantanea dello stato del mucchio quando si esegue :
uccidere -3 jvmPID
Sostituire jvmPID con l'identificatore di processo dell'istanza JVM che esegue l'applicazione . HPROF aggiunge una snapshot del mucchio per il contenuto corrente del file di mylog.txt .
3
rendere il processo di applicazione o meno la stessa quantità di carico di lavoro in modo che più gli oggetti sono creati e garbage collection . Prendete un'altra istantanea dello stato del mucchio come al punto 2 .
4
Confronta le due istantanee scattate nei passi 2 e 3 . In particolare , osservare le linee tra "siti BEGIN " e " SITI END ". Identificare le classi i cui oggetti sono aumentati più di numero tra le due istantanee , quelli sono i responsabili per le perdite di memoria , come il carico elaborato dalla vostra applicazione è stata pressoché costante tra le due istantanee
5
Esaminare . le istantanee per identificare le parti del codice di assegnazione oggetti che non vengono liberati quando necessario. Per questo , concentrarsi sulle linee che iniziano con "Trace" che hanno un evento " Includere il delezioni mancanti dei riferimenti alle classi di problemi per le parti del codice identificati nella Fase 5 . Le perdite di memoria non è più accadere .
6
Informazioni correlate
Programmazione © www.354353.com