Intereting Posts
स्क्रॉलटॉप एंड्रॉइड मोबाइल में काम नहीं कर रहा है एंड्रॉइड सॉफ्टके बोर्ड, अपने सुझाव कैसे तैयार करें SQLite से सभी पंक्तियों को प्राप्त करें Android AlertDialog से पाठ कॉपी करें? समर्थन "असली" पुस्तकालयों और "वर्गों को नहीं मिला" गतिविधि से गतिविधि तक संदर्भ कैसे पारित किया जाए? क्या मौजूदा स्क्लिट डीबी फ़ाइल को दूसरे डीबी फ़ाइल के साथ phongeap में निर्देशिका से बदलना संभव है मेमोरी अपवाद के लिए मेमोरी समाशोधन इच्छा एचडी में दुर्घटनाग्रस्त ऐप गतिशील रूप से नीचे की शीट की ऊंचाई को बदल दें Android स्टूडियो में रिलीज़ बिल्ड पर लॉगकैट सक्षम करें गूगल मैप्स V2 "दुर्भाग्य से ऐप बंद कर दिया है" कैसे एंड्रॉइड में एकाधिक छविदृश्य पर ज़ूम ज़ूम और स्वाइप करें? एंड्रॉइड क्रोम में यूनिकोड प्रतिस्थापन इमोजी अक्षम करें? एंड्रॉइड – async कार्यों के लिए वैकल्पिक?

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

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

क्या डीडीएमएस में तरीकों की निचली पेड़-तालिका सूची को फ़िल्टर करने का एक तरीका है, एक चयनित धागा (मेरे मामले में 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/