Profilatori Java open source [chiuso]


94

Cosa potete consigliare di usare con Java?

L'unico requisito è che dovrebbe essere open source o che non abbia una licenza accademica troppo costosa.


4
Quando dici open source intendi gratuito? Hanno significati diversi. La tua domanda riguarda _profiler poco costosi?
Robert Munteanu

3
libero come in libertà o libero come in gratis? Oh la confusione!
Tarski

Risposte:


61

Il VisualVM fornito con jdk6 ha un profiler di base al suo interno. VisualVM viene fornito con jdk, quindi se hai installato jdk6, probabilmente lo hai installato anche tu.

https://visualvm.github.io/


3
Il profiler VisualVM è una versione autonoma di quella in NetBeans. È un ottimo inizio.
Thorbjørn Ravn Andersen

2
Sicuramente scarica la versione più aggiornata su: visualvm.dev.java.net . Inoltre: questo è il profiler utilizzato da NetBeans.
Peterdk

L'ho usato in VisualVMprecedenza con successo, ma si è bloccato durante il tentativo di creare il profilo di un'app Tomcat. Questo ha funzionato per me: github.com/jvm-profiling-tools/honest-profiler
Lambart

21

hai una lista qui (elencandoli di seguito, il collegamento nel caso si interrompa)

  • JMemProf
  • JMP
  • DrMem
  • JTreeProfiler
  • NetBeans Profiler
  • JAMon API
  • JBoss Profiler
  • MessAdmin
  • Infrarossi
  • TomcatProbe
  • Java Interactive Profiler (JIP)
  • Profiler4j
  • Cronometro
  • JMeasurement
  • DJProf
  • TIJmp
  • Allmon
  • Appspy
  • EurekaJ
  • japex
  • OKTECH Profiler
  • Perf4j



10

Java ha un profiler integrato di base chiamato HProf . Trovo utile confrontare i risultati che fornisce con i risultati di profiler di funzionalità più completi.


1
Uso HPROF da anni e, anche se potrebbe non essere carino, mi ha aiutato a risolvere innumerevoli problemi di memoria e prestazioni.
Gandalf

1
HPROF trova spesso diversi punti da ottimizzare. Lo uso spesso dopo che YourKit non mi dà più punti evidenti da ottimizzare.
Peter Lawrey,


5

Lo strumento open source jvmtop include un profiler della console di base. Output di esempio:

 JvmTop 0.7.0 alpha - 15:16:34,  amd64,  8 cpus, Linux 2.6.32-27, load avg 0.41
 http://code.google.com/p/jvmtop

 Profiling PID 24015: org.apache.catalina.startup.Bootstrap

  36.16% (    57.57s) hudson.model.AbstractBuild.calcChangeSet()
  30.36% (    48.33s) hudson.scm.SubversionChangeLogParser.parse()
   7.14% (    11.37s) org.kohsuke.stapler.jelly.JellyClassTearOff.parseScript()
   6.25% (     9.95s) net.sf.json.JSONObject.write()
   3.13% (     4.98s) ....kohsuke.stapler.jelly.CustomTagLibrary.loadJellyScri()

4

3
Non sono mai stato in grado di impostare TPTP. Forse sono troppo stupido per usarlo.
quant_dev

@quant_dev: ho avuto lo stesso problema ma in qualche modo sono riuscito accidentalmente a impostarlo all'improvviso (eclipse riavviato o altro?). Ma quando l'ho usato si è rivelato quasi inutile, era incredibilmente lento e affamato di risorse al punto che ho dovuto uccidere Eclipse. Alcune delle visualizzazioni più utili che sono state menzionate in diversi riferimenti che ho trovato online, inoltre, non sembrano più esistere nell'attuale versione che funziona con eclipse 3.5. Quindi al momento è fondamentalmente solo un enorme BLOB di inutilità.
x4u

1
Eclipse TPTP sembra un prodotto maturo ma è estremamente lento. Non riesco a capire perché ...
Roalt

4
Purtroppo TPTP ha ora la sua versione finale (v4.7.2). È stato archiviato e non fa più parte del rilascio simultaneo di Eclipse.
joelittlejohn

3

Se stai cercando un profiler open source senza fronzoli e facile da usare, potresti dare un'occhiata a Jip ( Java Interactive Profiler ). È pubblicato con una licenza BSD. L'ho trovato abbastanza utile per piccoli programmi. Almeno, i risultati che fornisce sono molto più facili da capire dell'output di hprofs.


2

Java Mission Control , è gratuito da usare per lo sviluppo e si integra con Eclipse. Ha un overhead molto basso (<1%) poiché si basa sui dati che la JVM sta raccogliendo comunque.

È molto facile da usare e può anche fornire molte informazioni che in genere non troverai in altri strumenti di profilazione, ad es. Profilazione della latenza, ispezione della memoria online, statistiche gc dettagliate


1

Questo è veloce, sporco e molto efficace: basta prendere alcuni dump del thread o mettere in pausa il programma più volte e guardare le tracce dello stack.


1

Considera https://github.com/jvm-profiling-tools/async-profiler all'avanguardia

Questo progetto è un profiler di campionamento a basso overhead per Java che non soffre del problema di bias di Safepoint . È dotato di API specifiche di HotSpot per raccogliere tracce di stack e tenere traccia delle allocazioni di memoria. Il profiler funziona con OpenJDK, Oracle JDK e altri runtime Java basati su HotSpot JVM.

È anche integrato in IntelliJ IDEA Ultimate: https://www.jetbrains.com/help/idea/cpu-profiler.html .


C'è anche un simile https://github.com/jvm-profiling-tools/honest-profiler .

Il confronto tra async-profilere honest-profiler: https://github.com/jvm-profiling-tools/async-profiler/issues/77



0

Netbeans IDE include un profiler gratuito.

Inoltre, se ricordo bene, la licenza accademica per JProfiler è (relativamente) poco costosa.


1
OP ha chiesto "una licenza accademica non troppo costosa". Una singola licenza accademica per JProfiler costa $ 199
masher

1
Ha chiesto qualcosa che fosse open source o avesse una licenza accademica poco costosa. A mio parere, 199 dollari USA sono abbastanza economici per uno strumento che costa 499 dollari per una normale licenza.
Paul Morie

0

JVM Monitor è un profiler Java integrato con Eclipse per monitorare CPU, thread e utilizzo della memoria delle applicazioni Java.

Se sono necessarie ulteriori analisi approfondite, è possibile utilizzare altri strumenti (ad es TPTP , Memory Analyzer ) come passaggio successivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.