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