عن المشروع
Memray هو محلل ذاكري للغة بايثون مُصمم لتتبع تخصيصات الذاكرة عبر شيفرة بايثون، وملحقات الأنظمة الأصلية (مثل C/C++)، وحتى مفسر بايثون نفسه. يوفر تتبع تفصيليًا لمكدس الدردشة لكل استدعاء دالة، مما يتيح نسبة دقيقة لاستخدام الذاكرة — على عكس محللات العينات. يدعم واجهة سطر الأوامر والاستخدام المكتبي، مما يجعله مرنا لسيناريوهات التدقيق المختلفة.
من بين القدرات الرئيسية:
- تتبع جميع استدعاءات الدوال مع تمثيل كامل لمكدس الدردشة.
- تدقيق شيفرة C/C++ الأصلية ضمن ملحقات بايثون (مثل numpy وpandas) عبر العلم --native الاختياري.
- توليد أنواع متعددة من التقارير: رسوم اللهب (HTML)، جداول، عروض شجرية، مراقبة حية في الطرفية، ملخصات، وإحصاءات.
- دعم خيوط بايثون والخيوط الأصلية (مثل تلك القادمة من ملحقات C++).
- أداء سريع بتأخير طفيف أثناء التدقيق؛ يمكن تبديل التتبع الأصلي لتبادل السرعة مقابل التفاصيل.
- تكامل مع pytest عبر إضافة pytest-memray للاختبارات التلقائية للذاكرة وتحديد الحدود.
- الوضع الحي: واجهة TUI تفاعلية لفحص الذاكرة في الوقت الفعلي أثناء السكربتات طويلة التشغيل.
- API قابل للبرمجة: استخدام memray.Tracker() كإدارة سياق لتدقيق كتل شيفرة معينة برمجيًا.
يتطلب التثبيت بايثون 3.9+ وهو متوفر عبر pip أو conda. تُقدَّم ثنائيات جاهزة لنظام Linux x86/x64 وmacOS؛ وتحتاج عمليات البناء من المصدر إلى تبعيات النظام مثل libunwind وliblz4. تُستضاف التوثيق والأمثلة على https://bloomberg.github.io/memray/.
يساعد Memray في تحديد الاستخدام العالي للذاكرة، وتسربات الذاكرة، ونقاط التركيز لتخصيص الذاكرة. لا يدعم Windows ولا منصات أخرى. المشروع مرخّص بموجب رخصة Apache-2.0 ويحيط بالمساهمات المجتمعية بعد توقيع DCO.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.