সিপিইউ এবং জিপিইউ ফ্রেম প্রসেসিং টাইম (ফ্রেম টাইম) অনুমান করা আপনার অ্যাপের পারফরম্যান্স বোঝার জন্য এবং বাধাগুলি সনাক্ত করার জন্য অপরিহার্য। আপনি যখন AGI দিয়ে একটি অ্যাপ প্রোফাইল করেন, তখন সিস্টেম প্রোফাইলার ট্রেস ডেটা প্রদান করে যা আপনি ফ্রেমের সময় অনুমান করতে ব্যবহার করতে পারেন।
CPU বার
AGI-তে, আপনি একটি সিস্টেম প্রোফাইলের CPU ট্র্যাকের মোট এবং সক্রিয় CPU ফ্রেম সময় দেখতে পারেন।
মোট CPU সময়
খরচ করা মোট CPU সময় পরিমাপ করতে, ক্রমাগত ফ্রেম জমা দেওয়ার ইভেন্টগুলির মধ্যে সময় অন্তর্ভুক্ত করে এমন সময়সীমা নির্বাচন করুন । ফ্রেম জমা দেওয়ার ঘটনাগুলি হল eglSwapBuffers
(OpenGL-এর জন্য) এবং vkQueuePresentKHR
(Vulkan-এর জন্য)।

eglSwapBuffer
ইভেন্ট। 
vkQueuePresentKHR
ইভেন্ট। এই পরিমাপটি মোট CPU সময়ের একটি অনুমান, কিন্তু অগত্যা সক্রিয় CPU সময়ের প্রতিনিধিত্ব করে না। উদাহরণস্বরূপ, GPU- আবদ্ধ অ্যাপগুলিতে, CPU একটি নতুন ফ্রেম জমা দেওয়ার আগে GPU-এর কাজ সম্পূর্ণ করার জন্য অপেক্ষা করতে পারে। এটি প্রায়ই ঘটে যখন একটি dequeueBuffer
, eglSwapBuffer
(OpenGL এর জন্য), অথবা vkQueuePresent
(Vulkan এর জন্য) ইভেন্ট CPU সময়ের একটি বড় অংশ নেয়। অপেক্ষার সময়টি মোট CPU সময়ের মধ্যে অন্তর্ভুক্ত করা হয়েছে, কিন্তু সক্রিয় CPU সময়ের নয়।

dequeueBuffer
এবং eglSwapBuffer
ইভেন্টের সময় প্রচুর পরিমাণে অলসতা।সক্রিয় CPU সময়
সক্রিয় সিপিইউ সময় নির্ধারণ করে কখন সিপিইউ একটি নিষ্ক্রিয় অবস্থায় না থেকে অ্যাপ কোড চালাচ্ছে।
সক্রিয় CPU সময় পরিমাপ করতে, CPU ইভেন্টের ঠিক উপরে চলমান স্লাইসগুলি দেখুন। চলমান অবস্থায় থাকা দুটি ফ্রেম জমা দেওয়ার ইভেন্টের মধ্যে ট্রেসের সমস্ত অংশ গণনা করুন। আপনি কাজ থ্রেড অন্তর্ভুক্ত নিশ্চিত করুন.


সক্রিয় CPU সময় পরিমাপ করার আরেকটি উপায় হল CPU ট্র্যাকগুলিতে অ্যাপের স্লাইসগুলি দেখা। এই স্লাইসগুলি নির্দেশ করে যখন সিপিইউ চলছে এবং সেগুলি চলমান স্লাইসের সাথে সঙ্গতিপূর্ণ।

অ্যাপ স্লাইস সনাক্ত করতে সাহায্য করতে, আপনি আপনার অ্যাপে ATrace মার্কার যোগ করতে পারেন। এটি সিস্টেম প্রোফাইলারের CPU ট্র্যাকে মার্কারগুলি প্রদর্শন করবে।

GPU ফ্রেমের সময় অনুমান করুন
GPU ফ্রেম সময় অনুমান করতে, আপনি সিস্টেম প্রোফাইলারে GPU স্লাইস বা GPU কাউন্টার ব্যবহার করতে পারেন। GPU স্লাইস ব্যবহার করার সময় অনুমান আরও সঠিক।
GPU স্লাইস
সিস্টেম প্রোফাইলারে যদি GPU স্লাইস তথ্য উপলব্ধ থাকে, তাহলে আপনি একটি একক ফ্রেমের সাথে যুক্ত কাজগুলিতে আপনার অ্যাপ ব্যয় করার মোট সময় পরিমাপ করে খুব সঠিক GPU ফ্রেম সময় তথ্য পেতে পারেন।
মালি ডিভাইস
মালি ডিভাইসে, GPU স্লাইসে ফ্র্যাগমেন্ট , নন-ফ্র্যাগমেন্ট এবং মাঝে মাঝে সম্পূরক নন-ফ্র্যাগমেন্ট ট্র্যাক থাকে। কম জটিল ফ্রেমের জন্য, ফ্র্যাগমেন্ট এবং নন-ফ্র্যাগমেন্ট কাজ ক্রমিক, তাই একটি ফ্রেমের কাজকে অন্য ফ্রেমের থেকে আলাদা করা সক্রিয় GPU কাজের মধ্যে ফাঁক খোঁজার মাধ্যমে করা যেতে পারে।
একটি বিকল্প হিসাবে, আপনি যদি GPU-তে জমা দেওয়া কাজের সাথে পরিচিত হন, জমা দেওয়া রেন্ডার পাসগুলির প্যাটার্ন সনাক্ত করা একটি ফ্রেম কখন শুরু হয় এবং শেষ হয় সে সম্পর্কে তথ্য প্রদান করে।


যে অ্যাপগুলির জন্য আরও ভারী-সমান্তরাল GPU ওয়ার্কফ্লো আছে, আপনি প্রতিটি স্লাইসের জন্য নির্বাচন ফলকে একই সাবমিশনআইডি আছে এমন সমস্ত ফ্রেমের সন্ধান করে GPU ফ্রেমের সময় পেতে পারেন৷
ভলকান-ভিত্তিক অ্যাপগুলির জন্য, একাধিক জমা একটি ফ্রেম রচনা করতে ব্যবহার করা যেতে পারে। ভলকান ইভেন্টস ট্র্যাক ব্যবহার করে জমা দেওয়া আইডিগুলির ট্র্যাক রাখুন, যাতে প্রতিটি জমা দেওয়ার জন্য একটি স্লাইস থাকে। একটি জমা স্লাইস নির্বাচন করা সমস্ত GPU অ্যাক্টিভিটি স্লাইসগুলিকে হাইলাইট করবে যা জমা দেওয়ার সাথে সম্পর্কিত।


অ্যাড্রেনো ডিভাইস
Adreno ডিভাইসে, GPU স্লাইসগুলি GPU কিউ 0 ট্র্যাকে প্রদর্শিত হয় এবং সর্বদা ক্রমানুসারে উপস্থাপন করা হয়, তাই আপনি একটি ফ্রেমের জন্য রেন্ডার পাসের প্রতিনিধিত্ব করে এমন সমস্ত স্লাইস দেখতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে ব্যবহার করতে পারেন।


পূর্বে বর্ণিত মালি দৃশ্যের অনুরূপ: যদি অ্যাপটি ভলকান ব্যবহার করে, ভলকান ইভেন্ট ট্র্যাক ফ্রেমটি চালানোর জন্য জমা দেওয়া কাজের তথ্য সরবরাহ করে। রেন্ডার পাসগুলি হাইলাইট করতে, ফ্রেমের সাথে যুক্ত ভলকান ইভেন্ট স্লাইসগুলিতে ক্লিক করুন৷

এমন কিছু পরিস্থিতিতে রয়েছে যেখানে GPU ফ্রেমের সীমানাগুলিকে আলাদা করা আরও চ্যালেঞ্জিং কারণ অ্যাপটি খুব বেশি GPU আবদ্ধ। এই পরিস্থিতিতে, আপনি যদি GPU-তে জমা দেওয়া কাজের সাথে পরিচিত হন, তাহলে আপনি সেই প্যাটার্নটি সনাক্ত করতে পারেন যে রেন্ডার পাসগুলি কার্যকর করা হচ্ছে এবং সেই তথ্য থেকে ফ্রেমের সীমানা নির্ধারণ করতে পারেন৷

GPU কাউন্টার
যদি একটি ট্রেসে GPU স্লাইস তথ্য উপলব্ধ না হয়, আপনি GPU কাউন্টার ট্র্যাক ব্যবহার করে GPU ফ্রেম সময় অনুমান করতে পারেন।
মালি ডিভাইস
মালি ডিভাইসে, আপনি GPU ইউটিলাইজেশন ট্র্যাক ব্যবহার করতে পারেন এমন একটি অ্যাপের জন্য GPU ফ্রেম সময় অনুমান করতে যা GPU নিবিড় নয়। অ্যাপ্লিকেশানগুলি যখন কম জিপিইউ নিবিড় হয়, তখন ধারাবাহিকভাবে উচ্চ কার্যকলাপের পরিবর্তে তাদের নিয়মিত উচ্চ এবং নিম্ন GPU কার্যকলাপের সময় থাকে। GPU ইউটিলাইজেশন ট্র্যাক ব্যবহার করে GPU ফ্রেমের সময় অনুমান করতে, ট্র্যাকের উচ্চ কার্যকলাপের সময়কাল পরিমাপ করুন।

অ্যাপটি যদি আরও GPU-ঘন হয়, তাহলে আপনি GPU ফ্রেমের সময় অনুমান করতে খণ্ড এবং নন-ফ্র্যাগমেন্ট ট্র্যাক ব্যবহার করতে পারেন। খণ্ড এবং নন-ফ্র্যাগমেন্ট ট্র্যাকগুলির কার্যকলাপের স্তরগুলিতে নিদর্শনগুলি সন্ধান করে, আপনি একটি ফ্রেমের সীমানা কোথায় রয়েছে তার একটি মোটামুটি অনুমান পেতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে এটি ব্যবহার করতে পারেন।

অ্যাড্রেনো ডিভাইস
Adreno ডিভাইসে, অ্যাপটি GPU-নিবিড় না হলে, আপনি আগের বিভাগে মালি ডিভাইসগুলির সাথে একইভাবে GPU ফ্রেমের সময় অনুমান করতে পারেন।

অ্যাপটি যদি আরও GPU-ঘন হয়, তাহলে আপনি GPU ফ্রেমের সময় অনুমান করতে Vertex Instructions / Second and Fragment Instructions / সেকেন্ড ট্র্যাকগুলি ব্যবহার করতে পারেন৷ এই ট্র্যাকগুলির কার্যকলাপের স্তরগুলিতে নিদর্শনগুলি সন্ধান করে, আপনি একটি ফ্রেমের সীমানা কোথায় রয়েছে তার একটি মোটামুটি অনুমান পেতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে এটি ব্যবহার করতে পারেন৷

