hotspot - واجهة رسومية لملفات Linux perf
hotspot (من KDAB) هي واجهة رسومية Qt لمحترف Linux perf. يمكنك التسجيل مع perf record كالمعتاد ثم فتح perf.data الناتجة في hotspot لاستكشافها كـ رسوم بيانية لهبية تفاعلية و شجرة استدعاء من أعلى إلى أسفل ومن الأسفل إلى الأعلى وعرض المتصل/المستقبل وخيوط زمنية لكل خيط وتحليل off-CPU. يحول إخراج perf report الصعب القراءة إلى ملف تعريفي مرئي وقابل للملاحة — وحتى يمكنه إطلاق وتسجيل perf لك.
التثبيت
| النظام الأساسي | الأمر |
|---|
| Debian/Ubuntu | sudo apt install hotspot |
| Fedora | sudo dnf install hotspot |
| Arch Linux | sudo pacman -S hotspot |
| AppImage | قم بالتحميل من صفحة GitHub Releases (محمول) |
| المتطلبات | linux-perf / perf مثبت |
التسجيل (طريقتان)
# الخيار أ: التسجيل مع perf ثم الفتح في hotspot
perf record --call-graph dwarf -F 999 ./my-program args
hotspot perf.data
# الخيار ب: اسمح لـ hotspot بالتسجيل لك (علامة التبويب "Record" واجهة رسومية)
hotspot # اختر ثنائي الخيارات والخيارات واضغط Record
| علم perf | الغرض |
|---|
--call-graph dwarf | أفضل فك معلومات المكدس (يحتاج معلومات التصحيح) |
--call-graph fp | فك معلومات مؤشر الإطار (أسرع ويحتاج -fno-omit-frame-pointer) |
-F 999 | عينة في 999 Hz |
-p PID | سجل عملية تعمل |
-g | تفعيل الرسوم البيانية الاستدعاء |
عرض
| عرض | يعرض |
|---|
| ملخص | عدد العينات والخيوط والرموز الأكثر سخونة |
| الرسم البياني اللهب | مكدسات مجمعة؛ العرض = الوقت |
| من الأعلى إلى الأسفل | شجرة استدعاء من الجذور إلى الأوراق |
| من الأسفل إلى الأعلى | وظائف ورقية ساخنة والمتصلين بها |
| المتصل/المستقبل | تكلفة داخلة/خارجة لكل رمز |
| الخيط الزمني | نشاط لكل خيط بمرور الوقت |
الملاحة
| الإجراء | الاستخدام |
|---|
| انقر فوق إطار | تكبير/تصغير الرسم البياني اللهب إلى هذه الشجرة الفرعية |
| بحث | تصفية الرموز حسب الاسم |
| حدد نطاق زمني (الخيط الزمني) | تحليل التركيز على مرحلة |
| اقلب (من الأسفل إلى الأعلى) | ابحث عن وظائف ورقية باهظة الثمن |
| تصفية حسب الخيط/العملية | عزل عامل |
تحليل Off-CPU
يمكن لـ hotspot تصور حيث تم حجب الخيوط (الانتظار) وليس فقط حرق CPU — مفيد لمشاكل الكمون.
# سجل مفاتيح الجدولة لرؤية off-CPU
perf record --call-graph dwarf -e cycles \
-e sched:sched_switch --switch-events ./my-program
hotspot perf.data
الحصول على مكدسات جيدة
| الحاجة | يفعل |
|---|
| رموز قابلة للقراءة | بناء مع معلومات التصحيح (-g) لا تنزع |
| مكدسات عميقة | --call-graph dwarf |
| مكدسات رخيصة | مؤشرات الإطار + --call-graph fp |
| رموز kernel | sysctl kernel.kptr_restrict=0 و تشغيل perf كجذر |
| أذونات perf | sysctl kernel.perf_event_paranoid=1 (أو أقل) |
سير العمل الشائع
# ملف تعريفي برنامج CPU-bound واستكشف الرسم البياني اللهب
perf record --call-graph dwarf -F 999 ./app
hotspot perf.data
# التحقيق في السبب الذي يجعل الطلب بطيئاً (وقت off-CPU المحجوب)
perf record --call-graph dwarf -e sched:sched_switch --switch-events ./server
hotspot perf.data # افحص الرسم البياني اللهب off-CPU
hotspot مقابل Front Ends perf الأخرى
| الجانب | hotspot | perf report | برامج FlameGraph | samply |
|---|
| واجهة المستخدم | Qt GUI | TUI/نص | SVG ثابت | Firefox Profiler |
| Off-CPU | نعم | محدود | يدوي | محدود |
| سجلات لك | نعم | N/A (perf) | لا | نعم |
| الأفضل لـ | تحليل perf التفاعلي | عرض نص سريع | SVGs قابل للمشاركة | عبر الأنظمة الأساسية |
موارد