عیب‌یابی نشت حافظه با Chrome DevTools MCP 1.7

از دادن فایل‌های حجیم heap-snapshot به دستیار هوش مصنوعی خود خودداری کنید. این فایل‌ها پنجره بافت (context window) را پر کرده و باعث حدس‌های اشتباه می‌شوند.

Chrome DevTools MCP 1.7 به عامل‌های هوش مصنوعی اجازه می‌دهد بدون تجزیه داده‌های خام، حافظه را عیب‌یابی کنند. ابزارهای جدید مستقیماً محل نشت‌ها را مشخص می‌کنند.

ویژگی‌های جدید در نسخه 1.7

  • ابزار Object-details متادیتای دقیق را نمایش می‌دهد.
  • بخش Summaries، بافت‌های بومی (native contexts) و اندازه آن‌ها را فهرست می‌کند.
  • فیلترها اشیاء انتخاب‌شده را جدا می‌کنند.
  • عامل‌ها از منطق ارتقایافته برای تشخیص نشت بهره می‌برند.
  • کارگرهای تشخیصی (diagnostic workers) با قابلیت اطمینان بیشتری پاکسازی می‌کنند.

پروتکل سه اسنپ‌شات (Three-snapshot protocol)

  1. یک اسنپ‌شات پایه (baseline) بگیرید.
  2. عمل مورد نظر را ۱۰ بار اجرا کنید، سپس یک اسنپ‌شات هدف بگیرید.
  3. عمل را معکوس کرده و یک اسنپ‌شات نهایی بگیرید.

نشت تنها زمانی تأیید می‌شود که میزان حافظه در اسنپ‌شات نهایی همچنان بالا باقی بماند.

گردش کار (Workflow)

  • خلاصه‌ها را با هم مقایسه کنید؛ به دنبال افزایش میزان حافظه باشید.
  • کلاس‌هایی که بیشترین حافظه را انباشته کرده‌اند، شناسایی کنید.
  • مالک (صفحه، فریم یا بافت) را مشخص کنید.
  • وارد نمونه‌های شیء خاص و مسیرهای نگهدارنده (retaining paths) آن‌ها شوید.
  • اولین لینک در زنجیره‌ای که به کد شما اشاره می‌کند را اصلاح کنید.

اشتباهات رایج

  • هرگز نسخه ساخت (build) یا تعداد تکرار حلقه را بین اسنپ‌شات‌ها تغییر ندهید.
  • هر رشته (string) بزرگ را به عنوان نشت حافظه در نظر نگیرید.
  • پس از اتمام کار، هر اسنپ‌شات را ببندید.
  • هرگز مرحله معکوس‌سازی عمل را نادیده نگیرید.

این رویکرد با Claude Code، Cursor، Copilot یا هر عامل سازگار با MCP که با مشکلات حافظه مرورگر یا Node.js دست‌وپنجه نرم می‌کند، کار می‌کند.

منبع: https://github.com/ChromeDevTools/chrome-devtools-mcp/releases/tag/chrome-devtools-mcp-v1.7.0

جامعه یادگیری اختیاری: https://t.me/GyaanSetuAi