এই অন্যান্য ট্র্যাক অনুরূপ তথ্য প্রদান করতে পারে:
- শীর্ষবিন্দু ছায়াযুক্ত/সেকেন্ড
- টুকরা ছায়াযুক্ত / সেকেন্ড
- % সময় শেডিং শীর্ষবিন্দু
- % সময় টুকরা
সিপিইউ এবং জিপিইউ ফ্রেম প্রসেসিং টাইম (ফ্রেম টাইম) অনুমান করা আপনার অ্যাপের পারফরম্যান্স বোঝার জন্য এবং বাধাগুলি সনাক্ত করার জন্য অপরিহার্য। আপনি যখন AGI দিয়ে একটি অ্যাপ প্রোফাইল করেন, তখন সিস্টেম প্রোফাইলার ট্রেস ডেটা প্রদান করে যা আপনি ফ্রেমের সময় অনুমান করতে ব্যবহার করতে পারেন।
CPU বার
AGI-তে, আপনি একটি সিস্টেম প্রোফাইলের CPU ট্র্যাকের মোট এবং সক্রিয় CPU ফ্রেম সময় দেখতে পারেন।
মোট CPU সময়
খরচ করা মোট CPU সময় পরিমাপ করতে, ক্রমাগত ফ্রেম জমা দেওয়ার ইভেন্টগুলির মধ্যে সময় অন্তর্ভুক্ত করে এমন সময়সীমা নির্বাচন করুন । ফ্রেম জমা দেওয়ার ঘটনাগুলি হল eglSwapBuffers
(OpenGL-এর জন্য) এবং vkQueuePresentKHR
(Vulkan-এর জন্য)।

eglSwapBuffer
ইভেন্ট। 
vkQueuePresentKHR
ইভেন্ট। এই পরিমাপটি মোট CPU সময়ের একটি অনুমান, কিন্তু অগত্যা সক্রিয় CPU সময়ের প্রতিনিধিত্ব করে না। উদাহরণস্বরূপ, GPU- আবদ্ধ অ্যাপগুলিতে, CPU একটি নতুন ফ্রেম জমা দেওয়ার আগে GPU-এর কাজ সম্পূর্ণ করার জন্য অপেক্ষা করতে পারে। এটি প্রায়ই ঘটে যখন একটি dequeueBuffer
, eglSwapBuffer
(OpenGL এর জন্য), অথবা vkQueuePresent
(Vulkan এর জন্য) ইভেন্ট CPU সময়ের একটি বড় অংশ নেয়। অপেক্ষার সময়টি মোট CPU সময়ের মধ্যে অন্তর্ভুক্ত করা হয়েছে, কিন্তু সক্রিয় CPU সময়ের নয়।

dequeueBuffer
এবং eglSwapBuffer
ইভেন্টের সময় প্রচুর পরিমাণে অলসতা।সক্রিয় CPU সময়
সক্রিয় সিপিইউ সময় নির্ধারণ করে কখন সিপিইউ একটি নিষ্ক্রিয় অবস্থায় না থেকে অ্যাপ কোড চালাচ্ছে।
সক্রিয় CPU সময় পরিমাপ করতে, CPU ইভেন্টের ঠিক উপরে চলমান স্লাইসগুলি দেখুন। চলমান অবস্থায় থাকা দুটি ফ্রেম জমা দেওয়ার ইভেন্টের মধ্যে ট্রেসের সমস্ত অংশ গণনা করুন। আপনি কাজ থ্রেড অন্তর্ভুক্ত নিশ্চিত করুন.


সক্রিয় CPU সময় পরিমাপ করার আরেকটি উপায় হল CPU ট্র্যাকগুলিতে অ্যাপের স্লাইসগুলি দেখা। এই স্লাইসগুলি নির্দেশ করে যখন সিপিইউ চলছে এবং সেগুলি চলমান স্লাইসের সাথে সঙ্গতিপূর্ণ।

অ্যাপ স্লাইস সনাক্ত করতে সাহায্য করতে, আপনি আপনার অ্যাপে ATrace মার্কার যোগ করতে পারেন। এটি সিস্টেম প্রোফাইলারের CPU ট্র্যাকে মার্কারগুলি প্রদর্শন করবে।

GPU ফ্রেমের সময় অনুমান করুন
GPU ফ্রেম সময় অনুমান করতে, আপনি সিস্টেম প্রোফাইলারে GPU স্লাইস বা GPU কাউন্টার ব্যবহার করতে পারেন। GPU স্লাইস ব্যবহার করার সময় অনুমান আরও সঠিক।
GPU স্লাইস
সিস্টেম প্রোফাইলারে যদি GPU স্লাইস তথ্য উপলব্ধ থাকে, তাহলে আপনি একটি একক ফ্রেমের সাথে যুক্ত কাজগুলিতে আপনার অ্যাপ ব্যয় করার মোট সময় পরিমাপ করে খুব সঠিক GPU ফ্রেম সময় তথ্য পেতে পারেন।
মালি ডিভাইস
মালি ডিভাইসে, GPU স্লাইসে ফ্র্যাগমেন্ট , নন-ফ্র্যাগমেন্ট এবং মাঝে মাঝে সম্পূরক নন-ফ্র্যাগমেন্ট ট্র্যাক থাকে। কম জটিল ফ্রেমের জন্য, ফ্র্যাগমেন্ট এবং নন-ফ্র্যাগমেন্ট কাজ ক্রমিক, তাই একটি ফ্রেমের কাজকে অন্য ফ্রেমের থেকে আলাদা করা সক্রিয় GPU কাজের মধ্যে ফাঁক খোঁজার মাধ্যমে করা যেতে পারে।
একটি বিকল্প হিসাবে, আপনি যদি GPU-তে জমা দেওয়া কাজের সাথে পরিচিত হন, জমা দেওয়া রেন্ডার পাসগুলির প্যাটার্ন সনাক্ত করা একটি ফ্রেম কখন শুরু হয় এবং শেষ হয় সে সম্পর্কে তথ্য প্রদান করে।


