strumento grafico HPjmeter simile per visualizzare -agentlib: hprof profilatura uscita

voti
10

Quali strumenti sono disponibili per visualizzare l'output del built-in JVM profiler? Ad esempio, sto iniziando la mia JVM con:

-agentlib:hprof=cpu=times,thread=y,cutoff=0,format=a,file=someFile.hprof.txt

Questo genera output nella hprof ( JAVA PROFILO 1.0.1) formato.

Ho avuto successo in passato con HPjmeter per visualizzare questi file di output in modo ragionevole. Tuttavia, per qualsiasi motivo i file che vengono generati utilizzando la versione corrente del Sole JVM non riescono a caricare nella versione corrente di HPjmeter:

java.lang.NullPointerException
    at com.hp.jmeter.f.jb.a(Unknown Source)
    at com.hp.jmeter.f.a.a(Unknown Source)
    at com.hp.c.a.j.z.run(Unknown Source)
Exception in thread HPeprofDataFileReaderThread java.lang.AssertionError: null pointer exception from loader
    at com.hp.jmeter.f.a.a(Unknown Source)
    at com.hp.c.a.j.z.run(Unknown Source)

(Perché dovrebbero offuscare il bytecode per un prodotto gratuito ?!)

Due domande sorgono da questo:

  1. Qualcuno sa la causa di questo errore HPjmeter? ( EDIT : Sì - vedi sotto )
  2. Quali altri strumenti esistono per leggere i file hprof? E perché non ce ne sono da sole (ci sono)?

So che l'Eclipse TPTP e altri strumenti in grado di monitorare i dati JVMTI al volo, ma ho bisogno di una soluzione in grado di elaborare i file generati hprof dopo il fatto in quanto la macchina schierato solo ha intalled un JRE (non un JDK).

EDIT : Uno sviluppatore HPjmeter molto utile ha risposto alla mia domanda su un forum HP ITRC che indica che heap=dumpdeve essere incluso nelle -agentlibopzioni temporaneamente fino a quando un bug in HPjmeter è fisso. Questa informazione rende HPjmeter vitali di nuovo, ma ho ancora lasciare la questione aperta per vedere se qualcuno sa di eventuali altri strumenti.

EDIT : A partire dalla versione 4.0.00 di HPjmeter (disponibili 05/2009) questo bug è stato corretto.

È pubblicato 01/04/2009 alle 23:33
fonte dall'utente
In altre lingue...                            


4 risposte

voti
0

Io non sono sicuro al 100% che funzionerà (suona come sarà) e io non sono sicuro che vederlo nel formato che si desidera ... ma hai pensato al VisualVM ?

Credo che si aprirà il file risultante.

Risposto il 02/04/2009 a 00:19
fonte dall'utente

voti
6

Il tuo Kit Java Profiler è in grado di leggere hprof istantanee (non sono sicuro se non altro per il profiling di memoria o per CPU pure). E non è libero, ma è di gran lunga il migliore profiler Java ho mai usato. Essa presenta i risultati in un modo intuitivo chiaro e si comporta bene su grandi insiemi di dati. La documentazione è anche abbastanza buono.

Risposto il 02/04/2009 a 19:34
fonte dall'utente

voti
0

Sono stato con Eclipse Memory Analyzer per l'analisi dei diversi problemi di prestazioni con successo. Prima di tutto, installare lo strumento come descritto nella pagina web del progetto in Eclipse.

Dopo di che, è possibile creare un file di dump conoscere il pid della JVM da analizzare

jmap -dump:format=b,file=<filename>.hprof <jvm_pid> 

Poi basta importare il file .hprof in Eclipse. Ha alcuni report automatici che cercano (per me che di solito non funzionano) per indicare che potrebbe essere i possibili problemi.

Modificare:

Rispondendo il commento: Hai ragione, è più come un cercatore di perdite per Java. Per problemi di prestazioni, ho giocato con JRat per i piccoli progetti. Essa mostra il tempo consumato per il metodo, il numero di volte che un metodo viene chiamato, la gerarchia delle chiamate, ecc L'unico problema è che, per quanto ne so, non supporta i file .hprof. Per usarlo, yo bisogno di eseguire il programma di aggiunta di un argomento VM

-javaagent:<path>/shiftone-jrat.jar

Questo genererà una directory con il profilo catturato dallo strumento. Quindi, eseguire

 java -jar shiftone-jrat.jar

E aprire la traccia. Anche stato uno strumento semplice, penso che potrebbe essere utile.

Risposto il 15/04/2009 a 12:49
fonte dall'utente

voti
0

Per la visualizzazione e analisi della produzione delle hprof=sampleso hprof=cpuho usato PerfAnal con buoni risultati. L'interfaccia grafica è un po 'spartana, ma molto utile.

PerfAnal è un download gratuito (GPL, in origine un progetto di esempio nel libro di programmazione Java su Linux ). Si veda questo articolo:

http://www.oracle.com/technetwork/articles/javase/perfanal-137231.html

Per maggiori informazioni e il download.

Normalmente si può semplicemente eseguire

java -jar PerfAnal.jar hprof.java.txt

Potrebbe essere necessario giocherellare con -Xmx per file di grandi dimensioni hprof.

Risposto il 05/10/2010 a 09:51
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more