Systrace रिपोर्ट में नेविगेट करना

इस गाइड में, Systrace रिपोर्ट को समझने और उसका इस्तेमाल करने का तरीका बताया गया है. Perfetto रिपोर्ट को समझने के लिए, ट्रेस प्रोसेसर का दस्तावेज़ देखें.

किसी रिपोर्ट के एलिमेंट

Systrace, आउटपुट के तौर पर एक एचटीएमएल फ़ाइल जनरेट करता है. इसमें कई सेक्शन होते हैं. इस रिपोर्ट में, हर प्रोसेस के थ्रेड की सूची दी गई होती है. अगर कोई थ्रेड यूज़र इंटरफ़ेस (यूआई) फ़्रेम रेंडर करता है, तो रिपोर्ट में टाइमलाइन के साथ-साथ रेंडर किए गए फ़्रेम भी दिखते हैं. रिपोर्ट में बाईं से दाईं ओर जाने पर, समय आगे बढ़ता है.

ऊपर से नीचे की ओर, रिपोर्ट में ये सेक्शन होते हैं.

उपयोगकर्ता के इंटरैक्शन

पहले सेक्शन में ऐसे बार होते हैं जो आपके ऐप्लिकेशन या गेम में उपयोगकर्ता के खास इंटरैक्शन को दिखाते हैं. जैसे, डिवाइस की स्क्रीन पर टैप करना. ये इंटरैक्शन, टाइम मार्कर के तौर पर काम करते हैं.

सीपीयू की गतिविधि

अगले सेक्शन में ऐसे बार दिखाए गए हैं जो हर सीपीयू में थ्रेड की गतिविधि को दिखाते हैं. बार, आपके ऐप्लिकेशन या गेम के साथ-साथ सभी ऐप्लिकेशन में सीपीयू की गतिविधि दिखाते हैं.

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

Systrace रिपोर्ट का स्क्रीनशॉट
पहली इमेज. Systrace रिपोर्ट में सीपीयू की गतिविधि का सैंपल (छोटा किया गया व्यू)

Systrace रिपोर्ट का स्क्रीनशॉट
दूसरी इमेज. सीपीयू की गतिविधि का सैंपल (बड़ा किया गया व्यू), जिसमें Systrace रिपोर्ट में सीपीयू क्लॉक फ़्रीक्वेंसी दिखाई गई है

सिस्टम इवेंट

इस सेक्शन में मौजूद हिस्टोग्राम, सिस्टम लेवल के खास इवेंट दिखाते हैं. जैसे, टेक्सचर की संख्या और खास ऑब्जेक्ट का कुल साइज़.

SurfaceView लेबल वाले हिस्टोग्राम की ज़्यादा बारीकी से जांच की जानी चाहिए. काउंट से पता चलता है कि कंपोज़ किए गए कितने फ़्रेम बफ़र, डिसप्ले पाइपलाइन में पास किए गए हैं और डिवाइस की स्क्रीन पर दिखाए जाने का इंतज़ार कर रहे हैं. ज़्यादातर डिवाइसों में डबल या ट्रिपल बफ़रिंग होती है. इसलिए, यह संख्या हमेशा 0, 1 या 2 होती है.

फ़िगर 3 में, Surface Flinger प्रोसेस को दिखाने वाले अन्य हिस्टोग्राम दिए गए हैं. इनमें VSync इवेंट और यूज़र इंटरफ़ेस (यूआई) थ्रेड स्वैप वर्क शामिल है:

Systrace रिपोर्ट का स्क्रीनशॉट
तीसरी इमेज. Systrace रिपोर्ट में Surface Flinger ग्राफ़ का सैंपल

फ़्रेम दिखाना

यह सेक्शन, अक्सर रिपोर्ट में सबसे लंबा होता है. इसमें कई रंगों वाली एक लाइन होती है. इसके बाद, बार के स्टैक होते हैं. ये शेप, बनाई गई किसी थ्रेड की स्थिति और फ़्रेम स्टैक को दिखाते हैं. स्टैक का हर लेवल, beginSection() को किए गए कॉल या कस्टम ट्रेस इवेंट की शुरुआत को दिखाता है. यह इवेंट, आपने अपने ऐप्लिकेशन या गेम के लिए तय किया है.

बार के हर स्टैक के ऊपर मौजूद अलग-अलग रंगों वाली लाइन, समय के साथ किसी थ्रेड की स्थितियों के सेट को दिखाती है. लाइन के हर सेगमेंट में, इनमें से कोई एक रंग हो सकता है:

