Jetpack Compose implementation
এই পৃষ্ঠায় ভিউ-ভিত্তিক লেআউটের জন্য অনন্য মেমরি লিক খুঁজে বের করা এবং সক্রিয় করার তথ্য রয়েছে। হিপ ডাম্প ক্যাপচার এবং বিশ্লেষণ করার মূল তথ্যের জন্য, "ক্যাপচার এ হিপ ডাম্প" দেখুন।
মেমরি লিক খুঁজুন
মেমরি লিকের সাথে সম্পর্কিত হতে পারে এমন ক্লাসগুলো দ্রুত ফিল্টার করতে, ক্লাস ড্রপ-ডাউনটি খুলুন এবং ‘Show activity/fragment leaks’ নির্বাচন করুন। অ্যান্ড্রয়েড স্টুডিও আপনার অ্যাপের Activity এবং Fragment ইনস্ট্যান্সগুলোর জন্য এমন ক্লাসগুলো দেখায়, যেগুলো তার মতে মেমরি লিকের ইঙ্গিত দেয়। ফিল্টারটি যে ধরনের ডেটা দেখায় তার মধ্যে নিম্নলিখিতগুলো অন্তর্ভুক্ত:
-
Activityইনস্ট্যান্সগুলো যা ধ্বংস হয়ে গেছে কিন্তু এখনও রেফারেন্স করা হচ্ছে। -
Fragmentইনস্ট্যান্সের কোনো বৈধFragmentManagerনেই, কিন্তু তারপরেও সেগুলোকে রেফারেন্স করা হচ্ছে।
মনে রাখবেন যে নিম্নলিখিত পরিস্থিতিগুলিতে ফিল্টারটি ভুল ফলাফল দিতে পারে:
- একটি
Fragmentতৈরি করা হয়েছে কিন্তু এখনও ব্যবহার করা হয়নি। - একটি
Fragmentক্যাশ করা হচ্ছে, কিন্তু তা কোনোFragmentTransactionএর অংশ হিসেবে নয়।
আরও ম্যানুয়ালি মেমরি লিক খুঁজতে, ক্লাস এবং ইনস্ট্যান্স লিস্ট ব্রাউজ করে বড় Retained Size যুক্ত অবজেক্টগুলো খুঁজুন। নিম্নলিখিত কারণগুলোর যেকোনো একটির ফলে সৃষ্ট মেমরি লিক অনুসন্ধান করুন:
-
Activity,Context,View,Drawableএবং অন্যান্য অবজেক্টের দীর্ঘস্থায়ী রেফারেন্স, যেগুলোActivityবাContextকন্টেইনারের রেফারেন্স ধারণ করতে পারে। - নন-স্ট্যাটিক ইনার ক্লাস, যেমন
Runnable, যা একটিActivityইনস্ট্যান্স ধারণ করতে পারে। - যেসব ক্যাশে প্রয়োজনের চেয়ে বেশি সময় ধরে অবজেক্ট ধরে রাখে।
যখন আপনি সম্ভাব্য মেমোরি লিক খুঁজে পাবেন, তখন ইনস্ট্যান্স ডিটেইলস- এর ফিল্ডস এবং রেফারেন্সেস ট্যাব ব্যবহার করে সরাসরি নির্দিষ্ট ইনস্ট্যান্স বা সোর্স কোড লাইনে চলে যান।
পরীক্ষার জন্য মেমরি লিক ট্রিগার করুন
আপনার অ্যাপে মেমোরি লিক পরীক্ষা করার জন্য, আপনি নিম্নলিখিত উপায়গুলির মধ্যে একটি ব্যবহার করে লিকগুলি ঘটাতে পারেন:
- বিভিন্ন অ্যাক্টিভিটি স্টেটে থাকা অবস্থায় ডিভাইসটিকে পোর্ট্রেট থেকে ল্যান্ডস্কেপে এবং আবার আগের অবস্থায় একাধিকবার ঘোরান। ডিভাইস ঘোরানোর ফলে প্রায়শই একটি অ্যাপের
Activity,Context, বাViewঅবজেক্ট লিক হতে পারে, কারণ সিস্টেমActivityটি পুনরায় তৈরি করে, এবং যদি আপনার অ্যাপ অন্য কোথাও সেই অবজেক্টগুলোর কোনোটির রেফারেন্স ধরে রাখে, তবে সিস্টেম সেটিকে গার্বেজ কালেক্ট করতে পারে না। - বিভিন্ন অ্যাক্টিভিটি স্টেটে থাকাকালীন আপনার অ্যাপ এবং অন্য অ্যাপের মধ্যে সুইচ করুন। উদাহরণস্বরূপ, হোম স্ক্রিনে যান, তারপর আপনার অ্যাপে ফিরে আসুন।