Intereting Posts
एंड्रॉइड – SearchView सुझावों में टेक्स्ट ट्रांस्क्शन को रोकें? कई बटन के लिए एंड्रॉइड विजेट onclick श्रोता पॉपअपविंडो टच इंटरटेक्टर काम नहीं कर रहा है डिवाइस सार्वजनिक आईपी निर्धारित करें एंड्रॉइड बूट-अप ब्रॉडकास्ट नहीं शुरू कर रहा है एंड्रॉइड पूर्ण स्क्रीन मोड में शीर्ष लुप्त होती किनारे से छुटकारा पाने के लिए कैसे? वरीयता कक्ष वर्ग नहीं मिला आउटपुटस्ट्रीम वाइटर जोड़ नहीं करता AdMob: अनुपलब्ध XML विशेषता adUnitID एवीडी हार्डवेयर बटन सक्षम नहीं हैं एडीटी पर बिल्डर्स 'एंड्रॉइड रिसोर्स मैनेजर' चलने वाली त्रुटियां एंड्रॉइड "सीपीयू का अनुमान लगाया जा सकता है" बग एंड्रॉइड एसडीके 25.1.3 में अपग्रेड कैसे किया जाता है? एंड्रॉइड। support.v4.app.Fragment.setUserVisibleHint एप के शुरू होने पर नल पॉइंटर com.google.firebase.database.DatabaseException: सेट करने के लिए कॉलसमानता सक्षम () FirebaseDatabase आवृत्ति के किसी भी अन्य उपयोग से पहले किया जाना चाहिए

एंड्रॉइड – डीडीएमएस द्वारा एक विशिष्ट धागा (यूआई थ्रेड) की रूपरेखा

मैं कुछ परिस्थितियों में अपने ऐप में यूआई धागे पर फ्रीज का एक कारण खोजने का प्रयास कर रहा हूं
मैंने ऐप को डीडीएमएस प्रोफाइलिंग के माध्यम से चलाया है लेकिन नीचे के पेड़-तालिका दृश्य में मैं सभी धागे को बुलाए गए सभी तरीकों को देखता हूं, जबकि मैं केवल मुख्य थ्रेड पर ध्यान केंद्रित करना चाहता हूं।

क्या डीडीएमएस में तरीकों की निचली पेड़-तालिका सूची को फ़िल्टर करने का एक तरीका है, एक चयनित धागा (मेरे मामले में UI थ्रेड) के लिए केवल आँकड़े शामिल करने के लिए?

एक उप-प्रश्न: क्या वहां कुछ अच्छे एंड्रॉइड प्रोफाइलर हैं?

Solutions Collecting From Web of "एंड्रॉइड – डीडीएमएस द्वारा एक विशिष्ट धागा (यूआई थ्रेड) की रूपरेखा"

UI ऐसा करने का एक तरीका प्रदान नहीं करता है – आपको समयरेखा को स्किम करना होगा और व्यस्त दिखने वाले वर्गों पर क्लिक करना होगा।

ऐसा कोई मोटा दृष्टिकोण है जो आप चाहते हैं।

SDK में एक उपकरण शामिल है जिसे dmtracedump कहा जाता है जिसे .trace फ़ाइल से रिपोर्ट उत्पन्न करने के लिए इस्तेमाल किया जा सकता है। जब आप /tmp/ddms4176182990461128308.trace साथ ट्रेस को पकड़ लेते हैं, तो फ़ाइल का स्थान नोट करें (मेरा /tmp/ddms4176182990461128308.trace था)। लिनक्स पर, आप चलाएंगे:

 dmtracedump -o <filename> > trace.txt 