हरा: प्रोसेस में है
थ्रेड, किसी प्रोसेस से जुड़ा काम पूरा कर रही है या किसी रुकावट का जवाब दे रही है.
नीला: रन किया जा सकता है
थ्रेड को चलाया जा सकता है, लेकिन फ़िलहाल इसे शेड्यूल नहीं किया गया है.
सफ़ेद: सो रहा है
थ्रेड को कोई काम नहीं करना है. ऐसा शायद इसलिए है, क्योंकि थ्रेड को म्यूटेक्स लॉक पर ब्लॉक किया गया है.
नारंगी: ऐसी नींद जिसमें कोई रुकावट न आए
थ्रेड, I/O पर ब्लॉक है या डिस्क ऑपरेशन के पूरा होने का इंतज़ार कर रहा है.
बैंगनी: नींद में खलल डाला जा सकता है
थ्रेड को किसी अन्य कर्नल ऑपरेशन पर ब्लॉक किया गया है. आम तौर पर, यह मेमोरी मैनेजमेंट होता है.

कीबोर्ड शॉर्टकट

नीचे दी गई टेबल में, Systrace रिपोर्ट देखते समय उपलब्ध कीबोर्ड शॉर्टकट की सूची दी गई है:

सुरक्षा कुंजी ब्यौरा
पश्चिम ट्रेस टाइमलाइन पर ज़ूम इन करें.
A ट्रेस की टाइमलाइन पर बाईं ओर पैन करें.
दक्षिण ट्रेस टाइमलाइन को ज़ूम आउट करें.
D ट्रेस टाइमलाइन पर दाईं ओर पैन करें.
पूर्व ट्रेस टाइमलाइन को माउस की मौजूदा जगह पर बीच में रखें.
M मौजूदा सिलेक्शन को फ़्रेम करें.
1 मौजूदा समय में चालू सिलेक्शन मॉडल को "select" मोड में बदलें. यह माउस सिलेक्टर टूलबार में दिखने वाले पहले बटन से मेल खाता है. दाईं ओर मौजूद इमेज देखें. Systrace रिपोर्ट में माउस सिलेक्टर टूलबार का स्क्रीनशॉट
2 मौजूदा समय में चालू सिलेक्शन मॉडल को "पैन" मोड में बदलें. यह माउस सिलेक्टर टूलबार में दिखने वाले दूसरे बटन से मेल खाता है. दाईं ओर मौजूद इमेज देखें. Systrace रिपोर्ट में माउस सिलेक्टर टूलबार का स्क्रीनशॉट
3 अभी चालू किए गए सिलेक्शन मॉडल को "ज़ूम" मोड में बदलें. यह माउस सिलेक्टर टूलबार में दिखने वाले तीसरे बटन से मेल खाता है. दाईं ओर मौजूद इमेज देखें. Systrace रिपोर्ट में माउस सिलेक्टर टूलबार का स्क्रीनशॉट
4 मौजूदा समय में चालू सिलेक्शन मॉडल को "टाइमिंग" मोड पर बदलें. यह माउस सिलेक्टर टूलबार में दिखने वाले चौथे बटन से मेल खाता है. दाईं ओर मौजूद इमेज देखें. Systrace रिपोर्ट में माउस सिलेक्टर टूलबार का स्क्रीनशॉट
G चुने गए टास्क की शुरुआत में ग्रिड दिखाओ.
Shift + G इससे, चुने गए टास्क के आखिर में ग्रिड दिखता है.
लेफ़्ट ऐरो अभी चुनी गई टाइमलाइन पर पिछला इवेंट चुनें.
राइट ऐरो अभी चुनी गई टाइमलाइन पर अगला इवेंट चुनें.

परफ़ॉर्मेंस से जुड़ी समस्याओं की जांच करना

Systrace रिपोर्ट के साथ इंटरैक्ट करते समय, रिकॉर्डिंग की अवधि के दौरान डिवाइस के सीपीयू के इस्तेमाल की जांच की जा सकती है. एचटीएमएल रिपोर्ट में नेविगेट करने के बारे में जानने के लिए, कीबोर्ड शॉर्टकट सेक्शन देखें या ? बटन पर क्लिक करें. यह रिपोर्ट में सबसे ऊपर दाएं कोने में मौजूद होता है.

नीचे दिए गए सेक्शन में, परफ़ॉर्मेंस से जुड़ी समस्याओं का पता लगाने और उन्हें ठीक करने के लिए, रिपोर्ट में मौजूद जानकारी की जांच करने का तरीका बताया गया है.

