Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon هل يمكن استخدام الأدوات لتتبع تسريبات الذاكرة في الوقت الفعلي لتطبيقات MVVMCROSS


هل يمكن استخدام الأدوات لتتبع تسريبات الذاكرة في الوقت الفعلي لتطبيقات MVVMCROSS


الأدوات ، جزء من Xcode ، مصممة بشكل أساسي لتطبيقات iOS و MacOS و WatchOS و TVOS. في حين أنه فعال بشكل لا يصدق لاكتشاف تسرب الذاكرة في هذه المنصات باستخدام أدوات مثل أداة التسرب وتصحيح الأخطاء الرسم البياني للذاكرة ، فإن تطبيقها المباشر على تطبيقات MVVMCross محدودة. MVVMCROSS هو إطار عمل عبر المنصات يسمح بالتطوير للمنصات المتعددة ، بما في ذلك Android و iOS.

ومع ذلك ، إذا كنت تقوم بتطوير تطبيق MVVMCROSS لنظام التشغيل iOS ، فيمكنك استخدام الأدوات لتتبع تسرب الذاكرة في الوقت الفعلي لجزء iOS من تطبيقك. هنا كيف:

استخدام أدوات لتطبيقات iOS MVVMCROSS

1. أدوات الإطلاق: ابدأ بفتح مشروعك في Xcode وتحديد المنتج> ملف تعريف. هذا سوف يطلق الأدوات.

2. اختر قالب التسريبات: في مربع حوار اختيار القالب ، اختر قالب التسربات ضمن قسم الذاكرة. تم تصميم هذا القالب خصيصًا للكشف عن تسرب الذاكرة.

3. قم بتشغيل تطبيقك: انقر فوق زر السجل لبدء التنصت على تطبيقك. تتفاعل مع تطبيقك كما تفعل عادة ، خاصة التركيز على المناطق التي تشك في أن تسرب الذاكرة قد تحدث.

4. تحليل النتائج: بعد الانتهاء من تفاعلاتك ، أوقف التسجيل. ستعرض الأدوات رسم بياني يوضح استخدام الذاكرة بمرور الوقت. إذا كانت هناك تسرب ذاكرة ، فسترى زيادة في استخدام الذاكرة دون انخفاضات المقابلة عندما يجب تخصيص الكائنات. أسفل الرسم البياني ، ستجد قائمة بكتل الذاكرة التي تم تسريبها مع آثار المكدس التي تشير إلى مكان تخصيص التسريبات.

5. تحديد وإصلاح التسريبات: استخدم آثار المكدس لتحديد مصدر التسريبات في الكود الخاص بك. تشمل المشكلات الشائعة دورات الاحتفاظ ، حيث تشهد الكائنات إشارات قوية إلى بعضها البعض ، مما يمنع تخصيص التخصيص. يتضمن تثبيتها كسر دورات الاحتفاظ ، غالبًا باستخدام المراجع الضعيفة أو غير المملوكة.

قيود على المنصات غير IOS

بالنسبة لتطبيقات MVVMCROSS التي تستهدف منصات أخرى غير iOS (مثل Android) ، لا يمكن استخدام الأدوات مباشرة. بدلاً من ذلك ، ستحتاج إلى استخدام أدوات خاصة بالمنصة للكشف عن تسرب الذاكرة:

- Android: استخدم أدوات مثل Memory Memory من Android Studio أو مكتبات الطرف الثالث مثل LeakCanary.
- منصات أخرى: استخدم أدوات أو مكتبات الذاكرة الخاصة بالذاكرة.

باختصار ، على الرغم من أن الأدوات فعالة للغاية لاكتشاف تسرب الذاكرة في تطبيقات iOS ، بما في ذلك تلك التي تم إنشاؤها باستخدام MVVMcross لنظام التشغيل iOS ، فإنها لا تنطبق على المنصات غير IOS. لتطوير المنصات عبر المنصات ، يجب عليك استخدام أدوات خاصة بكل منصة مستهدفة.

الاستشهادات:
[1] https://www.netguru.com/blog/what-are-ios-memory-leaks-and-how-to-detect-them
[2]
[3] https://stackoverflow.com/questions/38592689/memory-leak-check-in-real-time-application
[4] https://www.kodeco.com/books/swiftui-cookbook/v1.0/chapters/9-finding-memory-leaks-using-instruments
[5] https://stackoverflow.com/questions/27008035/mvvmcross-memory-leak-because-of-not-disposed-viewmodels
[6] https://forums.ni.com/t5/labview/get-object-memory-leak/td-p/4276905
[7] https://forums.developer.apple.com/forums/thread/770061
[8] https://github.com/mvvmcross/mvvmcross/issues/2884