PPROF هي أداة لتصور وتحليل بيانات التنميط.
يقرأ PPROF مجموعة من عينات التنميط في ملف التعريف. تنسيق بروتو وينشئ تقارير لتصور البيانات والمساعدة في تحليلها. يمكن أن يولد كل من التقارير النصية والرسومية (من خلال استخدام حزمة التصور DOT).
Profile.Proto هو مخزن مؤقت للبروتوكول الذي يصف مجموعة من callstacks ومعلومات التصوير. الاستخدام الشائع هو تمثيل مجموعة من callstacks التي تم أخذ عينات منها من التنميط الإحصائي. تم وصف التنسيق على ملف proto/profile.proto. للحصول على تفاصيل عن مخازن المؤسسات البروتوكول ، راجع https://developers.google.com/protocol-buffers
يمكن قراءة الملفات الشخصية من ملف محلي ، أو فوق HTTP. يمكن تجميع أو مقارنة ملفات تعريف متعددة من نفس النوع.
إذا كانت عينات الملف الشخصي تحتوي على عناوين الماكينة ، يمكن لـ PPROF أن يرمز إليها من خلال استخدام أدوات BinuTils الأصلية (ADDR2Line و NM).
هذا ليس منتج Google الرسمي.
المتطلبات الأساسية:
GO Development Kit من نسخة مدعومة. اتبع هذه التعليمات لإعداد البيئة.
GraphViz: http://www.graphviz.org/ اختياري ، يستخدم لإنشاء تصورات رسومية للملفات التعريف
لبناء وتثبيته:
go install github.com/google/pprof@latest
سيتم تثبيت الثنائي $GOPATH/bin
( $HOME/go/bin
افتراضيًا).
يمكن لـ PPROF قراءة ملف تعريف من ملف أو مباشرة من خادم عبر HTTP. حدد إدخال (إدخال) ملف التعريف في سطر الأوامر ، واستخدم خيارات للإشارة إلى كيفية تنسيق التقرير.
% pprof -top [main_binary] profile.pb.gz Where main_binary: Local path to the main program binary, to enable symbolization profile.pb.gz: Local path to the profile in a compressed protobuf, or URL to the http service that serves a profile.
pprof -web [main_binary] profile.pb.gz
إذا لم يتم تحديد خيار تنسيق الإخراج ، فإن PPROF يعمل على الوضع التفاعلي ، حيث يقرأ الملف الشخصي ويقبل الأوامر التفاعلية لتصور وتحسين الملف الشخصي.
pprof [main_binary] profile.pb.gz This will open a simple shell that takes pprof commands to generate reports. Type 'help' for available commands/options.
إذا تم تحديد علامة -http
، فإن PPROF تبدأ خادم ويب في المضيف المحدد: المنفذ الذي يوفر واجهة تفاعلية قائمة على الويب إلى PPROF. المضيف اختياري ، وهو "مضيف محلي" افتراضيًا. المنفذ اختياري ، وهو منفذ متاح عشوائي افتراضيًا. -http=":"
يبدأ خادم محليًا في منفذ عشوائي.
pprof -http=[host]:[port] [main_binary] profile.pb.gz
يجب أن يفتح الأمر السابق تلقائيًا متصفح الويب الخاص بك في الصفحة الصحيحة ؛ إذا لم يكن الأمر كذلك ، يمكنك زيارة المنفذ المحدد يدويًا في متصفح الويب الخاص بك.
يمكن لـ PPROF قراءة ملفات perf.data
التي تم إنشاؤها بواسطة أداة Linux Perf باستخدام برنامج perf_to_profile
من حزمة perf_data_converter.
لعرض تفكيك الملفات الشخصية التي تم جمعها من برامج GO التي تم تجميعها كـ Windows Executables ، يجب أن يتم بناء القابلة للتنفيذ مع go build -buildmode=exe
. يجب تثبيت LLVM أو GCC ، لذلك تتوفر الأدوات المطلوبة مثل addr2line
و nm
لـ pprof
.
انظر Doc/README.MD للحصول على المزيد من الوثائق المفصلة للمستخدم النهائي.
انظر المساهمة. md لتوثيق المساهمة.
انظر Proto/README.MD للحصول على وصف لتنسيق profile.proto.