ProfilingManager प्रोफ़ाइलें, स्टैंडर्ड Perfetto फ़ॉर्मैट का इस्तेमाल करती हैं और PerfettoSQL की मदद से क्वेरी की जा सकती हैं. इसलिए, एआई कोडिंग एजेंट को Perfetto एआई स्किल के साथ जोड़ा जा सकता है. इससे, Perfetto यूज़र इंटरफ़ेस (यूआई) में टाइमलाइन को मैन्युअल तरीके से नेविगेट करने या Perfetto स्टैंडर्ड लाइब्रेरी के लिए कस्टम क्वेरी लिखने के बजाय, सीधे अपने फ़ाइल फ़ोल्डर में असल वजह का विश्लेषण अपने-आप किया जा सकता है:
- प्रोफ़ाइल लोड करना: एजेंट, Perfetto के
trace_processorका इस्तेमाल करके, इकट्ठा की गई प्रोफ़ाइल को खोलता है. - समस्या का पता लगाने वाली क्वेरी चलाना: Perfetto एआई स्किल की मदद से, एजेंट स्टैंडर्ड लाइब्रेरी मॉड्यूल (जैसे, जैंक के लिए
android.frames.timelineया मेमोरी लीक के लिएandroid.memory.heap_graph.dominator_tree) से क्वेरी करता है और अपनी क्वेरी को बार-बार बेहतर बनाता है. - सोर्स कोड से कोरिलेट करना: एजेंट, कस्टम ट्रेस स्लाइस, सैंपल किए गए कॉल स्टैक या प्रोफ़ाइल में मौजूद क्लास के नामों को सीधे आपकी Kotlin या Java सोर्स फ़ाइलों पर मैप करता है. साथ ही, समस्या को ठीक करने का सुझाव देता है.
Perfetto एआई स्किल सेट अप करना
ओपन सोर्स Perfetto एआई स्किल, कोडिंग एजेंट को trace_processor चलाने, PerfettoSQL लिखने, और Android की मेमोरी और सीपीयू के विश्लेषण के लिए, गाइड किए गए वर्कफ़्लो को फ़ॉलो करने का तरीका सिखाती है. हर इंस्टॉल में trace_processor रैपर शामिल होता है. इसलिए, आपको trace_processor को अलग से इंस्टॉल करने की ज़रूरत नहीं है:
एआई की मदद से इंस्टॉल करना: किसी भी एआई कोडिंग एजेंट में यह प्रॉम्प्ट चलाएं:
Following instructions from https://perfetto.dev/docs/getting-started/using-ai set up the Perfetto AI skill to be usable by any agentमैन्युअल तरीके से इंस्टॉल करना: अपने एजेंट (जैसे, Claude Code, Codex, Cursor, Antigravity या OpenCode) के लिए, Perfetto के साथ एआई का इस्तेमाल करना में दिए गए सेटअप के निर्देशों का पालन करें.
वर्कफ़्लो के उदाहरण
कैप्चर की गई एक या उससे ज़्यादा प्रोफ़ाइलों को अपने वर्कस्पेस में जोड़ें और एआई एजेंट को जांच करने के लिए कहें. किसी समस्या का पता लगाने के लिए, एक प्रोफ़ाइल का विश्लेषण किया जा सकता है. इसके अलावा, एक साथ कई प्रोफ़ाइलों का विश्लेषण करके, पैटर्न और रिग्रेशन की तुलना की जा सकती है.
Java के हीप डंप और ओओएम का विश्लेषण करना
PROFILING_TYPE_JAVA_HEAP_DUMP की मदद से सीधे कैप्चर किया गया या TRIGGER_TYPE_OOM ट्रिगर की मदद से अपने-आप कैप्चर किया गया Java हीप डंप उपलब्ध कराने पर, Perfetto एआई स्किल का इस्तेमाल करने वाला एआई एजेंट, आपको यह पता लगाने में मदद कर सकता है:
- मेमोरी लीक: ऐसे ऑब्जेक्ट जो जीसी रूट से ऐक्सेस किए जा सकते हैं, जबकि उन्हें फिर से हासिल किया जाना चाहिए था. जैसे, नष्ट किए गए
ActivityयाFragmentइंस्टेंस. - बहुत ज़्यादा डुप्लीकेट ऑब्जेक्ट: ऐसी क्लास जिनमें इंस्टेंस की संख्या उम्मीद से ज़्यादा होती है और जो हीप का बड़ा हिस्सा इस्तेमाल करती हैं.
- मेमोरी का गलत इस्तेमाल: बहुत ज़्यादा कैश मेमोरी, ग़ैर-ज़रूरी डेटा स्ट्रक्चर या मेमोरी का गलत इस्तेमाल करने वाले सिंगल डॉमिनेटर ऑब्जेक्ट.
OutOfMemoryError हीप डंप की जांच करने और उसे अपने ऐप्लिकेशन के सोर्स कोड से जोड़ने के लिए, इस तरह का प्रॉम्प्ट चलाएं:
Analyze the Perfetto OOM heap dump at </path/to/profile>, which corresponds to
the codebase located at </path/to/codebase> using the Perfetto AI skill and find
the root cause of the OutOfMemoryError.
इस प्रॉम्प्ट से जनरेट होने वाली रिपोर्ट का पूरा उदाहरण देखने के लिए, केस स्टडी: ओओएम क्रैश को डीबग करना में एआई एजेंट की मदद से, ओओएम की जांच को ऑटोमेट करना लेख पढ़ें. इसमें, डॉमिनेटर ट्री रिटेंशन पाथ, सोर्स-कोड की असल वजह, और समस्या को ठीक करने का सुझाया गया तरीका शामिल है.
सिस्टम ट्रेस और ANR का विश्लेषण करना
PROFILING_TYPE_SYSTEM_TRACE की मदद से सीधे कैप्चर किया गया सिस्टम ट्रेस या TRIGGER_TYPE_ANR ट्रिगर की मदद से अपने-आप कैप्चर किया गया सिस्टम ट्रेस उपलब्ध कराने पर, Perfetto एआई स्किल का इस्तेमाल करने वाला एआई एजेंट, आपको यह पता लगाने में मदद कर सकता है:
- मुख्य थ्रेड की कार्रवाइयों को ब्लॉक करना: लंबे समय तक चलने वाले ट्रेस स्लाइस या सिंक्रोनस कॉल, जो यूज़र इंटरफ़ेस (यूआई) थ्रेड को इनपुट इवेंट प्रोसेस करने या ANR की थ्रेशोल्ड से पहले फ़्रेम ड्रॉ करने से रोकते हैं.
- थ्रेड की स्थिति से जुड़ी रुकावटें: ऐसे इंटरवल जहां मुख्य थ्रेड
Sleeping(जैसे, नेटवर्क I/O को ब्लॉक करना याThread.sleepटाइम आउट),Blocked(लॉक कॉन्टेंशन) याRunnable(सीपीयू शेड्यूलिंग में देरी) की स्थितियों में अटक जाती है. - मुख्य थ्रेड में सीपीयू का ज़्यादा इस्तेमाल: बैकग्राउंड थ्रेड के बजाय, सीधे यूज़र इंटरफ़ेस (यूआई) थ्रेड पर ज़्यादा कंप्यूटेशन या टाइट लूप का इस्तेमाल करना.
एएनआर सिस्टम ट्रेस करने की प्रक्रिया की जांच करने और उसे अपने ऐप्लिकेशन के सोर्स कोड से जोड़ने के लिए, इस तरह का प्रॉम्प्ट चलाएं:
Analyze the Perfetto system trace at </path/to/trace.perfetto-trace>, which
corresponds to an ANR trace, and find the root cause of the ANR using the
Perfetto AI skill. The codebase is located at </path/to/codebase>.
इस प्रॉम्प्ट से जनरेट होने वाली रिपोर्ट का पूरा उदाहरण देखने के लिए, केस स्टडी: एएनआर को डीबग करना में एआई एजेंट की मदद से, एएनआर की जांच को ऑटोमेट करना देखें. इसमें, मेन-थ्रेड स्लाइस का ब्रेकडाउन, thread_state इंटरवल को फिर से बनाना, और सोर्स-कोड की मैपिंग शामिल है.