تجزیه‌وتحلیل نمایه‌ها با هوش مصنوعی

Because ProfilingManager profiles use the standard Perfetto format and can be queried with PerfettoSQL, you can pair an AI coding agent with the Perfetto AI skill to automate root-cause analysis directly in your workspace instead of manually navigating timelines in the Perfetto UI or writing custom queries against the Perfetto Standard Library:

  1. بار کردن نمایه: عامل نمایه جمع‌آوری‌شده را بااستفاده از trace_processor Perfetto باز می‌کند.
  2. اجرای پُرسمان‌های عیب‌یابی: با راهنمایی مهارت هوش مصنوعی Perfetto، نماینده پیمانه‌های کتابخانه استاندارد را پُرسمان می‌کند (مانند android.frames.timeline برای پرش یا android.memory.heap_graph.dominator_tree برای نشت حافظه) و پُرسمان‌های خود را به‌صورت تکراری اصلاح می‌کند.
  3. ارتباط دادن با کد منبع: عامل، برش‌های ردیابی سفارشی، پشته‌های فراخوانی نمونه‌برداری‌شده، یا نام‌های کلاس نگه‌دارنده در نمایه را مستقیماً به فایل‌های منبع 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
    
  • نصب دستی: دستورالعمل‌های راه‌اندازی را در استفاده از هوش مصنوعی با Perfetto برای عامل خود (مانند Claude Code،‏ Codex،‏ Cursor،‏ Antigravity، یا OpenCode) دنبال کنید.

نمونه‌های گردش کار

یک یا چند نمایه ضبط‌شده را در فضای کاری‌تان قرار دهید و از عامل هوش مصنوعی بخواهید بررسی کند. می‌توانید یک نمایه را برای تشخیص مشکل خاصی تجزیه‌وتحلیل کنید یا چندین نمایه را برای مقایسه الگوها و رگرسیون‌ها به‌صورت انبوه ارسال کنید.

تجزیه‌وتحلیل رونوشت‌های پشته جاوا و کمبود حافظه

وقتی رونوشت پشته Java را که مستقیماً با PROFILING_TYPE_JAVA_HEAP_DUMP یا به‌طور خودکار ازطریق راه‌انداز TRIGGER_TYPE_OOM ضبط شده است ارائه می‌دهید، عامل هوشواره‌ای بااستفاده از مهارت هوش مصنوعی Perfetto می‌تواند به شما کمک کند تا موارد زیر را شناسایی کنید:

  • نشت حافظه: اشیایی، مانند نمونه‌های 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.

برای دیدن نمونه کامل‌شده گزارشی که این پیام‌واره تولید می‌کند، ازجمله مسیر نگهداری درخت غالب، علت ریشه‌ای کد منبع، و اصلاح پیشنهادی، به خودکارسازی بازرسی کمبود حافظه با عامل هوشواره‌ای در مطالعه موردی: اشکال‌زدایی خرابی کمبود حافظه مراجعه کنید.

تجزیه‌وتحلیل ردگیری‌های سیستم و خطاهای ANR

وقتی ردیابی سیستمی را که مستقیماً با PROFILING_TYPE_SYSTEM_TRACE یا به‌طور خودکار ازطریق راه‌انداز TRIGGER_TYPE_ANR ضبط شده است ارائه می‌دهید، عامل هوشواره‌ای بااستفاده از مهارت هوش مصنوعی Perfetto می‌تواند به شما کمک کند موارد زیر را شناسایی کنید:

  • مسدود کردن عملیات رشته اصلی: برش‌های ردیابی طولانی‌مدت یا فراخوانی‌های همگام که مانع از پردازش رویدادهای ورودی یا ترسیم فریم‌ها توسط رشته میانای کاربر قبل‌از آستانه ANR می‌شوند.
  • تنگناهای وضعیت رشته: فاصله‌های زمانی که رشته اصلی در وضعیت‌های Sleeping (مانند مسدود کردن ورودی/خروجی شبکه یا زمان‌تمام‌های Thread.sleep)، Blocked (رقابت قفل)، یا Runnable (تأخیرهای زمان‌بندی CPU) گیر کرده است.
  • جهش‌های CPU رشته اصلی: محاسبات پرهزینه یا حلقه‌های فشرده که به‌جای رشته پس‌زمینه، مستقیماً در رشته میانای کاربر اجرا می‌شوند.

برای بررسی ردیابی سیستم 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 با عامل هوش مصنوعی در مطالعه موردی: اشکال‌زدایی ANR مراجعه کنید.