/ الدليل / الملعب / perfetto-mcp
● مجتمع antarikshc ⚡ فوري

perfetto-mcp

بواسطة antarikshc · antarikshc/perfetto-mcp

اطرح أسئلة باللغة الإنجليزية على تتبعات Perfetto — بشأن jank و ANRs وخيوط CPU الساخنة وتنازعات الأقفال وتسريبات الذاكرة — واحصل على إجابات دون كتابة SQL للتتبع.

يقوم perfetto-mcp بتشغيل معالج التتبع من Perfetto خلف الكواليس وينشئ أدوات اللغة الطبيعية التي تحول أسئلتك إلى استعلامات مركزة. يغطي الفئات الشائعة للتحقق من أداء Android/Linux: استكشاف المقاطع وكشف ANR وتحليل الأداء للـ CPU والخيوط والقضايا المتعلقة بالتزامن وتحليل الكومة.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

perfetto.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "perfetto": {
      "command": "uvx",
      "args": [
        "perfetto-mcp"
      ],
      "_inferred": true
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "perfetto": {
      "command": "uvx",
      "args": [
        "perfetto-mcp"
      ],
      "_inferred": true
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "perfetto": {
      "command": "uvx",
      "args": [
        "perfetto-mcp"
      ],
      "_inferred": true
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "perfetto": {
      "command": "uvx",
      "args": [
        "perfetto-mcp"
      ],
      "_inferred": true
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "perfetto",
      "command": "uvx",
      "args": [
        "perfetto-mcp"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "perfetto": {
      "command": {
        "path": "uvx",
        "args": [
          "perfetto-mcp"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add perfetto -- uvx perfetto-mcp

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: perfetto-mcp

العثور على سبب jank في واجهة المستخدم في تتبع مسجل

👤 مطورو Android ومهندسو الأداء ⏱ ~25 min advanced

متى تستخدمه: تقرير من المستخدم: 'التطبيق يتلعثم عند التمرير'. التقطت تتبع Perfetto. والآن؟

المتطلبات الأساسية
  • ملف Perfetto .pftrace — perfetto / systrace / Android Studio Profiler
الخطوات
  1. وجه MCP نحو التتبع
    افتح /tmp/jank.pftrace لعملية com.example.app. ابحث عن إطارات jank — أي شيء يتجاوز 16.67ms على الخيط الرئيسي.✓ تم النسخ
    → قائمة بإطارات jank مع سياق المقطع
  2. نسب السبب
    للإطارات الثلاثة الأولى من jank، أي مقطع هيمن؟ ماذا كان الخيط الرئيسي يفعل عندما فقد الإطار؟✓ تم النسخ
    → السبب لكل إطار
  3. اقترح الحل
    بناءً على هذه الاختناقات، اقترح تغييرات ملموسة (نقل من الخيط الرئيسي وتخزين مؤقت إلخ).✓ تم النسخ
    → خطة الحل

النتيجة: تم تحديد السبب الجذري لـ jank دون النظر إلى واجهة المستخدم للخط الزمني.

المزالق
  • فترة أخذ العينات غير دقيقة — عدم التقاط الأساليب الساخنة القصيرة — أعد التسجيل بتكرار أخذ عينات أعلى عند الحاجة

تشخيص ANR من تتبع

👤 مطورو Android الذين يتعاملون مع ANRs ⏱ ~20 min advanced

متى تستخدمه: ANR في الإنتاج وتستطيع التقاط تتبع.

الخطوات
  1. كشف
    قم بتشغيل تحليل ANR على /traces/anr.pftrace لعملية com.example.app. ما الذي حجب الخيط الرئيسي؟✓ تم النسخ
    → سلسلة الحجب
  2. تحديد القفل
    هل كان هذا تنازعاً على القفل؟ حدد خيوط المالك مقابل المنتظرة والمورد.✓ تم النسخ
    → مخطط التنازع

النتيجة: السبب الجذري لـ ANR + من يجب إيقاظه من الدوام.

البحث عن تسرب ذاكرة مشبوه

👤 مطورو Android والمطورون الأصليون ⏱ ~30 min advanced

متى تستخدمه: تستمر الكومة في النمو بمرور الوقت على شاشة معينة.

الخطوات
  1. تحليل الكومة
    لتتبع X وعملية Y: قم بتشغيل تحليل الذاكرة. ما التخصيصات التي تهيمن وهل تنمو المجموعة المحتفظ بها بشكل رتيب؟✓ تم النسخ
    → ملخص التخصيص + الاتجاه
  2. ارتباط
    ما الأنشطة / الأجزاء / المقاطع التي ترتبط بقمم النمو؟✓ تم النسخ
    → تقرير الارتباط

النتيجة: تم تحديد المشبوهين للتسرب.

المزالق
  • لم يتم تشغيل جامع القمامة بعد — النمو ليس بالضرورة تسرباً — تفعيل جامع القمامة بين التسجيلات والمقارنة

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

perfetto + filesystem

حفظ تحليل التتبع لكل إصدار لتتبع الانحدار

حلل تتبع jank للإصدار vX.Y.Z واحفظ الملخص في /perf-reports/vX.Y.Z.md.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
explore_slices trace_path, process, time_range? تعرف على موضعك في تتبع جديد free
detect_anr trace_path, process تحقيق ANR free
cpu_profile trace_path, process, threshold_ms? البحث عن نقاط ساخنة في CPU free
thread_contention trace_path, process قضايا التزامن free
memory_analysis trace_path, process تحقيقات الذاكرة free
custom_sql trace_path, sql: str تعرف بالضبط على SQL من Perfetto الذي تريده free

التكلفة والحدود

تكلفة التشغيل

حصة API
لا توجد (محلي)
الرموز لكل استدعاء
ملخصات التتبع عادة 2k-10k token
التكلفة المالية
مجاني (Apache 2.0)
نصيحة
دائماً مرر نطاق زمني إذا كنت تعرف تقريباً متى حدثت المشكلة — مما يقلل من وقت الاستعلام والـ tokens.

الأمان

الصلاحيات والأسرار ونطاق الأثر

تخزين بيانات الاعتماد: لا توجد؛ ملفات التتبع المحلية
نقل البيانات الخارجي: الملخصات تذهب إلى مزود LLM الخاص بك — قد تتضمن التتبعات أسماء عمليات/تطبيقات حساسة

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

ملف التتبع كبير جداً لتحليله

يمكن لـ Perfetto التعامل مع تتبعات بحجم GB لكن المكالمة الأولى قد تكون بطيئة. أعطها وقتاً؛ الاستعلامات اللاحقة أسرع.

لم يتم العثور على اسم العملية

تحقق باستخدام custom_sql SELECT name FROM process. أسماء العمليات قد تختلف عن معرّفات حزم التطبيق.

خطأ في إصدار Python

يحتاج إلى 3.13+. استخدم uv python install 3.13 ثم uvx perfetto-mcp.

تحقق: python --version

البدائل

perfetto-mcp مقابل البدائل

البديلمتى تستخدمهاالمقايضة
Perfetto UI (ui.perfetto.dev)عندما تريد تحليلاً بصرياً للخط الزمنييدوي؛ بدون شرح LLM
Android Studio Profilerعندما تقضي وقتك داخل Android Studioمرتبط بـ IDE؛ أقل قابلية للنص البرمجي

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills