4D Training & Consultancy

تطوير البرمجيات

Python المتقدم: التزامن والأداء

برنامج للمهندسين الذين بلغت خدمات Python وخطوط معالجتها لديهم حدودها. يبدأ بالقياس عبر cProfile وpy-spy وtracemalloc، ثم يتناول قفل المفسر العام والخيوط وتجمعات العمليات وasyncio، قبل الانتقال إلى توجيه NumPy والتخزين المؤقت والتسريع الأصلي للمسارات التي تبقى بطيئة.

4 أيامتنفيذ داخلي أو افتراضي أو مخصصفرق مؤسسية ومجموعات مهنيةالمستوى: متقدم

نظرة عامة

تعلم عملي قابل للتطبيق في بيئة العمل.

يفشل العمل على الأداء عادةً بالطريقة نفسها: يعيد الفريق كتابة الحلقة التي تبدو بطيئة وينشرها، ثم تظل نقطة الوصول تنتهي مهلتها لأن الكلفة الحقيقية كانت في خطوة تسلسل بيانات أو في تجمع اتصالات لا يتجاوز خمسة. يشترط هذا البرنامج الدليل قبل التعديل. يقيس المشاركون حملاً حقيقياً ويصنفونه بأنه مقيَّد بالمعالج أو بالإدخال والإخراج أو بالذاكرة، وعندها فقط يختارون بين الخيوط والعمليات وasyncio. وتنال صحة التنفيذ المتزامن الوزن نفسه: التسابق والجمود والضغط العكسي والإلغاء والأعطال المتقطعة.

المتطلبات المسبقة

خبرة سنتين أو أكثر في تطوير Python تشمل الأصناف والمولّدات، مع تجربة تشغيل Python في الإنتاج أو في خطوط معالجة مجدولة.

الأهداف

  • قياس أداء المعالج والذاكرة والزمن الفعلي لتحديد عنق الزجاجة بالدليل.
  • شرح ما يحجبه قفل المفسر العام واختيار الخيوط أو العمليات بناءً على ذلك.
  • بناء خدمات asyncio قادرة على تحمل آلاف عمليات الإدخال والإخراج المتزامنة بأمان.
  • تشخيص حالات التسابق والجمود وأخطاء الإلغاء في الشيفرة المتزامنة.
  • استبدال الحلقات الساخنة المفسَّرة بتوجيه NumPy أو التخزين المؤقت أو الامتدادات الأصلية.
  • ضبط أعداد العمال والتجمعات والذاكرة لرفع الإنتاجية دون زعزعة استقرار الإنتاج.

الفئة المستهدفة

  • مطورو الواجهات الخلفية الأقدم الذين يشغّلون خدمات Python تحت الحمل
  • مهندسو البيانات الذين يديرون خطوط معالجة دفعية وتدفقية تتجاوز نوافذها الزمنية
  • مهندسو المنصات وموثوقية الأنظمة الباحثون في زمن الاستجابة واستنفاد الموارد
  • مهندسو التعلم الآلي الذين يحسّنون الاستدلال وخطوط تجهيز السمات
  • المطورون في المجالات الكمية والعلمية ذوو الأحمال الحسابية الثقيلة
  • المعماريون الذين يقررون أين يجب توسيع Python وأين لا يجب

محاور البرنامج

هيكل واضح لرحلة التعلم.

محاور البرنامج

تظهر محاور البرنامج في صندوق واحد بدلاً من تحويل كل سطر إلى وحدة منفصلة.

الوحدة 1: القياس قبل التحسين

قياس الأداء بـcProfile وpy-spy والتوقيت على مستوى السطر لحمل حقيقي

تحليل الذاكرة بـtracemalloc واكتشاف احتجاز الكائنات غير المقصود

القياس المرجعي الأمين باستخدام timeit وظروف قياس مستقرة

التمييز بين الاختناقات المرتبطة بالمعالج والإدخال والإخراج والذاكرة

الوحدة 2: قفل المفسر العام والخيوط والعمليات

ما الذي يسلسله قفل المفسر العام فعلياً وما الذي يتركه حراً

استخدام threading لتزامن الإدخال والإخراج والحد الذي يتوقف عنده نفعه

multiprocessing وتجمعات العمليات والكلفة الخفية لتسلسل البيانات

concurrent.futures بوصفها واجهة موحدة فوق نموذجي التنفيذ

الوحدة 3: Python غير المتزامن باستخدام asyncio

حلقة الأحداث والإجراءات المتزامنة والمهام وما الذي يعلّقه await فعلياً

إدارة آلاف استدعاءات HTTP المتزامنة عبر httpx أو aiohttp

