تخطَّ إلى المحتوى

heaptrack - محترف ذاكرة Heap لـ Linux

heaptrack - محترف ذاكرة Heap لـ Linux

heaptrack (من قبل KDE) هو محترف ذاكرة heap لـ Linux. يتتبع جميع تخصيصات الذاكرة وعلق كل واحد بتتبع مكدس لذا يمكنك العثور على تسريب وتخصيص الاختناقات والتخصيص المؤقت المفرط واستخدام ذروة الذاكرة. يسجل ملف بيانات أثناء تشغيل برنامجك ثم يحللها إما مع heaptrack_gui (رسوم بيانية لهبية غنية وجداول) أو heaptrack_print (سطر أوامس). الحمل الزائد منخفض بما يكفي للأحمال الواقعية.

التثبيت

النظام الأساسيالأمر
Debian/Ubuntusudo apt install heaptrack heaptrack-gui
Fedorasudo dnf install heaptrack heaptrack-gui
Arch Linuxsudo pacman -S heaptrack heaptrack-qt
من المصدرالبناء من KDE/heaptrack repo (CMake)
التحققheaptrack --version

التسجيل

الأمرالوصف
heaptrack ./my-program argsملف تعريفي أمر من البداية
heaptrack -p PIDالإرفاق بعملية قيد التشغيل (GDB-based)
heaptrack -o out.zst ./progالكتابة إلى ملف إخراج محدد
الإخراجينشئ heaptrack.PROG.PID.zst في ديرت الحالي

عند الخروج يطبع heaptrack ملخصاً ومسار ملف البيانات المسجلة.

التحليل (واجهة رسومية)

heaptrack_gui heaptrack.my-program.12345.zst
عرض واجهة رسوميةيعرض
ملخصPeak RSS والتخصيصات الإجمالية وكمية تسريب البايت
الرسم البياني اللهبالتخصيصات منسوبة لاستدعاء المكدسات
من أعلى إلى أسفل / من الأسفل إلى الأعلىاستدعاء شجرة التخصيص
المتصل/المستقبلالتنقل في علاقات التخصيص
الجداولالتخصيصات/التسريب/المؤقت بمرور الوقت

التحليل (CLI)

# طباعة نقاط الاختناق في التخصيص العلوية إلى المحطة الطرفية
heaptrack_print heaptrack.my-program.12345.zst | less
متريالمعنى
peakالحد الأقصى من ذاكرة heap المحتفظ بها في وقت واحد
leakedالذاكرة المخصصة ولكن لم تُحرر أبداً
allocationsإجمالي عدد التخصيصات (الاضطراب)
temporaryالتخصيصات المحررة على الفور تقريباً (الهدر)
الخيارالوصف
-a, --print-peakالفرز حسب مستهلكي الذاكرة الذروة
-l, --print-leaksإظهار التسريب
-t, --print-temporaryإظهار نقاط الاختناق في التخصيص المؤقت
-d, --diff FILEDiff تسجيلين

مقارنة المدير (Diff)

# انظر ماذا تغير بين البنى/التشغيل
heaptrack_print -d before.zst after.zst

ما يخبرك كل متري

الأعراضابحث عن
عملية RSS تستمر في الزيادةleaked — التخصيصات لم تحرر أبداً
تكلفة مخصص CPU عاليةallocations / temporary — الكثير من الاضطراب
OOM تحت الحملpeak — تقليل الذاكرة المتزامنة الأقصى
ذروة ذاكرة البدءالرسم البياني اللهب في نطاق الوقت ذي الصلة

سير العمل الشائع

# العثور على تسرب في خدمة
heaptrack ./myservice --run-workload
heaptrack_print -l heaptrack.myservice.*.zst | head -30

# نسب ذروة الذاكرة أثناء عملية ثقيلة (واجهة رسومية الأسهل)
heaptrack ./batch-job
heaptrack_gui heaptrack.batch-job.*.zst   # افحص رسم البياني اللهب "الذروة"

# تقليل الاضطراب التخصيص المؤقت في حلقة ساخنة
heaptrack_print -t heaptrack.*.zst | head

heaptrack مقابل أدوات الذاكرة الأخرى

الجانبheaptrackValgrind (massif/memcheck)المخصصين المدمجين
الحمل الزائدمنخفضعالي (memcheck جداً عالي)يختلف
كشف التسريبنعمنعم (memcheck)جزئي
الاضطراب التخصيصنعم (مؤقت)massif يركز على الذروةلا
واجهة المستخدمGUI غنية + CLIنص / massif-visualizerلا شيء
الأفضل لـprofiling heap سريع على التشغيل الواقعيفحوصات صحة عمقيةفحوصات سريعة

موارد