परफ़ॉर्मेंस से जुड़ी समस्याओं की पहचान करना

Systrace रिपोर्ट में नेविगेट करते समय, परफ़ॉर्मेंस से जुड़ी समस्याओं का पता आसानी से लगाया जा सकता है. इसके लिए, इनमें से एक या उससे ज़्यादा काम करें:

  • समय के इंटरवल के चारों ओर एक रेक्टैंगल बनाकर, अपनी पसंद का समय इंटरवल चुनें.
  • रूलर टूल का इस्तेमाल करके, समस्या वाली जगह पर निशान लगाएं या उसे हाइलाइट करें.
  • व्यू के विकल्प > VSync हाइलाइट करें पर क्लिक करके, डिसप्ले रीफ़्रेश करने की हर कार्रवाई दिखाएं.

यूज़र इंटरफ़ेस (यूआई) फ़्रेम और सूचनाओं की जांच करना

पर चर्चा देखें.

इमेज 4 में दिखाए गए तरीके से, Systrace रिपोर्ट में यूज़र इंटरफ़ेस (यूआई) फ़्रेम रेंडर करने वाली हर प्रोसेस की सूची होती है. साथ ही, टाइमलाइन के साथ रेंडर किए गए हर फ़्रेम की जानकारी होती है. जिन फ़्रेम को रेंडर होने में 16.6 मिलीसेकंड से कम समय लगता है उन्हें हरे रंग के फ़्रेम सर्कल से दिखाया जाता है. ऐसा इसलिए, ताकि 60 फ़्रेम प्रति सेकंड की दर को बनाए रखा जा सके. रेंडर होने में 16.6 मि॰से॰ से ज़्यादा समय लेने वाले फ़्रेम को पीले या लाल रंग के फ़्रेम सर्कल से दिखाया जाता है.

फ़्रेम का ज़ूम इन किया गया व्यू
चौथी इमेज. ज़ूम इन करने के बाद, लंबे समय तक चलने वाले फ़्रेम का Systrace डिसप्ले

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

समस्या वाला फ़्रेम चुना गया
पांचवीं इमेज. समस्या वाला फ़्रेम चुनने पर, ट्रेस रिपोर्ट के नीचे एक सूचना दिखती है, जिसमें समस्या की जानकारी होती है

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

टूल ने आपके ट्रेस में जो भी सूचनाएं पाई हैं उन्हें देखने के लिए, विंडो में सबसे दाईं ओर मौजूद सूचनाएं टैब पर क्लिक करें. साथ ही, यह भी देखें कि डिवाइस ने हर सूचना को कितनी बार ट्रिगर किया है. इसे इमेज 6 में दिखाया गया है. सूचनाएं पैनल की मदद से, यह देखा जा सकता है कि ट्रेस में कौनसी समस्याएं हुई हैं और वे कितनी बार जंक का कारण बनती हैं. इस पैनल को ठीक किए जाने वाले बग की सूची के तौर पर देखा जा सकता है. अक्सर, किसी एक क्षेत्र में छोटा सा बदलाव या सुधार करने से, सूचनाओं का पूरा सेट हट सकता है.

सूचना वाला टैब दिखाया गया
छठी इमेज. सूचना बटन पर क्लिक करने से, सूचना टैब दिखता है

अगर आपको यूज़र इंटरफ़ेस (यूआई) थ्रेड पर बहुत ज़्यादा काम होता हुआ दिखता है, तो इनमें से किसी एक तरीके का इस्तेमाल करें. इससे यह पता लगाने में मदद मिलेगी कि कौनसे तरीके बहुत ज़्यादा सीपीयू समय का इस्तेमाल कर रहे हैं:

  • अगर आपको पता है कि किन तरीकों की वजह से परफ़ॉर्मेंस में रुकावटें आ सकती हैं, तो इन तरीकों में ट्रेस मार्कर जोड़ें. ज़्यादा जानने के लिए, अपने कोड में कस्टम इवेंट तय करने के तरीके के बारे में दी गई गाइड देखें.
  • अगर आपको यूज़र इंटरफ़ेस (यूआई) से जुड़ी परफ़ॉर्मेंस की समस्याओं के सोर्स के बारे में नहीं पता है, तो Android Studio में उपलब्ध सीपीयू प्रोफ़ाइलर का इस्तेमाल करें. ट्रेस लॉग जनरेट किए जा सकते हैं. इसके बाद, सीपीयू प्रोफ़ाइलर का इस्तेमाल करके, उन्हें इंपोर्ट और उनकी जांच की जा सकती है.