flame؛ پروفایل و فلیمگراف برای Node.js
خلاصهٔ کاملتر
flame (با نام کامل @platformatic/flame) یه ابزار پروفایلینگ و ساخت فلیمگراف برای اپلیکیشنهای Node.js ـه که روی @platformatic/react-pprof سوار شده. کارِ اصلیش اینه که ببینی وقت و حافظهٔ برنامهت کجا داره خرج میشه.
نکتهای که Platformatic روش تأکید میکنه پروفایلینگ دوگانهست: flame همزمان هم CPU و هم heap رو ضبط میکنه تا تصویر کاملی از کارایی بگیری. کار باهاش هم کمدردسره؛ با دستور flame run پروفایلینگ از همون لحظهٔ اول شروع میشه.
flame run server.jsوقتی برنامه رو میبندی (با Ctrl-C یا اتمام عادی)، flame خودکار برای هر دو پروفایل CPU و heap یه فلیمگراف HTML تعاملی میسازه. این فلیمگرافها مبتنی بر WebGL هستن و زوم و سرچ و فیلتر دارن، و مسیر دقیق فایلها و URL مرورگر رو هم بهت نشون میده.
یه قابلیت که بهدرد امروز میخوره اینه که flame کنار فلیمگراف، یه گزارش Markdown از نقاط داغ (hotspot) کد هم درمیآره؛ به گفتهٔ سازندهها این خروجی مخصوص دیباگ کارایی با کمک هوش مصنوعیه، چون راحت میشه متنش رو داد دست یه مدل. پشتیبانی از sourcemap هم داره، پس محل کد ترنسپایلشده (مثل TypeScript یا جاوااسکریپت باندلشده) رو به فایل اصلی برمیگردونه.
یه حالت manual هم داره که با سیگنال SIGUSR2 یا دستور flame toggle روشن/خاموشش میکنی، تا فقط بازهٔ موردنظرت رو پروفایل کنی. یه API برنامهنویسی هم برای همین کارها بیرون داده.
به گفتهٔ Platformatic، سرریز خود پروفایلینگ کمه: تو بنچمارکهاشون بهطور میانگین حدود ۲.۷٪ افت throughput روی Express و ۴.۱٪ روی Fastify. برای اجرا هم به Node.js نسخهٔ ۲۲.۶ به بالا نیاز داره.
نکات کلیدی:
- پروفایلینگ همزمان CPU و heap برای Node.js
- ساخت خودکار فلیمگراف HTML تعاملی (WebGL، با زوم/سرچ/فیلتر)
- گزارش Markdown از نقاط داغ، مناسب دیباگ با کمک AI
- پشتیبانی از sourcemap و حالت manual با SIGUSR2
- سرریز پایین: حدود ۲.۷٪ روی Express و ۴.۱٪ روی Fastify




