Domanda

Sto provando a utilizzare VisualVM per profilare su un Mac, con una VM a 64 bit, ma senza successo.

Sembra che si aggiorni solo a LUNGHI intervalli (pensavo che non si sarebbe profilato affatto, finché non mi sono allontanato dalla tastiera per dieci minuti e sono tornato e ho trovato UN aggiornamento.Dovrebbe funzionare ogni 2 secondi, credo).

Nella maggior parte dei casi, si trova semplicemente con il messaggio "Nessuna informazione di profilazione è ancora disponibile".L'unica volta che ha funzionato, ha trovato 4 invocazioni di metodi, in totale.In quel lasso di tempo se ne sarebbero verificati milioni.

L'istantanea all'uscita dell'app mostra alcuni thread di sistema, ma nessuno del mio codice.

Non ho modificato nessuna delle impostazioni rispetto a quelle predefinite.Ho controllato che non escluda il mio codice.

VisualVM funziona su un Mac per la profilazione di una JVM a 64 bit?

Ho provato sia jvisualvm dall'ultimo JDK, sia la versione leggermente successiva di java.net.

versione Java "1.6.0_22" Java (TM) SE RUNTTIME AMBIENTE (Build 1.6.0_22-B04-307-10M3261) Hotspot Java (TM) VM Server a 64 bit (Build 17.1-B03-307, modalità mista)

Versione del sistema:Mac OS X 10.6.4 (10F569)

qualche idea?Per te funziona?

Grazie!

È stato utile?

Soluzione

Errore del pilota, in un certo senso.

Stavo confrontando un'app di test, che ha creato un thread e l'ha girata in loop nel metodo di esecuzione del thread.Ha eseguito un ciclo stretto per utilizzare CPU, sleep() e println().

Ma il problema è che era TUTTO in un unico metodo.Sembra che VisualVM tenga traccia dei metodi solo quando li esci.Quindi, poiché avevo un metodo in loop, non è mai uscito dal metodo e non ha mai generato un evento di tracciamento.

Ho spostato il codice dal metodo run() in un altro metodo chiamato ripetutamente da run() e ora funziona.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top