परफ़ेटो

perfetto एक ऐसा टूल है जिसकी मदद से, Android डिवाइस Android डीबग ब्रिज (ADB). शुरू करें adb shell perfetto ... निर्देश का इस्तेमाल करने वाला perfetto टूल. perfetto, अलग-अलग सेवाओं का इस्तेमाल करता है आपके डिवाइस से परफ़ॉर्मेंस के ट्रेस इकट्ठा करने के सोर्स. जैसे:

  • कर्नेल से जानकारी के लिए ftrace
  • सेवाओं और ऐप्लिकेशन में यूज़र स्पेस के बारे में जानकारी के लिए atrace
  • सेवाओं और ऐप्लिकेशन के नेटिव मेमोरी के इस्तेमाल की जानकारी के लिए heapprofd

यह पेज perfetto को कॉल करने और इसे की ज़रूरत होगी. ज़्यादा जानकारी के लिए, perfetto दस्तावेज़.

वाक्य-विन्यास

इस सेक्शन में बताया गया है कि अलग-अलग मोड के लिए, ADB को perfetto कॉल करने का तरीका कैसे इस्तेमाल किया जाता है और ट्रेस जनरेट करेंगे.

डेटा सोर्स चुनना

perfetto में नीचे दिए गए दो मोड शामिल हैं, जो डेटा सोर्स तय करते हैं यह आपकी ट्रेस रिकॉर्ड करने के लिए इस्तेमाल करता है:

  • लाइट मोड: यह डेटा सोर्स का सिर्फ़ एक सबसेट चुन सकता है, खास तौर पर atrace और ftrace. हालांकि, इस मोड में ऐसा इंटरफ़ेस उपलब्ध है जो systrace.
  • सामान्य मोड: इसका कॉन्फ़िगरेशन, प्रोटोकॉल बफ़र में होता है और आपको अलग-अलग डेटा सोर्स का इस्तेमाल करके, perfetto की ज़्यादा सुविधाओं का फ़ायदा पाएं atrace और ftrace से.

सामान्य विकल्प

इनमें से किसी एक में perfetto का इस्तेमाल करते समय, नीचे दी गई टेबल में उपलब्ध विकल्पों की सूची दी गई है मोड:

टेबल 1. उपलब्ध सामान्य की सूची परफ़ेटो टूल के विकल्प.

विकल्प ब्यौरा
--background |
-d
perfetto तुरंत कमांड-लाइन इंटरफ़ेस से बाहर निकल जाता है और आगे बढ़ जाता है बैकग्राउंड में ट्रेस रिकॉर्ड करना.
--background-wait | -D --background की तरह, लेकिन सभी के लिए इंतज़ार (30 सेकंड तक) होता है डेटा सोर्स को बाहर निकलने से पहले शुरू करें. बाहर निकलें अगर स्वीकार की गई सहमति को स्वीकार कर लिया जाता है, तो कोड शून्य होता है मिल गया हो और कोई गड़बड़ी न हो (गड़बड़ी या टाइम आउट).
--alert-id इस ट्रेस को ट्रिगर करने वाली सूचना का आईडी.
--config-id ट्रिगर करने वाले कॉन्फ़िगरेशन का आईडी.
--config-uid कॉन्फ़िगरेशन को रजिस्टर करने वाले ऐप्लिकेशन का यूआईडी.
--subscription-id इस ट्रेस को ट्रिगर करने वाली सदस्यता का आईडी.
--out OUT_FILE |
-o OUT_FILE

आउटपुट ट्रेस फ़ाइल या stdout के लिए - का मनचाहा पाथ तय करता है. perfetto, इस फ़्लैग करने की ज़रूरत नहीं है. आउटपुट फ़ॉर्मैट, इसमें बताए गए फ़ॉर्मैट के साथ कंपाइल होता है एओएसपी trace.proto.

ध्यान दें: आपको आउटपुट फ़ाइल में सेव किया जाएगा. आम तौर पर, फ़ाइलों को /data/misc/perfetto-traces फ़ोल्डर.

