মেমরি ব্যবহার (অ্যানোনিমাস আরএসএস + সোয়াপ) হলো অ্যান্ড্রয়েড ভাইটালস-এর একটি মেট্রিক যা আপনার অ্যাপের মেমরি ব্যবহারের পরিমাণ তুলে ধরে।
অ্যানোনিমাস মেমরি হলো এমন মেমরি যা স্টোরেজে কোনো ফাইল দ্বারা সমর্থিত নয়, যেমন হিপ অ্যালোকেশন এবং mmap-অ্যালোকেটেড মেমরি। রেসিডেন্ট সেট সাইজ (RSS) হলো কোনো প্রসেস দ্বারা ব্যবহৃত এবং ফিজিক্যাল র্যামে সংরক্ষিত মোট মেমরি পেজের (শেয়ার্ড এবং নন-শেয়ার্ড উভয়ই) সংখ্যা। অ্যানোনিমাস মেমরির ক্ষেত্রে, মেমরির উপর চাপ পড়লে সিস্টেম পেজগুলোকে সোয়াপ স্পেসে (অথবা অ্যান্ড্রয়েডে zRAM-এ) লিখতে পারে।
সামগ্রিকভাবে, মেমরি ব্যবহার (অ্যানোনিমাস আরএসএস + সোয়াপ) হলো স্টোরেজে থাকা কোনো ফাইল দ্বারা সমর্থিত নয় এমন আপনার অ্যাপের মোট মেমরি পেজের সংখ্যার একটি পরিমাপ, যার মধ্যে সিস্টেম দ্বারা সোয়াপে সংরক্ষিত যেকোনো মেমরিও অন্তর্ভুক্ত। অ্যানোনিমাস আরএসএস + সোয়াপ ট্র্যাক করার মাধ্যমে আপনি আপনার অ্যাপের প্রকৃত, অপসারণ-অযোগ্য মেমরি ফুটপ্রিন্ট দেখতে পান।
উচ্চ মেমরি ব্যবহার শনাক্ত করুন
অ্যান্ড্রয়েড ভাইটালস
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের মেমরি ব্যবহারের চিত্রটি নিম্নলিখিত প্রসেস স্টেট অনুযায়ী বিভক্ত করে দেখায়:
- ফোরগ্রাউন্ড : অ্যাপের প্রসেসটি দৃশ্যমান থাকে। এখানে উচ্চ P99 প্রায়শই ব্যবহারকারীর অনুভূত পারফরম্যান্সকে প্রভাবিত করে (জ্যাঙ্ক বা OOM ক্র্যাশ) এবং এর প্রধান কারণ হলো এমন UI কম্পোনেন্ট বা অ্যাক্টিভিটি ধরে রাখা যা আর প্রয়োজন নেই।
- ব্যবহারকারী-উপলব্ধ পরিষেবা : অ্যাপের প্রসেসটি একটি উপলব্ধিযোগ্য অবস্থায় চলছে। এর মধ্যে ফোরগ্রাউন্ড পরিষেবা , ত্বরান্বিত কাজ এবং ব্যবহারকারী-প্রবর্তিত ডেটা স্থানান্তর কাজ অন্তর্ভুক্ত। এটি সিস্টেম-বাউন্ড পরিষেবা বা অন্যান্য অ্যাপ দ্বারা আবদ্ধ পরিষেবা পর্যন্তও বিস্তৃত হতে পারে। যেহেতু এই পরিষেবাগুলি দীর্ঘ সময় ধরে চলা কাজের জন্য ডিজাইন করা হয়েছে, তাই মেমরি লিকের কারণে মেমরি ধরে রাখা বা রিসোর্স মুক্ত করতে ব্যর্থ হওয়া সময়ের সাথে সাথে P99 টেইলকে স্ফীত করতে পারে।
- ব্যাকগ্রাউন্ড : অ্যাপটি একটি ব্যাকগ্রাউন্ড সার্ভিস চালাচ্ছে, অথবা সম্প্রতি ব্যাকগ্রাউন্ডে চলে গিয়েছিল, কিন্তু এখনও ক্যাশড হয়নি। এখানেই ব্যাকগ্রাউন্ড প্রসেসিংয়ের কারণে মেমরি লিক এবং অব্যবহৃত রিসোর্স বাড়তে পারে। যেহেতু এই প্রসেস স্টেটটি ফোরগ্রাউন্ড বা দৃশ্যমান প্রসেসগুলোর চেয়ে কম গুরুত্বপূর্ণ, তাই এই স্টেটে বেশি পরিমাণে মেমরি ধরে রাখা এড়িয়ে চলার চেষ্টা করুন।
- ক্যাশড : অ্যাপটি একটি ক্যাশড অবস্থায় আছে। এই অবস্থাটি সিস্টেম মেমরির চাপের (যেমন LMK) প্রতি অত্যন্ত সংবেদনশীল। যেহেতু অপারেটিং সিস্টেম ইচ্ছামতো এই প্রসেস অবস্থাটি বাতিল করতে পারে, তাই এই অবস্থাটি শুধুমাত্র ডিবাগিংয়ের উদ্দেশ্যে প্রদান করা হয়।
এই প্রসেস স্টেটগুলো কীভাবে onTrimMemory কলব্যাকগুলোর সাথে সম্পর্কিত, তা বুঝতে ইভেন্টের প্রতিক্রিয়ায় মেমরি মুক্ত করার নির্দেশিকা দেখুন।
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের মেমরি ব্যবহারকে র্যামের বিভিন্ন ভাগে ভাগ করে দেখায়। মেমরি ব্যবহারের এই মেট্রিকটি দৈনিক পার্সেন্টাইল মানগুলোর একটি টাইমলাইন হিসেবে প্রদর্শিত হয় এবং এর পাশাপাশি ৫০তম ও ৯০তম পার্সেন্টাইলের সর্বশেষ দৈনিক মানও দেখানো হয়।
টেইল স্কিউ ব্যবহার করে মেমরি লিক শনাক্ত করুন
মেমরি লিক শনাক্ত করতে, অ্যান্ড্রয়েডের গুরুত্বপূর্ণ তথ্যে আপনার সাধারণ (P50) এবং সর্বনিম্ন স্তরের (P90) ব্যবহারকারীদের মধ্যে কোনো পার্থক্য আছে কিনা তা লক্ষ্য করুন। যেখানে সাধারণ অ্যাসেট ব্লট সব পার্সেন্টাইল জুড়ে মেমরিকে সমানভাবে বাড়িয়ে তোলে, সেখানে মেমরি লিক সময়ের সাথে সাথে বাড়তে থাকে, যা সর্বনিম্ন স্তরের ডেটাকে ব্যাপকভাবে প্রভাবিত করে।
আপনার প্রসেসের নাম অনুযায়ী P50 বেসলাইনের সাথে আপনার P90 এবং P99 মেট্রিকগুলো তুলনা করা উচিত। যদি আপনার P90 থেকে P50-এর অনুপাত ৩.৫ গুণের বেশি হয়, তবে এটি দীর্ঘ সেশন চলাকালীন একটি সম্ভাব্য মেমরি লিকের ইঙ্গিত দেয়। কিছু নির্দিষ্ট ব্যবহারের ক্ষেত্রে, একটি উচ্চ অনুপাত সবসময় লিকের ইঙ্গিত দেয় না, তবে এই বর্ধিত মেমরি ব্যবহার একটি প্রত্যাশিত আচরণ কিনা তা নির্ধারণ করতে আপনার নির্দিষ্ট ওয়ার্কফ্লোটি মূল্যায়ন করা উচিত।
,মেমরি ব্যবহার (অ্যানোনিমাস আরএসএস + সোয়াপ) হলো অ্যান্ড্রয়েড ভাইটালস-এর একটি মেট্রিক যা আপনার অ্যাপের মেমরি ব্যবহারের পরিমাণ তুলে ধরে।
অ্যানোনিমাস মেমরি হলো এমন মেমরি যা স্টোরেজে কোনো ফাইল দ্বারা সমর্থিত নয়, যেমন হিপ অ্যালোকেশন এবং mmap-অ্যালোকেটেড মেমরি। রেসিডেন্ট সেট সাইজ (RSS) হলো কোনো প্রসেস দ্বারা ব্যবহৃত এবং ফিজিক্যাল র্যামে সংরক্ষিত মোট মেমরি পেজের (শেয়ার্ড এবং নন-শেয়ার্ড উভয়ই) সংখ্যা। অ্যানোনিমাস মেমরির ক্ষেত্রে, মেমরির উপর চাপ পড়লে সিস্টেম পেজগুলোকে সোয়াপ স্পেসে (অথবা অ্যান্ড্রয়েডে zRAM-এ) লিখতে পারে।
সামগ্রিকভাবে, মেমরি ব্যবহার (অ্যানোনিমাস আরএসএস + সোয়াপ) হলো স্টোরেজে থাকা কোনো ফাইল দ্বারা সমর্থিত নয় এমন আপনার অ্যাপের মোট মেমরি পেজের সংখ্যার একটি পরিমাপ, যার মধ্যে সিস্টেম দ্বারা সোয়াপে সংরক্ষিত যেকোনো মেমরিও অন্তর্ভুক্ত। অ্যানোনিমাস আরএসএস + সোয়াপ ট্র্যাক করার মাধ্যমে আপনি আপনার অ্যাপের প্রকৃত, অপসারণ-অযোগ্য মেমরি ফুটপ্রিন্ট দেখতে পান।
উচ্চ মেমরি ব্যবহার শনাক্ত করুন
অ্যান্ড্রয়েড ভাইটালস
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের মেমরি ব্যবহারের চিত্রটি নিম্নলিখিত প্রসেস স্টেট অনুযায়ী বিভক্ত করে দেখায়:
- ফোরগ্রাউন্ড : অ্যাপের প্রসেসটি দৃশ্যমান থাকে। এখানে উচ্চ P99 প্রায়শই ব্যবহারকারীর অনুভূত পারফরম্যান্সকে প্রভাবিত করে (জ্যাঙ্ক বা OOM ক্র্যাশ) এবং এর প্রধান কারণ হলো এমন UI কম্পোনেন্ট বা অ্যাক্টিভিটি ধরে রাখা যা আর প্রয়োজন নেই।
- ব্যবহারকারী-উপলব্ধ পরিষেবা : অ্যাপের প্রসেসটি একটি উপলব্ধিযোগ্য অবস্থায় চলছে। এর মধ্যে ফোরগ্রাউন্ড পরিষেবা , ত্বরান্বিত কাজ এবং ব্যবহারকারী-প্রবর্তিত ডেটা স্থানান্তর কাজ অন্তর্ভুক্ত। এটি সিস্টেম-বাউন্ড পরিষেবা বা অন্যান্য অ্যাপ দ্বারা আবদ্ধ পরিষেবা পর্যন্তও বিস্তৃত হতে পারে। যেহেতু এই পরিষেবাগুলি দীর্ঘ সময় ধরে চলা কাজের জন্য ডিজাইন করা হয়েছে, তাই মেমরি লিকের কারণে মেমরি ধরে রাখা বা রিসোর্স মুক্ত করতে ব্যর্থ হওয়া সময়ের সাথে সাথে P99 টেইলকে স্ফীত করতে পারে।
- ব্যাকগ্রাউন্ড : অ্যাপটি একটি ব্যাকগ্রাউন্ড সার্ভিস চালাচ্ছে, অথবা সম্প্রতি ব্যাকগ্রাউন্ডে চলে গিয়েছিল, কিন্তু এখনও ক্যাশড হয়নি। এখানেই ব্যাকগ্রাউন্ড প্রসেসিংয়ের কারণে মেমরি লিক এবং অব্যবহৃত রিসোর্স বাড়তে পারে। যেহেতু এই প্রসেস স্টেটটি ফোরগ্রাউন্ড বা দৃশ্যমান প্রসেসগুলোর চেয়ে কম গুরুত্বপূর্ণ, তাই এই স্টেটে বেশি পরিমাণে মেমরি ধরে রাখা এড়িয়ে চলার চেষ্টা করুন।
- ক্যাশড : অ্যাপটি একটি ক্যাশড অবস্থায় আছে। এই অবস্থাটি সিস্টেম মেমরির চাপের (যেমন LMK) প্রতি অত্যন্ত সংবেদনশীল। যেহেতু অপারেটিং সিস্টেম ইচ্ছামতো এই প্রসেস অবস্থাটি বাতিল করতে পারে, তাই এই অবস্থাটি শুধুমাত্র ডিবাগিংয়ের উদ্দেশ্যে প্রদান করা হয়।
এই প্রসেস স্টেটগুলো কীভাবে onTrimMemory কলব্যাকগুলোর সাথে সম্পর্কিত, তা বুঝতে ইভেন্টের প্রতিক্রিয়ায় মেমরি মুক্ত করার নির্দেশিকা দেখুন।
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের মেমরি ব্যবহারকে র্যামের বিভিন্ন ভাগে ভাগ করে দেখায়। মেমরি ব্যবহারের এই মেট্রিকটি দৈনিক পার্সেন্টাইল মানগুলোর একটি টাইমলাইন হিসেবে প্রদর্শিত হয় এবং এর পাশাপাশি ৫০তম ও ৯০তম পার্সেন্টাইলের সর্বশেষ দৈনিক মানও দেখানো হয়।
টেইল স্কিউ ব্যবহার করে মেমরি লিক শনাক্ত করুন
মেমরি লিক শনাক্ত করতে, অ্যান্ড্রয়েডের গুরুত্বপূর্ণ তথ্যে আপনার সাধারণ (P50) এবং সর্বনিম্ন স্তরের (P90) ব্যবহারকারীদের মধ্যে কোনো পার্থক্য আছে কিনা তা লক্ষ্য করুন। যেখানে সাধারণ অ্যাসেট ব্লট সব পার্সেন্টাইল জুড়ে মেমরিকে সমানভাবে বাড়িয়ে তোলে, সেখানে মেমরি লিক সময়ের সাথে সাথে বাড়তে থাকে, যা সর্বনিম্ন স্তরের ডেটাকে ব্যাপকভাবে প্রভাবিত করে।
আপনার প্রসেসের নাম অনুযায়ী P50 বেসলাইনের সাথে আপনার P90 এবং P99 মেট্রিকগুলো তুলনা করা উচিত। যদি আপনার P90 থেকে P50-এর অনুপাত ৩.৫ গুণের বেশি হয়, তবে এটি দীর্ঘ সেশন চলাকালীন একটি সম্ভাব্য মেমরি লিকের ইঙ্গিত দেয়। কিছু নির্দিষ্ট ব্যবহারের ক্ষেত্রে, একটি উচ্চ অনুপাত সবসময় লিকের ইঙ্গিত দেয় না, তবে এই বর্ধিত মেমরি ব্যবহার একটি প্রত্যাশিত আচরণ কিনা তা নির্ধারণ করতে আপনার নির্দিষ্ট ওয়ার্কফ্লোটি মূল্যায়ন করা উচিত।
,মেমরি ব্যবহার (অ্যানোনিমাস আরএসএস + সোয়াপ) হলো অ্যান্ড্রয়েড ভাইটালস-এর একটি মেট্রিক যা আপনার অ্যাপের মেমরি ব্যবহারের পরিমাণ তুলে ধরে।
অ্যানোনিমাস মেমরি হলো এমন মেমরি যা স্টোরেজে কোনো ফাইল দ্বারা সমর্থিত নয়, যেমন হিপ অ্যালোকেশন এবং mmap-অ্যালোকেটেড মেমরি। রেসিডেন্ট সেট সাইজ (RSS) হলো কোনো প্রসেস দ্বারা ব্যবহৃত এবং ফিজিক্যাল র্যামে সংরক্ষিত মোট মেমরি পেজের (শেয়ার্ড এবং নন-শেয়ার্ড উভয়ই) সংখ্যা। অ্যানোনিমাস মেমরির ক্ষেত্রে, মেমরির উপর চাপ পড়লে সিস্টেম পেজগুলোকে সোয়াপ স্পেসে (অথবা অ্যান্ড্রয়েডে zRAM-এ) লিখতে পারে।
সামগ্রিকভাবে, মেমরি ব্যবহার (অ্যানোনিমাস আরএসএস + সোয়াপ) হলো স্টোরেজে থাকা কোনো ফাইল দ্বারা সমর্থিত নয় এমন আপনার অ্যাপের মোট মেমরি পেজের সংখ্যার একটি পরিমাপ, যার মধ্যে সিস্টেম দ্বারা সোয়াপে সংরক্ষিত যেকোনো মেমরিও অন্তর্ভুক্ত। অ্যানোনিমাস আরএসএস + সোয়াপ ট্র্যাক করার মাধ্যমে আপনি আপনার অ্যাপের প্রকৃত, অপসারণ-অযোগ্য মেমরি ফুটপ্রিন্ট দেখতে পান।
উচ্চ মেমরি ব্যবহার শনাক্ত করুন
অ্যান্ড্রয়েড ভাইটালস
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের মেমরি ব্যবহারের চিত্রটি নিম্নলিখিত প্রসেস স্টেট অনুযায়ী বিভক্ত করে দেখায়:
- ফোরগ্রাউন্ড : অ্যাপের প্রসেসটি দৃশ্যমান থাকে। এখানে উচ্চ P99 প্রায়শই ব্যবহারকারীর অনুভূত পারফরম্যান্সকে প্রভাবিত করে (জ্যাঙ্ক বা OOM ক্র্যাশ) এবং এর প্রধান কারণ হলো এমন UI কম্পোনেন্ট বা অ্যাক্টিভিটি ধরে রাখা যা আর প্রয়োজন নেই।
- ব্যবহারকারী-উপলব্ধ পরিষেবা : অ্যাপের প্রসেসটি একটি উপলব্ধিযোগ্য অবস্থায় চলছে। এর মধ্যে ফোরগ্রাউন্ড পরিষেবা , ত্বরান্বিত কাজ এবং ব্যবহারকারী-প্রবর্তিত ডেটা স্থানান্তর কাজ অন্তর্ভুক্ত। এটি সিস্টেম-বাউন্ড পরিষেবা বা অন্যান্য অ্যাপ দ্বারা আবদ্ধ পরিষেবা পর্যন্তও বিস্তৃত হতে পারে। যেহেতু এই পরিষেবাগুলি দীর্ঘ সময় ধরে চলা কাজের জন্য ডিজাইন করা হয়েছে, তাই মেমরি লিকের কারণে মেমরি ধরে রাখা বা রিসোর্স মুক্ত করতে ব্যর্থ হওয়া সময়ের সাথে সাথে P99 টেইলকে স্ফীত করতে পারে।
- ব্যাকগ্রাউন্ড : অ্যাপটি একটি ব্যাকগ্রাউন্ড সার্ভিস চালাচ্ছে, অথবা সম্প্রতি ব্যাকগ্রাউন্ডে চলে গিয়েছিল, কিন্তু এখনও ক্যাশড হয়নি। এখানেই ব্যাকগ্রাউন্ড প্রসেসিংয়ের কারণে মেমরি লিক এবং অব্যবহৃত রিসোর্স বাড়তে পারে। যেহেতু এই প্রসেস স্টেটটি ফোরগ্রাউন্ড বা দৃশ্যমান প্রসেসগুলোর চেয়ে কম গুরুত্বপূর্ণ, তাই এই স্টেটে বেশি পরিমাণে মেমরি ধরে রাখা এড়িয়ে চলার চেষ্টা করুন।
- ক্যাশড : অ্যাপটি একটি ক্যাশড অবস্থায় আছে। এই অবস্থাটি সিস্টেম মেমরির চাপের (যেমন LMK) প্রতি অত্যন্ত সংবেদনশীল। যেহেতু অপারেটিং সিস্টেম ইচ্ছামতো এই প্রসেস অবস্থাটি বাতিল করতে পারে, তাই এই অবস্থাটি শুধুমাত্র ডিবাগিংয়ের উদ্দেশ্যে প্রদান করা হয়।
এই প্রসেস স্টেটগুলো কীভাবে onTrimMemory কলব্যাকগুলোর সাথে সম্পর্কিত, তা বুঝতে ইভেন্টের প্রতিক্রিয়ায় মেমরি মুক্ত করার নির্দেশিকা দেখুন।
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের মেমরি ব্যবহারকে র্যামের বিভিন্ন ভাগে ভাগ করে দেখায়। মেমরি ব্যবহারের এই মেট্রিকটি দৈনিক পার্সেন্টাইল মানগুলোর একটি টাইমলাইন হিসেবে প্রদর্শিত হয় এবং এর পাশাপাশি ৫০তম ও ৯০তম পার্সেন্টাইলের সর্বশেষ দৈনিক মানও দেখানো হয়।
টেইল স্কিউ ব্যবহার করে মেমরি লিক শনাক্ত করুন
মেমরি লিক শনাক্ত করতে, অ্যান্ড্রয়েডের গুরুত্বপূর্ণ তথ্যে আপনার সাধারণ (P50) এবং সর্বনিম্ন স্তরের (P90) ব্যবহারকারীদের মধ্যে কোনো পার্থক্য আছে কিনা তা লক্ষ্য করুন। যেখানে সাধারণ অ্যাসেট ব্লট সব পার্সেন্টাইল জুড়ে মেমরিকে সমানভাবে বাড়িয়ে তোলে, সেখানে মেমরি লিক সময়ের সাথে সাথে বাড়তে থাকে, যা সর্বনিম্ন স্তরের ডেটাকে ব্যাপকভাবে প্রভাবিত করে।
আপনার প্রসেসের নাম অনুযায়ী P50 বেসলাইনের সাথে আপনার P90 এবং P99 মেট্রিকগুলো তুলনা করা উচিত। যদি আপনার P90 থেকে P50-এর অনুপাত ৩.৫ গুণের বেশি হয়, তবে এটি দীর্ঘ সেশন চলাকালীন একটি সম্ভাব্য মেমরি লিকের ইঙ্গিত দেয়। কিছু নির্দিষ্ট ব্যবহারের ক্ষেত্রে, একটি উচ্চ অনুপাত সবসময় লিকের ইঙ্গিত দেয় না, তবে এই বর্ধিত মেমরি ব্যবহার একটি প্রত্যাশিত আচরণ কিনা তা নির্ধারণ করতে আপনার নির্দিষ্ট ওয়ার্কফ্লোটি মূল্যায়ন করা উচিত।
,মেমরি ব্যবহার (অ্যানোনিমাস আরএসএস + সোয়াপ) হলো অ্যান্ড্রয়েড ভাইটালস-এর একটি মেট্রিক যা আপনার অ্যাপের মেমরি ব্যবহারের পরিমাণ তুলে ধরে।
অ্যানোনিমাস মেমরি হলো এমন মেমরি যা স্টোরেজে কোনো ফাইল দ্বারা সমর্থিত নয়, যেমন হিপ অ্যালোকেশন এবং mmap-অ্যালোকেটেড মেমরি। রেসিডেন্ট সেট সাইজ (RSS) হলো কোনো প্রসেস দ্বারা ব্যবহৃত এবং ফিজিক্যাল র্যামে সংরক্ষিত মোট মেমরি পেজের (শেয়ার্ড এবং নন-শেয়ার্ড উভয়ই) সংখ্যা। অ্যানোনিমাস মেমরির ক্ষেত্রে, মেমরির উপর চাপ পড়লে সিস্টেম পেজগুলোকে সোয়াপ স্পেসে (অথবা অ্যান্ড্রয়েডে zRAM-এ) লিখতে পারে।
সামগ্রিকভাবে, মেমরি ব্যবহার (অ্যানোনিমাস আরএসএস + সোয়াপ) হলো স্টোরেজে থাকা কোনো ফাইল দ্বারা সমর্থিত নয় এমন আপনার অ্যাপের মোট মেমরি পেজের সংখ্যার একটি পরিমাপ, যার মধ্যে সিস্টেম দ্বারা সোয়াপে সংরক্ষিত যেকোনো মেমরিও অন্তর্ভুক্ত। অ্যানোনিমাস আরএসএস + সোয়াপ ট্র্যাক করার মাধ্যমে আপনি আপনার অ্যাপের প্রকৃত, অপসারণ-অযোগ্য মেমরি ফুটপ্রিন্ট দেখতে পান।
উচ্চ মেমরি ব্যবহার শনাক্ত করুন
অ্যান্ড্রয়েড ভাইটালস
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের মেমরি ব্যবহারের চিত্রটি নিম্নলিখিত প্রসেস স্টেট অনুযায়ী বিভক্ত করে দেখায়:
- ফোরগ্রাউন্ড : অ্যাপের প্রসেসটি দৃশ্যমান থাকে। এখানে উচ্চ P99 প্রায়শই ব্যবহারকারীর অনুভূত পারফরম্যান্সকে প্রভাবিত করে (জ্যাঙ্ক বা OOM ক্র্যাশ) এবং এর প্রধান কারণ হলো এমন UI কম্পোনেন্ট বা অ্যাক্টিভিটি ধরে রাখা যা আর প্রয়োজন নেই।
- ব্যবহারকারী-উপলব্ধ পরিষেবা : অ্যাপের প্রসেসটি একটি উপলব্ধিযোগ্য অবস্থায় চলছে। এর মধ্যে ফোরগ্রাউন্ড পরিষেবা , ত্বরান্বিত কাজ এবং ব্যবহারকারী-প্রবর্তিত ডেটা স্থানান্তর কাজ অন্তর্ভুক্ত। এটি সিস্টেম-বাউন্ড পরিষেবা বা অন্যান্য অ্যাপ দ্বারা আবদ্ধ পরিষেবা পর্যন্তও বিস্তৃত হতে পারে। যেহেতু এই পরিষেবাগুলি দীর্ঘ সময় ধরে চলা কাজের জন্য ডিজাইন করা হয়েছে, তাই মেমরি লিকের কারণে মেমরি ধরে রাখা বা রিসোর্স মুক্ত করতে ব্যর্থ হওয়া সময়ের সাথে সাথে P99 টেইলকে স্ফীত করতে পারে।
- ব্যাকগ্রাউন্ড : অ্যাপটি একটি ব্যাকগ্রাউন্ড সার্ভিস চালাচ্ছে, অথবা সম্প্রতি ব্যাকগ্রাউন্ডে চলে গিয়েছিল, কিন্তু এখনও ক্যাশড হয়নি। এখানেই ব্যাকগ্রাউন্ড প্রসেসিংয়ের কারণে মেমরি লিক এবং অব্যবহৃত রিসোর্স বাড়তে পারে। যেহেতু এই প্রসেস স্টেটটি ফোরগ্রাউন্ড বা দৃশ্যমান প্রসেসগুলোর চেয়ে কম গুরুত্বপূর্ণ, তাই এই স্টেটে বেশি পরিমাণে মেমরি ধরে রাখা এড়িয়ে চলার চেষ্টা করুন।
- ক্যাশড : অ্যাপটি একটি ক্যাশড অবস্থায় আছে। এই অবস্থাটি সিস্টেম মেমরির চাপের (যেমন LMK) প্রতি অত্যন্ত সংবেদনশীল। যেহেতু অপারেটিং সিস্টেম ইচ্ছামতো এই প্রসেস অবস্থাটি বাতিল করতে পারে, তাই এই অবস্থাটি শুধুমাত্র ডিবাগিংয়ের উদ্দেশ্যে প্রদান করা হয়।
এই প্রসেস স্টেটগুলো কীভাবে onTrimMemory কলব্যাকগুলোর সাথে সম্পর্কিত, তা বুঝতে ইভেন্টের প্রতিক্রিয়ায় মেমরি মুক্ত করার নির্দেশিকা দেখুন।
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের মেমরি ব্যবহারকে র্যামের বিভিন্ন ভাগে ভাগ করে দেখায়। মেমরি ব্যবহারের এই মেট্রিকটি দৈনিক পার্সেন্টাইল মানগুলোর একটি টাইমলাইন হিসেবে প্রদর্শিত হয় এবং এর পাশাপাশি ৫০তম ও ৯০তম পার্সেন্টাইলের সর্বশেষ দৈনিক মানও দেখানো হয়।
টেইল স্কিউ ব্যবহার করে মেমরি লিক শনাক্ত করুন
মেমরি লিক শনাক্ত করতে, অ্যান্ড্রয়েডের গুরুত্বপূর্ণ তথ্যে আপনার সাধারণ (P50) এবং সর্বনিম্ন স্তরের (P90) ব্যবহারকারীদের মধ্যে কোনো পার্থক্য আছে কিনা তা লক্ষ্য করুন। যেখানে সাধারণ অ্যাসেট ব্লট সব পার্সেন্টাইল জুড়ে মেমরিকে সমানভাবে বাড়িয়ে তোলে, সেখানে মেমরি লিক সময়ের সাথে সাথে বাড়তে থাকে, যা সর্বনিম্ন স্তরের ডেটাকে ব্যাপকভাবে প্রভাবিত করে।
আপনার প্রসেসের নাম অনুযায়ী P50 বেসলাইনের সাথে আপনার P90 এবং P99 মেট্রিকগুলো তুলনা করা উচিত। যদি আপনার P90 থেকে P50-এর অনুপাত ৩.৫ গুণের বেশি হয়, তবে এটি দীর্ঘ সেশন চলাকালীন একটি সম্ভাব্য মেমরি লিকের ইঙ্গিত দেয়। কিছু নির্দিষ্ট ব্যবহারের ক্ষেত্রে, একটি উচ্চ অনুপাত সবসময় লিকের ইঙ্গিত দেয় না, তবে এই বর্ধিত মেমরি ব্যবহার একটি প্রত্যাশিত আচরণ কিনা তা নির্ধারণ করতে আপনার নির্দিষ্ট ওয়ার্কফ্লোটি মূল্যায়ন করা উচিত।