অ্যাপ বিকাশকারীদের জন্য সবচেয়ে কঠিন সমস্যাগুলির মধ্যে একটি হল মসৃণ, গ্লিচলেস এবং জ্যাঙ্ক-মুক্ত অ্যানিমেশন নিশ্চিত করা। সিস্টেমটি রিসোর্স-ইনটেনসিভ ব্যাকগ্রাউন্ড টাস্কগুলি সম্পাদন করলে এটি ডিবাগ করা বিশেষত কঠিন। কিছু জ্যাঙ্ক আপনার অ্যাপ বা সিস্টেম দ্বারা সৃষ্ট কিনা তা নির্ধারণ করার কোন সহজ উপায় নেই। যাইহোক, একটি প্রোফাইলার টুল আছে যা আপনাকে খারাপ আচরণের সম্ভাব্য উৎস সনাক্ত করতে সাহায্য করতে পারে।
ChromeOS-এ রেন্ডার করুন
একটি সূক্ষ্ম টিউন করা অ্যাপ, একটি গেমের মতো, সাধারণত ব্যবহারকারীর প্রতিক্রিয়ার সময় যতটা সম্ভব কম রাখতে ডবল বাফারিং ব্যবহার করে। তবুও, এমন অনেক জিনিস রয়েছে যা কর্মক্ষমতা হ্রাস করতে পারে। উদাহরণস্বরূপ, যদি একটি ফ্রেম রেন্ডার করতে খুব বেশি সময় লাগে, তাহলে রেন্ডার করা ফলাফল পরবর্তী বাফার সোয়াপের জন্য প্রস্তুত নয়, এবং ফলস্বরূপ পূর্ববর্তী ফ্রেমটি পুনরাবৃত্তি হয়।
তারপরে, রেন্ডারার পরবর্তী ফ্রেমটি রেন্ডার করা শুরু করতে পারে না, যার ফলে আরও বেশি সমস্যা হয়৷ এই দৃশ্যটি অ্যান্ড্রয়েড মোবাইল ডেভেলপারদের কাছে পরিচিত; যখন একটি অ্যাপ ChromeOS এ চলে, তখন প্রসঙ্গটি আরও জটিল হয়।
ডেস্কটপে চলমান একটি অ্যাপ সরাসরি স্ক্রিনের ডিসপ্লে ফ্রেমে রেন্ডার করে না। এটি এর পরিবর্তে একটি টেক্সচারে তার ডেটা রেন্ডার করে। সাধারণত একাধিক অ্যাপ থাকে, প্রতিটি তার গ্রাফিক্সকে টেক্সচারে রেন্ডার করে। সিস্টেমটি একটি একক ডেস্কটপ ছবিতে সমস্ত টেক্সচারকে একত্রিত করার জন্য একটি কম্পোজিটর ব্যবহার করে স্ক্রিনে ভিউ তৈরি করে।
কম্পোজিটর ব্যাকগ্রাউন্ডে স্বচ্ছভাবে কাজ করে। যাইহোক, এটি জিপিইউ পাইপলাইনের সর্বাধিক ব্যবহার করার জন্য এক-ফ্রেম সময়ের বিলম্ব প্রবর্তন করে। একটি আদর্শ বিশ্বে এটি প্রয়োজনীয় নাও হতে পারে, তবে এটি সিস্টেমের কর্মক্ষমতা ওঠানামাকে মসৃণ করে এবং একটি অপ্রতিসম লোডের ভারসাম্য বজায় রাখতে সহায়তা করে।
যখন ওএস খুব কঠিন কাজ করে, তখন জিপিইউ চেপে যেতে পারে। একটি ফ্রেম রেন্ডার হওয়ার সময় থেকে স্ক্রীনে প্রদর্শিত হওয়ার সময় পর্যন্ত বিলম্ব হতে পারে। হার্ডওয়্যারের উপর নির্ভর করে, সিস্টেমটি ক্ষতিপূরণের জন্য চারগুণ বাফারিং ব্যবহার করতে পারে। এমনকি গভীর বাফারিংয়ের সাথেও, গ্রাফিক পাইপলাইনে এখনও ত্রুটি হতে পারে।
ARC গ্রাফিক্স ট্রেসার
ChromeOS-এর একটি প্রোফাইলিং টুল রয়েছে যা দেখায় কিভাবে বাফারগুলি সিস্টেমের মাধ্যমে ঢেকে যাচ্ছে, কখন মেমরির অদলবদল ঘটে, CPU/GPU কতটা ব্যস্ত এবং একটি নির্দিষ্ট সময়ে আপনার অ্যাপ্লিকেশন কী করছে, নিচের ছবিতে দেখানো হয়েছে:
প্রোফাইলার সেট আপ করুন
প্রোফাইলার ব্যবহার করতে, আপনাকে অবশ্যই M75 বা তার পরে চালাতে হবে। সেরা ফলাফলের জন্য, একটি Intel ডিভাইস ব্যবহার করুন।
প্রোফাইলার ব্যবহার করার আগে, ট্রেস সহ আপনার অ্যাপটি বীজ করুন। Trace.traceCounter(Trace.TRACE_TAG_GRAPHICS, "Event", <number>);
আপনার কোডে যেখানেই আপনি একটি ট্রেস অন্তর্ভুক্ত করতে চান। একটি Event
ব্যবহার করুন যা customTrace
উপসর্গ দিয়ে শুরু হয়। উপসর্গ ট্রেস বার্তায় প্রদর্শিত হয় না।
প্রোফাইলার সেট আপ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- বিকাশকারী মোড চালু করুন।
- Chrome সেটিংস চালু করুন এবং ARC গ্রাফিক বাফার ভিজ্যুয়ালাইজেশন টুল সক্ষম করুন।
-
chrome://arc-graphics-tracing
এ নেভিগেট করুন।
প্রোফাইলার চালান
- জ্যাঙ্কে স্টপ নির্বাচন করুন।
- অ্যান্ড্রয়েড অ্যাপ চালান।
- যখন অ্যান্ড্রয়েড অ্যাপ সক্রিয় থাকে এবং ফোকাস থাকে, তখন Control + Shift + G টিপুন।
কিছু জ্যাঙ্ক ঘটলে, একটি ব্রাউজার উইন্ডো পপ আপ হয়। টাইমলাইন জুম এবং সঙ্কুচিত করতে W এবং S কী ব্যবহার করুন।