Open Source Java Profilers [ปิด]


94

มีอะไรแนะนำให้ใช้กับ Java ได้บ้าง?

ข้อกำหนดเพียงอย่างเดียวคือควรเป็นโอเพ่นซอร์สหรือมีใบอนุญาตการศึกษาที่ไม่แพงเกินไป


4
เมื่อคุณพูดว่าโอเพ่นซอร์สคุณหมายถึงฟรีหรือไม่? พวกเขามีความหมายที่แตกต่างกัน คำถามของคุณเกี่ยวกับ _inexpensive profilers หรือไม่?
Robert Munteanu

3
อิสระเหมือนอิสระหรือฟรีเหมือนฟรี? โอ้สับสน!
Tarski

คำตอบ:


62

VisualVM ที่มาพร้อมกับ jdk6 มี profiler พื้นฐานอยู่ภายใน VisualVM มาพร้อมกับ jdk ดังนั้นหากคุณติดตั้ง jdk6 คุณน่าจะติดตั้งด้วยเช่นกัน

https://visualvm.github.io/


3
VisualVM profiler เป็นเวอร์ชันสแตนด์อะโลนของหนึ่งใน NetBeans เป็นการเริ่มต้นที่ดีมาก
Thorbjørn Ravn Andersen

2
แน่นอนดาวน์โหลดเวอร์ชันล่าสุดเมื่อ: visualvm.dev.java.net นอกจากนี้: นี่คือโปรไฟล์ที่ NetBeans ใช้
Peterdk

ฉันเคยใช้ VisualVMก่อนประสบความสำเร็จ แต่มันขัดข้องสำหรับฉันในขณะที่พยายามสร้างโปรไฟล์แอป Tomcat สิ่งนี้ใช้ได้ผลสำหรับฉัน: github.com/jvm-profiling-tools/honest-profiler
Lambart

21

คุณมีรายชื่อที่นี่ (ระบุไว้ด้านล่างลิงก์ในกรณีที่ใช้งานไม่ได้)

  • JMemProf
  • JMP
  • ดร
  • JTreeProfiler
  • NetBeans Profiler
  • JAMon API
  • JBoss Profiler
  • MessAdmin
  • อินฟราเรด
  • TomcatProbe
  • Java Interactive Profiler (JIP)
  • Profiler4j
  • นาฬิกาจับเวลา
  • JMeasurement
  • ดีเจ
  • TIJmp
  • ออลมอน
  • Appspy
  • ยูเรก้า
  • japex
  • OKTECH Profiler
  • Perf4j

1
คุณสามารถเพิ่มสิ่งนี้ในรายการ: github.com/jvm-profiling-tools/honest-profiler
Lambart


10

Java มีพื้นฐานที่สร้างขึ้นใน Profiler เรียกHProf ฉันพบว่ามีประโยชน์ในการเปรียบเทียบผลลัพธ์ที่ให้กับผลลัพธ์จากโปรไฟล์ที่มีคุณสมบัติครบถ้วนมากขึ้น


1
ฉันใช้ HPROF มาหลายปีแล้วและแม้ว่ามันอาจจะไม่ค่อยสวย แต่ก็ช่วยฉันแก้ปัญหาหน่วยความจำและประสิทธิภาพได้นับไม่ถ้วน
Gandalf

1
HPROF มักจะพบจุดที่แตกต่างเพื่อเพิ่มประสิทธิภาพ ฉันมักจะใช้มันหลังจาก YourKit ไม่ได้ให้จุดที่ชัดเจนในการปรับให้เหมาะสมอีกต่อไป
Peter Lawrey

2
ลบออกตั้งแต่ jdk 9. openjdk.java.net/jeps/240
user2418306

5

jvmtopเครื่องมือโอเพนซอร์สมีคอนโซลโปรไฟล์พื้นฐาน ตัวอย่างผลลัพธ์:

 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

คราส TPTP

ต่อไปนี้เป็นบทความเกี่ยวกับJava Application Profiling ใช้ TPTPและนี่คือการกวดวิชาProfiling J2SE 5.0 การใช้งานโดยใช้คราส TPTP


3
ฉันไม่สามารถตั้งค่า TPTP ได้ บางทีฉันอาจจะโง่เกินไปที่จะใช้มัน
quant_dev

@quant_dev: ฉันมีปัญหาเดียวกัน แต่บังเอิญได้รับการจัดการเพื่อตั้งค่าอย่างกะทันหัน (eclipse เริ่มต้นใหม่หรืออะไรก็ตาม?) แต่เมื่อฉันใช้มันกลับกลายเป็นว่าแทบจะไร้ประโยชน์มันช้าอย่างไม่น่าเชื่อและทรัพยากรที่หิวโหยจนถึงจุดที่ฉันฆ่าคราสได้ มุมมองที่เป็นประโยชน์บางส่วนที่กล่าวถึงในการอ้างอิงหลายรายการที่ฉันพบทางออนไลน์ดูเหมือนจะไม่มีอยู่อีกต่อไปใน realease ปัจจุบันที่ทำงานร่วมกับ eclipse 3.5 ดังนั้นในขณะนี้มันเป็นเพียงแค่สิ่งไร้ประโยชน์ขนาดใหญ่เท่านั้น
x4u

