عن المشروع

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.