যে অ্যাপগুলির জন্য আরও ভারী-সমান্তরাল GPU ওয়ার্কফ্লো আছে, আপনি প্রতিটি স্লাইসের জন্য নির্বাচন ফলকে একই সাবমিশনআইডি আছে এমন সমস্ত ফ্রেমের সন্ধান করে GPU ফ্রেমের সময় পেতে পারেন৷
ভলকান-ভিত্তিক অ্যাপগুলির জন্য, একাধিক জমা একটি ফ্রেম রচনা করতে ব্যবহার করা যেতে পারে। ভলকান ইভেন্টস ট্র্যাক ব্যবহার করে জমা দেওয়া আইডিগুলির ট্র্যাক রাখুন, যাতে প্রতিটি জমা দেওয়ার জন্য একটি স্লাইস থাকে। একটি জমা স্লাইস নির্বাচন করা সমস্ত GPU অ্যাক্টিভিটি স্লাইসগুলিকে হাইলাইট করবে যা জমা দেওয়ার সাথে সম্পর্কিত।


অ্যাড্রেনো ডিভাইস
Adreno ডিভাইসে, GPU স্লাইসগুলি GPU কিউ 0 ট্র্যাকে প্রদর্শিত হয় এবং সর্বদা ক্রমানুসারে উপস্থাপন করা হয়, তাই আপনি একটি ফ্রেমের জন্য রেন্ডার পাসের প্রতিনিধিত্ব করে এমন সমস্ত স্লাইস দেখতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে ব্যবহার করতে পারেন।


পূর্বে বর্ণিত মালি দৃশ্যের অনুরূপ: যদি অ্যাপটি ভলকান ব্যবহার করে, ভলকান ইভেন্ট ট্র্যাক ফ্রেমটি চালানোর জন্য জমা দেওয়া কাজের তথ্য সরবরাহ করে। রেন্ডার পাসগুলি হাইলাইট করতে, ফ্রেমের সাথে যুক্ত ভলকান ইভেন্ট স্লাইসগুলিতে ক্লিক করুন৷

এমন কিছু পরিস্থিতিতে রয়েছে যেখানে GPU ফ্রেমের সীমানাগুলিকে আলাদা করা আরও চ্যালেঞ্জিং কারণ অ্যাপটি খুব বেশি GPU আবদ্ধ। এই পরিস্থিতিতে, আপনি যদি GPU-তে জমা দেওয়া কাজের সাথে পরিচিত হন, তাহলে আপনি সেই প্যাটার্নটি সনাক্ত করতে পারেন যে রেন্ডার পাসগুলি কার্যকর করা হচ্ছে এবং সেই তথ্য থেকে ফ্রেমের সীমানা নির্ধারণ করতে পারেন৷

GPU কাউন্টার
যদি একটি ট্রেসে GPU স্লাইস তথ্য উপলব্ধ না হয়, আপনি GPU কাউন্টার ট্র্যাক ব্যবহার করে GPU ফ্রেম সময় অনুমান করতে পারেন।
মালি ডিভাইস
মালি ডিভাইসে, আপনি GPU ইউটিলাইজেশন ট্র্যাক ব্যবহার করতে পারেন এমন একটি অ্যাপের জন্য GPU ফ্রেম সময় অনুমান করতে যা GPU নিবিড় নয়। অ্যাপ্লিকেশানগুলি যখন কম জিপিইউ নিবিড় হয়, তখন ধারাবাহিকভাবে উচ্চ কার্যকলাপের পরিবর্তে তাদের নিয়মিত উচ্চ এবং নিম্ন GPU কার্যকলাপের সময় থাকে। GPU ইউটিলাইজেশন ট্র্যাক ব্যবহার করে GPU ফ্রেমের সময় অনুমান করতে, ট্র্যাকের উচ্চ কার্যকলাপের সময়কাল পরিমাপ করুন।

অ্যাপটি যদি আরও GPU-ঘন হয়, তাহলে আপনি GPU ফ্রেমের সময় অনুমান করতে খণ্ড এবং নন-ফ্র্যাগমেন্ট ট্র্যাক ব্যবহার করতে পারেন। খণ্ড এবং নন-ফ্র্যাগমেন্ট ট্র্যাকগুলির কার্যকলাপের স্তরগুলিতে নিদর্শনগুলি সন্ধান করে, আপনি একটি ফ্রেমের সীমানা কোথায় রয়েছে তার একটি মোটামুটি অনুমান পেতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে এটি ব্যবহার করতে পারেন।

অ্যাড্রেনো ডিভাইস
Adreno ডিভাইসে, অ্যাপটি GPU-নিবিড় না হলে, আপনি আগের বিভাগে মালি ডিভাইসগুলির সাথে একইভাবে GPU ফ্রেমের সময় অনুমান করতে পারেন।

অ্যাপটি যদি আরও GPU-ঘন হয়, তাহলে আপনি GPU ফ্রেমের সময় অনুমান করতে Vertex Instructions / Second and Fragment Instructions / সেকেন্ড ট্র্যাকগুলি ব্যবহার করতে পারেন৷ এই ট্র্যাকগুলির কার্যকলাপের স্তরগুলিতে নিদর্শনগুলি সন্ধান করে, আপনি একটি ফ্রেমের সীমানা কোথায় রয়েছে তার একটি মোটামুটি অনুমান পেতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে এটি ব্যবহার করতে পারেন৷

