انجليزيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

perf-script-Perl - عبر الإنترنت في السحابة

قم بتشغيل perf-script-perl في موفر الاستضافة المجاني OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر perf-script-perl الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


perf-script-perl - معالجة بيانات التتبع باستخدام برنامج نصي Perl

موجز


الأداء الإقتصادي الأداء سيناريو [-s [بيرل]:script[.pl] ]

الوصف


يُستخدم خيار البرنامج النصي للأداء هذا لمعالجة بيانات البرنامج النصي لـ perf باستخدام لغة Perl المضمنة في perf
مترجم. يقرأ ويعالج ملف الإدخال ويعرض نتائج التتبع
التحليل المنفذ في نص Perl المحدد ، إن وجد.

ابدأ نصوص


يمكنك تجنب قراءة بقية هذا المستند عن طريق التشغيل الأداء الإقتصادي الأداء سيناريو -g بيرل في نفس
الدليل كملف تتبع perf.data موجود. سيؤدي ذلك إلى إنشاء برنامج نصي للمبتدئين
يحتوي على معالج لكل نوع من أنواع الأحداث في ملف التتبع ؛ إنه ببساطة يطبع كل
الحقل المتاح لكل حدث في ملف التتبع.

يمكنك أيضًا الاطلاع على البرامج النصية الموجودة بتنسيق ~ / libexec / perf-core / scripts / perl لنموذجي
أمثلة توضح كيفية القيام بأشياء أساسية مثل تجميع بيانات الأحداث ونتائج الطباعة وما إلى ذلك.
أيضًا، يحاول البرنامج النصي check-perf-script.pl، على الرغم من أنه ليس مثيرًا للاهتمام بالنسبة لنتائجه، القيام بذلك
ممارسة كافة ميزات البرمجة النصية الرئيسية.

EVENT معالجات


عندما يتم استدعاء البرنامج النصي perf باستخدام برنامج نصي للتتبع ، يتم تحديده من قبل المستخدم معالج وظيفة is
دعا لكل حدث في التتبع. إذا لم يتم تحديد وظيفة معالج لمحددة
نوع الحدث ، يتم تجاهل الحدث (أو تمريره إلى ملف تتبع_التعامل معها وظيفة ، انظر أدناه) و
تتم معالجة الحدث التالي.

يتم تمرير معظم قيم حقل الحدث كوسائط إلى دالة المعالج ؛ بعض
الأقل شيوعًا ليس كذلك - فهذه متوفرة كمكالمات مرة أخرى إلى ملف تنفيذي perf
(انظر أدناه).

كمثال ، يمكن استخدام أمر سجل الأداء التالي لتسجيل كل جدولة_واكيوب
الأحداث في النظام:

# سجل الأداء - الجدول الزمني: Sched_wakeup

يجب تسجيل الآثار التي يُراد معالجتها باستخدام برنامج نصي باستخدام الخيار أعلاه: -a
لتمكين التجميع على مستوى النظام.

يعرّف ملف التنسيق لحدث Sched_wakep الحقول التالية (انظر
/ sys / kernel / debug / tracing / events / Sched / Sched_wakeup / format):

.ft ج
شكل:
الحقل: نوع مشترك قصير بدون توقيع ؛
الحقل: حرف common_flags غير الموقع؛
الحقل: char common_preempt_count بدون توقيع ؛
الحقل: int common_pid ؛

الحقل: char comm [TASK_COMM_LEN] ؛
الحقل: pid_t pid؛
الحقل: كثافة العمليات بريو؛
المجال: نجاح int؛
المجال: int target_cpu ؛
.ft

سيتم تعريف وظيفة المعالج لهذا الحدث على النحو التالي:

.ft ج
الجدول الفرعي :: Sched_wakeup
{
my (event_name ، $ Context ، $ common_cpu ، $ common_secs ،
$ المشتركين ، $ common_pid ، $ common_comm ،
$ comm، $ pid، $ prio، $ Success، $ target_cpu) =_؛
}
.ft

تأخذ وظيفة المعالج النموذج الفرعي::event_name.

الوسيطات $ common_ * في قائمة وسيطات المعالج هي مجموعة الوسائط التي تم تمريرها إلى
كل معالجي الأحداث تتوافق بعض الحقول مع الحقول المشتركة * في التنسيق
ملف ، ولكن يتم توليف بعضها ، وبعض الحقول _ * الشائعة ليست شائعة بما يكفي لـ
يتم تمريرها إلى كل حدث كوسيطات ولكنها متوفرة كوظائف مكتبة.

فيما يلي وصف موجز لكل من الأحداث الثابتة:

$event_name اسم الحدث كنص
$context هو "ملف تعريف ارتباط" غير شفاف يُستخدم في معاودة الاتصال بالأداء
$ common_cpu وحدة المعالجة المركزية التي وقع الحدث فيها
$common_secs جزء الثواني من الطابع الزمني للحدث
$ ثانوي الجزء nsecs من الطابع الزمني للحدث
$ common_pid هو رقم تعريف المهمة للمهمة الحالية
$ common_comm اسم العملية الحالية

جميع الحقول المتبقية في ملف تنسيق الحدث لها نظائرها كمعالج
وسيطات الوظيفة التي تحمل الاسم نفسه ، كما يمكن رؤيته في المثال أعلاه.

