การค้นหาคอขวดที่แท้จริง
วิเคราะห์ประสิทธิภาพเพื่อหาจุดที่ทำงานหนัก
การค้นหาคอขวดที่แท้จริง เป็นบทเรียน Mojo Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Mojo Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
คอขวดคืออะไร
คอขวดคือจุดที่ช้าที่สุดเพียงจุดเดียวซึ่งฉุดทั้งโปรแกรมไว้ การแก้จุดนี้ทำให้ทุกอย่างเร็วขึ้น ส่วนการแก้จุดอื่นแทบไม่ช่วยอะไร
การวัดประสิทธิภาพดีกว่าการคาดเดา
เครื่องมือวัดประสิทธิภาพจะเฝ้าดูการทำงานของโปรแกรมและรายงานว่าเวลาใช้ไปกับส่วนใดจริง ๆ ช่วยแทนที่ความรู้สึกด้วยหลักฐานที่ชัดเจน
ค้นหาเส้นทางที่ทำงานหนัก
เส้นทางที่ทำงานหนักคือโค้ดที่ทำงานบ่อยที่สุดหรือนานที่สุด โดยปกติมักอยู่ในลูปด้านในที่กระชับและทำงานหนัก
for i in range(n):
for j in range(n):
total += data[i] * data[j]กฎ 80/20
บ่อยครั้งที่โค้ดเพียงส่วนเล็ก ๆ ราวยี่สิบเปอร์เซ็นต์ใช้เวลาส่วนใหญ่ การวัดประสิทธิภาพช่วยให้คุณค้นหาส่วนที่ ทำงานหนักนั้นได้อย่างรวดเร็ว
เริ่มจับเวลาแบบภาพรวม
เริ่มจากภาพรวม จับเวลา ส่วนต่าง ๆ ทั้งหมดของโปรแกรมเพื่อดูว่าส่วนใดใช้เวลามากที่สุด ก่อนเจาะลึกไปยังฟังก์ชันแต่ละรายการ
var t = now()
load_data()
print("load:", now() - t)จากนั้นค่อยจำกัดขอบเขต
เมื่อพบส่วนที่ช้าแล้ว ให้เพิ่มตัวจับเวลาภายในส่วนนั้นเพื่อระบุ ฟังก์ชันหรือลูปที่เป็นต้นเหตุของค่าใช้จ่ายได้อย่างแม่นยำ
ระวังผู้ต้องสงสัยผิดตัว
โค้ดที่ดูซับซ้อนไม่ได้ช้าเสมอไป ให้เชื่อ ข้อมูล ไม่ใช่รูปลักษณ์ มิฉะนั้นคุณอาจปรับปรุงสิ่งที่ไม่เคยมีความสำคัญเลย
นับว่าทำงานบ่อยเพียงใด
ฟังก์ชันที่เร็วแต่ถูกเรียกหนึ่งล้านครั้งอาจใช้เวลารวมมากกว่าฟังก์ชันที่ช้าแต่ถูกเรียกครั้งเดียว ควรพิจารณา ความถี่เสมอ ไม่ใช่ดูแค่เวลาต่อการเรียก
เฝ้าดูแรงกดดันด้านหน่วยความจำ
บางครั้งคอขวดไม่ได้อยู่ที่ compute แต่อยู่ที่ หน่วยความจำ เช่น การพลาดแคชและการคัดลอกข้อมูล การเคลื่อนย้ายข้อมูลที่ช้าอาจกินเวลาส่วนใหญ่
แยกผู้ต้องสงสัยออกมา
แยกโค้ดที่สงสัยออกมาเป็นการทดสอบประสิทธิภาพขนาดเล็กแบบเดี่ยว ๆ การวัดใน สภาพแยกอิสระจะยืนยันได้ว่าโค้ดนั้นเป็นต้นเหตุของความช้าจริงหรือไม่
ยืนยันก่อนแก้ไข
ทำให้ผลลัพธ์ที่ช้าเกิดขึ้นซ้ำสองครั้งเพื่อให้แน่ใจว่าเป็นปัญหาจริง คอขวดที่ยืนยันแล้วคุ้มค่าต่อการปรับปรุง แต่ความผิดพลาดที่เกิดขึ้นโดยบังเอิญไม่คุ้ม
ตรวจสอบอย่างรวดเร็ว
ลองคิดดูว่าความพยายามของคุณจะให้ผลลัพธ์คุ้มค่าที่สุดตรงไหน
สรุปทบทวน
คุณได้เรียนรู้การ วัดประสิทธิภาพ ค้นหาเส้นทางที่ทำงานหนัก พิจารณาความถี่และหน่วยความจำ แยกผู้ต้องสงสัยออกมา และยืนยันปัญหาก่อนลงแรงแก้ไข 🔍
เรียนรู้ Mojo ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “การค้นหาคอขวดที่แท้จริง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การค้นหาคอขวดที่แท้จริง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Mojo Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การค้นหาคอขวดที่แท้จริง”
วิเคราะห์ประสิทธิภาพเพื่อหาจุดที่ทำงานหนัก คุณปฏิบัติ Mojo Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Mojo Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Mojo Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การค้นหาคอขวดที่แท้จริง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Mojo Academy นี้ได้ไหม
ได้ บทเรียน Mojo Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เครื่องมือจับเวลาและทดสอบประสิทธิภาพ
- การค้นหาคอขวดที่แท้จริง
- การปรับปรุงสิ่งที่สำคัญ
- การอ่านรายงานการวิเคราะห์ประสิทธิภาพ