যেহেতু ProfilingManager প্রোফাইল স্ট্যান্ডার্ড Perfetto ফর্ম্যাট ব্যবহার করে এবং
PerfettoSQL-এর মাধ্যমে কোয়েরি করা যেতে পারে, তাই আপনি Perfetto UI-তে ম্যানুয়ালি টাইমলাইন নেভিগেট করা
অথবা Perfetto স্ট্যান্ডার্ড লাইব্রেরি-তে কাস্টম কোয়েরি লেখার পরিবর্তে,
আপনার ওয়ার্কস্পেসে সরাসরি মূল কারণের বিশ্লেষণ অটোমেট করতে, Perfetto AI দক্ষতার সাথে AI কোডিং এজেন্ট পেয়ার করতে পারবেন:
- প্রোফাইল লোড করা: এজেন্ট Perfetto-এর
trace_processorব্যবহার করে সংগ্রহ করা প্রোফাইল খোলে। - ডায়াগনস্টিক কোয়েরি এক্সিকিউট করা: Perfetto AI স্কিলের মাধ্যমে পরিচালিত হয়ে, এজেন্ট
স্ট্যান্ডার্ড লাইব্রেরি মডিউল (যেমন জ্যাঙ্কের জন্য
android.frames.timelineবা মেমরি লিকের জন্যandroid.memory.heap_graph.dominator_tree) কোয়েরি করে এবং বারবার তার কোয়েরি রিফাইন করে। - সোর্স কোডের সাথে সম্পর্কযুক্ত করা: এজেন্ট কাস্টম ট্রেস স্লাইস, স্যাম্পেল করা কল স্ট্যাক বা প্রোফাইলে ক্লাস নাম ধরে রাখা সরাসরি আপনার Kotlin বা Java সোর্স ফাইলে ম্যাপ করে এবং সমাধানের প্রস্তাব দেয়।
Perfetto AI স্কিল সেট-আপ করুন
ওপেন সোর্স Perfetto AI স্কিল কোডিং এজেন্টকে শেখায় কীভাবে
trace_processor রান করতে হয়, PerfettoSQL লিখতে হয় এবং Android মেমরি ও CPU বিশ্লেষণের জন্য নির্দেশিত ওয়ার্কফ্লো অনুসরণ করতে হয়। প্রতিটি ইনস্টল বান্ডেলে একটি trace_processor র্যাপার থাকে, তাই
আপনাকে আলাদাভাবে trace_processor ইনস্টল করতে হবে না:
AI-এর সাহায্যে ইনস্টল করুন: যেকোনও AI কোডিং এজেন্টে নিম্নলিখিত প্রম্পট রান করুন:
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-র সাথে AI ব্যবহার করা লিঙ্কে দেওয়া সেট-আপ সংক্রান্ত নির্দেশাবলী অনুসরণ করুন।
ওয়ার্কফ্লোর উদাহরণ
আপনার ওয়ার্কস্পেসে এক বা একাধিক ক্যাপচার করা প্রোফাইল রাখুন এবং আপনার AI এজেন্টকে তদন্ত করার জন্য প্রম্পট করুন। আপনি কোনও নির্দিষ্ট সমস্যা ডায়াগনসিস করতে একটি প্রোফাইল বিশ্লেষণ করতে পারেন অথবা বাল্ক হিসেবে প্যাটার্ন ও রিগ্রেশন তুলনা করতে একাধিক প্রোফাইল পাস করতে পারেন।
Java হিপ ডাম্প ও OOM বিশ্লেষণ করা
আপনি যখন সরাসরি PROFILING_TYPE_JAVA_HEAP_DUMP-এর মাধ্যমে বা
TRIGGER_TYPE_OOM ট্রিগারের মাধ্যমে অটোমেটিক ক্যাপচার করা জাভা হিপ ডাম্প প্রদান করেন, তখন Perfetto AI স্কিল ব্যবহার করে AI এজেন্ট আপনাকে
এগুলি শনাক্ত করতে সাহায্য করতে পারে:
- মেমরি লিক: অবজেক্ট, যেমন নষ্ট হয়ে যাওয়া
ActivityবাFragmentইনস্ট্যান্স, যা GC রুট থেকে অ্যাক্সেস করা যায়, যখন সেগুলি রিক্লেম করা উচিত ছিল। - প্রচুর পরিমাণে ডুপ্লিকেট অবজেক্ট: অপ্রত্যাশিতভাবে বেশি ইনস্ট্যান্স কাউন্ট সহ ক্লাস যা সম্মিলিতভাবে হিপের একটি বড় অংশ ব্যবহার করে।
- মেমরি সংক্রান্ত অদক্ষতা: অতিরিক্ত সাইজের ক্যাশে, অপ্রয়োজনীয় ডেটা স্ট্রাকচার বা সিঙ্গেল ডমিনেটর অবজেক্টের কারণে মেমরির অনুপাতে অনেক বেশি পরিমাণ মেমরি ব্যবহার করা।
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.
এই প্রম্পট যে রিপোর্ট তৈরি করে তার সম্পূর্ণ উদাহরণ দেখতে, যার মধ্যে ডমিনেটর ট্রি রিটেনশন পাথ, সোর্স-কোড রুট কজ এবং প্রস্তাবিত সমাধান অন্তর্ভুক্ত, কেস স্টাডি: OOM ক্র্যাশ ডিবাগ করুন-এ AI এজেন্টের মাধ্যমে OOM তদন্ত অটোমেট করুন দেখুন।
সিস্টেম ট্রেস ও ANR বিশ্লেষণ করা
আপনি যখন সরাসরি
PROFILING_TYPE_SYSTEM_TRACE-এর মাধ্যমে বা অটোমেটিক
TRIGGER_TYPE_ANR ট্রিগারের মাধ্যমে ক্যাপচার করা সিস্টেম ট্রেস প্রদান করেন, তখন Perfetto AI স্কিল ব্যবহার করে AI এজেন্ট
আপনাকে এগুলি শনাক্ত করতে সাহায্য করতে পারে:
- মেন-থ্রেড অপারেশন ব্লক করা: দীর্ঘ সময় ধরে চলা ট্রেস স্লাইস বা সিঙ্ক্রোনাস কল যা UI থ্রেডকে ইনপুট ইভেন্ট প্রসেস করা বা ANR থ্রেশহোল্ডের আগে ফ্রেম আঁকা থেকে আটকায়।
- থ্রেড স্টেট বটলেনেক: ইন্টারভ্যাল যেখানে মূল থ্রেড
Sleeping(যেমন, নেটওয়ার্ক I/O বাThread.sleepটাইম-আউট ব্লক করা),Blocked(লক কনটেনশন) বাRunnable(CPU শিডিউলিং বিলম্ব) স্টেটে আটকে যায়। - মেন-থ্রেড CPU স্পাইক: ব্যাকগ্রাউন্ড থ্রেডের পরিবর্তে সরাসরি UI থ্রেডে এক্সপেন্সিভ কম্পিউটেশন বা টাইট লুপ এক্সিকিউট করা।
ANR সিস্টেম ট্রেস তদন্ত করতে এবং আপনার অ্যাপের সোর্স কোডের সাথে এটি সম্পর্কযুক্ত করতে, নিম্নলিখিত প্রম্পট রান করুন:
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 ইন্টারভাল রিকনস্ট্রাকশন এবং
সোর্স-কোড ম্যাপিং অন্তর্ভুক্ত, কেস স্টাডি: ANR ডিবাগ করুন-এ
AI এজেন্টের মাধ্যমে ANR তদন্ত অটোমেট করুন দেখুন।