بعد استرداد ملف شخصي من جهاز اختبار أو تنزيله من الخلفية، يمكنك فتح الملف في واجهة مستخدم Perfetto لفحص المخططات الزمنية وحالات سلاسل المحادثات والرسوم البيانية للاحتفاظ بالذاكرة. توضّح هذه الصفحة كيفية التنقّل في سجلّات تتبّع النظام التي تم حجبها ولقطات أجزاء من الذاكرة في Java التي تم تسجيلها باستخدام ProfilingManager.
عرض سجلّات تتبُّع النظام
افتح ملف .perfetto-trace في Perfetto UI لفحص نشاط وحدة المعالجة المركزية (CPU) وسلسلة التعليمات بمرور الوقت.
لحماية خصوصية المستخدم، تخفي أداة ProfilingManager سجلّات تتبّع النظام من خلال دمج
نشاط وحدة المعالجة المركزية من جميع العمليات الأخرى في مسار واحد باسم OtherProcesses.
يتيح لك فحص هذا المسار المجمّع تحديد ما إذا كان سبب بطء تطبيقك هو ازدحام داخلي أو الحمل الإجمالي على الجهاز.
يُبرز الشكل 2 الأقسام الرئيسية لسجلّ تتبّع النظام الذي تم تنقيحه:
- قائمة وحدات المعالجة المركزية: تعرض جميع المعالجات المتاحة على جهازك.
- مهام وحدة المعالجة المركزية: يعرض هذا الخيار سلاسل المحادثات التي كانت تنفّذها كل وحدة معالجة مركزية.
- عرض العمليات الأخرى: يعرض موارد وحدة المعالجة المركزية التي تستهلكها العمليات الأخرى.
- عرض العملية: يعرض عملية تطبيقك.
- عرض سلاسل المحادثات: يعرض سلاسل المحادثات التي يتم تشغيلها ضمن العملية وحالات سلاسل المحادثات (قابلة للتشغيل (R)، قيد التشغيل (R)، في وضع السكون (S)، في وضع السكون غير القابل للمقاطعة (D))، والتي يتم ربطها مباشرةً بحالات عمليات Linux.
- شرائح التتبُّع: يعرض هذا القسم التعليقات التوضيحية للتتبُّع التي أضافها مطوّرو التطبيقات أو إطار العمل. تشمل هذه التعليقات التوضيحية العمليات الحسابية بين
Trace.beginSectionوTrace.endSection.
لمزيد من المعلومات حول واجهة مستخدم Perfetto وعرض بيانات التتبُّع، يُرجى الاطّلاع على مستندات Perfetto.
عرض لقطات لأجزاء من الذاكرة في Java
بعد التقاط لقطة لأجزاء من ذاكرة Java باستخدام PROFILING_TYPE_JAVA_HEAP_DUMP،
افتح ملف .perfetto-java-heap-dump الناتج في واجهة مستخدم Perfetto
لتحديد تسرُّبات الذاكرة أو تحسين استخدام الذاكرة. في مستكشف تفريغ الذاكرة،
يمكنك استكشاف الرسم البياني للذاكرة، وفحص الرسوم البيانية اللهبية لأحجام العناصر التراكمية،
وتصفُّح الفئات والعناصر والمسيطرين، كما هو موضّح في الشكل 3.
أوجه الاختلاف بين لقطات أجزاء من الذاكرة في ProfilingManager ولقطات HPROF
على عكس لقطات أجزاء من الذاكرة العادية في .hprof (مثل تلك التي يتم التقاطها باستخدام
Debug.dumpHprofData أو في استوديو Android)، تلتقط أداة ProfilingManager
لقطة لأجزاء من الذاكرة في Perfetto ART (.perfetto-java-heap-dump). بدلاً من تفريغ
محتوى الذاكرة الأوّلية، تسجّل أداة ProfilingManager الرسم البياني للاحتفاظ بالعناصر
والبيانات الوصفية للحجم مع حذف البيانات الأوّلية المخزَّنة داخل العناصر:
- البيانات التي يتم جمعها:
- الفئات والأنواع: أسماء الفئات والتسلسلات الهرمية للفئات الفائقة ومحمّلات الفئات وأحجام النُسخ وأنواع المراجع (مثل الفئات العادية أو المصفوفات أو السلاسل أو المراجع الضعيفة أو الناعمة أو النهائية أو الوهمية).
- مثيلات الكائنات وأحجامها: المساحة المحتجزة من الذاكرة لكل كائن (
self_size) ومنطقة الذاكرة الديناميكية (HEAP_TYPE_APPأوHEAP_TYPE_ZYGOTEأوHEAP_TYPE_BOOT_IMAGE) والذاكرة الأصلية المرتبطة المسجَّلة من خلالNativeAllocationRegistry - المراجع وجذور GC: جذور تجميع المهملات (مثل JNI globals وlocals وإطارات حزمة التكديس في Java وعناصر سلاسل المحادثات) وسلاسل المراجع على مستوى الحقل التي توضّح العنصر الذي يحتفظ بعنصر آخر ومن خلال أي اسم حقل.
- اختيار البيانات الوصفية لتحديد الحجم: بيانات وصفية غير حساسة لأنواع معيّنة من إطارات العمل، مثل سمات
Bitmap(mWidthوmHeight).
- ما يتم حذفه: قيم الحقول الأولية الفعلية ومحتويات الأحرف
Stringوحمولات الصفائف الأولية (byte[]وchar[]والصفائف الأولية الأخرى). يؤدي حذف محتوى العناصر الأوّلية إلى حماية خصوصية المستخدم على أجهزة الإنتاج ويحافظ على حجم ملفات التفريغ أصغر بكثير.
الخطوات التالية
بالإضافة إلى الفحص المرئي في واجهة مستخدم Perfetto، يمكنك الاستعلام عن الملفات الشخصية باستخدام PerfettoSQL أو تحليل عمليات التتبّع بشكل مجمّع أو تحليل الملفات الشخصية باستخدام الذكاء الاصطناعي.