0Pricing
Go Academy · درس

إنشاء ملفات تعريف أداء CPU باستخدام pprof

جمع ملفات تعريف أداء CPU وعرضها بصريًا

إنشاء ملفات تعريف أداء CPU باستخدام pprof درس مجاني في Go Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Go Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Go Academy 4 دروس في المجموع.

ما هو pprof؟

توفّر net/http/pprof والحزمة runtime/pprof بيانات التنميط التي توضح المواضع التي يستهلك فيها برنامجكم وقت CPU. وتحلل واجهة سطر الأوامر go tool pprof ملفات التعريف.

نقطة نهاية HTTP لـ pprof

استوردوا _ "net/http/pprof" لتسجيل نقاط نهاية التنميط ضمن /debug/pprof/ على خادم HTTP موجود.

import _ "net/http/pprof"

go func() {
    log.Println(http.ListenAndServe(":6060", nil))
}()

التقاط ملف تعريف CPU

التقطوا ملف تعريف CPU لمدة 30 ثانية عبر نقطة نهاية HTTP:

go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30

التنميط المستند إلى ملف

بالنسبة إلى البرامج التي لا تحتوي على خادم HTTP، استخدموا runtime/pprof لكتابة ملف تعريف:

f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// run workload

التنميط في الاختبارات

شغّلوا الاختبارات باستخدام الخيارين -cpuprofile و-memprofile لإجراء التنميط تحت حمل اختبار واقعي:

go test -cpuprofile cpu.prof -memprofile mem.prof -bench=. ./...

الوضع التفاعلي لـ go tool pprof

افتحوا ملف التعريف واستكشفوه باستخدام الأوامر التفاعلية:

go tool pprof cpu.prof
(pprof) top        # top functions by CPU time
(pprof) list main  # annotated source
(pprof) web        # call graph in browser

مخطط اللهب

أنشئوا مخطط لهب (يتطلب graphviz) باستخدام -http=:8080 لفتح واجهة ويب تفاعلية:

go tool pprof -http=:8080 cpu.prof

تفسير مخرجات top

يعرض top الدوال مرتبة حسب الوقت الذاتي (الوقت المستهلك داخل الدالة) والوقت التراكمي (بما في ذلك الدوال التي تستدعيها). ركّزوا على الدوال ذات الوقت الذاتي المرتفع للعثور على فرص التحسين المباشر.

ملف تعريف Goroutine

تعرض نقطة النهاية /debug/pprof/goroutine جميع مكدسات الاستدعاء الخاصة بـ goroutine. استخدموها لاكتشاف تسرّب goroutine أو goroutine المحجوبة.

go tool pprof http://localhost:6060/debug/pprof/goroutine

التنميط المستمر

بالنسبة إلى أنظمة الإنتاج، استخدموا خدمات التنميط المستمر (Pyroscope وDatadog وGoogle Cloud Profiler) لالتقاط ملفات التعريف دون إيقاف الخدمة.

pprof في CI

قارنوا ملفات التعريف الناتجة عن إصدارين من الكود لاكتشاف تراجعات الأداء قبل وصولها إلى الإنتاج.

تحقق سريع

ماذا يمثل العمود "self" في مخرجات top ضمن pprof؟

مراجعة: تنميط CPU باستخدام pprof

النقاط الأساسية:

  • استوردوا net/http/pprof لنقطة نهاية HTTP؛ وruntime/pprof للملف
  • go tool pprof -http=:8080 لواجهة مخطط اللهب
  • top: الوقت الذاتي = التكلفة المباشرة؛ والتراكمي = التكلفة الإجمالية، بما في ذلك الدوال المستدعاة
  • go test -cpuprofile لإجراء التنميط أثناء اختبارات Benchmark

الأسئلة الشائعة

هل درس «إنشاء ملفات تعريف أداء CPU باستخدام pprof» مجاني؟

نعم — نص درس «إنشاء ملفات تعريف أداء CPU باستخدام pprof» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Go Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Go Academy 4 دروس في المجموع.

ماذا ستتعلم في «إنشاء ملفات تعريف أداء CPU باستخدام pprof»؟

جمع ملفات تعريف أداء CPU وعرضها بصريًا تتمرن على Go Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Go Academy؟

لا تُشترط خبرة سابقة. Go Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «إنشاء ملفات تعريف أداء CPU باستخدام pprof»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Go Academy هذا؟

نعم. كل درس في Go Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. كتابة المعايير باستخدام testing.B
  2. إنشاء ملفات تعريف أداء CPU باستخدام pprof
  3. إنشاء ملفات تعريف الذاكرة والتخصيص
  4. تتبّع التنفيذ
← العودة إلى Go Academy