এই অন্যান্য ট্র্যাক অনুরূপ তথ্য প্রদান করতে পারে:
- শীর্ষবিন্দু ছায়াযুক্ত/সেকেন্ড
- টুকরা ছায়াযুক্ত / সেকেন্ড
- % সময় শেডিং শীর্ষবিন্দু
- % সময় টুকরা
সিপিইউ এবং জিপিইউ ফ্রেম প্রসেসিং টাইম (ফ্রেম টাইম) অনুমান করা আপনার অ্যাপের পারফরম্যান্স বোঝার জন্য এবং বাধাগুলি সনাক্ত করার জন্য অপরিহার্য। আপনি যখন AGI দিয়ে একটি অ্যাপ প্রোফাইল করেন, তখন সিস্টেম প্রোফাইলার ট্রেস ডেটা প্রদান করে যা আপনি ফ্রেমের সময় অনুমান করতে ব্যবহার করতে পারেন।
CPU বার
AGI-তে, আপনি একটি সিস্টেম প্রোফাইলের CPU ট্র্যাকের মোট এবং সক্রিয় CPU ফ্রেম সময় দেখতে পারেন।
মোট CPU সময়
খরচ করা মোট CPU সময় পরিমাপ করতে, ক্রমাগত ফ্রেম জমা দেওয়ার ইভেন্টগুলির মধ্যে সময় অন্তর্ভুক্ত করে এমন সময়সীমা নির্বাচন করুন । ফ্রেম জমা দেওয়ার ঘটনাগুলি হল eglSwapBuffers
(OpenGL-এর জন্য) এবং vkQueuePresentKHR
(Vulkan-এর জন্য)।

eglSwapBuffer
ইভেন্ট। 
vkQueuePresentKHR
ইভেন্ট। এই পরিমাপটি মোট CPU সময়ের একটি অনুমান, কিন্তু অগত্যা সক্রিয় CPU সময়ের প্রতিনিধিত্ব করে না। উদাহরণস্বরূপ, GPU- আবদ্ধ অ্যাপগুলিতে, CPU একটি নতুন ফ্রেম জমা দেওয়ার আগে GPU-এর কাজ সম্পূর্ণ করার জন্য অপেক্ষা করতে পারে। এটি প্রায়ই ঘটে যখন একটি dequeueBuffer
, eglSwapBuffer
(OpenGL এর জন্য), অথবা vkQueuePresent
(Vulkan এর জন্য) ইভেন্ট CPU সময়ের একটি বড় অংশ নেয়। অপেক্ষার সময়টি মোট CPU সময়ের মধ্যে অন্তর্ভুক্ত করা হয়েছে, কিন্তু সক্রিয় CPU সময়ের নয়।

dequeueBuffer
এবং eglSwapBuffer
ইভেন্টের সময় প্রচুর পরিমাণে অলসতা।সক্রিয় CPU সময়
সক্রিয় সিপিইউ সময় নির্ধারণ করে কখন সিপিইউ একটি নিষ্ক্রিয় অবস্থায় না থেকে অ্যাপ কোড চালাচ্ছে।
সক্রিয় CPU সময় পরিমাপ করতে, CPU ইভেন্টের ঠিক উপরে চলমান স্লাইসগুলি দেখুন। চলমান অবস্থায় থাকা দুটি ফ্রেম জমা দেওয়ার ইভেন্টের মধ্যে ট্রেসের সমস্ত অংশ গণনা করুন। আপনি কাজ থ্রেড অন্তর্ভুক্ত নিশ্চিত করুন.


সক্রিয় CPU সময় পরিমাপ করার আরেকটি উপায় হল CPU ট্র্যাকগুলিতে অ্যাপের স্লাইসগুলি দেখা। এই স্লাইসগুলি নির্দেশ করে যখন সিপিইউ চলছে এবং সেগুলি চলমান স্লাইসের সাথে সঙ্গতিপূর্ণ।

অ্যাপ স্লাইস সনাক্ত করতে সাহায্য করতে, আপনি আপনার অ্যাপে ATrace মার্কার যোগ করতে পারেন। এটি সিস্টেম প্রোফাইলারের CPU ট্র্যাকে মার্কারগুলি প্রদর্শন করবে।

GPU ফ্রেমের সময় অনুমান করুন
GPU ফ্রেম সময় অনুমান করতে, আপনি সিস্টেম প্রোফাইলারে GPU স্লাইস বা GPU কাউন্টার ব্যবহার করতে পারেন। GPU স্লাইস ব্যবহার করার সময় অনুমান আরও সঠিক।
GPU স্লাইস
সিস্টেম প্রোফাইলারে যদি GPU স্লাইস তথ্য উপলব্ধ থাকে, তাহলে আপনি একটি একক ফ্রেমের সাথে যুক্ত কাজগুলিতে আপনার অ্যাপ ব্যয় করার মোট সময় পরিমাপ করে খুব সঠিক GPU ফ্রেম সময় তথ্য পেতে পারেন।
মালি ডিভাইস
মালি ডিভাইসে, GPU স্লাইসে ফ্র্যাগমেন্ট , নন-ফ্র্যাগমেন্ট এবং মাঝে মাঝে সম্পূরক নন-ফ্র্যাগমেন্ট ট্র্যাক থাকে। কম জটিল ফ্রেমের জন্য, ফ্র্যাগমেন্ট এবং নন-ফ্র্যাগমেন্ট কাজ ক্রমিক, তাই একটি ফ্রেমের কাজকে অন্য ফ্রেমের থেকে আলাদা করা সক্রিয় GPU কাজের মধ্যে ফাঁক খোঁজার মাধ্যমে করা যেতে পারে।
একটি বিকল্প হিসাবে, আপনি যদি GPU-তে জমা দেওয়া কাজের সাথে পরিচিত হন, জমা দেওয়া রেন্ডার পাসগুলির প্যাটার্ন সনাক্ত করা একটি ফ্রেম কখন শুরু হয় এবং শেষ হয় সে সম্পর্কে তথ্য প্রদান করে।