यह आपको ऐसी फाइल देगा जो दिखता है:

 VERSION: 3 Threads (13): 1 main 2 GC 3 Signal Catcher 4 JDWP ... Trace (threadID action usecs class.method signature): 4 xit 0 ..dalvik/system/VMDebug.startMethodTracingDdms (IIZI)V 4 xit 0 .android/os/Debug.startMethodTracingDdms (IIZI)V 4 xit 0 android/ddm/DdmHandleProfiling.handleMPSS (Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; ... 

जैसा कि आउटपुट में बताया गया है, प्रत्येक पंक्ति एक थ्रेड आईडी से शुरू होती है जो शीर्ष पर तालिका से मेल खाती है (इसलिए धागा आईडी 4 जेडीडब्ल्यूपी धागा है, जो डीडीएमएस ट्रैफ़िक को संभालता है)। इसके बाद एक एक्शन कोड: विधि प्रविष्टि के लिए xit , विधि निकास के लिए unr , या एक अपवाद के कारण स्टैक अनार के लिए अनिल। उसके बाद प्रति-थ्रेड सीपीयू टाइम स्टाम्प आता है (यानी इस धागे द्वारा उपयोग किए जाने वाले संचयी सीपीयू समय), फिर विधि का नाम और हस्ताक्षर।

यदि आप केवल मुख्य UI थ्रेड (धागा आईडी 1) देखना चाहते हैं, तो आप इसका उपयोग कर सकते हैं:

 grep "^ 1 " trace.txt 

अब यह आउटपुट पार्स करने का एक सरल मामला है। 🙂

यदि आप ट्रेस फाइल से बाहर के traceview हुए डेटा के लिए आंकड़े traceview , तो इसे संभालना आसान होगा, फिर बस नई फाइल को traceview टूल (एसडीके के साथ शामिल) के साथ traceview । यदि आप एक .trace फ़ाइल खोलते हैं तो आप देख सकते हैं कि यह पाठ का एक हिस्सा है जिसके बाद बाइनरी डेटा का एक हिस्सा होता है आपको एक प्रोग्राम लिखना होगा जो पाठ को पास करता है, फिर द्विआधारी भाग को पार्स करता है और किसी को भी आपकी रुचि के अलावा किसी धागा आईडी के साथ छोड़ देता है। प्रारूप सरल है – फिक्स्ड साइज रिकॉर्ड का एक संग्रह – प्रोफाइलिंग कोड के शीर्ष के निकट एक टिप्पणी में वर्णित

(मुझे नहीं पता है कि किसी ने पहले से ही यह लिखा है।)

कुछ धागे (उदाहरण के लिए UI) पर अपना कोड गतिविधि (कॉल स्टैक के साथ हॉटस्पॉट) देखने के लिए मैं सिस्टम स्टूडियो से इंटेल वीट्यून का उपयोग करने का प्रस्ताव करता हूं। आप अपने एंड्रॉइड डिवाइस पर मूल हॉटस्पॉट प्रोफाइल को इकट्ठा कर सकते हैं, नीचे के नीचे टैब खोलें और समूहिंग: थ्रेड / फंक्शन / कॉलस्टैक का चयन कर सकते हैं। उसके बाद आप अपने आवेदन का प्रति-धागा हॉटस्पॉट-प्रोफाइल देखते हैं। (संलग्न स्क्रीनशॉट में विवरण देखें) यहां छवि विवरण दर्ज करें

यहां VTune का उपयोग करने के लिए ट्यूटोरियल है: http://software.intel.com/en-us/articles/using-intel-vtune-amplifier-on-non-rooted-android-devices

सबसे अच्छा एंड्रॉइड प्रोफाइलर निश्चित रूप से "ग्रहण मेमोरी एनालाइज़र" है यह आपको अपनी याददाश्त का एक स्नैपशॉट लेने की अनुमति देता है और इस पर गहराई से देखता हूं। कृपया इसके बारे में अधिक जानने के लिए नीचे दिए गए लिंक पर एक नज़र डालें।

http://eclipsesource.com/blogs/2013/01/21/10-tips-for-using-the-eclipse-memory-analyzer/