Mojo Academy · บทเรียน

การค้นหาคอขวดที่แท้จริง

วิเคราะห์ประสิทธิภาพเพื่อหาจุดที่ทำงานหนัก

บทเรียน 2 จาก 413 ขั้นตอน

การค้นหาคอขวดที่แท้จริง เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เครื่องมือจับเวลาและทดสอบประสิทธิภาพ
  2. การค้นหาคอขวดที่แท้จริง
  3. การปรับปรุงสิ่งที่สำคัญ
  4. การอ่านรายงานการวิเคราะห์ประสิทธิภาพ
← กลับไปที่ Mojo Academy