Open Source Java Profiler [geschlossen]

94

Was könnt ihr empfehlen, mit Java zu verwenden?

Die einzige Voraussetzung ist, dass es Open Source ist oder keine zu teure akademische Lizenz hat.

Hamza Yerlikaya
quelle
4
Wenn Sie Open Source sagen, meinen Sie damit kostenlos? Sie haben unterschiedliche Bedeutungen. Ist Ihre Frage zu teuren Profilern?
Robert Munteanu
3
frei wie in Freiheit oder frei wie gratis? Oh die Verwirrung!
Tarski

Antworten:

61

Die mit jdk6 gelieferte VisualVM enthält einen grundlegenden Profiler. VisualVM wird mit dem JDK geliefert. Wenn Sie also das JDK6 installiert haben, haben Sie es wahrscheinlich auch installiert.

https://visualvm.github.io/

Chi
quelle
3
Der VisualVM-Profiler ist eine eigenständige Version von NetBeans. Es ist ein sehr guter Start.
Thorbjørn Ravn Andersen
2
Laden Sie auf jeden Fall die aktuellste Version herunter: visualvm.dev.java.net . Außerdem: Dies ist der Profiler, den NetBeans verwendet.
Peterdk
Ich habe es VisualVMzuvor mit Erfolg verwendet, aber es stürzte für mich ab, als ich versuchte, eine Tomcat-App zu profilieren. Dies funktionierte für mich: github.com/jvm-profiling-tools/honest-profiler
Lambart
21

Sie erhalten eine Liste haben hier (sie unten Listing, in Fall wird Verbindung unterbrochen)

  • JMemProf
  • JMP
  • DrMem
  • JTreeProfiler
  • NetBeans Profiler
  • JAMon API
  • JBoss Profiler
  • MessAdmin
  • InfraRED
  • TomcatProbe
  • Java Interactive Profiler (JIP)
  • Profiler4j
  • Stoppuhr
  • JMeasurement
  • DJProf
  • TIJmp
  • Allmon
  • Appspy
  • EurekaJ
  • Japex
  • OKTECH Profiler
  • Perf4j
LB40
quelle
1
Sie können dies zur Liste hinzufügen: github.com/jvm-profiling-tools/honest-profiler
Lambart
16

Ah. Netbeans Profiler , der Gewinner des "Produkts des Jahres" von developer.com im Jahr 2009.

Adeel Ansari
quelle
10

Java verfügt über einen integrierten Profiler namens HProf . Ich finde es nützlich, die Ergebnisse mit den Ergebnissen von Profilern mit umfassenderen Funktionen zu vergleichen.

Peter Lawrey
quelle
1
Ich habe HPROF jahrelang verwendet - und obwohl es nicht besonders hübsch ist, hat es mir geholfen, unzählige Speicher- und Leistungsprobleme zu lösen.
Gandalf
1
HPROF findet häufig verschiedene Punkte zur Optimierung. Ich benutze es oft, nachdem YourKit mir keine offensichtlichen Punkte mehr zur Optimierung gibt.
Peter Lawrey
2
Entfernt seit jdk 9. openjdk.java.net/jeps/240
user2418306
5

Das Open-Source-Tool jvmtop enthält einen grundlegenden Konsolenprofiler. Beispielausgabe:

 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()
MRalwasser
quelle
4

Eclipse TPTP

Hier ist ein Artikel über Java Application Profiling mit TPTP und ein Tutorial zum Profiling von J2SE 5.0-basierten Anwendungen mit Eclipse TPTP .

