Profiler Java Sumber Terbuka [ditutup]

94

Apa yang bisa kalian rekomendasikan untuk digunakan dengan Java?

Syaratnya hanya open source, atau memiliki lisensi akademik yang tidak terlalu mahal.

Hamza Yerlikaya
sumber
4
Ketika Anda mengatakan open source, maksud Anda gratis? Mereka memiliki arti yang berbeda. Apakah pertanyaan Anda tentang profilers _inexpensive?
Robert Munteanu
3
bebas seperti dalam kebebasan atau bebas seperti gratis? Oh kebingungan!
Tarski

Jawaban:

61

VisualVM yang disertakan dengan jdk6 memiliki profiler dasar di dalamnya. VisualVM dilengkapi dengan jdk, jadi jika Anda telah menginstal jdk6, kemungkinan Anda juga telah menginstalnya.

https://visualvm.github.io/

Chi
sumber
3
Profiler VisualVM adalah versi yang berdiri sendiri dari yang ada di NetBeans. Ini adalah awal yang SANGAT bagus.
Thorbjørn Ravn Andersen
2
Unduh pasti versi terbaru di: visualvm.dev.java.net . Juga: ini adalah profiler yang digunakan NetBeans.
Peterdk
Saya telah menggunakan VisualVMsebelumnya dengan sukses, tetapi macet saat saya mencoba membuat profil aplikasi Tomcat. Ini bekerja untuk saya: github.com/jvm-profiling-tools/honest-profiler
Lambart
21

Anda punya daftar di sini ( cantumkan di bawah ini, jika tautan rusak)

  • JMemProf
  • JMP
  • DrMem
  • JTreeProfiler
  • NetBeans Profiler
  • JAMon API
  • JBoss Profiler
  • MessAdmin
  • InfraRED
  • TomcatProbe
  • Java Interactive Profiler (JIP)
  • Profiler4j
  • Stopwatch
  • JMeasurement
  • DJProf
  • TIJmp
  • Allmon
  • Appspy
  • EurekaJ
  • japex
  • OKTECH Profiler
  • Perf4j
LB40
sumber
1
Anda dapat menambahkan ini ke daftar: github.com/jvm-profiling-tools/honest-profiler
Lambart
10

Java memiliki profiler bawaan dasar yang disebut HProf . Saya merasa berguna untuk membandingkan hasil yang diberikan dengan hasil dari lebih banyak fitur profiler.

Peter Lawrey
sumber
1
Saya telah menggunakan HPROF selama bertahun-tahun - dan meskipun mungkin tidak bagus, ini membantu saya menyelesaikan masalah memori dan kinerja yang tak terhitung jumlahnya.
Gandalf
1
HPROF sering menemukan titik berbeda untuk dioptimalkan. Saya sering menggunakannya setelah YourKit tidak lagi memberi saya poin yang jelas untuk dioptimalkan.
Peter Lawrey
2
Dihapus sejak jdk 9. openjdk.java.net/jeps/240
user2418306
5

Alat sumber terbuka jvmtop menyertakan profiler konsol dasar. Contoh keluaran:

 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
sumber
4

Eclipse TPTP

Berikut artikel tentang Java Application Profiling menggunakan TPTP dan berikut adalah tutorial Membuat Profil aplikasi berbasis J2SE 5.0 menggunakan Eclipse TPTP .

lothar
sumber
3
Saya tidak pernah bisa mengatur TPTP. Mungkin saya terlalu bodoh untuk menggunakannya.
quant_dev
@quant_dev: Saya memiliki masalah yang sama tetapi entah bagaimana secara tidak sengaja berhasil mengaturnya tiba-tiba (gerhana dimulai ulang atau apa pun?). Tetapi ketika saya menggunakannya, ternyata hampir tidak berguna, sangat lambat dan haus sumber daya sampai-sampai saya telah membunuh gerhana. Beberapa pandangan yang lebih berguna yang disebutkan dalam beberapa referensi yang saya temukan online juga sepertinya tidak ada lagi dalam realease saat ini yang bekerja dengan eclipse 3.5. Jadi saat ini pada dasarnya hanya BLOB besar yang tidak berguna.
x4u
1
Eclipse TPTP tampak seperti produk dewasa tetapi sangat lambat. Saya tidak mengerti mengapa ...
Roalt
4
Sayangnya TPTP kini telah memiliki rilis finalnya (v4.7.2). Ini telah diarsipkan dan tidak lagi menjadi bagian dari rilis simultan Eclipse.
joelittlejohn
3

Jika Anda mencari profiler open source tanpa embel-embel dan mudah digunakan, Anda mungkin ingin melihat Jip ( Java Interactive Profiler ). Ini diterbitkan di bawah lisensi BSD. Saya merasa itu sangat berguna untuk program kecil. Setidaknya, hasil yang diberikan jauh lebih mudah dipahami daripada keluaran hprofs.

Martin Dirichs
sumber
2

Kontrol Misi Jawa , gratis digunakan untuk pengembangan dan terintegrasi dengan Eclipse. Ini memiliki overhead yang sangat rendah (<1%) karena tetap mendukung data yang dikumpulkan JVM.

Ini sangat mudah digunakan dan juga dapat memberikan banyak informasi yang biasanya tidak akan Anda temukan di alat pembuatan profil lainnya, misalnya profil latensi, inspeksi memori online, statistik gc terperinci

Kire Haglin
sumber
1

Ini cepat, kotor, dan sangat efektif: cukup ambil beberapa thread dump, atau jeda program beberapa kali, dan lihat jejak tumpukan.

Mike Dunlavey
sumber
1

Pertimbangkan https://github.com/jvm-profiling-tools/async-profiler terbaru

Proyek ini adalah profiler pengambilan sampel overhead rendah untuk Java yang tidak mengalami masalah bias Safepoint . Ini menampilkan API khusus HotSpot untuk mengumpulkan jejak tumpukan dan untuk melacak alokasi memori. Profiler bekerja dengan OpenJDK, Oracle JDK, dan runtime Java lainnya berdasarkan HotSpot JVM.

Ini juga ada di dalam IntelliJ IDEA Ultimate: https://www.jetbrains.com/help/idea/cpu-profiler.html .


Ada juga https://github.com/jvm-profiling-tools/honest-profiler yang serupa .

Perbandingan antara async-profilerdan honest-profiler: https://github.com/jvm-profiling-tools/async-profiler/issues/77

Vadzim
sumber
Artikel bergambar bagus di async-profiler: hackernoon.com/…
Vadzim
0

Netbeans IDE menyertakan profiler gratis.

Juga, jika saya ingat dengan benar, lisensi akademik untuk JProfiler (relatif) tidak mahal.

Paul Morie
sumber
1
OP memang meminta "ijin akademik tidak terlalu mahal". Sebuah lisensi akademik tunggal untuk JProfiler adalah US $ 199
hidung belang
1
Dia meminta sesuatu yang open source atau memiliki lisensi akademis yang tidak mahal. Menurut pendapat saya, US $ 199 cukup murah untuk alat yang harganya $ 499 untuk lisensi normal.
Paul Morie
0

JVM Monitor adalah profiler Java yang terintegrasi dengan Eclipse untuk memantau penggunaan CPU, utas, dan memori aplikasi Java.

Jika analisis mendalam lebih lanjut diperlukan, Anda dapat menggunakan alat lain (misalnya TPTP , Penganalisis Memori ) sebagai langkah berikutnya.

Barun
sumber