المهارات python-performance-optimization
📦

python-performance-optimization

آمن

تحسين أداء كود بايثون والقياس

متاح أيضًا من: ActiveInferenceInstitute,wshobson

كود بايثون البطيء يهدر الموارد ويحبط المستخدمين. توفر هذه المهارة تقنيات قياس وتحسين منهجية لتحديد الاختناقات وتحسين الأداء.

يدعم: Claude Codex Code(CC)
🥉 72 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "python-performance-optimization". قياس دالة تعالج قائمة كبيرة

النتيجة المتوقعة:

تقرير توقيت يظهر أن process_data() استهلكت 2.3 ثانية (85% من الوقت الإجمالي)، مع 90% تقضى في حلقات متداخلة. التوصية: استبدل خوارزمية O(n²) ببحث في القاموس لأداء O(n).

استخدام "python-performance-optimization". تحليل نمط استخدام الذاكرة

النتيجة المتوقعة:

ملف الذاكرة يظهر تخصيص 500 ميجابايت في قاموس data_cache ينمو بلا حدود. التوصية: نفذ ذاكرة تخزين مؤقت LRU مع معامل maxsize أو استخدم WeakValueDictionary للتنظيف التلقائي.

التدقيق الأمني

آمن
v1 • 2/24/2026

Static analysis flagged 68 patterns but all are false positives. The backtick detections are markdown code formatting, not shell execution. Network and URL findings are educational examples using test endpoints. SQLite references are documentation examples. System reconnaissance patterns are legitimate profiling tool demonstrations. This is a documentation-only skill with no executable code or security risks.

2
الملفات التي تم فحصها
908
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
32
المجتمع
100
الأمان
100
الامتثال للمواصفات

ماذا يمكنك بناءه

تصحيح نقاط نهاية API البطيئة

قياس تطبيق ويب لتحديد استعلامات قاعدة البيانات البطيئة وتحسين أوقات الاستجابة.

تحسين أنابيب معالجة البيانات

تحليل استخدام الذاكرة ووقت التنفيذ لسير عمل ETL لتقليل استهلاك الموارد.

تحسين كفاءة الخوارزميات

قياس الكود الحسابي لتحديد الأنماط غير الفعالة وتطبيق التحسينات المناسبة.

جرّب هذه الموجهات

إعداد القياس الأساسي
ساعدني في قياس هذه الدالة في بايثون لتحديد اختناقات الأداء. هذا هو الكود الخاص بي: [الصق الكود]. اعرض لي كيفية استخدام cProfile لقياس وقت التنفيذ والعثور على الدوال البطيئة.
تحقيق تسرب الذاكرة
تطبيق بايثون الخاص بي يستخدم ذاكرة متزايدة مع مرور الوقت. ساعدني في استخدام memory_profiler وtracemalloc لتحديد تسرب الذاكرة في هذا الكود: [الصق الكود]. اشرح ما يعنيه المخرج.
توصيات التحسين
قمت بقياس الكود الخاص بي ووجدت هذه الاختناقات: [الصق مخرج القياس]. أوصي بتقنيات تحسين محددة واعرض أمثلة كود قبل/بعد لكل اقتراح.
قياس إنتاج متقدم
دعني أرشدك خلال إعداد py-spy لقياس خدمة إنتاج بايثون قيد التشغيل بدون إيقافها. اشرح كيفية إنشاء رسوم بيانية شعاعية وتفسير النتائج لإيجاد المسارات النشطة.

أفضل الممارسات

  • قم بالقياس دائماً قبل التحسين لتحديد الاختناقات الفعلية، وليست المفترضة
  • استخدم هياكل البيانات المناسبة: القواميس للبحث، المجموعات لاختبارات العضوية، المولدات للتسلسلات الكبيرة
  • خزن العمليات الحسابية المكلفة باستخدام functools.lru_cache وقم بتجميع عمليات I/O لتقليل نفقات استدعاءات النظام

تجنب

  • تحسين الكود بدون بيانات قياس يؤدي إلى جهد ضائع على غير الاختناقات
  • دمج السلاسل في حلقات باستخدام عامل + بدلاً من join() يسبب تعقيد زمني تربيعي
  • تحميل ملفات أو مجموعات بيانات كاملة في الذاكرة عندما تكون المعالجة القائمة على التكرار كافية

الأسئلة المتكررة

أي مُقيّس يجب أن أستخدم أولاً؟
ابدأ بـ cProfile للقياس العام لوحدة المعالجة المركزية. إنه مدمج في بايثون ويظهر أي الدوال تستهلك معظم الوقت. استخدم line_profiler للتحليل التفصيلي سطر بسطر للدوال النشطة المحددة.
كيف أقوم بقياس كود الإنتاج بدون التأثير على الأداء؟
استخدم py-spy، وهو مُقيّس أخذ عينات يرفق بالعمليات قيد التشغيل مع حد أدنى من النفقات. يمكنه إنشاء رسوم بيانية شعاعية ولا يتطلب تغييرات في الكود أو إعادة تشغيل.
لماذا الكود المُحسّن الخاص بي أبطأ من الأصلي؟
الأسباب الشائعة تشمل التحسين المبكر للمسارات الباردة، التعقيد المضاف يسبب فوات الذاكرة المؤقتة، أو التحسينات الدقيقة التي تتداخل مع التحسينات الداخلية لبايثون. قم دائماً بقياس التغييرات.
متى يجب استخدام multiprocessing مقابل threading؟
استخدم multiprocessing للمهام المعتمدة على وحدة المعالجة المركزية لتجاوز GIL واستغلال نوى متعددة. استخدم threading أو asyncio لمهام I/O حيث يتم إطلاق GIL خلال عمليات I/O.
كيف يمكنني تقليل استخدام الذاكرة في تطبيق بايثون الخاص بي؟
استخدم المولدات بدلاً من القوائم للتسلسلات الكبيرة، نفذ __slots__ في الفئات ذات الحالات الكثيرة، تجنب الاحتفاظ بمراجع غير ضرورية، واستخدم المراجع الضعيفة للذاكرة المؤقتة.
هل NumPy أسرع دائماً من بايثون النقي؟
NumPy يتفوق في العمليات العددية المجهزة على المصفوفات الكبيرة بسبب تطبيق C. للمجموعات الصغيرة أو المهام غير العددية، قد يكون بايثون النقي أبسط وبسرعة مماثلة.

تفاصيل المطور

بنية الملفات