قد لا يكتمل طلب الملف الشخصي أو لا يقدّم نتائج على الفور في الحالات التالية:
- تحديد المعدّل: يتم تقييد عملية الجمع لحماية أداء الجهاز (يُرجى الاطّلاع على آلية عمل تحديد المعدّل).
إغلاق التطبيق قبل التسليم: إذا تم إغلاق تطبيقك أو تعطّله أثناء الالتقاط، يتوقف النظام ويحفظ الملف الشخصي في الخلفية ويُسلّم النتيجة المُدرَجة في قائمة الانتظار في المرة التالية التي يتم فيها تشغيل تطبيقك (في المقدمة أو الخلفية) ويسجّل مستمعًا عامًا. يحتفظ النظام بالنتائج التي لم يتم تسليمها في قائمة الانتظار لمدة تصل إلى 7 أيام في انتظار تسجيل المستمع، وإذا لم يسجّل تطبيقك مستمعًا في غضون 7 أيام، يتم تجاهل النتيجة في قائمة الانتظار.
أخطاء أخرى: في حال تعذُّر جمع البيانات (على سبيل المثال، بسبب طلب غير صالح أو خطأ داخلي)، يعرض
ProfilingResultرمز الخطأ ورسالته.
آلية عمل الحدّ من معدّل الإرسال
بما أنّ تسجيل الملفات الشخصية يتطلّب الكثير من الموارد، يفرض ProfilingManager
حدودًا على معدّل التسجيل على مستوى العملية ومستوى النظام لحماية أداء الجهاز
وعمر البطارية. تتطلّب أنواع الملفات الشخصية المختلفة تكاليف موارد مختلفة، ويتتبّع النظام الحصص على مدار فترات زمنية متجدّدة على مستويَين:
- الحدّ من معدّل المعالجة: يتتبّع تكلفة الموارد للملفات الشخصية التي يجمعها
تطبيقك الفردي مقابل حصة لكل تطبيق. يتلقّى كل تطبيق الحصة نفسها، ولا يؤثر نشاط جمع البيانات من التطبيقات الأخرى على الجهاز في الحدّ الأقصى المسموح به لتطبيقك. إذا بلغ تطبيقك الحدّ الأقصى المسموح به في أي فترة زمنية،
ستتعذّر معالجة الطلبات وستظهر رسالة الخطأ
ERROR_FAILED_RATE_LIMIT_PROCESS. - الحدّ من معدّل النظام: يتتبّع هذا الإجراء تكلفة الموارد المجمّعة للملفات الشخصية التي يتم جمعها من جميع التطبيقات على الجهاز مقارنةً بحصة عامة مشتركة.
بما أنّ جميع التطبيقات تساهم في هذا الحدّ الأقصى على مستوى الجهاز، يمكن أن يتعذّر تنفيذ الطلب
مع ظهور الخطأ
ERROR_FAILED_RATE_LIMIT_SYSTEMحتى إذا لم يستنفد تطبيقك الحصة المخصّصة له من العمليات.
إدارة حجم الملفات الشخصية في مرحلة الإنتاج
بما أنّ حدود المعدّل على مستوى الجهاز تعتمد على نوع الملف الشخصي والنشاط العام للنظام، لا تحاول تتبُّع أو توقُّع حصص حدود المعدّل المحلية الدقيقة داخل تطبيقك، بل ركِّز على تقديم طلب إنشاء الملف الشخصي عند حدوث تجربة مستخدم أو قيمة شاذة ذات صلة، ودع ProfilingManager يتعامل مع تقييد الموارد على الجهاز فقط.
لزيادة التغطية في الميدان إلى أقصى حد مع الحفاظ على معدل نقل البيانات للتحميل وتكاليف التخزين ضمن حدود معقولة، يمكنك التحكّم في الحجم الإجمالي للملفات الشخصية باستخدام منصات تقسيم الجمهور والتجربة (مثل الإعداد عن بُعد أو علامات اختبارات A/B):
- أخذ عيّنات من قاعدة المستخدمين: يمكنك تفعيل جمع الملفات الشخصية لنسبة صغيرة عشوائية من جلسات المستخدمين بدلاً من طلب الملفات الشخصية من كل مستخدم في كل عملية تشغيل.
- التقسيم حسب المجموعة النموذجية: يمكنك استهداف إصدارات معيّنة من التطبيق أو فئات الأجهزة أو إصدارات نظام التشغيل أو المناطق التي يتم فيها التحقيق في تراجع الأداء (على سبيل المثال، تفعيل جمع لقطات لأجزاء من الذاكرة في Java على الأجهزة ذات ذاكرة الوصول العشوائي المنخفضة التي تشهد معدلات مرتفعة من نفاد الذاكرة).
- تقسيم المشغّلات والطلبات المباشرة على مستوى المستخدمين: يمكنك تخصيص مشغّلات إنشاء ملفات شخصية وطلبات إنشاء ملفات شخصية مباشرة مختلفة لشرائح مستخدمين منفصلة، بحيث يسجّل بعض المستخدمين ملفًا شخصيًا واحدًا بينما يسجّل آخرون ملفًا شخصيًا مختلفًا. بما أنّ جميع عمليات التسجيل على الجهاز تشترك في الحصة نفسها لكل تطبيق، فإنّ عزلها على مستوى شرائح المستخدمين يمنع المشغّلات أو الطلبات ذات معدّل التكرار الأعلى من استنفاد الحصة التي تحتاجها عمليات التسجيل ذات معدّل التكرار الأقل على جهاز واحد.