যে অ্যাপগুলির জন্য আরও ভারী-সমান্তরাল GPU ওয়ার্কফ্লো আছে, আপনি প্রতিটি স্লাইসের জন্য নির্বাচন ফলকে একই সাবমিশনআইডি আছে এমন সমস্ত ফ্রেমের সন্ধান করে GPU ফ্রেমের সময় পেতে পারেন৷
ভলকান-ভিত্তিক অ্যাপগুলির জন্য, একাধিক জমা একটি ফ্রেম রচনা করতে ব্যবহার করা যেতে পারে। ভলকান ইভেন্টস ট্র্যাক ব্যবহার করে জমা দেওয়া আইডিগুলির ট্র্যাক রাখুন, যাতে প্রতিটি জমা দেওয়ার জন্য একটি স্লাইস থাকে। একটি জমা স্লাইস নির্বাচন করা সমস্ত GPU অ্যাক্টিভিটি স্লাইসগুলিকে হাইলাইট করবে যা জমা দেওয়ার সাথে সম্পর্কিত।


অ্যাড্রেনো ডিভাইস
Adreno ডিভাইসে, GPU স্লাইসগুলি GPU কিউ 0 ট্র্যাকে প্রদর্শিত হয় এবং সর্বদা ক্রমানুসারে উপস্থাপন করা হয়, তাই আপনি একটি ফ্রেমের জন্য রেন্ডার পাসের প্রতিনিধিত্ব করে এমন সমস্ত স্লাইস দেখতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে ব্যবহার করতে পারেন।


পূর্বে বর্ণিত মালি দৃশ্যের অনুরূপ: যদি অ্যাপটি ভলকান ব্যবহার করে, ভলকান ইভেন্ট ট্র্যাক ফ্রেমটি চালানোর জন্য জমা দেওয়া কাজের তথ্য সরবরাহ করে। রেন্ডার পাসগুলি হাইলাইট করতে, ফ্রেমের সাথে যুক্ত ভলকান ইভেন্ট স্লাইসগুলিতে ক্লিক করুন৷

এমন কিছু পরিস্থিতিতে রয়েছে যেখানে GPU ফ্রেমের সীমানাগুলিকে আলাদা করা আরও চ্যালেঞ্জিং কারণ অ্যাপটি খুব বেশি GPU আবদ্ধ। এই পরিস্থিতিতে, আপনি যদি GPU-তে জমা দেওয়া কাজের সাথে পরিচিত হন, তাহলে আপনি সেই প্যাটার্নটি সনাক্ত করতে পারেন যে রেন্ডার পাসগুলি কার্যকর করা হচ্ছে এবং সেই তথ্য থেকে ফ্রেমের সীমানা নির্ধারণ করতে পারেন৷

GPU কাউন্টার
যদি একটি ট্রেসে GPU স্লাইস তথ্য উপলব্ধ না হয়, আপনি GPU কাউন্টার ট্র্যাক ব্যবহার করে GPU ফ্রেম সময় অনুমান করতে পারেন।
মালি ডিভাইস
মালি ডিভাইসে, আপনি GPU ইউটিলাইজেশন ট্র্যাক ব্যবহার করতে পারেন এমন একটি অ্যাপের জন্য GPU ফ্রেম সময় অনুমান করতে যা GPU নিবিড় নয়। অ্যাপ্লিকেশানগুলি যখন কম জিপিইউ নিবিড় হয়, তখন ধারাবাহিকভাবে উচ্চ কার্যকলাপের পরিবর্তে তাদের নিয়মিত উচ্চ এবং নিম্ন GPU কার্যকলাপের সময় থাকে। GPU ইউটিলাইজেশন ট্র্যাক ব্যবহার করে GPU ফ্রেমের সময় অনুমান করতে, ট্র্যাকের উচ্চ কার্যকলাপের সময়কাল পরিমাপ করুন।

অ্যাপটি যদি আরও GPU-ঘন হয়, তাহলে আপনি GPU ফ্রেমের সময় অনুমান করতে খণ্ড এবং নন-ফ্র্যাগমেন্ট ট্র্যাক ব্যবহার করতে পারেন। খণ্ড এবং নন-ফ্র্যাগমেন্ট ট্র্যাকগুলির কার্যকলাপের স্তরগুলিতে নিদর্শনগুলি সন্ধান করে, আপনি একটি ফ্রেমের সীমানা কোথায় রয়েছে তার একটি মোটামুটি অনুমান পেতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে এটি ব্যবহার করতে পারেন।

অ্যাড্রেনো ডিভাইস
Adreno ডিভাইসে, অ্যাপটি GPU-নিবিড় না হলে, আপনি আগের বিভাগে মালি ডিভাইসগুলির সাথে একইভাবে GPU ফ্রেমের সময় অনুমান করতে পারেন।

অ্যাপটি যদি আরও GPU-ঘন হয়, তাহলে আপনি GPU ফ্রেমের সময় অনুমান করতে Vertex Instructions / Second and Fragment Instructions / সেকেন্ড ট্র্যাকগুলি ব্যবহার করতে পারেন৷ এই ট্র্যাকগুলির কার্যকলাপের স্তরগুলিতে নিদর্শনগুলি সন্ধান করে, আপনি একটি ফ্রেমের সীমানা কোথায় রয়েছে তার একটি মোটামুটি অনুমান পেতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে এটি ব্যবহার করতে পারেন৷

