আমি ব্যবহার নিশ্চিত কিনা নিশ্চিত setHasStableId
পতাকাটির আপনার সমস্যাটি সমাধান করতে চলেছে। আপনি যে তথ্য সরবরাহ করেন তার উপর ভিত্তি করে আপনার পারফরম্যান্স ইস্যু কোনও মেমরি সমস্যার সাথে সম্পর্কিত হতে পারে। ব্যবহারকারী ইন্টারফেস এবং মেমরির ক্ষেত্রে আপনার অ্যাপ্লিকেশন কর্মক্ষমতা যথেষ্ট সম্পর্কিত।
গত সপ্তাহে আমি আবিষ্কার করেছি আমার অ্যাপ্লিকেশনটি মেমরি ফাঁস করছে। আমি এটি আবিষ্কার করেছি কারণ আমার অ্যাপ্লিকেশনটি ব্যবহার করার 20 মিনিটের পরে আমি লক্ষ্য করেছি যে ইউআই সত্যই ধীর গতিতে কাজ করছে। কোনও ক্রিয়াকলাপ বন্ধ করা / খোলার বা একটি সংযোজন উপাদানগুলির সাথে একটি পুনর্ব্যবহারযোগ্য ভিউ স্ক্রোল করা সত্যিই ধীর ছিল। Http://flowup.io/ ব্যবহার করে উত্পাদনে আমার কিছু ব্যবহারকারীকে পর্যবেক্ষণ করার পরে আমি এটি পেয়েছি:
ফ্রেমের সময়টি সত্যই বেশি ছিল এবং প্রতি সেকেন্ডের ফ্রেমগুলি সত্যই কম ছিল। আপনি দেখতে পাচ্ছেন যে কয়েকটি ফ্রেমের রেন্ডার করতে প্রায় 2 সেকেন্ডের দরকার ছিল: এস।
এই খারাপ ফ্রেমের সময় / fps কী ঘটছে তা সনাক্ত করার চেষ্টা করে আমি আবিষ্কার করেছি যে এখানে একটি স্মৃতি সমস্যা রয়েছে যা আপনি এখানে দেখতে পারেন:
এমনকি গড় মেমরির খরচ একই সময়ে 15MB এর কাছাকাছি থাকলেও অ্যাপ্লিকেশনটি ফ্রেমগুলি ছাড়ছিল।
আমি ইউআই সমস্যাটি আবিষ্কার করেছি discovered আমার অ্যাপটিতে একটি মেমরি ফাঁস হয়েছিল যা প্রচুর আবর্জনা সংগ্রহকারী ইভেন্ট ঘটাচ্ছে এবং এটি ইউআই পারফরম্যান্সের খারাপ কারণ ঘটাচ্ছে কারণ প্রতি একক ফ্রেমে মেমরি সংগ্রহ করতে অ্যান্ড্রয়েড ভিএমকে আমার অ্যাপটি বন্ধ করতে হয়েছিল stop
কোডটি দেখে আমার কাস্টম ভিউয়ের ভিতরে একটি ফাঁস হয়েছিল কারণ আমি অ্যান্ড্রয়েড কোরিওগ্রাফার উদাহরণ থেকে কোনও শ্রোতার তালিকাভুক্ত করছি না। সমাধানটি প্রকাশের পরে, সবকিছু স্বাভাবিক হয়ে গেল :)
যদি আপনার অ্যাপ্লিকেশন কোনও মেমরি সমস্যার কারণে ফ্রেমগুলি বাদ দিচ্ছে তবে আপনার দুটি সাধারণ ত্রুটি পর্যালোচনা করা উচিত:
যদি আপনার অ্যাপ্লিকেশনটি কোনও পদ্ধতির মধ্যে অবজেক্টগুলি বরাদ্দ করে তবে প্রতি সেকেন্ডে একাধিকবার আবেদন করা হয়েছে। এমনকি যদি এই বরাদ্দটি অন্য কোনও জায়গায় সঞ্চালিত করা যায় যেখানে আপনার অ্যাপ্লিকেশনটি ধীর হয়ে যাচ্ছে। একটি উদাহরণ হতে পারে আপনার পুনর্ব্যবহারযোগ্য ভিউ ধারকটিতে অনব্যান্ডভিউহোল্ডারটিতে অনড্রাস্ট কাস্টম ভিউ পদ্ধতির অভ্যন্তরে কোনও অবজেক্টের নতুন উদাহরণ তৈরি করা creating আপনার অ্যাপটি অ্যান্ড্রয়েড এসডিকে তে কোনও উদাহরণ নিবন্ধিত করছে তবে তা প্রকাশ করছে না তা পর্যালোচনা করুন। কোনও শ্রোতার একটি বাস ইভেন্টে নিবন্ধন করাও সম্ভব ফাঁস হতে পারে।
দাবি অস্বীকার: আমি আমার অ্যাপ্লিকেশনটি পর্যবেক্ষণ করতে যে সরঞ্জামটি ব্যবহার করছি সেটি বিকাশের অধীনে। আমি এই সরঞ্জামটিতে অ্যাক্সেস পেয়েছি কারণ আমি অন্যতম বিকাশকারী :) আপনি যদি এই সরঞ্জামটিতে অ্যাক্সেস চান তবে আমরা শীঘ্রই একটি বিটা সংস্করণ প্রকাশ করব! আপনি আমাদের ওয়েবসাইটে যোগদান করতে পারেন: http://flowup.io/ ।
আপনি যদি বিভিন্ন সরঞ্জাম ব্যবহার করতে চান তবে আপনি ব্যবহার করতে পারেন: ট্র্যাভেলভিউ, ডিএমট্রেসডাম্প, সিস্ট্রাস বা অ্যান্ড্রয়েড পারফরম্যান্স মনিটর অ্যান্ড্রয়েড স্টুডিওতে ইন্টিগ্রেটেড। তবে মনে রাখবেন যে এই সরঞ্জামগুলি আপনার সংযুক্ত ডিভাইসটি পর্যবেক্ষণ করবে এবং আপনার ব্যবহারকারীর বাকী ডিভাইস বা অ্যান্ড্রয়েড ওএস ইনস্টলেশনগুলি নয়।