วิธีใช้เครื่องมือโปรไฟล์การจัดสรร

Meggin Kearney
Meggin Kearney

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

วิธีการทํางานของเครื่องมือ

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

เครื่องมือจะสร้างฮีปสแนปชอตเป็นระยะๆ ตลอดการบันทึก (ทุกๆ 50 มิลลิวินาที!) และสแนปชอตสุดท้าย 1 รายการในช่วงท้ายของการบันทึก

เครื่องมือสร้างโปรไฟล์การจัดสรร

เปิดใช้เครื่องมือสร้างโปรไฟล์การจัดสรร

วิธีเริ่มใช้เครื่องมือสร้างโปรไฟล์การจัดสรร

  1. ตรวจสอบว่าคุณใช้ Chrome Canary เวอร์ชันล่าสุด
  2. เปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และคลิกไอคอนรูปเฟืองที่ด้านล่างขวา
  3. จากนั้นเปิดแผงเครื่องมือสร้างโปรไฟล์ คุณควรจะเห็นโปรไฟล์ที่ชื่อว่า "บันทึกการจัดสรรฮีป"

บันทึกเครื่องมือสร้างโปรไฟล์การจัดสรรฮีป

อ่านโปรไฟล์การจัดสรรฮีป

โปรไฟล์การจัดสรรฮีปแสดงตำแหน่งที่สร้างออบเจ็กต์และระบุเส้นทางการเก็บรักษา ในภาพรวมด้านล่าง แถบด้านบนจะบ่งชี้ว่าเมื่อพบวัตถุใหม่ในฮีป

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

สแนปชอตเครื่องมือสร้างโปรไฟล์การจัดสรร

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

จากนั้นคุณสามารถใช้แถบเลื่อนในไทม์ไลน์ด้านบนเพื่อซูมเข้าสแนปชอตนั้นๆ และดูออบเจ็กต์ที่ได้รับการจัดสรร ณ เวลานั้นเมื่อเร็วๆ นี้

ซูมเข้าในสแนปชอต

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

ดูการจัดสรรหน่วยความจำตามฟังก์ชัน

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