मैं आपके प्रश्न की व्याख्या करने जा रहा हूं 'क्या मेरा ऐप स्टार्टअप समय पर्याप्त तेज़ है। मैं कैसे जांच सकता हूं कि मैंने जो कुछ भी किया है, मैंने किया है?
स्टार्टअप समय काफी हद तक एक झूठी मीट्रिक है क्योंकि यह डिवाइस और रोम में भिन्न होगा। मुझे लगता है कि आपको सबसे ज्यादा रुचि रखने की संभावना है कि आपके कोड को निष्पादित करने में कितना समय लग रहा है और संभावित रूप से मुख्य धागे को अवरुद्ध कर रहा है।
मुझे यह करने का सबसे प्रभावी तरीका यह है कि ऐप शुरू होने पर Traceview का उपयोग करना है और फिर समीक्षा करना है कि इसे निष्पादित करने में विधि कितनी देर लगती है और यदि मुख्य धागे पर कोई अंतर होता है।
प्रारंभ अनुरेखण:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Debug.startMethodTracing("startup");
}
}
बंद करो ट्रेसिंग:
@Override
public void onViewCreated(final View view, final Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Debug.stopMethodTracing();
}
एक बार ट्रेस एकत्र किया गया है, तो आप कुछ भी है कि स्टार्टअप समय पर एक बड़ा असर रहा है देखने के लिए सक्षम होना चाहिए। मेरे मामले में, नीचे देखा गया, यूआई थ्रेड पर एक बड़ा अंतर था जहां अवरुद्ध किया जा रहा था।
यह मालूम है कि दोनों Crashlytics और Coremetrics randomUUID()
जो तब धागे पर सिंक्रनाइज़ किया जा रहा था के लिए एक कॉल की आवश्यकता होती है और मुख्य थ्रेड को अवरुद्ध कर रहे थे। समाधान कोरमेट्रिक्स कोड को शुरू करने के लिए बस एक नया धागा स्पिन करने के लिए था।
यह ऐसा कुछ है जिसे मैंने स्टार्टअप समय को मापने के साथ अन्यथा नहीं उठाया होगा, लेकिन वास्तव में कुछ सौ मिलीसेकंड द्वारा ऐप 'स्टार्टअप टाइम' को बढ़ा दिया गया है।
यहाँ कोरमीट्रिक initialisation के लिए एक अलग थ्रेड का चक्कर के बाद एक और स्नैपशॉट है:
स्रोत
2015-10-28 10:26:14
"स्टार्टअप समय से मेरा मतलब है 2. और 3. के बीच का अंतर।" वह 1 होगा या संभवतः -1। :-) अधिक गंभीरता से, क्या आप अपना खुद का फर्मवेयर बना रहे हैं, या आप इसे स्टॉक वातावरण से प्राप्त करने की कोशिश कर रहे हैं? साथ ही, क्या यह एक विकास-समय की बात है, या उत्पादन-रनटाइम पूछताछ है? – CommonsWare
मैं इसे विकास के दौरान विभिन्न उपकरणों और एंड्रॉइड संस्करणों पर स्टार्टअप समय को ट्रैक करना चाहता हूं। एक और कारण यह है कि कुछ उपयोगकर्ता ने शिकायत की कि अंतिम अपडेट के बाद से ऐप स्टार्टअप धीमा हो गया है, इसलिए संख्याओं को देखना अच्छा लगेगा। निस्संदेह मैं केवल समय को माप सकता हूं क्योंकि क्रिएट() को बुलाया गया था ... लेकिन वास्तविक स्टार्टअप समय को जानना बेहतर लगता है :) यह मुझे यह भी कहने की अनुमति देता है कि "यह स्टार्टअप समय केवल 5% तक धीमा हो जाता है", इसलिए यह नहीं है बड़ी बात। – fhucho