ความแตกต่างระหว่าง 'ตนเอง' และ 'รวม' ในโปรไฟล์ CPU CPU ของ JS


229

ความแตกต่างระหว่างคอลัมน์ 'ตัวเอง' และ 'รวม' ในการทำโปรไฟล์ Chrome CPU ของรหัส JS คืออะไร

ป้อนคำอธิบายรูปภาพที่นี่


13
เวลาตัวเองแทบไม่เคยมีประโยชน์ในซอฟต์แวร์ร้ายแรงเพราะเกือบตลอดเวลาใช้ในการเรียกระบบ / ไลบรารี / DB / IO ฯลฯ ดังนั้นตัวนับโปรแกรมจะใช้เวลาจริงน้อยมากเป็นเปอร์เซ็นต์ในรหัสของคุณยกเว้นคุณ เกิดอะไรขึ้นกับการเขียนลูปแน่น ๆ อาจบอกได้ว่ามีการใช้งานระบบเป็นจำนวนมาก แต่นั่นก็ไม่ดี คุณจำเป็นต้องรู้ว่าส่วนใดของรหัสของคุณทำให้เสียเวลามาก
Mike Dunlavey

หากฟังก์ชั่นปิดกั้นโดยการเรียกวัตถุในตัว (เช่นการส่งแบบ non-async XMLHttpRequest XML) เวลาตัวเองอาจมีประโยชน์มาก ในกรณีเช่นนี้ฟังก์ชั่นเหล่านี้ในขณะที่เป็นคอขวดอาจไม่แสดงที่ด้านบนของการวัดเวลาทั้งหมด
Konstantin

คำตอบ:


303

self คือเวลาที่ใช้ในการทำงานโดยตรงในฟังก์ชั่นนั้น

total คือเวลาที่ใช้ในฟังก์ชั่นนั้นและในฟังก์ชั่นที่เรียกว่า


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

42
อนึ่งเนื่องจากคนดูเหมือนจะพบคำตอบที่มีประโยชน์: นี่เป็นความจริงโดยทั่วไปของ profilers ไม่ใช่เฉพาะใน Chrome
duskwuff -inactive-

2
จะเกิดอะไรขึ้นถ้าฟังก์ชั่นเรียกตัวเองซ้ำ ๆ ? คุณจะอ่านอย่างถูกต้องได้อย่างไร?
David Limkys

3
การเชื่อมโยงเอกสารเป็นนี่ (ที่ส่วน 'ดูรายละเอียดฟังก์ชั่น') Self time: ใช้เวลานานเท่าใดกว่าจะเสร็จสิ้นการเรียกใช้ปัจจุบันของฟังก์ชั่นรวมถึงเฉพาะข้อความในฟังก์ชั่นเท่านั้นโดยไม่รวมฟังก์ชั่นที่เรียกใช้ Total time: เวลาที่ใช้ในการเสร็จสิ้นการภาวนาปัจจุบันของฟังก์ชั่นนี้และฟังก์ชั่นใด ๆ ที่มันเรียกว่า
Iman Mahmoudinasab

และความหมายของเปอร์เซ็นต์ที่แสดงตามค่าของตนเองและเวลารวมคืออะไร ฉันหมายความว่ามันเป็นร้อยละของสิ่งที่อยู่ในอะไร?
jayarjo

10

Self Time:สำหรับฟังก์ชั่นคือระยะเวลาในการเรียกใช้โค้ดภายในฟังก์ชั่น (ข้อความสั่งแบบอินไลน์) การตรวจสอบประสิทธิภาพของแต่ละฟังก์ชั่นนั้นเรียกว่าการวิเคราะห์จากล่างขึ้นบน

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

NB:เพียงเพราะฟังก์ชั่นมีเวลาตัวเองสูงไม่ได้หมายความว่าฟังก์ชั่นนั้นไม่มีประสิทธิภาพ สิ่งสำคัญคือต้องดูว่ามีการเรียกใช้ฟังก์ชันนี้กี่ครั้ง

บทความโดย Intel

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