0Pricing
Swift Academy · درس

أساسيات Instruments: Time Profiler

سجّلوا استخدام CPU، واقرؤوا أشجار الاستدعاء، واعثروا على النقاط الساخنة في الشيفرة.

أساسيات Instruments: Time Profiler درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

لماذا Instruments؟

إن Xcode Instruments حزمة أدوات لتحليل الأداء. يوضح Time Profiler المواضع التي يُستهلك فيها وقت المعالج، مما يساعدك على العثور على نقاط الاختناق.

// 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

عرض شجرة الاستدعاءات

تعرض شجرة الاستدعاءات الدوال مرتبةً حسب وقت المعالج الذي استهلكته. وتظهر مسارات الاستدعاء الأثقل في أعلى التسلسل الهرمي.

// 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

فحص الخيط الرئيسي مقابل الخلفية

يوضح مسار الخيوط في الأعلى النشاط لكل خيط. وقد تشير الارتفاعات المفاجئة في استهلاك المعالج على الخيوط الخلفية إلى تنفيذ عمل مفرط خارج الخيط الرئيسي.

// 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

نصائح لتحليل دقيق للأداء

حلّل الأداء على جهاز فعلي باستخدام بنية Release. إذ تؤدي المحاكيات وبنى Debug إلى تحريف قياسات الأداء.

// 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. استخدم خياري عكس شجرة الاستدعاءات وإخفاء مكتبات النظام لإظهار شيفرتك أولًا. انقر نقرًا مزدوجًا على الرموز للانتقال إلى المصدر. أجرِ التحليل على جهاز وبوضع Release. وأنشئ خطوط أساس قبل التحسينات وبعدها للتأكد من حدوث تحسن.

الأسئلة الشائعة

هل درس «أساسيات Instruments: Time Profiler» مجاني؟

نعم — نص درس «أساسيات Instruments: Time Profiler» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «أساسيات Instruments: Time Profiler»؟

سجّلوا استخدام CPU، واقرؤوا أشجار الاستدعاء، واعثروا على النقاط الساخنة في الشيفرة. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «أساسيات Instruments: Time Profiler»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات Instruments: Time Profiler
  2. أداتا Allocations وLeaks في Instruments
  3. مدقّق الخيط الرئيسي والتعليق
  4. تحسين المسارات الساخنة: COW وInlining وSpecialisation
← العودة إلى Swift Academy