วิธีใดเป็นวิธีที่ดีที่สุดในการสร้างโปรไฟล์การเรียกใช้งานจาวาสคริปต์ [ปิด]


94

มี profiler ที่ดีสำหรับ javascript หรือไม่? ฉันรู้ว่า firebug รองรับโค้ดการทำโปรไฟล์ แต่ฉันต้องการกำหนดสถิติในระดับที่ยาวขึ้น ลองนึกภาพคุณกำลังสร้างโค้ดจาวาสคริปต์จำนวนมากและคุณต้องการระบุว่าอะไรคือคอขวดในโค้ด ตอนแรกฉันต้องการดูสถิติโปรไฟล์ของทุกฟังก์ชันจาวาสคริปต์และเวลาดำเนินการ ต่อไปจะรวมถึงฟังก์ชัน DOM สิ่งนี้รวมกับการกระทำที่ทำให้สิ่งต่างๆช้าลงเช่นการทำงานบนต้นไม้การเรนเดอร์จะสมบูรณ์แบบ ฉันคิดว่าสิ่งนี้จะให้ความประทับใจที่ดีหากประสิทธิภาพถูกฆ่าในโค้ดของฉันในการเตรียม DOM หรือในการอัปเดตทรี / ภาพการแสดงผล

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


หากNODE_ENV=production node --prof app.jsไม่เป็นเช่นนั้นโปรดดูstackify.com/node-js-profilersหรือsoftwarerecs.stackexchange.comสำหรับทางเลือกอื่น
Cees Timmerman

คำตอบ:


63

Firebug

Firebug จัดทำรายงานการทำโปรไฟล์ที่มีรายละเอียดสูง มันจะบอกคุณว่าการเรียกใช้แต่ละวิธีใช้เวลานานแค่ไหนในตารางยักษ์ (โดยละเอียด)

console.profile([title])
//also see
console.trace()

คุณต้องโทรconsole.profileEnd ()เพื่อยุติการบล็อกโปรไฟล์ของคุณ ดูคอนโซล API ที่นี่: http://getfirebug.com/wiki/index.php/Console_API

นกชนิดหนึ่ง

Blackbird ( เว็บไซต์อย่างเป็นทางการ ) ยังมีโปรไฟล์ที่ง่ายกว่า (ดาวน์โหลดได้จากที่นี่ )


ฉันเขียนว่าฉันรู้จัก firefox ฉันต้องการมีสถิติเพิ่มเติมจากเบราว์เซอร์ที่มีผลต่อการทำงานของจาวาสคริปต์
Norbert Hartl

1
Ditto บน Firebug และคุณสามารถสร้างโปรไฟล์ได้โดยตรงจากคอนโซลหากคุณไม่ต้องการเขียนโค้ด
Chris B

1
Firebug เป็นเพียงเครื่องมือที่ดีที่สุดที่คุณจะได้รับ
Sasha Chedygov

1
สิ่งเดียวกันทำงานใน Safari Web Inspector
olliej

9
Firebug เป็นสิ่งที่ดีและทั้งหมด แต่ฉันไม่อยากเชื่อเลยว่ามีคนจำนวนมากที่นี่ร้องว่า "Firebug, Firebug!" ทันทีหลังจากที่ OP พูดอย่างชัดเจนว่าเขาต้องการโปรไฟล์โค้ดของเขาจากเบราว์เซอร์หลายตัว
JMTyler

20

เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Chrome มีโปรไฟล์ในตัว


2
+1, Speed ​​Tracer เป็นสิ่งที่ดีและเป็นสิ่งสำคัญ (ตามที่ OP กล่าวถึง) ในการกำหนดโปรไฟล์โค้ดของคุณมากกว่า Firefox เพื่อดูว่าเบราว์เซอร์แต่ละตัวมีผลต่อมันอย่างไร
JMTyler

12

แม้ว่า Firebug ได้รับการกล่าวถึงสิ่งที่เพิ่มเติมที่คุณจะอยากที่จะมองด้วย Firebug เป็นปลั๊กอินสำหรับ Firebug เรียกFireUnit ; John Resig พูดถึงเรื่องนี้ในบล็อกโพสต์นี้:

การเรียกใช้ฟังก์ชัน JavaScript

หวังว่าจะช่วยได้


ที่นี่น่าจะเป็นลิงค์ดาวน์โหลด - github.com/jeresig/fireunit/tree/master
T.Todua

4

Firebug + Firefox เป็นสิ่งที่ต้องมี และแถบเครื่องมือสำหรับนักพัฒนาของ IE 8 ยังมีตัวสร้างโปรไฟล์ในตัว (IE 8 มาพร้อมกับแถบเครื่องมือสำหรับนักพัฒนา)


4

ตัวตรวจสอบเว็บของ Safari 4 ยังมีตัวสร้างโปรไฟล์ (แม้ว่าเวอร์ชันใน nightlies จะได้รับการปรับปรุงการเรียกฟังก์ชันแบบเรียกซ้ำแบบ wrt) Web Inspector ยังรองรับ API ของโปรไฟล์ Firebug


4

สำหรับ JavaScript, XmlHttpRequest, DOM Access, Rendering Times และ Network Traffic สำหรับ IE6, 7 & 8 คุณสามารถใช้dynaTrace AJAX Edition ได้ฟรี


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