আমি যে অ্যাপ্লিকেশনটি বিকাশ করছি তার মেমরি ফাঁস বের করার জন্য আমি পুরো 4 দিন চেষ্টা করে কাটিয়েছি, তবে জিনিসগুলি দীর্ঘদিন আগে বোঝা বন্ধ করে দিয়েছে।
আমি যে অ্যাপ্লিকেশনটি বিকাশ করছি তা সামাজিক প্রকৃতির, সুতরাং প্রোফাইল ক্রিয়াকলাপগুলি (পি) ভাবেন এবং ডেটা সহ ক্রিয়াকলাপগুলি তালিকাভুক্ত করুন - উদাহরণস্বরূপ ব্যাজ (বি)। আপনি প্রোফাইল থেকে একটি ব্যাজ তালিকার জন্য অন্য প্রোফাইলগুলিতে, অন্যান্য তালিকাগুলিতে হ্যাপ করতে পারেন etc.
সুতরাং এই পি 1 -> বি 1 -> পি 2 -> বি 2 -> পি 3 -> বি 3 ইত্যাদির মতো কোনও প্রবাহের কল্পনা করুন, ধারাবাহিকতার জন্য, আমি একই ব্যবহারকারীর প্রোফাইল এবং ব্যাজ লোড করছি, সুতরাং প্রতিটি পি পৃষ্ঠাটি একই এবং একই রকম প্রতিটি বি পৃষ্ঠা।
সমস্যার সাধারণ বক্তব্যটি হ'ল: প্রতিটি পৃষ্ঠার আকারের উপর নির্ভর করে কিছুটা নেভিগেট করার পরে, আমি এলোমেলো জায়গায় - বিটম্যাপস, স্ট্রিংস ইত্যাদিতে একটি মেমরির একটি ব্যতিক্রম পাই it এটি সামঞ্জস্যপূর্ণ বলে মনে হয় না।
আমি কেন স্মৃতি থেকে দূরে চলেছি তা নির্ধারণ করার জন্য কল্পনাপ্রসূত সবকিছু করার পরেও আমি কিছুই নিয়ে এসেছি না। আমি যা বুঝতে পারি না কেন অ্যান্ড্রয়েড কেন P1, B1 ইত্যাদি হত্যা করছে না যদি লোডিংয়ের পরে স্মৃতিশক্তি শেষ হয়ে যায় এবং পরিবর্তে ক্রাশ হয় তবে। আমি পূর্বের এই ক্রিয়াকলাপগুলি মরতে এবং পুনরুত্থিত হওয়ার প্রত্যাশা করব যদি আমি যদি কখনও ওনক্রিট () এবং onRestoreInstanceState () এর মাধ্যমে তাদের কাছে ফিরে আসি।
এটি একা ছেড়ে দাও - যদিও আমি পি 1 -> বি 1 -> পিছনে -> বি 1 -> পিছনে -> বি 1 করি, তবুও আমি ক্রাশ পেয়েছি। এটি কোনও ধরণের মেমরি ফাঁস ইঙ্গিত করে, তবুও এইচপিআরফ ডাম্প করার পরে এবং এমএটি এবং জেপ্রোফিলার ব্যবহার করার পরেও আমি এটি চিহ্নিত করতে পারি না।
আমি ওয়েব থেকে চিত্রগুলি লোড করা অক্ষম করেছি (এবং এটি তৈরির জন্য এবং পরীক্ষাকে ন্যায্য করতে টেস্ট ডেটা লোড করেছি) এবং নিশ্চিত করেছি যে চিত্রের ক্যাশে সফ্টরাইফারেন্স ব্যবহার করে। অ্যান্ড্রয়েড আসলে এটির কয়েকটি সফট রেফারেন্সগুলি মুক্ত করার চেষ্টা করে, তবে স্মৃতি থেকে ক্রাশ হওয়ার ঠিক আগে।
ব্যাজ পেজ, ওয়েব থেকে ডেটা পেতে একটি BaseAdapter থেকে EntityData একটি অ্যারের মধ্যে এটি লোড এবং ListView (আমি আসলে CommonsWare এর ব্যবহার করছি তা ভোজন চমৎকার MergeAdapter , কিন্তু এই ব্যাজ কার্যকলাপ, সত্যিই শুধুমাত্র 1 অ্যাডাপ্টারের যাহাই হউক না কেন, কিন্তু আমি এই ঘটনাটি যেভাবেই উল্লেখ করতে চেয়েছিলেন)।
আমি কোডটি দিয়ে গেছি এবং ফাঁস হবে এমন কোনও কিছুই খুঁজে পাচ্ছিলাম না। আমি খুঁজে পেতে পারে এমন সমস্ত কিছুই সাফ করে দিয়েছি এবং এমনকি সিস্টেম.gc () বাম এবং ডান কিন্তু তবুও অ্যাপ ক্র্যাশ করেছে।
আমি এখনও বুঝতে পারি না যে স্ট্যাকের মধ্যে থাকা নিষ্ক্রিয় ক্রিয়াকলাপ কেন কাটা হয় না, এবং আমি এটি খুঁজে পেতে সত্যিই পছন্দ করব।
এই মুহুর্তে, আমি কোনও ইঙ্গিত, পরামর্শ, সমাধান ... যে কোনও কিছু সাহায্য করতে পারে তার সন্ধান করছি।
ধন্যবাদ.
outOfMemory
ত্রুটি পেয়েছি । ধন্যবাদ!