--upload पूरा होने पर, ट्रेस को उस पैकेज में पास करता है जिसे प्रोटो ट्रेस कॉन्फ़िगरेशन में IncidentReportConfig मैसेज.
--no-guardrails यह विकल्प चालू करते समय, बहुत ज़्यादा संसाधन के इस्तेमाल से सुरक्षा बंद कर देता है जांच के दौरान --upload फ़्लैग.
--reset-guardrails सुरक्षा के उपायों की स्थायी स्थिति को रीसेट करता है और जांच के लिए बाहर निकल जाता है.
--rsave-for-bugreport अगर bugreport_score के साथ ट्रेस होता है > 0 चल रहा है, ट्रेस को किसी फ़ाइल में सेव करता है. पूरा हो जाने पर पाथ का आउटपुट देता है.
--query सेवा की स्थिति के बारे में क्वेरी करता है और उसे ऐसे टेक्स्ट के तौर पर प्रिंट करता है जिसे कोई भी व्यक्ति पढ़ सकता है.
--query-raw --query की तरह, लेकिन रॉ प्रोटो-एन्कोडेड बाइट को प्रिंट करता है tracing_service_state.proto.
--help | -h perfetto टूल के लिए सहायता टेक्स्ट को प्रिंट करता है.

हल्के रंग वाला मोड

लाइट मोड में perfetto का इस्तेमाल करने का सामान्य सिंटैक्स इस तरह है:

 adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ]
             [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]...
             --out FILE

perfetto का इस्तेमाल करते समय उपलब्ध विकल्पों की सूची नीचे दी गई टेबल में दी गई है हल्के रंग वाला मोड:

दूसरी टेबल. उपलब्ध perfetto की सूची हल्के रंग वाले मोड का इस्तेमाल करते समय टूल के विकल्प.

विकल्प ब्यौरा
--time TIME[s|m|h] |
-t TIME[s|m|h]
इसकी मदद से, ट्रेस की अवधि सेकंड, मिनट या घंटे के हिसाब से सेट की जाती है. उदाहरण के लिए, --time 1m एक मिनट की ट्रेस अवधि बताता है. डिफ़ॉल्ट तौर पर, यह अवधि 10 सेकंड होती है.
--buffer SIZE[mb|gb] |
-b SIZE[mb|gb]
इससे पता चलता है कि रिंग बफ़र का साइज़, मेगाबाइट (एमबी) या गीगाबाइट (जीबी) में कैसा है. डिफ़ॉल्ट पैरामीटर --buffer 32mb है.
--size SIZE[mb|gb] |
-s SIZE[mb|gb]
फ़ाइल का ज़्यादा से ज़्यादा साइज़ मेगाबाइट (एमबी) या गीगाबाइट (जीबी) में बताता है. इन्होंने बदलाव किया है डिफ़ॉल्ट रूप से, perfetto सिर्फ़ इन-मेमोरी रिंग-बफ़र का इस्तेमाल करता है.
--app | -a Android (atrace) ऐप्लिकेशन का नाम

इन विकल्पों के बाद, इवेंट की खास जानकारी देने वाले डिवाइसों की सूची दी जाती है:

तीसरी टेबल. इसके लिए इवेंट स्पेसिफ़िकेशन की सूची हल्के रंग वाला मोड.

इवेंट ब्यौरा
ATRACE_CAT इस नीति से, उन atrace कैटगरी के बारे में पता चलता है जिनके लिए आपको ट्रेस रिकॉर्ड करना है. उदाहरण के लिए, नीचे दिया गया कमांड, atrace का इस्तेमाल करके विंडो मैनेजर को ट्रेस करता है:
    adb shell perfetto --out FILE wm
    

अन्य कैटगरी को रिकॉर्ड करने के लिए, इसे देखें सूची कुल atrace कैटगरी.

FTRACE_GROUP/FTRACE_NAME इस नीति से, उन ftrace इवेंट के बारे में पता चलता है जिनके लिए आपको ट्रेस रिकॉर्ड करना है. उदाहरण के लिए, यह कमांड sched/sched_switch इवेंट का पता लगाता है:
      adb shell perfetto --out FILE sched/sched_switch
      

सामान्य मोड

