Intellij Idea - การทำโปรไฟล์

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

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

บทนำ

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

สิทธิประโยชน์

  • อินเทอร์เฟซภาพสำหรับแอปพลิเคชัน Java ภายในและระยะไกลที่รันบน JVM

  • การตรวจสอบการใช้หน่วยความจำของแอปพลิเคชันและพฤติกรรมรันไทม์ของแอปพลิเคชัน

  • การตรวจสอบเธรดแอปพลิเคชัน

  • การวิเคราะห์การจัดสรรหน่วยความจำไปยังแอปพลิเคชันต่างๆ

  • ถังขยะ - มีประโยชน์มากในกรณีที่เกิดการหยุดชะงักและสภาพการแข่งขัน

  • กองทิ้ง - มีประโยชน์มากในการวิเคราะห์การจัดสรรหน่วยความจำฮีป

การกำหนดค่า

ในส่วนนี้เราจะเรียนรู้ขั้นตอนในการกำหนดค่า VisualVM ขั้นตอนมีดังนี้ -

  • ดาวน์โหลดได้จากที่นี่

  • แตกไฟล์ zip

  • ไปที่ไฟล์ etc / visualvm.conf และเพิ่มบรรทัดต่อไปนี้ในไฟล์นี้ -

visualvm_jdkhome=<path of JDK>
  • หาก JDK ของคุณติดตั้งในไฟล์ C:\Program Files\Java\jdk-9.0.1 ไดเรกทอรีควรมีลักษณะดังนี้ -

visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"

การตรวจสอบแอปพลิเคชัน

ตอนนี้ให้เราดูวิธีตรวจสอบแอปพลิเคชัน พิจารณาขั้นตอนต่อไปนี้เพื่อทำความเข้าใจเหมือนกัน -

  • ดับเบิลคลิกที่ไฟล์ visualvm.exe
  • เลือกแอปพลิเคชันจากบานหน้าต่างด้านซ้าย
  • เลือกแท็บจอภาพ

คุณจะถูกนำไปยังหน้าต่างที่คุณจะได้รับรายละเอียดเกี่ยวกับ CPU, Heap, Classes และ threads หากต้องการเจาะจงกับการใช้งานให้วางเมาส์เหนือกราฟใด ๆ เราสามารถดูการใช้งาน Heap ได้ในภาพหน้าจอด้านบน

ข้อมูลเชิงลึกเกี่ยวกับเธรด

แอ็พพลิเคชัน Java สามารถมีเธรดการเรียกใช้งานได้หลายเธรด หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเธรดให้เลือกแท็บเธรดของแอปพลิเคชันเฉพาะ จะให้สถิติต่างๆเกี่ยวกับเธรดเช่นจำนวนเธรดสดและเธรดดีมอน สถานะของเธรดที่แตกต่างกันคือ Running, Sleeping, Waiting, Park และ Monitor

แอปพลิเคชันการสุ่มตัวอย่าง

VisualVM รองรับ CPU การสุ่มตัวอย่างหน่วยความจำและการตรวจจับการรั่วไหลของหน่วยความจำ ในการสมัครตัวอย่างเลือกแอปพลิเคชันและเลือกแท็บตัวอย่าง -

การสุ่มตัวอย่าง CPU

สำหรับการสุ่มตัวอย่าง CPU ให้คลิกที่ปุ่ม CPU ตามที่แสดงในภาพหน้าจอต่อไปนี้ -

โปรไฟล์หน่วยความจำ

สำหรับการสร้างโปรไฟล์หน่วยความจำคลิกที่ปุ่มหน่วยความจำดังที่แสดงในภาพหน้าจอต่อไปนี้ -

หน่วยความจำรั่ว

การรั่วไหลของหน่วยความจำเกิดขึ้นเมื่อแอปพลิเคชันกำลังทำงานค่อยๆเติมฮีปด้วยวัตถุที่โปรแกรมไม่ได้ลบโดยอัตโนมัติ

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

แอปพลิเคชันโปรไฟล์

ในส่วนนี้เราจะเรียนรู้วิธีการสร้างโปรไฟล์แอปพลิเคชัน ในการกำหนดโปรไฟล์แอปพลิเคชันให้เลือกแอปพลิเคชันจากบานหน้าต่างด้านซ้ายและคลิกแท็บโปรไฟล์ -

โปรไฟล์ CPU

ในการทำโปรไฟล์ CPU ให้คลิกที่ปุ่ม CPU ตามที่แสดงในภาพหน้าจอด้านล่าง -

โปรไฟล์หน่วยความจำ

ในการทำโปรไฟล์ CPU ให้คลิกที่ปุ่ม CPU ตามที่แสดงในภาพหน้าจอด้านล่าง -