“ (โปรแกรม)” ในตัวสร้างโปรไฟล์ของดีบักเกอร์ Chrome คืออะไร


คำตอบ:


95

(program)เป็น Chrome เองรากของต้นไม้เรียกรหัสอื่น ๆ ทั้งหมด ... มันอยู่ที่นั่นเพราะการกระโดดจากโค้ดเนทีฟไปยังจาวาสคริปต์การโหลดทรัพยากร ฯลฯ ต้องเริ่มต้นที่ไหนสักแห่ง :)

คุณสามารถดูตัวอย่างของ TreeView ใน Chrome เอกสารเครื่องมือของนักพัฒนา


43
อ่า - ถ้านั่นเป็นเปอร์เซ็นต์ที่สูงจะมีอะไรที่ฉันทำได้บ้างไหม?
hvgotcodes

2
@hvgotcodes - ให้เสียงเป็นเปอร์เซ็นต์ของส่วนทั้งหมดด้านล่าง ตอนนี้ถ้าเปอร์เซ็นต์ของตัวเองสูงคุณจะทำได้ไม่มากนักเว้นแต่ว่ามาร์คอัปโดยทั่วไปของคุณจะหนัก
Nick Craver

1
คุณกรุณารู้วิธีการเข้าถึงรหัสในส่วน "(โปรแกรม)" หรือไม่? บางส่วนของ JavaScript ในโครงการที่ฉันกำลังทำอยู่นั้นจบลงและวิธีเดียวที่ฉันจะไปถึงที่นั่นในการดีบักเกอร์คือการวาง "debugger;" ลงในรหัสซึ่งไม่ค่อยสะดวกสบาย
Jaroslav Záruba

6
ฉันคิดว่ามันผิดจริงและ @ user1009908 คำตอบนั้นถูกต้อง มันไม่ใช่รูต, รหัสเนทีฟ สนับสนุนโดยข้อเท็จจริงที่ว่าตัวอย่างมุมมองแบบต้นไม้ไม่แสดงเป็นรูท
studgeek

3
เกี่ยวกับโปรแกรม% สูง () บางครั้ง css แอนิเมชั่นนำไปสู่การใช้งาน CPU สูงซึ่งจะปรากฏในโปรแกรม () น่าเสียดายที่ Profiler ไม่สามารถช่วยระบุแหล่งที่มาได้
ılǝ

31

ฉันเชื่อว่า (โปรแกรม) เป็นรหัสภาษาไม่ใช่รากของต้นไม้

ดูกระทู้นี้:

https://bugs.webkit.org/show_bug.cgi?id=88446

ดังนั้นยิ่งชอบการเรียกของระบบมากกว่าชอบ main ()

เห็นได้ชัดว่ามันมีเวลาว่าง นอกจากนี้ยังมีโปรไฟล์ (โปรแกรม) บางส่วนจาก chrome: // profiler /


7
ตกลง - แต่เป็นเพียงการอัปเดต: ไม่รวมเวลาว่างอีกต่อไป ตอนนี้ถูกรายงานแยกเป็น (ว่าง)
Gio

15

ตามที่ @Nick กล่าวว่าจะต้องเริ่มต้นที่ไหนสักแห่ง

ดูเหมือนว่าเป็นส่วนหนึ่งของ CPU Profiler เป็นเหมือนโปรอื่น ๆ อีกมากมายที่อยู่บนพื้นฐานของแนวคิดเดียวกับ gprof

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

ยอดรวมควรรวม callees ดังนั้นมันจึงมีประโยชน์มากกว่า อย่างไรก็ตามยกเว้นกรณีที่มีการสุ่มตัวอย่างในช่วงเวลาที่ถูกบล็อกเช่นเดียวกับในช่วงเวลาที่ใช้งานมันก็ยังคงไร้ประโยชน์ยกเว้นโปรแกรม cpu-bound ทั้งหมด

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

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

ผมไม่ทราบว่าคุณจะสามารถที่จะได้รับ Profiler ที่ดีขึ้นเช่นผนังนาฬิกาสแต็คตัวอย่างการรายงานในระดับสายเช่นซูม นี่คือวิธีที่ผมทำมัน


@hvgotcodes: ไม่แน่ใจ ฉันไม่ได้ใช้เพราะฉันเพิ่งถ่ายสแต็กช็อตในเครื่องมือดีบั๊ก แต่คุณใช้ Linux ใช่ไหม คุณจะได้รับสำเนาทดลองใช้ของการซูมหรือไม่? มันค่อนข้างดี
Mike Dunlavey

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