มีอะไรแนะนำให้ใช้กับ Java ได้บ้าง?
ข้อกำหนดเพียงอย่างเดียวคือควรเป็นโอเพ่นซอร์สหรือมีใบอนุญาตการศึกษาที่ไม่แพงเกินไป
มีอะไรแนะนำให้ใช้กับ Java ได้บ้าง?
ข้อกำหนดเพียงอย่างเดียวคือควรเป็นโอเพ่นซอร์สหรือมีใบอนุญาตการศึกษาที่ไม่แพงเกินไป
คำตอบ:
VisualVM ที่มาพร้อมกับ jdk6 มี profiler พื้นฐานอยู่ภายใน VisualVM มาพร้อมกับ jdk ดังนั้นหากคุณติดตั้ง jdk6 คุณน่าจะติดตั้งด้วยเช่นกัน
VisualVM
ก่อนประสบความสำเร็จ แต่มันขัดข้องสำหรับฉันในขณะที่พยายามสร้างโปรไฟล์แอป Tomcat สิ่งนี้ใช้ได้ผลสำหรับฉัน: github.com/jvm-profiling-tools/honest-profiler
คุณมีรายชื่อที่นี่ (ระบุไว้ด้านล่างลิงก์ในกรณีที่ใช้งานไม่ได้)
- JMemProf
- JMP
- ดร
- JTreeProfiler
- NetBeans Profiler
- JAMon API
- JBoss Profiler
- MessAdmin
- อินฟราเรด
- TomcatProbe
- Java Interactive Profiler (JIP)
- Profiler4j
- นาฬิกาจับเวลา
- JMeasurement
- ดีเจ
- TIJmp
- ออลมอน
- Appspy
- ยูเรก้า
- japex
- OKTECH Profiler
- Perf4j
อา. Netbeans Profilerผู้ได้รับรางวัล "Product of the Year" ของ developer.com ในปี 2009
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()
ต่อไปนี้เป็นบทความเกี่ยวกับJava Application Profiling ใช้ TPTPและนี่คือการกวดวิชาProfiling J2SE 5.0 การใช้งานโดยใช้คราส TPTP
หากคุณกำลังมองหาผู้สร้างโปรไฟล์โอเพ่นซอร์สที่เรียบง่ายและใช้งานง่ายคุณอาจต้องการดู Jip ( Java Interactive Profiler ) เผยแพร่ภายใต้ใบอนุญาต BSD ฉันพบว่ามันมีประโยชน์มากสำหรับโปรแกรมขนาดเล็ก อย่างน้อยผลลัพธ์ที่ได้ก็เป็นวิธีที่เข้าใจง่ายกว่าเอาต์พุต hprofs
Java Mission Controlใช้สำหรับการพัฒนาได้ฟรีและรวมเข้ากับ Eclipse มีค่าโสหุ้ยต่ำมาก (<1%) เนื่องจากข้อมูลที่ JVM รวบรวมอยู่
ใช้งานง่ายมากและยังสามารถให้ข้อมูลมากมายที่คุณมักจะไม่พบในเครื่องมือทำโปรไฟล์อื่น ๆ เช่นการทำโปรไฟล์เวลาแฝงการตรวจสอบหน่วยความจำออนไลน์สถิติ gc โดยละเอียด
สิ่งนี้ทำได้รวดเร็วสกปรกและมีประสิทธิภาพมากเพียงแค่ใช้เธรดทิ้งไม่กี่ครั้งหรือหยุดโปรแกรมชั่วคราวหลาย ๆ ครั้งและดูที่สแต็กเทรซ
พิจารณา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
Netbeans IDE มีผู้สร้างโปรไฟล์ฟรี
นอกจากนี้ถ้าฉันจำไม่ผิดใบอนุญาตการศึกษาของ JProfiler มีราคาไม่แพง (ค่อนข้าง)
JVM Monitorเป็น Java profiler ที่รวมเข้ากับ Eclipse เพื่อมอนิเตอร์ CPU เธรดและการใช้หน่วยความจำของแอ็พพลิเคชัน Java
หากต้องการการวิเคราะห์เชิงลึกเพิ่มเติมคุณอาจใช้เครื่องมืออื่น ๆ (เช่นTPTP , Memory Analyzer ) เป็นขั้นตอนต่อไป