सीपीयू और जीपीयू फ़्रेम प्रोसेसिंग के समय (फ़्रेम टाइम) का अनुमान लगाना, आपके ऐप्लिकेशन की परफ़ॉर्मेंस को समझने और समस्याओं का पता लगाने के लिए ज़रूरी है. AGI की मदद से किसी ऐप्लिकेशन की प्रोफ़ाइल बनाने पर, सिस्टम प्रोफ़ाइलर, ट्रैक डेटा उपलब्ध कराता है. इसका इस्तेमाल करके, फ़्रेम के समय का अनुमान लगाया जा सकता है.
सीपीयू का समय
AGI में, सिस्टम प्रोफ़ाइल के सीपीयू ट्रैक में, कुल और ऐक्टिव सीपीयू फ़्रेम टाइम देखे जा सकते हैं.
सीपीयू का कुल समय
सीपीयू पर बिताए गए कुल समय को मेज़र करने के लिए,
समयसीमा चुनें
जिसमें फ़्रेम सबमिट करने के एक के बाद एक होने वाले इवेंट के बीच का समय शामिल हो. फ़्रेम सबमिशन इवेंट, eglSwapBuffers
(OpenGL के लिए) और vkQueuePresentKHR
(Vulkan के लिए) हैं.

eglSwapBuffer
इवेंट के बीच का समय.
vkQueuePresentKHR
इवेंट के बीच का समय.यह मेज़रमेंट, सीपीयू के कुल समय का अनुमान होता है. हालांकि, यह ज़रूरी नहीं है कि यह सक्रिय सीपीयू समय दिखाता हो. उदाहरण के लिए, जीपीयू पर काम करने वाले ऐप्लिकेशन में, सीपीयू को नया फ़्रेम सबमिट करने से पहले, जीपीयू के काम पूरा होने का इंतज़ार करना पड़ सकता है. ऐसा अक्सर तब होता है, जब dequeueBuffer
, eglSwapBuffer
(OpenGL के लिए) या vkQueuePresent
(Vulkan के लिए) इवेंट, सीपीयू के ज़्यादातर समय का इस्तेमाल करता है.
इंतज़ार का समय, सीपीयू के कुल समय में शामिल होता है, लेकिन सक्रिय सीपीयू समय में शामिल नहीं होता.

dequeueBuffer
और eglSwapBuffer
इवेंट के दौरान, सीपीयू का ज़्यादातर समय बिना काम के बीत रहा है.
सीपीयू का चालू रहने का समय
ऐक्टिव सीपीयू टाइम से यह पता चलता है कि सीपीयू, ऐप्लिकेशन कोड को कब इस्तेमाल में है और कब नहीं.
सीपीयू के चालू रहने का समय मेज़र करने के लिए, सीपीयू इवेंट के ठीक ऊपर मौजूद चालू स्लाइस देखें. रनिंग स्थिति में मौजूद, दो फ़्रेम सबमिशन इवेंट के बीच के ट्रैक के सभी हिस्सों की गिनती करें. पक्का करें कि आपने काम करने वाली टास्क व्यू की थ्रेड शामिल की हों.


सीपीयू के चालू रहने का कुल समय मेज़र करने का एक और तरीका है, सीपीयू ट्रैक में ऐप्लिकेशन के स्लाइस देखना. इन स्लाइस से पता चलता है कि सीपीयू कब चल रहा है. ये स्लाइस, चल रहे स्लाइस से मेल खाते हैं.

ऐप्लिकेशन स्लाइस की पहचान करने के लिए, अपने ऐप्लिकेशन में ATrace मार्कर जोड़े जा सकते हैं. इससे, System Profiler के सीपीयू ट्रैक में मार्कर दिखेंगे.

फ़्रेम रेंडर करने में GPU को लगने वाले समय का अनुमान लगाना
जीपीयू फ़्रेम के समय का अनुमान लगाने के लिए, System Profiler में जीपीयू स्लाइस या जीपीयू काउंटर का इस्तेमाल किया जा सकता है. जीपीयू स्लाइस का इस्तेमाल करने पर, अनुमान ज़्यादा सटीक होता है.
जीपीयू स्लाइस
अगर System Profiler में जीपीयू स्लाइस की जानकारी उपलब्ध है, तो जीपीयू फ़्रेम टाइम की सटीक जानकारी मिल सकती है. इसके लिए, आपको यह मेज़र करना होगा कि आपका ऐप्लिकेशन किसी एक फ़्रेम से जुड़े टास्क पर कितना समय बिताता है.
माली के डिवाइस
Mali डिवाइसों पर, GPU स्लाइस में फ़्रैगमेंट, नॉन-फ़्रैगमेंट, और कभी-कभी नॉन-फ़्रैगमेंट के तौर पर काम करने वाले अतिरिक्त ट्रैक होते हैं. कम जटिल फ़्रेम के लिए, फ़्रैगमेंट और नॉन-फ़्रैगमेंट का काम क्रम से होता है. इसलिए, GPU के काम करने के बीच के अंतर को देखकर, एक फ़्रेम के काम को दूसरे से अलग किया जा सकता है.
इसके अलावा, अगर आपको GPU में सबमिट किए जा रहे काम के बारे में पता है, तो सबमिट किए गए रेंडर पास के पैटर्न की पहचान करने से, यह जानकारी मिलती है कि कोई फ़्रेम कब शुरू और कब खत्म होता है.


