2011-10-09 17 views
20

मुझे केवल एक प्रोफाइलिंग टूल मिला है - http://code.google.com/p/android-ndk-profiler/। अब तक इसे काम करने में सक्षम नहीं था, इसलिए मुझे आश्चर्य है कि क्या अन्य टूल्स उपलब्ध हैं। मुझे किसी भौतिक डिवाइस पर प्रोफ़ाइल करने की आवश्यकता है, क्योंकि मेरा एप्लिकेशन एमुलेटर पर भी काम नहीं करता है।एंड्रॉइड: मूल कोड प्रोफाइलिंग के लिए कोई उपकरण है?

उत्तर

7

एंड्रॉइड-एनडीके प्रोफाइलर काम करना आसान नहीं है। आपको here चरणों का पालन करने की आवश्यकता है।

  • सुनिश्चित करें कि आपके android.mk सही है और आप NDK_MODULE_PATH निर्यात कि:

    यहाँ कुछ सुझाव है कि मुझे सफलता के लिए नेतृत्व कर रहे हैं।

  • सही ढंग से निम्न कार्यों का उपयोग करें

    monstartup ("your_lib.so");

    moncleanup();

  • यदि gmon.out उत्पन्न होता है तो अब आपको डिवाइस से खींचने की आवश्यकता है, लेकिन आपके पीसी में कहीं भी नहीं। मेरे लिए यह तभी काम करता है मैं आवेदन के फ़ोल्डर में जाएँ (जहां JNI, obj, रेस और अन्य फ़ोल्डर कर रहे हैं) और मुझे क्या करना:

    सांत्वना $ adb pull sdcard/gmon.out

  • फिर चलाने gprof। अपने एनडीके टूलचेन के सभी संस्करणों को आजमाएं। मेरे लिए केवल एक ही काम किया, यह एक:

    सांत्वना $ ~/पुस्तकालय/android-NDK-R9/toolchains/हाथ-linux-androideabi-4.8/पहले से बनाए गए/लिनक्स-x86_64/bin/हाथ-linux-androideabi -gprof obj/स्थानीय/armeabi-v7a/libxxxx.so> profile.txt

8

Shiny profiler प्लेटफार्म स्वतंत्र है, यह कहीं भी चलता है और इसकी मानक सी ++ कंपाइलर के अलावा कोई निर्भरता नहीं है। इसके अधिक सरल उपयोग में, आपको बस इतना करना है कि सभी कार्यों और विधियों (या कम से कम वे जिन्हें आप प्रोफाइल करना चाहते हैं) की शुरुआत में एक मैक्रो जोड़ें।

+2

कहा जाता है को संशोधित परियोजना में हर कार्य दर्दनाक है एक नया उपकरण है। मैं स्वचालित उपकरण पसंद करेंगे। लेकिन टिप के लिए धन्यवाद! –

+3

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

+0

समझ में आता है! स्वचालित मैक्रो सम्मिलन, मेरा मतलब है। धन्यवाद! –

2

इंटेल वीट्यून एम्पलीफायर। यह प्रोफाइलर आपको रूट्स या किसी भी ओएस संशोधन के बिना एंड्रॉइड डिवाइस पर स्टैक्स के साथ हॉटस्पॉट एकत्र करने की अनुमति देता है। यहां सरल मार्गदर्शिका है: http://software.intel.com/en-us/articles/using-intel-vtune-amplifier-on-non-rooted-android-devices

+0

लगभग समय वे एंड्रॉइड को लक्षित करना शुरू करते हैं। लेकिन क्या वे एआरएम का समर्थन करते हैं, या सिर्फ x86? –

+0

हां, यह दोनों आर्क पर अच्छी तरह से काम करता है। –

+0

हाय इलिया! :) क्या यह वास्तव में एंड्रॉइड-एनएनडी-प्रोफाइलर से बेहतर है? इसकी कीमत कितनी होती है? –

1

NDK r13b में simpleperf

+0

सरलपरफ https://android.googlesource.com/platform/system/extras/+/master/simpleperf/README.md पर प्रलेखित – osgx

संबंधित मुद्दे