सामान्य मोड में perfetto का इस्तेमाल करने का सामान्य सिंटैक्स इस तरह है:

 adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE

perfetto का इस्तेमाल करते समय उपलब्ध विकल्पों की सूची नीचे दी गई टेबल में दी गई है नॉर्मल मोड:

टेबल 4. उपलब्ध perfetto की सूची सामान्य मोड का उपयोग करते समय टूल विकल्पों की संख्या.

विकल्प ब्यौरा
--config CONFIG_FILE | -c CONFIG_FILE कॉन्फ़िगरेशन फ़ाइल का पाथ बताता है. सामान्य मोड में, कुछ कॉन्फ़िगरेशन, कॉन्फ़िगरेशन प्रोटोकॉल बफ़र में एन्कोड किए जा सकते हैं. यह फ़ाइल में बताए गए प्रोटोकॉल बफ़र स्कीमा का पालन करना चाहिए एओएसपी trace_config.proto.

डेटा सोर्स चुनने और उन्हें कॉन्फ़िगर करने के लिए, TraceConfig का DataSourceConfig सदस्य, जैसा इसमें परिभाषित किया गया है एओएसपी data_source_config.proto.

--txt perfetto को कॉन्फ़िगरेशन फ़ाइल को pbtxt के तौर पर पार्स करने का निर्देश देता है. यह फ़्लैग सिर्फ़ स्थानीय जाँच के लिए है. साथ ही, इसका सुझाव नहीं दिया जाता है कि आप इसे प्रोडक्शन के लिए चालू किया जा सकता है.

इस्तेमाल किए जा सकने वाले डेटा सोर्स

इस सेक्शन में उन अलग-अलग सोर्स के बारे में बताया गया है जिनका इस्तेमाल perfetto, जनरेट करने के लिए करता है आपकी ट्रेस.

Ftrace

ftrace डेटा सोर्स, perfetto को कर्नेल से इवेंट पाने की अनुमति देता है.

सेटिंग करके इस सोर्स को चालू करें ftrace_config डेटा सोर्स कॉन्फ़िगरेशन में.

जिन इवेंट को चालू किया जा सकता है उनमें ये शामिल हैं:

आपके डिवाइस, ओएस वर्शन या कर्नेल के आधार पर, ज़्यादा इवेंट उपलब्ध हैं. ज़्यादा जानकारी के लिए, कॉन्फ़िगरेशन प्रोटो देखें.

प्रोसेस के आंकड़े

प्रोसेस के आंकड़ों वाले डेटा सोर्स की मदद से, आपको और व्यक्तिगत प्रक्रियाओं पर ध्यान देते हैं.

process_stats_config को सेट करके, इस सोर्स को चालू करें और sys_stats_config डेटा सोर्स कॉन्फ़िगरेशन में.

perfetto से जो डेटा जनरेट होता है उसमें ये शामिल हैं:

आपके डिवाइस, ओएस वर्शन, और कर्नेल के आधार पर, ज़्यादा इवेंट उपलब्ध हैं. ज़्यादा जानने के लिए, sys_stats के कॉन्फ़िगरेशन प्रोटो देखें और process_stats.

heapprofd

heapprofd की मदद से, नेटिव मेमोरी के इस्तेमाल की वजहों का सैंपल लिया जा सकता है.

heapprofd_config को सेट करके, इस सोर्स को चालू करें डेटा सोर्स कॉन्फ़िगरेशन में. इस सेटिंग से ProfilePackets, जिसमें कॉलस्टैक के Java फ़्रेम शामिल हैं.

heapprofd का इस्तेमाल करने के तरीके के बारे में ज़्यादा जानकारी यहां मिल सकती है perfetto.dev.

अन्य स्रोत

आपके डिवाइस, ओएस वर्शन, और कर्नेल के आधार पर, ज़्यादा डेटा सोर्स उपलब्ध हैं. ज़्यादा जानकारी के लिए, इस लिंक पर जाएं डेटा सोर्स कॉन्फ़िगरेशन प्रोटोस मौजूद होना चाहिए.

perfetto के बारे में ज़्यादा जानकारी यहां मिल सकती है perfetto.dev.