जिन ऐप्लिकेशन में जीपीयू वर्कफ़्लो का इस्तेमाल ज़्यादा किया जाता है उनके लिए, जीपीयू फ़्रेम टाइम का पता लगाया जा सकता है. इसके लिए, हर स्लाइस के लिए चुने गए पैनल में, एक ही submissionID वाले सभी फ़्रेम देखें.
Vulkan पर आधारित ऐप्लिकेशन के लिए, फ़्रेम बनाने के लिए कई सबमिशन का इस्तेमाल किया जा सकता है. Vulkan इवेंट ट्रैक का इस्तेमाल करके, सबमिशन आईडी का ट्रैक रखें. इसमें हर सबमिशन के लिए एक स्लाइस होता है. सबमिशन स्लाइस चुनने पर, सबमिशन से जुड़ी जीपीयू गतिविधि की सभी स्लाइस हाइलाइट हो जाएंगी.


Adreno डिवाइस
Adreno डिवाइसों पर, GPU स्लाइस GPU कतार 0 ट्रैक में दिखते हैं और हमेशा क्रम से दिखाए जाते हैं. इसलिए, किसी फ़्रेम के लिए रेंडर पास दिखाने वाले सभी स्लाइस देखे जा सकते हैं और उनका इस्तेमाल, GPU फ़्रेम टाइम को मेज़र करने के लिए किया जा सकता है.


पहले बताई गई Mali की स्थिति की तरह ही: अगर ऐप्लिकेशन Vulkan का इस्तेमाल कर रहा है, तो Vulkan इवेंट ट्रैक, फ़्रेम को लागू करने के लिए सबमिट किए जा रहे काम के बारे में जानकारी देता है. रेंडर पास को हाइलाइट करने के लिए, फ़्रेम से जुड़े Vulkan इवेंट स्लाइस पर क्लिक करें.

कुछ मामलों में, जीपीयू फ़्रेम की सीमाओं को अलग करना ज़्यादा मुश्किल होता है. ऐसा इसलिए होता है, क्योंकि ऐप्लिकेशन का ज़्यादातर हिस्सा जीपीयू पर काम करता है. इन स्थितियों में, अगर आपको GPU में सबमिट किए जा रहे काम के बारे में जानकारी है, तो उस पैटर्न की पहचान की जा सकती है जिससे रेंडर पास लागू किए जा रहे हैं. साथ ही, उस जानकारी से फ़्रेम की सीमाओं का पता लगाया जा सकता है.

जीपीयू काउंटर
अगर किसी ट्रेस में GPU स्लाइस की जानकारी उपलब्ध नहीं है, तो GPU काउंटर ट्रैक का इस्तेमाल करके, GPU फ़्रेम के समय का अनुमान लगाया जा सकता है.
माली के डिवाइस
Mali डिवाइसों पर, GPU के इस्तेमाल वाले ट्रैक का इस्तेमाल करके, ऐसे ऐप्लिकेशन के GPU फ़्रेम टाइम का अनुमान लगाया जा सकता है जो GPU का ज़्यादा इस्तेमाल नहीं करता. जब ऐप्लिकेशन में जीपीयू का इस्तेमाल कम होता है, तो उनमें लगातार ज़्यादा जीपीयू गतिविधि के बजाय, ज़्यादा और कम जीपीयू गतिविधि के नियमित पीरियड होते हैं. GPU इस्तेमाल ट्रैक का इस्तेमाल करके, GPU फ़्रेम के समय का अनुमान लगाने के लिए, ट्रैक में ज़्यादा गतिविधि वाली अवधियों की अवधि मेज़र करें.

अगर ऐप्लिकेशन में ज़्यादा जीपीयू का इस्तेमाल होता है, तो जीपीयू का इस्तेमाल लगातार बहुत ज़्यादा हो सकता है. इस मामले में, GPU गतिविधि को मॉनिटर करने और GPU फ़्रेम के समय का अनुमान लगाने के लिए, फ़्रेगमेंट क्यू के इस्तेमाल और नॉन-फ़्रेगमेंट क्यू के इस्तेमाल ट्रैक का इस्तेमाल किया जा सकता है. फ़्रैगमेंट और नॉन-फ़्रैगमेंट ट्रैक में पैटर्न ढूंढकर, आपको यह अनुमान लगाया जा सकता है कि किसी फ़्रेम की सीमाएं कहां हैं. साथ ही, इसका इस्तेमाल करके जीपीयू फ़्रेम के समय को मेज़र किया जा सकता है.

Adreno डिवाइस
अगर Adreno डिवाइसों पर ऐप्लिकेशन, जीपीयू पर ज़्यादा काम नहीं करता है, तो जीपीयू फ़्रेम टाइम का अनुमान उसी तरह लगाया जा सकता है जिस तरह पिछले सेक्शन में Mali डिवाइसों के लिए बताया गया है.

अगर ऐप्लिकेशन में जीपीयू का ज़्यादा इस्तेमाल होता है और ऐप्लिकेशन में जीपीयू के इस्तेमाल का प्रतिशत लगातार ज़्यादा रहता है, तो जीपीयू फ़्रेम के समय का अनुमान लगाने के लिए, वर्टिक्स निर्देश / सेकंड और फ़्रैगमेंट निर्देश / सेकंड ट्रैक का इस्तेमाल किया जा सकता है. इन ट्रैक के गतिविधि लेवल में पैटर्न ढूंढकर, यह अनुमान लगाया जा सकता है कि किसी फ़्रेम की सीमाएं कहां हैं. साथ ही, जीपीयू फ़्रेम के समय को मेज़र करने के लिए, इसका इस्तेमाल किया जा सकता है.

इन अन्य ट्रैक से मिलती-जुलती जानकारी मिल सकती है:
- शेड किए गए वर्टिसेस / दूसरा
- शेड किए गए फ़्रैगमेंट / सेकंड
- % टाइम शेडिंग वर्टिसेस
- % समय के हिसाब से फ़्रैगमेंट को शेड करना