يوفر ما سبق الأساسيات اللازمة للوصول مباشرة إلى كل مجال من مجالات كل حدث في
trace ، الذي يغطي 90٪ مما تحتاج إلى معرفته لكتابة نص تتبع مفيد. ال
المقاطع أدناه تغطي الباقي.

SCRIPT نسق


يجب أن يبدأ كل نص برمجي من Perl من خلال إعداد مسار بحث لوحدة Perl و
"استخدام" بعض وحدات الدعم (انظر أوصاف الوحدة أدناه):

.ft ج
استخدم lib "$ ENV {'PERF_EXEC_PATH'} / scripts / perl / Perf-Trace-Util / lib" ؛
استخدم lib "./Perf-Trace-Util/lib" ؛
استخدام Perf :: Trace :: Core ؛
استخدام Perf :: Trace :: Context؛
استخدام Perf :: Trace :: Util ؛
.ft

يمكن أن تحتوي بقية البرنامج النصي على وظائف المعالج ووظائف الدعم بأي ترتيب.

بصرف النظر عن وظائف معالج الأحداث التي تمت مناقشتها أعلاه، يمكن لكل برنامج نصي تنفيذ مجموعة
من الوظائف الاختيارية:

Trace_begin، إذا تم تعريفه ، يتم استدعاؤه قبل معالجة أي حدث ويعطي البرامج النصية قيمة
فرصة للقيام بمهام الإعداد:

.ft ج
trace_begin الفرعي
{
}
.ft

Trace_end، إذا تم تعريفه، فسيتم استدعاؤه بعد معالجة جميع الأحداث ويعطي البرامج النصية ملفًا
فرصة للقيام بمهام نهاية البرنامج النصي، مثل عرض النتائج:

.ft ج
تتبع فرعي
{
}
.ft

Trace_unhandled، إذا تم تعريفه ، يتم استدعاؤه بعد أي حدث لا يحتوي على معالج
محددة صراحة لذلك. يتم تمرير المجموعة القياسية من الوسائط الشائعة إليها:

.ft ج
trace_unhandled الفرعية
{
my (event_name ، $ Context ، $ common_cpu ، $ common_secs ،
$ secs $، common_pid $، $ common_comm) =_؛
}
.ft

توفر الأقسام المتبقية أوصافًا لكل من نصوص الأداء المضمنة المتوفرة
وحدات Perl والوظائف المرتبطة بها.

متاح MODULES لأي لبس وظائف


تصف الأقسام التالية الوظائف والمتغيرات المتاحة عبر مختلف
Perf :: Trace :: * Perl modules. لاستخدام الوظائف والمتغيرات من وحدة معينة ، أضف
المقابلة تستخدم أداء :: تتبع :: XXX سطر إلى البرنامج النصي للأداء.

أداء :: تتبع :: Core وحدة
توفر هذه الوظائف بعض الوظائف الأساسية لنصوص المستخدم.

flag_str و الرمز_str توفر الوظائف سلاسل يمكن للبشر قراءتها للعلم والرمزية
مجالات. تتوافق هذه مع السلاسل والقيم التي تم تحليلها من طباعة معاهدة المواد الانشطارية مجالات
ملفات تنسيق الحدث:

flag_str($event_name, $field_name, $field_value) - يُرجع تمثيل السلسلة المطابق لـ $field_value لحقل العلامة $field_name للحدث $event_name
code_str ($ event_name، $ field_name، $ field_value) - تُرجع تمثيل السلسلة المقابل لـ $ field_value للحقل الرمزي $ field_name of event $ event_name

أداء :: تتبع :: السياق وحدة
بعض مشترك الحقول في ملف تنسيق الحدث ليست كلها شائعة ، ولكن يجب أن تكون كذلك
جعلها في متناول البرامج النصية للمستخدم بالرغم من ذلك.

يحدد Perf :: Trace :: Context مجموعة من الوظائف التي يمكن استخدامها للوصول إلى هذه البيانات بتنسيق
سياق الحدث الحالي. تتوقع كل وظيفة من هذه الوظائف متغير سياق $ ،
وهو نفس متغير السياق $ الذي يتم تمريره إلى كل معالج حدث مثل المتغير الثاني
جدال.

Common_pc (سياق $) - تعرض حساب Common_preempt للحدث الحالي
common_flags($context) - تقوم بإرجاع common_flags للحدث الحالي
common_lock_depth (سياق $) - إرجاع common_lock_depth للحدث الحالي

أداء :: تتبع :: Util وحدة
وظائف الأداة المختلفة للاستخدام مع البرنامج النصي perf:

nsecs ($ secs، $ nsecs) - إرجاع إجمالي nsecs معطى زوج الثواني / nsecs
nsecs_secs ($ nsecs) - إرجاع جزء من الثواني كاملة معطى nsecs
nsecs_nsecs ($ nsecs) - إرجاع الباقي nsecs معطى nsecs
nsecs_str ($ nsecs) - إرجاع سلسلة قابلة للطباعة بالشكل secs.nsecs
متوسط ​​($ total، $ n) - إرجاع متوسط ​​بمجموع وعدد إجمالي من القيم

استخدم perf-script-perl عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

أوامر لينكس

Ad