Traceview की मदद से ट्रेस लॉग देखना

Traceview का अब इस्तेमाल नहीं किया जा सकता. अगर Android Studio 3.2 या उसके बाद के वर्शन का इस्तेमाल किया जा रहा है, तो आपको सीपीयू प्रोफ़ाइलर का इस्तेमाल करना चाहिए. इससे Debug क्लास की मदद से, अपने ऐप्लिकेशन को इंस्ट्रुमेंट करके कैप्चर की गई .trace फ़ाइलों की जांच की जा सकती है. साथ ही, नई मेथड ट्रेस रिकॉर्ड की जा सकती हैं, .trace फ़ाइलें सेव की जा सकती हैं, और ऐप्लिकेशन की प्रोसेस के रीयल-टाइम सीपीयू इस्तेमाल की जांच की जा सकती है.

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

अहम जानकारी: कमांड-लाइन से dmtracedump का इस्तेमाल करके, अपने ट्रेस लॉग फ़ाइलों के ग्राफ़िकल कॉल-स्टैक डायग्राम जनरेट किए जा सकते हैं.

अगर आपको Debug क्लास का इस्तेमाल करके रिकॉर्ड किए गए ट्रेस लॉग देखने की ज़रूरत नहीं है, तो Android Studio 3.0 और इसके बाद के वर्शन में शामिल सीपीयू प्रोफ़ाइलर का इस्तेमाल करें. इससे अपने ऐप्लिकेशन के थ्रेड की जांच की जा सकती है और मेथड ट्रेस रिकॉर्ड किए जा सकते हैं.

Traceview का इस्तेमाल करके ट्रेस लॉग खोलना

Android Studio में Traceview की मदद से ट्रेस लॉग खोलने के लिए, यह तरीका अपनाएं:

  1. Android Device Monitor शुरू करें.
  2. Android Device Monitor में, File > Open File चुनें.
  3. उस .trace फ़ाइल पर जाएं जिसकी आपको जांच करनी है.
  4. खोलें पर क्लिक करें.

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

ध्यान दें: कमांड लाइन से traceview चलाने की सुविधा अब उपलब्ध नहीं है.

Traceview के बारे में खास जानकारी

ट्रेस लॉग खोलने के बाद, Traceview इन दो पैन का इस्तेमाल करके लॉग डेटा दिखाता है:

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

नीचे दिए गए सेक्शन में, traceview के आउटपुट पैन के बारे में ज़्यादा जानकारी दी गई है.

टाइमलाइन पैन

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

Traceview टाइमलाइन पैन

पहली इमेज. Traceview का टाइमलाइन पैन.

प्रोफ़ाइल पैनल

आकृति 2 में दिखाए गए तरीके से, प्रोफ़ाइल पैन में उन सभी तरीकों की सूची दिखती है जिन्हें सिस्टम ने ट्रेस लॉग की अवधि के दौरान लागू किया था. साथ ही, उन तरीकों को लागू करने में लगा समय भी दिखता है. जिस तरीके से किसी दूसरे तरीके को कॉल किया जाता है उसे पैरंट कहा जाता है. साथ ही, पैरंट जिन तरीकों को कॉल करता है उन्हें चाइल्ड कहा जाता है. किसी तरीके पर क्लिक करके उसे चुनने पर, उसके पैरंट और चाइल्ड, दोनों को दो अलग-अलग नोड में दिखाया जाता है.

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

प्रोफ़ाइल पैन में मौजूद हर टॉप-लेवल नोड के लिए, टेबल में मौजूद कॉल + रिक, कॉल/कुल कॉलम (आंकड़े 2 में नहीं दिखाया गया है) से, किसी तरीके को किए गए कॉल की संख्या और रिकर्सिव कॉल की संख्या के बारे में पता चलता है. इसके अलावा, पैरंट और चाइल्ड के तरीकों के लिए, इस कॉलम में उन कॉल की संख्या दिखती है जिनमें यह तरीका, टॉप-लेवल नोड में मौजूद तरीके का चाइल्ड या पैरंट था.

Traceview प्रोफ़ाइल पैनल.

दूसरी इमेज. Traceview का प्रोफ़ाइल पैनल.

Traceview से जुड़ी समस्याएं

Traceview लॉगिंग, थ्रेड को ठीक से हैंडल नहीं करती. इस वजह से, ये समस्याएं होती हैं:

  • अगर प्रोफ़ाइलिंग के दौरान कोई थ्रेड बंद हो जाती है, तो थ्रेड का नाम नहीं दिखता. यह समस्या Android 5.1 और इसके बाद के वर्शन में ठीक कर दी गई है;
  • वीएम, थ्रेड आईडी का फिर से इस्तेमाल करता है. अगर कोई थ्रेड बंद हो जाता है और दूसरा शुरू होता है, तो उन्हें एक ही आईडी मिल सकता है.