এই অন্যান্য ট্র্যাক অনুরূপ তথ্য প্রদান করতে পারে:
- শীর্ষবিন্দু ছায়াযুক্ত/সেকেন্ড
- টুকরা ছায়াযুক্ত / সেকেন্ড
- % সময় শেডিং শীর্ষবিন্দু
- % সময় টুকরা
সিপিইউ এবং জিপিইউ ফ্রেম প্রসেসিং টাইম (ফ্রেম টাইম) অনুমান করা আপনার অ্যাপের পারফরম্যান্স বোঝার জন্য এবং বাধাগুলি সনাক্ত করার জন্য অপরিহার্য। আপনি যখন AGI দিয়ে একটি অ্যাপ প্রোফাইল করেন, তখন সিস্টেম প্রোফাইলার ট্রেস ডেটা প্রদান করে যা আপনি ফ্রেমের সময় অনুমান করতে ব্যবহার করতে পারেন।
CPU বার
AGI-তে, আপনি একটি সিস্টেম প্রোফাইলের CPU ট্র্যাকের মোট এবং সক্রিয় CPU ফ্রেম সময় দেখতে পারেন।
মোট CPU সময়
খরচ করা মোট CPU সময় পরিমাপ করতে, ক্রমাগত ফ্রেম জমা দেওয়ার ইভেন্টগুলির মধ্যে সময় অন্তর্ভুক্ত করে এমন সময়সীমা নির্বাচন করুন । ফ্রেম জমা দেওয়ার ঘটনাগুলি হল eglSwapBuffers
(OpenGL-এর জন্য) এবং vkQueuePresentKHR
(Vulkan-এর জন্য)।

eglSwapBuffer
ইভেন্ট। 
vkQueuePresentKHR
ইভেন্ট। এই পরিমাপটি মোট CPU সময়ের একটি অনুমান, কিন্তু অগত্যা সক্রিয় CPU সময়ের প্রতিনিধিত্ব করে না। উদাহরণস্বরূপ, GPU- আবদ্ধ অ্যাপগুলিতে, CPU একটি নতুন ফ্রেম জমা দেওয়ার আগে GPU-এর কাজ সম্পূর্ণ করার জন্য অপেক্ষা করতে পারে। এটি প্রায়ই ঘটে যখন একটি dequeueBuffer
, eglSwapBuffer
(OpenGL এর জন্য), অথবা vkQueuePresent
(Vulkan এর জন্য) ইভেন্ট CPU সময়ের একটি বড় অংশ নেয়। অপেক্ষার সময়টি মোট CPU সময়ের মধ্যে অন্তর্ভুক্ত করা হয়েছে, কিন্তু সক্রিয় CPU সময়ের নয়।

dequeueBuffer
এবং eglSwapBuffer
ইভেন্টের সময় প্রচুর পরিমাণে অলসতা।সক্রিয় CPU সময়
সক্রিয় সিপিইউ সময় নির্ধারণ করে কখন সিপিইউ একটি নিষ্ক্রিয় অবস্থায় না থেকে অ্যাপ কোড চালাচ্ছে।
সক্রিয় CPU সময় পরিমাপ করতে, CPU ইভেন্টের ঠিক উপরে চলমান স্লাইসগুলি দেখুন। চলমান অবস্থায় থাকা দুটি ফ্রেম জমা দেওয়ার ইভেন্টের মধ্যে ট্রেসের সমস্ত অংশ গণনা করুন। আপনি কাজ থ্রেড অন্তর্ভুক্ত নিশ্চিত করুন.


সক্রিয় CPU সময় পরিমাপ করার আরেকটি উপায় হল CPU ট্র্যাকগুলিতে অ্যাপের স্লাইসগুলি দেখা। এই স্লাইসগুলি নির্দেশ করে যখন সিপিইউ চলছে এবং সেগুলি চলমান স্লাইসের সাথে সঙ্গতিপূর্ণ।

অ্যাপ স্লাইস সনাক্ত করতে সাহায্য করতে, আপনি আপনার অ্যাপে ATrace মার্কার যোগ করতে পারেন। এটি সিস্টেম প্রোফাইলারের CPU ট্র্যাকে মার্কারগুলি প্রদর্শন করবে।

GPU ফ্রেমের সময় অনুমান করুন
GPU ফ্রেম সময় অনুমান করতে, আপনি সিস্টেম প্রোফাইলারে GPU স্লাইস বা GPU কাউন্টার ব্যবহার করতে পারেন। GPU স্লাইস ব্যবহার করার সময় অনুমান আরও সঠিক।
GPU স্লাইস
সিস্টেম প্রোফাইলারে যদি GPU স্লাইস তথ্য উপলব্ধ থাকে, তাহলে আপনি একটি একক ফ্রেমের সাথে যুক্ত কাজগুলিতে আপনার অ্যাপ ব্যয় করার মোট সময় পরিমাপ করে খুব সঠিক GPU ফ্রেম সময় তথ্য পেতে পারেন।
মালি ডিভাইস
মালি ডিভাইসে, GPU স্লাইসে ফ্র্যাগমেন্ট , নন-ফ্র্যাগমেন্ট এবং মাঝে মাঝে সম্পূরক নন-ফ্র্যাগমেন্ট ট্র্যাক থাকে। কম জটিল ফ্রেমের জন্য, ফ্র্যাগমেন্ট এবং নন-ফ্র্যাগমেন্ট কাজ ক্রমিক, তাই একটি ফ্রেমের কাজকে অন্য ফ্রেমের থেকে আলাদা করা সক্রিয় GPU কাজের মধ্যে ফাঁক খোঁজার মাধ্যমে করা যেতে পারে।
একটি বিকল্প হিসাবে, আপনি যদি GPU-তে জমা দেওয়া কাজের সাথে পরিচিত হন, জমা দেওয়া রেন্ডার পাসগুলির প্যাটার্ন সনাক্ত করা একটি ফ্রেম কখন শুরু হয় এবং শেষ হয় সে সম্পর্কে তথ্য প্রদান করে।


