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.


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/


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

1
Sie können dies zur Liste hinzufügen: github.com/jvm-profiling-tools/honest-profiler
Lambart


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.


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()

4

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.


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


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.


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


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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.