0Pricing
Swift Academy · บทเรียน

พื้นฐาน Instruments: ตัววิเคราะห์เวลา

บันทึกการใช้งาน CPU อ่านแผนผังการเรียก และค้นหาจุดที่ใช้เวลามากในโค้ด

พื้นฐาน Instruments: ตัววิเคราะห์เวลา เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงใช้ Instruments

Xcode Instruments คือชุดเครื่องมือวิเคราะห์ประสิทธิภาพ Time Profiler จะแสดงว่ามีการใช้เวลา CPU อยู่ที่ใด เพื่อให้คุณค้นหาจุดที่ทำงานหนักได้

// Launch: Xcode → Product → Profile (Cmd+I)
// Choose "Time Profiler" template
// Run your app and exercise the slow path

การบันทึกข้อมูลติดตามการทำงาน

คลิกปุ่มบันทึกใน Instruments ทดลองใช้ฟีเจอร์ที่ต้องการวิเคราะห์ แล้วหยุดการบันทึก

// 1. Connect device or use simulator
// 2. Launch with Profile (Cmd+I)
// 3. Select Time Profiler
// 4. Record for 5-30 seconds
// 5. Stop and analyze

มุมมองแผนผังการเรียก

แผนผังการเรียกจะแสดงฟังก์ชันตามเวลาการใช้ CPU เส้นทางการเรียกที่ใช้ทรัพยากรมากที่สุดจะอยู่ด้านบนสุดของลำดับชั้น

// Call Tree columns:
// Self %: time spent in this function exclusively
// Symbol Name: function or method name
// Expand to see callers/callees

สแต็กเทรซที่ใช้ทรัพยากรมากที่สุด

แผงสแต็กเทรซที่ใช้ทรัพยากรมากที่สุดจะแสดงเส้นทางการเรียกที่ถูกเก็บตัวอย่างมากที่สุดเพียงเส้นทางเดียว ซึ่งมักเป็นจุดเริ่มต้นที่ดีที่สุดสำหรับการปรับปรุงประสิทธิภาพ

// In Time Profiler:
// View → Heaviest Stack Trace
// Pinpoints the exact line consuming the most CPU

การกรองตัวอย่าง

เปิดใช้ "ซ่อนไลบรารีระบบ" และ "กลับแผนผังการเรียก" เพื่อมุ่งเน้นที่โค้ดของคุณเองแทนเฟรมเวิร์กของ Apple

// Call Tree options (bottom of Instruments):
// ☑ Invert Call Tree    – shows leaf functions first
// ☑ Hide System Libraries – filters out OS internals

การไปยังโค้ดต้นฉบับ

ดับเบิลคลิกสัญลักษณ์ในแผนผังการเรียกเพื่อกระโดดไปยังบรรทัดที่เป็นต้นเหตุใน Xcode โดยตรง

// Double-click → opens file in Xcode at the hot line
// Red/orange annotation shows time spent per line

Time Profiler + SwiftUI

ในแอป SwiftUI ให้มองหาการเรียก body ที่ไม่คาดคิด การวาดใหม่มากเกินไปจะแสดงเป็นรายการ View.body ที่เกิดซ้ำในแผนผังการเรียก

// Common SwiftUI hot spots:
// - body called 100+ times per second
// - Equatable not implemented, causing unnecessary diffs
// - Heavy computation in body instead of a model

การตรวจสอบเธรดหลักเทียบกับเธรดเบื้องหลัง

ช่องเธรดด้านบนจะแสดงกิจกรรมของแต่ละเธรด การใช้ CPU พุ่งสูงบนเธรดเบื้องหลังอาจบ่งชี้ว่ามีงานมากเกินไปที่ถูกย้ายออกจากเธรดหลัก

// Thread lanes: Main Thread, Thread 2, Thread 3...
// Select a thread to see its call tree in isolation

Time Profiler สำหรับเวลาเริ่มต้นแอป

วัดเวลาเปิดแอปโดยเริ่มวิเคราะห์ตั้งแต่เปิดแอป และดูช่วงวินาทีแรก ๆ ของข้อมูลติดตามการทำงาน

// Instruments → File → Launch Profile
// Measures time from process start to first frame render

การกำหนดค่าพื้นฐาน

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

// Baseline: 45ms for imageLoad()
// After optimization: 8ms for imageLoad()
// Confirm: 5.6x speedup verified in Instruments

เคล็ดลับสำหรับการวิเคราะห์ที่แม่นยำ

วิเคราะห์บนอุปกรณ์จริงด้วยรุ่นเผยแพร่ เครื่องจำลองและรุ่นดีบักทำให้การวัดประสิทธิภาพคลาดเคลื่อนได้

// Always:
// 1. Use physical device
// 2. Build with Release configuration (Product → Scheme → Edit → Build → Release)
// 3. Repeat measurement 3+ times for consistency

ตรวจสอบความเข้าใจ

ตัวเลือกใดในแผนผังการเรียกของ Instruments ที่แสดงฟังก์ชันปลายทางซึ่งใช้เวลามากที่สุดไว้ด้านบนของรายการ

ทบทวนบทเรียน

วิเคราะห์ด้วย Cmd+I → Time Profiler ใช้การกลับแผนผังการเรียกร่วมกับการซ่อนไลบรารีระบบเพื่อให้เห็นโค้ดของคุณก่อน ดับเบิลคลิกสัญลักษณ์เพื่อไปยังโค้ดต้นฉบับ วิเคราะห์บนอุปกรณ์ในโหมดเผยแพร่ กำหนดค่าพื้นฐานก่อนและหลังการปรับปรุงเพื่อยืนยันว่าประสิทธิภาพดีขึ้น

คำถามที่พบบ่อย

บทเรียน “พื้นฐาน Instruments: ตัววิเคราะห์เวลา” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐาน Instruments: ตัววิเคราะห์เวลา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน Instruments: ตัววิเคราะห์เวลา”

บันทึกการใช้งาน CPU อ่านแผนผังการเรียก และค้นหาจุดที่ใช้เวลามากในโค้ด คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “พื้นฐาน Instruments: ตัววิเคราะห์เวลา” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม

ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. พื้นฐาน Instruments: ตัววิเคราะห์เวลา
  2. Instruments สำหรับการจัดสรรและการรั่วไหล
  3. ตัวตรวจสอบเธรดหลักและการค้าง
  4. ปรับเส้นทางที่ใช้เวลามาก: COW การแทรกโค้ด และการปรับเฉพาะทาง
← กลับไปที่ Swift Academy