যে অ্যাপগুলির জন্য আরও ভারী-সমান্তরাল GPU ওয়ার্কফ্লো আছে, আপনি প্রতিটি স্লাইসের জন্য নির্বাচন ফলকে একই সাবমিশনআইডি আছে এমন সমস্ত ফ্রেমের সন্ধান করে GPU ফ্রেমের সময় পেতে পারেন৷
ভলকান-ভিত্তিক অ্যাপগুলির জন্য, একাধিক জমা একটি ফ্রেম রচনা করতে ব্যবহার করা যেতে পারে। ভলকান ইভেন্টস ট্র্যাক ব্যবহার করে জমা দেওয়া আইডিগুলির ট্র্যাক রাখুন, যাতে প্রতিটি জমা দেওয়ার জন্য একটি স্লাইস থাকে। একটি জমা স্লাইস নির্বাচন করা সমস্ত GPU অ্যাক্টিভিটি স্লাইসগুলিকে হাইলাইট করবে যা জমা দেওয়ার সাথে সম্পর্কিত।


অ্যাড্রেনো ডিভাইস
Adreno ডিভাইসে, GPU স্লাইসগুলি GPU কিউ 0 ট্র্যাকে প্রদর্শিত হয় এবং সর্বদা ক্রমানুসারে উপস্থাপন করা হয়, তাই আপনি একটি ফ্রেমের জন্য রেন্ডার পাসের প্রতিনিধিত্ব করে এমন সমস্ত স্লাইস দেখতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে ব্যবহার করতে পারেন।


পূর্বে বর্ণিত মালি দৃশ্যের অনুরূপ: যদি অ্যাপটি ভলকান ব্যবহার করে, ভলকান ইভেন্ট ট্র্যাক ফ্রেমটি চালানোর জন্য জমা দেওয়া কাজের তথ্য সরবরাহ করে। রেন্ডার পাসগুলি হাইলাইট করতে, ফ্রেমের সাথে যুক্ত ভলকান ইভেন্ট স্লাইসগুলিতে ক্লিক করুন৷

এমন কিছু পরিস্থিতিতে রয়েছে যেখানে GPU ফ্রেমের সীমানাগুলিকে আলাদা করা আরও চ্যালেঞ্জিং কারণ অ্যাপটি খুব বেশি GPU আবদ্ধ। এই পরিস্থিতিতে, আপনি যদি GPU-তে জমা দেওয়া কাজের সাথে পরিচিত হন, তাহলে আপনি সেই প্যাটার্নটি সনাক্ত করতে পারেন যে রেন্ডার পাসগুলি কার্যকর করা হচ্ছে এবং সেই তথ্য থেকে ফ্রেমের সীমানা নির্ধারণ করতে পারেন৷

GPU কাউন্টার
যদি একটি ট্রেসে GPU স্লাইস তথ্য উপলব্ধ না হয়, আপনি GPU কাউন্টার ট্র্যাক ব্যবহার করে GPU ফ্রেম সময় অনুমান করতে পারেন।
মালি ডিভাইস
মালি ডিভাইসে, আপনি GPU ইউটিলাইজেশন ট্র্যাক ব্যবহার করতে পারেন এমন একটি অ্যাপের জন্য GPU ফ্রেম সময় অনুমান করতে যা GPU নিবিড় নয়। অ্যাপ্লিকেশানগুলি যখন কম জিপিইউ নিবিড় হয়, তখন ধারাবাহিকভাবে উচ্চ কার্যকলাপের পরিবর্তে তাদের নিয়মিত উচ্চ এবং নিম্ন GPU কার্যকলাপের সময় থাকে। GPU ইউটিলাইজেশন ট্র্যাক ব্যবহার করে GPU ফ্রেমের সময় অনুমান করতে, ট্র্যাকের উচ্চ কার্যকলাপের সময়কাল পরিমাপ করুন।

অ্যাপটি যদি আরও GPU-ঘন হয়, তাহলে আপনি GPU ফ্রেমের সময় অনুমান করতে খণ্ড এবং নন-ফ্র্যাগমেন্ট ট্র্যাক ব্যবহার করতে পারেন। খণ্ড এবং নন-ফ্র্যাগমেন্ট ট্র্যাকগুলির কার্যকলাপের স্তরগুলিতে নিদর্শনগুলি সন্ধান করে, আপনি একটি ফ্রেমের সীমানা কোথায় রয়েছে তার একটি মোটামুটি অনুমান পেতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে এটি ব্যবহার করতে পারেন।

অ্যাড্রেনো ডিভাইস
Adreno ডিভাইসে, অ্যাপটি GPU-নিবিড় না হলে, আপনি আগের বিভাগে মালি ডিভাইসগুলির সাথে একইভাবে GPU ফ্রেমের সময় অনুমান করতে পারেন।

অ্যাপটি যদি আরও GPU-ঘন হয়, তাহলে আপনি GPU ফ্রেমের সময় অনুমান করতে Vertex Instructions / Second and Fragment Instructions / সেকেন্ড ট্র্যাকগুলি ব্যবহার করতে পারেন৷ এই ট্র্যাকগুলির কার্যকলাপের স্তরগুলিতে নিদর্শনগুলি সন্ধান করে, আপনি একটি ফ্রেমের সীমানা কোথায় রয়েছে তার একটি মোটামুটি অনুমান পেতে পারেন এবং GPU ফ্রেমের সময় পরিমাপ করতে এটি ব্যবহার করতে পারেন৷

এই অন্যান্য ট্র্যাক অনুরূপ তথ্য প্রদান করতে পারে:
- শীর্ষবিন্দু ছায়াযুক্ত/সেকেন্ড
- টুকরা ছায়াযুক্ত / সেকেন্ড
- % সময় শেডিং শীর্ষবিন্দু
- % সময় টুকরা