मैं अपना एंड्रॉइड ऐप कैसे प्रोफाइल कर सकता हूं? [बन्द है]


93

मुझे यह खोजने की आवश्यकता है कि मेरे एंड्रॉइड ऐप में अड़चनें कहां हैं।

मैं किस प्रोफाइलिंग टूल या तकनीक का उपयोग कर सकता हूं?


मैं Android से परिचित नहीं हूँ। क्या आप डिबगर के तहत ऐप चला सकते हैं जिसे आप बाधित कर सकते हैं? यदि ऐसा है, तो यह विधि काम करती है: stackoverflow.com/questions/375913/…
माइक ड्यूनली

मम्म, दिलचस्प। थोड़ा श्रम-गहन, लेकिन अधिक चमकदार प्रदर्शन समस्याओं को दूर करने के लिए संभावित रूप से उपयोगी है। धन्यवाद।
तैदेय

मैं समझता हूं कि आप ऐसा कैसे सोच सकते हैं: stackoverflow.com/questions/2624667/…
माइक डनलवे

आजकल आप ग्रहण के अंदर अच्छी रूपरेखा बना सकते हैं। TraceView आदि के स्टैंडअलोन / मैनुअल लॉन्चिंग को भूल जाओ, मुझे उम्मीद है कि अधिक विवरण के साथ, इसके बारे में एक ब्लॉग लेख लिखूंगा। मुझे पिंग करें यदि आपको अधिक विवरण की आवश्यकता है।
करोलदीपका

2
आप सुझाव देते हैं कि TraceView या DDMS से बेहतर कुछ है। यह क्या है?
पेरी हार्टमैन

जवाबों:


37

आप Traceview का उपयोग कर सकते हैं। यह आदर्श से बहुत दूर है, लेकिन काम करता है। यह आलेख वर्णन करता है कि इसका उपयोग कैसे करना है।


2
जब मैं इसे चलाता हूं तो यह कहता है कि कमांड-लाइन संस्करण को हटा दिया गया है और फिर यह बाहर निकल जाता है। क्या है नया तरीका?
गोनज़ोब्रिन्स

18

DDMS Android के लिए सबसे अच्छा है। डिफ़ॉल्ट रूप से यह ADT प्लगइन के साथ शामिल हो जाता है।

विस्तृत उदाहरण वाला यह दस्तावेज़ आपको डीडीएमएस से निपटने में मदद करना चाहिए।


मेमोरी एनालिसिस के लिए एक्लिप्स मैट की कोशिश करें



11

यह निर्भर करता है कि आप क्या परीक्षण करने जा रहे हैं।

यदि आप एंड्रॉइड के लिए एप्लिकेशन विकसित करते हैं, तो आपको टाइमिंग लॉगर वर्ग की कोशिश करनी चाहिए। टिमिंगलॉगर हेल्पर क्लास के उपयोग का वर्णन करने वाले इस लेख पर एक नज़र डालें ।

एक बहुत अच्छा उपकरण JMeter है और Android के लिए एक प्लगइन भी है।

यदि आप बाहरी उपकरणों का उपयोग नहीं करना चाहते हैं, लेकिन बहुत मानक तरीका है, बीता हुआ समय मापने के लिए, आपको System.nanoTime (!) का उपयोग करना होगा। आपको currentTimeMillis का उपयोग नहीं करना चाहिए, क्योंकि यह दीवार-घड़ी के समय को मापता है, क्योंकि कोई भी कंप्यूटर की घड़ी सही नहीं है (उन्हें सभी को कभी-कभी सही करने की आवश्यकता होती है) एक ऐसी प्रक्रिया है जो सिस्टम घड़ी को लगातार छोटे सुधारों को चलाता है और जारी करता है। छलांग दूसरे सुधार का उल्लेख नहीं है।

हालांकि करंट टाइममिल्स का उपयोग अक्सर किया जाता है, फिर भी समय और समय को मापना गलत है। किसी भी तरह, जब आह्वान में कुछ समय लगता है, तो आपको बहुत छोटे अंतराल पर सही ढंग से समय की उम्मीद नहीं करनी चाहिए। लेकिन यह एंड्रॉइड के साथ काम करने वाला मुद्दा नहीं होना चाहिए।

मैं आपको एक उदाहरण दिखाऊंगा:

long startTime = System.nanoTime();

// run/call the method

long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);

आप इस निशुल्क पुस्तकालय पर भी एक नज़र डाल सकते हैं: http://jetm.void.fm/

आप JMeter के लिए भी ट्यूटोरियल पा सकते हैं ।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.