1
Eclipse TPTP ดูเหมือนผลิตภัณฑ์ที่สมบูรณ์ แต่ช้ามาก ฉันไม่เข้าใจว่าทำไม ...
Roalt

4
น่าเสียดายที่ TPTP มีรุ่นสุดท้ายแล้ว (v4.7.2) มันถูกเก็บถาวรและไม่ได้เป็นส่วนหนึ่งของรีลีส Eclipse พร้อมกันอีกต่อไป
joelittlejohn

3

หากคุณกำลังมองหาผู้สร้างโปรไฟล์โอเพ่นซอร์สที่เรียบง่ายและใช้งานง่ายคุณอาจต้องการดู Jip ( Java Interactive Profiler ) เผยแพร่ภายใต้ใบอนุญาต BSD ฉันพบว่ามันมีประโยชน์มากสำหรับโปรแกรมขนาดเล็ก อย่างน้อยผลลัพธ์ที่ได้ก็เป็นวิธีที่เข้าใจง่ายกว่าเอาต์พุต hprofs


2

Java Mission Controlใช้สำหรับการพัฒนาได้ฟรีและรวมเข้ากับ Eclipse มีค่าโสหุ้ยต่ำมาก (<1%) เนื่องจากข้อมูลที่ JVM รวบรวมอยู่

ใช้งานง่ายมากและยังสามารถให้ข้อมูลมากมายที่คุณมักจะไม่พบในเครื่องมือทำโปรไฟล์อื่น ๆ เช่นการทำโปรไฟล์เวลาแฝงการตรวจสอบหน่วยความจำออนไลน์สถิติ gc โดยละเอียด


1

สิ่งนี้ทำได้รวดเร็วสกปรกและมีประสิทธิภาพมากเพียงแค่ใช้เธรดทิ้งไม่กี่ครั้งหรือหยุดโปรแกรมชั่วคราวหลาย ๆ ครั้งและดูที่สแต็กเทรซ


1

พิจารณาhttps://github.com/jvm-profiling-tools/async-profiler ที่ล้ำสมัย

โครงการนี้เป็น Profiler สุ่มตัวอย่างค่าใช้จ่ายต่ำสำหรับ Java ที่ไม่ต้องทนทุกข์ทรมานจากปัญหาอคติ SafePoint มีคุณลักษณะเฉพาะ API ของ HotSpot เพื่อรวบรวมสแต็กเทรซและติดตามการจัดสรรหน่วยความจำ ตัวสร้างโปรไฟล์ทำงานร่วมกับ OpenJDK, Oracle JDK และรันไทม์ Java อื่น ๆ ที่ใช้ HotSpot JVM

นอกจากนี้ยังในตัวเข้าไปในความคิด IntelliJ ที่ดีที่สุด: https://www.jetbrains.com/help/idea/cpu-profiler.html


นอกจากนี้ยังมีที่คล้ายกันhttps://github.com/jvm-profiling-tools/honest-profiler

การเปรียบเทียบระหว่างasync-profilerและhonest-profiler: https://github.com/jvm-profiling-tools/async-profiler/issues/77


บทความภาพประกอบที่ดีเกี่ยวกับ async-profiler: hackernoon.com/…
Vadzim

0

Netbeans IDE มีผู้สร้างโปรไฟล์ฟรี

นอกจากนี้ถ้าฉันจำไม่ผิดใบอนุญาตการศึกษาของ JProfiler มีราคาไม่แพง (ค่อนข้าง)


1
OP ขอ "ใบอนุญาตวิชาการไม่แพงเกินไป" ใบอนุญาตการศึกษาเดียวสำหรับ JProfiler คือ 199 ดอลลาร์สหรัฐ
masher

1
เขาขอสิ่งที่เป็นโอเพ่นซอร์สหรือมีใบอนุญาตการศึกษาที่ไม่แพง ในความคิดของฉัน 199 ดอลลาร์สหรัฐนั้นค่อนข้างถูกสำหรับเครื่องมือที่มีราคา 499 ดอลลาร์สำหรับใบอนุญาตปกติ
Paul Morie

0

JVM Monitorเป็น Java profiler ที่รวมเข้ากับ Eclipse เพื่อมอนิเตอร์ CPU เธรดและการใช้หน่วยความจำของแอ็พพลิเคชัน Java

หากต้องการการวิเคราะห์เชิงลึกเพิ่มเติมคุณอาจใช้เครื่องมืออื่น ๆ (เช่นTPTP , Memory Analyzer ) เป็นขั้นตอนต่อไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.