Lothar
quelle
3
Ich konnte TPTP noch nie einrichten. Vielleicht bin ich zu dumm, um es zu benutzen.
quant_dev
@quant_dev: Ich hatte das gleiche Problem, habe es aber versehentlich geschafft, es plötzlich einzurichten (Eclipse neu gestartet oder was auch immer?). Aber als ich es benutzte, stellte sich heraus, dass es fast nutzlos war, unglaublich langsam und ressourcenhungrig bis zu dem Punkt, an dem ich Eclipse getötet hatte. Einige der nützlicheren Ansichten, die in mehreren Referenzen erwähnt wurden, die ich online gefunden habe, scheinen auch in der aktuellen Version, die mit Eclipse 3.5 funktioniert, nicht mehr zu existieren. Im Moment ist es also im Grunde nur ein riesiger BLOB der Nutzlosigkeit.
x4u
1
Eclipse TPTP sieht aus wie ein ausgereiftes Produkt, ist aber extrem langsam. Ich kann nicht verstehen warum ...
Roalt
4
Leider hat TPTP jetzt seine endgültige Version (v4.7.2). Es wurde archiviert und ist nicht mehr Teil der gleichzeitigen Veröffentlichung von Eclipse.
Joelittlejohn
3

Wenn Sie nach einem einfachen, benutzerfreundlichen Open Source-Profiler suchen, sollten Sie sich Jip ( Java Interactive Profiler ) ansehen . Es wird unter einer BSD-Lizenz veröffentlicht. Ich fand es sehr nützlich für kleine Programme. Zumindest sind die Ergebnisse viel einfacher zu verstehen als die Ausgabe von hprofs.

Martin Dirichs
quelle
2

Java Mission Control kann kostenlos für die Entwicklung verwendet werden und ist in Eclipse integriert. Der Overhead ist sehr gering (<1%), da er sich auf die Daten stützt, die die JVM ohnehin sammelt.

Es ist sehr einfach zu bedienen und kann auch viele Informationen enthalten, die Sie normalerweise in anderen Profiling-Tools nicht finden, z. B. Latenzprofile, Online-Speicherinspektion und detaillierte GC-Statistiken

Kire Haglin
quelle
1

Dies ist schnell, schmutzig und sehr effektiv: Nehmen Sie einfach ein paar Thread-Dumps oder halten Sie das Programm mehrmals an und sehen Sie sich die Stack-Traces an.

Mike Dunlavey
quelle
1

Betrachten Sie die neuesten https://github.com/jvm-profiling-tools/async-profiler

Dieses Projekt ist ein Low-Overhead-Sampling-Profiler für Java, der nicht unter dem Safepoint-Bias-Problem leidet . Es verfügt über HotSpot-spezifische APIs zum Sammeln von Stack-Traces und zum Verfolgen von Speicherzuordnungen. Der Profiler arbeitet mit OpenJDK, Oracle JDK und anderen Java-Laufzeiten, die auf HotSpot JVM basieren.

Es ist auch in IntelliJ IDEA Ultimate integriert: https://www.jetbrains.com/help/idea/cpu-profiler.html .


Es gibt auch ähnliche https://github.com/jvm-profiling-tools/honest-profiler .

Der Vergleich zwischen async-profilerund honest-profiler: https://github.com/jvm-profiling-tools/async-profiler/issues/77

Vadzim
quelle
Schöner illustrierter Artikel über Async-Profiler: hackernoon.com/…
Vadzim
0

Netbeans IDE enthält einen kostenlosen Profiler.

Wenn ich mich richtig erinnere, ist die akademische Lizenz für JProfiler (relativ) günstig.

Paul Morie
quelle
1
OP bat um "nicht zu teure akademische Lizenz". Eine einzige akademische Lizenz für JProfiler kostet US $ 199
Stampfer
1
Er bat um etwas, das Open Source war oder eine kostengünstige akademische Lizenz hatte. Meiner Meinung nach sind 199 US-Dollar für ein Tool, das für eine normale Lizenz 499 US-Dollar kostet, ziemlich günstig.
Paul Morie
0

JVM Monitor ist ein in Eclipse integrierter Java-Profiler zur Überwachung der CPU-, Thread- und Speichernutzung von Java-Anwendungen.

Wenn eine weitere gründliche Analyse erforderlich ist, können Sie als nächsten Schritt andere Tools (z. B. TPTP , Memory Analyzer ) verwenden.

Barun
quelle