perfetto
एक ऐसा टूल है जिसकी मदद से,
Android डिवाइस
Android डीबग ब्रिज (ADB). शुरू करें
adb shell perfetto ...
निर्देश का इस्तेमाल करने वाला perfetto
टूल.
perfetto
, अलग-अलग सेवाओं का इस्तेमाल करता है
आपके डिवाइस से परफ़ॉर्मेंस के ट्रेस इकट्ठा करने के सोर्स. जैसे:
- कर्नेल से जानकारी के लिए
ftrace
- सेवाओं और ऐप्लिकेशन में यूज़र स्पेस के बारे में जानकारी के लिए
atrace
- सेवाओं और ऐप्लिकेशन के नेटिव मेमोरी के इस्तेमाल की जानकारी के लिए
heapprofd
यह पेज perfetto
को कॉल करने और इसे
की ज़रूरत होगी. ज़्यादा जानकारी के लिए,
perfetto
दस्तावेज़.
वाक्य-विन्यास
इस सेक्शन में बताया गया है कि अलग-अलग मोड के लिए, ADB को perfetto
कॉल करने का तरीका कैसे इस्तेमाल किया जाता है
और ट्रेस जनरेट करेंगे.
डेटा सोर्स चुनना
perfetto
में नीचे दिए गए दो मोड शामिल हैं, जो डेटा सोर्स तय करते हैं
यह आपकी ट्रेस रिकॉर्ड करने के लिए इस्तेमाल करता है:
- लाइट मोड: यह डेटा सोर्स का सिर्फ़ एक सबसेट चुन सकता है, खास तौर पर
atrace
औरftrace
. हालांकि, इस मोड में ऐसा इंटरफ़ेस उपलब्ध है जोsystrace
. - सामान्य मोड: इसका कॉन्फ़िगरेशन, प्रोटोकॉल बफ़र में होता है और आपको
अलग-अलग डेटा सोर्स का इस्तेमाल करके,
perfetto
की ज़्यादा सुविधाओं का फ़ायदा पाएंatrace
औरftrace
से.
सामान्य विकल्प
इनमें से किसी एक में perfetto
का इस्तेमाल करते समय, नीचे दी गई टेबल में उपलब्ध विकल्पों की सूची दी गई है
मोड:
विकल्प | ब्यौरा |
---|---|
--background |
|
perfetto तुरंत कमांड-लाइन इंटरफ़ेस से बाहर निकल जाता है और आगे बढ़ जाता है
बैकग्राउंड में ट्रेस रिकॉर्ड करना. |
--background-wait | -D
|
--background की तरह, लेकिन सभी के लिए इंतज़ार (30 सेकंड तक) होता है
डेटा सोर्स को बाहर निकलने से पहले शुरू करें. बाहर निकलें
अगर स्वीकार की गई सहमति को स्वीकार कर लिया जाता है, तो कोड शून्य होता है
मिल गया हो और कोई गड़बड़ी न हो (गड़बड़ी या टाइम आउट).
|
--alert-id
|
इस ट्रेस को ट्रिगर करने वाली सूचना का आईडी. |
--config-id
|
ट्रिगर करने वाले कॉन्फ़िगरेशन का आईडी. |
--config-uid
|
कॉन्फ़िगरेशन को रजिस्टर करने वाले ऐप्लिकेशन का यूआईडी. |
--subscription-id
|
इस ट्रेस को ट्रिगर करने वाली सदस्यता का आईडी. |
--out OUT_FILE |
|
आउटपुट ट्रेस फ़ाइल या ध्यान दें: आपको
आउटपुट फ़ाइल में सेव किया जाएगा. आम तौर पर, फ़ाइलों को
|
--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
का इस्तेमाल करते समय उपलब्ध विकल्पों की सूची नीचे दी गई टेबल में दी गई है
हल्के रंग वाला मोड:
विकल्प | ब्यौरा |
---|---|
--time TIME[s|m|h] |
|
इसकी मदद से, ट्रेस की अवधि सेकंड, मिनट या घंटे के हिसाब से सेट की जाती है.
उदाहरण के लिए, --time 1m एक मिनट की ट्रेस अवधि बताता है.
डिफ़ॉल्ट तौर पर, यह अवधि 10 सेकंड होती है.
|
--buffer SIZE[mb|gb] |
|
इससे पता चलता है कि रिंग बफ़र का साइज़, मेगाबाइट (एमबी) या गीगाबाइट (जीबी) में कैसा है.
डिफ़ॉल्ट पैरामीटर --buffer 32mb है.
|
--size SIZE[mb|gb] |
|
फ़ाइल का ज़्यादा से ज़्यादा साइज़ मेगाबाइट (एमबी) या गीगाबाइट (जीबी) में बताता है. इन्होंने बदलाव किया है
डिफ़ॉल्ट रूप से, perfetto सिर्फ़ इन-मेमोरी रिंग-बफ़र का इस्तेमाल करता है.
|
--app | -a
|
Android (atrace) ऐप्लिकेशन का नाम |
इन विकल्पों के बाद, इवेंट की खास जानकारी देने वाले डिवाइसों की सूची दी जाती है:
इवेंट | ब्यौरा |
---|---|
ATRACE_CAT |
इस नीति से, उन atrace कैटगरी के बारे में पता चलता है जिनके लिए आपको ट्रेस रिकॉर्ड करना है.
उदाहरण के लिए, नीचे दिया गया कमांड, atrace का इस्तेमाल करके विंडो मैनेजर को ट्रेस करता है:
adb shell perfetto --out FILE wm
अन्य कैटगरी को रिकॉर्ड करने के लिए, इसे देखें
सूची
कुल |
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
का इस्तेमाल करते समय उपलब्ध विकल्पों की सूची नीचे दी गई टेबल में दी गई है
नॉर्मल मोड:
विकल्प | ब्यौरा |
---|---|
--config CONFIG_FILE | -c CONFIG_FILE
|
कॉन्फ़िगरेशन फ़ाइल का पाथ बताता है. सामान्य मोड में, कुछ
कॉन्फ़िगरेशन, कॉन्फ़िगरेशन प्रोटोकॉल बफ़र में एन्कोड किए जा सकते हैं. यह फ़ाइल
में बताए गए प्रोटोकॉल बफ़र स्कीमा का पालन करना चाहिए
एओएसपी trace_config.proto .
डेटा सोर्स चुनने और उन्हें कॉन्फ़िगर करने के लिए,
|
--txt
|
perfetto को कॉन्फ़िगरेशन फ़ाइल को pbtxt के तौर पर पार्स करने का निर्देश देता है. यह
फ़्लैग सिर्फ़ स्थानीय जाँच के लिए है. साथ ही, इसका सुझाव नहीं दिया जाता है कि आप
इसे प्रोडक्शन के लिए चालू किया जा सकता है. |
इस्तेमाल किए जा सकने वाले डेटा सोर्स
इस सेक्शन में उन अलग-अलग सोर्स के बारे में बताया गया है जिनका इस्तेमाल perfetto
, जनरेट करने के लिए करता है
आपकी ट्रेस.
Ftrace
ftrace
डेटा सोर्स, perfetto
को कर्नेल से इवेंट पाने की अनुमति देता है.
सेटिंग करके इस सोर्स को चालू करें
ftrace_config
डेटा सोर्स कॉन्फ़िगरेशन में.
जिन इवेंट को चालू किया जा सकता है उनमें ये शामिल हैं:
-
sched/sched_switch
sched/sched_wakeup
sched/sched_wakeup_new
sched/sched_process_exec
sched/sched_process_exit
sched/sched_process_fork
sched/sched_process_free
sched/sched_process_hang
sched/sched_process_wait
फ़ाइल सिस्टम इवेंट:
आपके डिवाइस, ओएस वर्शन या कर्नेल के आधार पर, ज़्यादा इवेंट उपलब्ध हैं. ज़्यादा जानकारी के लिए, कॉन्फ़िगरेशन प्रोटो देखें.
प्रोसेस के आंकड़े
प्रोसेस के आंकड़ों वाले डेटा सोर्स की मदद से, आपको और व्यक्तिगत प्रक्रियाओं पर ध्यान देते हैं.
process_stats_config
को सेट करके, इस सोर्स को चालू करें
और sys_stats_config
डेटा सोर्स कॉन्फ़िगरेशन में.
perfetto
से जो डेटा जनरेट होता है उसमें ये शामिल हैं:
-
/proc/meminfo
/proc/vmstat
/proc/stat
-
/proc/\<pid\>/status
/proc/\<pid\>/oom_score_adj
आपके डिवाइस, ओएस वर्शन, और कर्नेल के आधार पर, ज़्यादा इवेंट
उपलब्ध हैं. ज़्यादा जानने के लिए, sys_stats
के कॉन्फ़िगरेशन प्रोटो देखें
और process_stats
.
heapprofd
heapprofd
की मदद से, नेटिव मेमोरी के इस्तेमाल की वजहों का सैंपल लिया जा सकता है.
heapprofd_config
को सेट करके, इस सोर्स को चालू करें
डेटा सोर्स कॉन्फ़िगरेशन में. इस सेटिंग से ProfilePackets
,
जिसमें कॉलस्टैक के Java फ़्रेम शामिल हैं.
heapprofd
का इस्तेमाल करने के तरीके के बारे में ज़्यादा जानकारी यहां मिल सकती है
perfetto.dev
.
अन्य स्रोत
आपके डिवाइस, ओएस वर्शन, और कर्नेल के आधार पर, ज़्यादा डेटा सोर्स उपलब्ध हैं. ज़्यादा जानकारी के लिए, इस लिंक पर जाएं डेटा सोर्स कॉन्फ़िगरेशन प्रोटोस मौजूद होना चाहिए.
perfetto
के बारे में ज़्यादा जानकारी यहां मिल सकती है
perfetto.dev.