المهل الزمنية ودلالات الإلغاء والمقارنة بين gather وTaskGroup

استدعاء المكتبات الحاجزة من شيفرة غير متزامنة دون تعطيل حلقة الأحداث

الوحدة 4: صحة التنفيذ في ظل التزامن

حالات التسابق والأقفال والإشارات وأنماط الجمود الكلاسيكية

الطوابير وتجمعات العمال وتطبيق الضغط العكسي على المنتجين السريعين

خاصية عدم تكرار الأثر وإعادة المحاولة الآمنة داخل خطوط المعالجة المتزامنة

إعادة إنتاج الأعطال المتقطعة الناتجة عن التزامن وتصحيحها عمداً

الوحدة 5: جعل شيفرة Python سريعة

التعقيد الخوارزمي وخيارات بنى البيانات التي تحكم زمن التنفيذ

توجيه العمليات العددية عبر NumPy بدل الحلقات المفسَّرة

التخزين المؤقت باستخدام functools.lru_cache وطبقة تخزين خارجية

مقارنة التسريع الأصلي بين امتدادات C وCython وNumba

الوحدة 6: التوسع والسلوك في بيئة الإنتاج

تحديد أعداد العمال وتجمعات الاتصال وميزانية الذاكرة لكل عملية

المعالجة بالتدفق والتقسيم لإبقاء استهلاك الذاكرة ثابتاً مع نمو الحجم

اختبار الحمل على خدمة Python وتفسير النسب المئوية لزمن الاستجابة

تحسين حمل حقيقي من القياس الأول إلى مكسب متحقق منه

المواد المقدمة

  • دليل الدورة وأمثلة شيفرة موثّقة وملاحظات مرجعية
  • بيئة معملية عملية ومستودعات بداية جاهزة
  • تمارين وقوائم تحقق وقوالب شيفرة قابلة لإعادة الاستخدام
  • شهادة إتمام من 4D
  • دعم فني بعد انتهاء البرنامج

خيارات التدريب

يمكن تقديم البرامج داخل مقر المؤسسة، أو عن بُعد، أو بصيغة مدمجة بحسب جدول الفريق وموقعه وأهداف التعلم. عندما يتضمن البرنامج شهادة أو اختباراً من جهة خارجية، تبقى قواعد الشهادة ورسومها خاضعة لسياسات الجهة المانحة، بينما تقدم 4D التدريب ودعم التحضير.

لماذا البعد الرابع

تقيس 4D أثناء البرنامج أداء إحدى نقاط الوصول البطيئة أو مراحل خطوط المعالجة لديكم، فيرى المشاركون الفرق بين الاختناق المفترض والاختناق الذي يكشفه أداة القياس. ويُستكمل عمل التحسين حتى الوصول إلى رقم مقارن قبل وبعد يصلح لعرضه في نقاش الميزانية حول كلفة البنية التحتية.

دورات ذات صلة

تطوير البرمجيات

أساسيات البرمجة بلغة Python

مقدمة عملية إلى Python للمهندسين والمحللين الذين يحتاجون شيفرة تعمل فعلاً لا مقتطفات تعليمية. يكتسب المشاركون طلاقة في أنواع البيانات والمجموعات والدوال والملفات ومعالجة الأخطاء، ثم يبنون برنامجاً صغيراً يقرأ بيانات حقيقية وينتج تقريراً قابلاً للاستخدام.

View course
تطوير البرمجيات

Python المتوسط وممارسات الشيفرة النظيفة

برنامج موجّه للمطورين الذين تعمل شيفرة Python لديهم لكن يصعب تغييرها. يغطي dataclasses والمولّدات والمزخرفات ومديري السياق وتلميحات الأنواع، ثم يطبّق خطوات إعادة الهيكلة التي تحوّل وحدة من تسعمئة سطر إلى وحدات صغيرة مختبَرة تحرسها أدوات black وruff وmypy.

View course
تطوير البرمجيات

أتمتة المهام المكتبية والبرمجة النصية بلغة Python

برنامج موجّه للفرق التي تهدر ساعات أسبوعية في أعمال متكررة على الملفات والجداول والتقارير. يقوم المشاركون بأتمتة هذه المهام باستخدام Python: معالجة الملفات دفعياً وجداول Excel وCSV واستدعاء واجهات REST وتنبيهات البريد والمهام المجدولة التي تعمل دون إشراف وتبلّغ بوضوح عند الفشل.

View course

تواصل مع البعد الرابع

خطط لمسار التدريب أو الاستشارة المناسب لفريقك.

شاركنا بعض التفاصيل وسنوجه طلبك نحو التدريب المؤسسي أو الاستشارات أو التقييم أو حلول فينييكس أو برنامج مخصص.