পারফরম্যান্স প্রোফাইলিং এবং টিউনিং একটি জটিল কাজ যা বিজ্ঞানের চেয়ে শিল্পের মতোই বেশি মনে হতে পারে। একটি গেমে নিখুঁতভাবে সিঙ্ক্রোনাইজ করার জন্য প্রয়োজনীয় অনেক চলমান অংশ এবং একটি নির্দিষ্ট দৃশ্যের জটিলতা সমস্যাগুলি বোঝা এবং আলাদা করা কঠিন করে তুলতে পারে। ChromeOS-এ, অনেক সরঞ্জাম ARM চিপসেটগুলি মাথায় রেখে ডিজাইন করা হয়েছে। প্রক্রিয়াটি দ্রুত করার জন্য নীচে কিছু টিপস দেওয়া হল।
ChromeOS-এ আপনার গেমের পারফর্ম্যান্স অপ্টিমাইজ করার সময় মনে রাখতে হবে যে অন্তর্নিহিত পারফর্ম্যান্স সমস্যাগুলি সমস্ত ডিভাইসে ভাগ করা হয় এবং উন্নতিগুলি সমস্ত ব্যবহারকারীর জন্য পারফর্ম্যান্স এবং ব্যাটারি লাইফকে উন্নত করবে। বৃহত্তর ডিসপ্লে এবং ডেস্কটপ ইনপুট ডিভাইসের প্রবণতা সহ ChromeOS, কিছু সমস্যা আরও সহজেই সামনে আসতে পারে। উদাহরণস্বরূপ, একটি অদক্ষ টেক্সচার লোডিং অ্যালগরিদম উচ্চমানের মোবাইল ডিভাইসে "ভাল কাজ" করতে পারে, কিন্তু 4k ডিসপ্লে সহ Chromebook-এ তাল মিলিয়ে চলতে সক্ষম হবে না। অ্যালগরিদম উন্নত করলে সমস্ত ডিভাইসে গেমটি উন্নত হবে।
আপনি যদি প্রোফাইলিংয়ে নতুন হন, তাহলে একটি ভালো সাধারণ পদ্ধতি হল:
- কর্মক্ষমতা নিম্নলিখিত বিষয়গুলির দ্বারা আবদ্ধ কিনা তা নির্ধারণ করুন:
- সিপিইউ
- জিপিইউ
- অন্যান্য: ইনপুট/ডিস্ক/নেটওয়ার্ক
- মূল কারণটি আলাদা করার চেষ্টা করুন
- অপ্টিমাইজ করার চেষ্টা করুন
- পুনরাবৃত্তি করুন
বেশিরভাগ ক্ষেত্রেই, গেমগুলি নিজেদেরকে "CPU-বাউন্ড" অথবা "GPU-বাউন্ড" হিসেবে দেখায়। নীচের প্রোফাইলিং টিপস এবং টুলগুলি ব্যবহার করে, প্রতিটি ফ্রেমে সিস্টেমটি "সময় ব্যয় করছে" তা নির্ধারণ করার চেষ্টা করুন। উদাহরণস্বরূপ, যদি GPU রেন্ডারিং শুরু করার আগে শীর্ষবিন্দু গণনা এবং লোড করতে দীর্ঘ সময় লাগে, তাহলে আপনার গেমটি CPU-বাউন্ড হতে পারে। পরিবর্তে, যদি আপনি প্রচুর সংখ্যক বিস্তারিত, GPU ভিত্তিক ফিল্টার ব্যবহার করেন, তাহলে আপনার গেমটি সম্ভবত GPU-বাউন্ড। মনে রাখবেন যে অনেক মোবাইল ফোন এবং ChromeOS ডিভাইসে বিচ্ছিন্ন গ্রাফিক্স কার্ড থাকে না। একটি ডেস্কটপ গেম যা ধরে নেয় যে GPU ফিল্টারগুলি দ্রুত, ইন্টিগ্রেটেড GPU প্রতিটি দৃশ্য রেন্ডার করতে খুব বেশি সময় নেয়।
প্রোফাইলিং কীভাবে করবেন সে সম্পর্কে আরও তথ্যের জন্য, 'অপ্টিমাইজেশন প্রক্রিয়া' সম্পর্কিত ARM-এর নির্দেশিকাটি দেখুন।
যন্ত্র
যদিও নিজেরাই বাধাগুলো চিহ্নিত করা সম্ভব, সঠিক সরঞ্জাম থাকলে আপনার গেমের পারফরম্যান্স বিশ্লেষণ করা সহজ হবে এবং আপনাকে আত্মবিশ্বাস দেবে যে আপনি সঠিক জিনিসের উপর মনোযোগ দিচ্ছেন। অনেক সরঞ্জাম আছে, তবে এখানে আমাদের কিছু জনপ্রিয় প্রোগ্রামের তালিকা দেওয়া হল।
অ্যান্ড্রয়েড স্টুডিও প্রোফাইলার
যেকোনো অ্যান্ড্রয়েড অ্যাপের প্রোফাইলিং শুরু করার সবচেয়ে সহজ উপায় হল ইন্টিগ্রেটেড অ্যান্ড্রয়েড স্টুডিও প্রোফাইলার ব্যবহার করা। অ্যান্ড্রয়েড স্টুডিও থেকে, "রান" টিপে না গিয়ে, আপনার অ্যাপটি চালানোর জন্য কেবল "প্রোফাইল" বেছে নিন এবং CPU, মেমরি এবং নেটওয়ার্ক ব্যবহারের রিয়েল-টাইম অন্তর্দৃষ্টি পান। সহজ CPU ট্রেসগুলি দেখার জন্য কোডের ক্ষেত্রগুলিকে আলাদা করার একটি দ্রুত উপায় হতে পারে।
এই টুলটি GPU ব্যবহার বা প্রতিটি ফ্রেম সিঙ্কের মধ্যে কী ঘটছে সে সম্পর্কে প্রকৃত অন্তর্দৃষ্টি দেয় না, তাই টুলবক্সে থাকা একটি ভালো টুল হলেও, আপনার গেমটি সর্বোচ্চ পারফরম্যান্সে চালানোর জন্য এটি যথেষ্ট হবে না।
স্ন্যাপড্রাগন প্রোফাইলার
যেহেতু আপনার গেমের আচরণ বিভিন্ন ডিভাইসে একই রকম হবে, তাই বিস্তারিত পারফরম্যান্স তথ্য পাওয়ার একটি ভালো উপায় হল Qualcomm ভিত্তিক, ARM ফোনে Snapdragon Profiler ব্যবহার করা। যদিও ChromeOS ডিভাইসে সরাসরি প্রোফাইলিং করা হয় না, এটি আপনাকে প্রতিটি ফ্রেমে আপনার গেমটি কোথায় বেশিরভাগ সময় ব্যয় করছে সে সম্পর্কে তথ্য দেবে এবং কোন GPU কলগুলি ব্যবহার করা হচ্ছে সে সম্পর্কে আপনাকে অন্তর্দৃষ্টি দিতে পারে।
উদাহরণস্বরূপ, যদি আপনি দেখেন যে আপনার অ্যানিসোট্রপিক GPU ফিল্টারগুলিতে প্রচুর সময় ব্যয় হচ্ছে এবং এটি প্রতিটি ফ্রেমে করা কাজকে প্রাধান্য দিচ্ছে, তাহলে এই সেটিংটি পরিবর্তন করে আপনি সম্ভবত কিছু বড় কর্মক্ষমতা লাভ করতে পারেন।
যদি আপনি দেখেন যে GPU এর সময় কম এবং নিয়মিত, কিন্তু CPU এর সময় বেশি প্রভাব ফেলছে এবং আপনার ফ্রেম সিঙ্ক মিস হচ্ছে, তাহলে আপনার টেক্সচার লোডিং/ফ্রেম প্রস্তুতি অ্যালগরিদমগুলি একবার দেখে নিন।
আরও তথ্যের জন্য অফিসিয়াল ব্যবহারের ডকুমেন্টেশন দেখুন।
এআরএম মোবাইল স্টুডিও
আরেকটি কার্যকর ARM ডিভাইস প্রোফাইলার হল ARM মোবাইল স্টুডিও । কিছু ডেভেলপার স্ন্যাপড্রাগন প্রোফাইলারের চেয়ে এটি পছন্দ করতে পারে, তবে এটি একইভাবে ব্যবহার করা যেতে পারে। অফিসিয়াল ব্যবহারের ডকুমেন্টেশন দেখুন।
অ্যান্ড্রয়েড জিপিইউ ইন্সপেক্টর
অ্যান্ড্রয়েড জিপিইউ ইন্সপেক্টর হল গুগলের তৈরি একটি নতুন টুল এবং বিশেষভাবে OpenGL এবং Vulkan উভয়ের মাধ্যমে আপনার গেমের সেরা পারফরম্যান্স পেতে সাহায্য করার জন্য ডিজাইন করা হয়েছে। এটি বর্তমানে ডেভেলপার প্রিভিউ অবস্থায় রয়েছে এবং সেট আপ করতে কিছুটা সময় লাগতে পারে এবং বর্তমানে এটি শুধুমাত্র কয়েকটি ডিভাইসে কাজ করছে। ভবিষ্যতে গ্রাফিক্স প্রোফাইলিংয়ের জন্য এটি অন্যতম প্রধান টুল হওয়ার প্রতিশ্রুতি দেয়। অফিসিয়াল ডকুমেন্টেশন দেখুন।
ARC ওভারভিউ ট্রেসিং
আরও একটি সাধারণ টুল আছে - ARC ওভারভিউ ট্রেসিং - যা উপরের ARC গ্রাফিক্স ট্রেসিং টুলের মতোই কাজ করে। এই ট্রেসারটি একটি অ্যাপ এবং ChromeOS পারফরম্যান্স সম্পর্কে উচ্চ-স্তরের মেট্রিক্স প্রদান করবে। রিড আউটগুলি আপনাকে অ্যাপ এবং Chrome এর FPS, সেইসাথে CPU ব্যবহার, GPU ব্যবহার, পাওয়ার খরচ এবং আরও অনেক কিছু দেখাবে। আপনি টুলটি একাধিকবার চালাতে পারেন এবং প্রতিটি রানের জন্য গ্রাফগুলি রঙের সাথে একসাথে দেখতে পারেন যাতে সেগুলিকে আলাদা করা যায়। প্রতিটি ট্রেসিং মডেল আপনার ডাউনলোড ফোল্ডারে সংরক্ষণ করা হবে এবং ভবিষ্যতের তুলনার জন্য পুনরায় আমদানি করা যেতে পারে। সাধারণ অ্যাপ স্বাস্থ্য পরীক্ষার জন্য, ARC ওভারভিউ ট্রেসিং শুরু করার জন্য একটি ভাল জায়গা।
এই টুলটি অ্যাক্সেস করতে ChromeOS-এর ব্রাউজারে chrome://arc-overview-tracing এ যান।
পরবর্তী পদক্ষেপ
তাহলে হয়তো আপনি কিছু বাধা খুঁজে পেয়েছেন কিন্তু সেগুলো সম্পর্কে কী করবেন তা নিশ্চিত নন। অথবা আপনি সেগুলো খুঁজে পেয়েছেন এবং সমাধান করেছেন, কিন্তু পরবর্তীতে কোথায় যাবেন তা নিশ্চিত নন। নীচে, আমরা আপনার জন্য সাধারণ অ্যান্ড্রয়েড এবং ইঞ্জিন-নির্দিষ্ট টিপস এবং রিসোর্সের একটি তালিকা তৈরি করেছি।
সাধারণ টিপস
অ্যান্ড্রয়েড ডেভেলপারস পোর্টালে আপনার অ্যাপ্লিকেশনের কর্মক্ষমতা বাড়ানোর জন্য কিছু দুর্দান্ত টিপস রয়েছে। লোড টাইম বিবেচনা, মাল্টিথ্রেডিং কীভাবে ব্যবহার করবেন, ইনপুট ল্যাগ পরিচালনা করা এবং আরও অনেক কিছু সেখানে পাওয়া যাবে।
আগেভাগে প্রোফাইল তৈরি করতে ভুলবেন না এবং প্রায়শই প্রোফাইল তৈরি করতে ভুলবেন না, বিশেষ করে যদি আপনি কম শক্তিশালী মেশিনগুলিকে টার্গেট করেন বা উচ্চমানের আর্কিটেকচারের সীমানা অতিক্রম করেন। আপনার অ্যাপের পারফরম্যান্স পরিসংখ্যানের উপর নজর রাখলে আপনাকে সনাক্ত করতে সাহায্য করবে কোন পরিবর্তনগুলি আপনার ফ্রেম রেটকে কমিয়ে দিয়েছে এবং কোনটি আপনাকে আপনার লক্ষ্যের মসৃণ অভিজ্ঞতা বজায় রাখতে সাহায্য করছে।
ইউনিটি ইঞ্জিন
তাদের সাধারণ অ্যান্ড্রয়েড ডক্সের পাশাপাশি, ইউনিটি তাদের ইঞ্জিন ব্যবহার করে একটি কার্যকর ChromeOS অ্যাপ্লিকেশন তৈরি করতে সাহায্য করার জন্য Chrome OS-নির্দিষ্ট ডক্স সরবরাহ করে। শুরু করা , ইনপুট , ডিবাগিং এবং বিল্ডিং সম্পর্কিত তাদের ChromeOS ডক্সগুলি দেখুন যার মধ্যে x86 বিল্ডগুলি কীভাবে তৈরি করবেন তা অন্তর্ভুক্ত রয়েছে। পারফরম্যান্স সম্পর্কিত তাদের বিষয়বস্তুর জন্য, অপ্টিমাইজেশন বোঝা এবং পারফরম্যান্স এবং অপ্টিমাইজেশন সম্পর্কিত তাদের কোর্স দেখুন।
ইউনিটি গেমগুলির প্রোফাইলিং এবং অপ্টিমাইজেশন এবং তাদের সাথে সম্পর্কিত সেরা অনুশীলন সম্পর্কে ARM-এর নির্দেশিকাটি পড়ার কথা বিবেচনা করুন। এটি আপনাকে ARM মোবাইল স্টুডিওর একটি দিক, স্ট্রিমলাইন টুল ব্যবহার করে ইউনিটিতে একটি উদাহরণ গেমের প্রোফাইলিং প্রক্রিয়ার মধ্য দিয়ে নিয়ে যাবে।
অবাস্তব ইঞ্জিন
আনরিয়াল তাদের নিজস্ব পারফরম্যান্স নির্দেশিকা এবং টিপস এবং ট্রিকস ডকুমেন্ট লিখেছে যা আপনাকে শেখায় যে ইঞ্জিনের দেওয়া অনেক বিকল্প এবং সেটিংস কীভাবে সর্বোত্তমভাবে কাজে লাগাতে হয়। এখানে আপনি লেভেল অফ ডিটেইল ট্রিকস, লাইটিং থেকে কীভাবে সর্বাধিক সুবিধা পাবেন, ম্যাটেরিয়াল কোয়ালিটি সেটিংস এবং শেডার সম্পর্কে ধাপে ধাপে নির্দেশিকা সহ অন্যান্য পরামর্শ পাবেন।
আরও গ্রাফিক্স ভিত্তিক অপ্টিমাইজেশনের জন্য, ARM মোবাইল গেম অপ্টিমাইজ করার জন্য একটি নির্দেশিকা লিখেছে। সাধারণ অপ্টিমাইজেশন টিপস এবং অবাস্তব নির্দিষ্ট গ্রাফিক্স বিবেচনা এখানে পাওয়া যাবে।