PerfView هي أداة تحليل أداء مجانية تساعد على عزل وحدة المعالجة المركزية ومشكلات الأداء المتعلقة بالذاكرة. إنها أداة Windows ، ولكن لديها أيضًا بعض الدعم لتحليل البيانات التي تم جمعها على أجهزة Linux. إنه يعمل مع مجموعة واسعة من السيناريوهات ، ولكن لديه عدد من الميزات الخاصة للتحقيق في مشكلات الأداء في الكود المكتوب لوقت تشغيل .NET.
إذا لم تكن على دراية بـ PerfView ، فهناك دروس فيديو PerfView. أيضًا ، تقدم مدونة Vance Morrison نظرة عامة وبدء المعلومات.
يرجى الاطلاع على صفحة تنزيل PerfView للرابط والتعليمات لتنزيل الإصدار الحالي من PerfView.
يتطلب PerfView .NET Framework 4.7.2 أو لاحقًا ، وهو متاح على نطاق واسع لجميع الإصدارات المدعومة من Windows.
تم تصميم PerfView على مكتبة تسمى microsoft.diagnostics.tracing.traceevent ، والتي تعرف كيفية جمع وحوض الأحداث تتبع الأحداث (ETW) وبيانات EventPipe (.NET Core Trace). وبالتالي ، إذا كانت هناك أي معلومات تجمعها PerfView والعمليات التي ترغب في معالجتها بنفسك برمجيًا ، فربما تكون مهتمًا بوثائق مكتبة TraceEvent
راجع وثيقة السيناريوهات لتحديد ما هو الخيار الأفضل لما تحاول القيام به.
دليل مستخدم PerfView هو جزء من التطبيق نفسه. بالإضافة إلى ذلك ، يمكنك النقر فوق رابط دليل المستخدمين لمشاهدة ملف مصدر Github HTML المقدم في متصفحك. يمكنك أيضًا تنزيل PerfView ببساطة باستخدام التعليمات أعلاه وتحديد عنصر قائمة "دليل المستخدم".
عندما يكون لديك سؤال حول PerfView ، يجب أن يكون رد فعلك الأول هو البحث في دليل المستخدمين (دليل التعليم -> دليل المستخدم) ومعرفة ما إذا كان يمكنك العثور على الإجابة بالفعل. إذا لم ينجح ذلك ، فيمكنك طرح سؤال من خلال إنشاء مشكلة جديدة في PerfView. اذكر سؤالك بإيجاز في العنوان ، وإذا لزم الأمر ، أعط تفاصيل في نص القضية ، فهناك علامة مشكلة تسمى "سؤال" يجب عليك استخدامها أيضًا والتي تمثل مشكلتك كمسألة بدلاً من تقرير الأخطاء. إذا كان السؤال خاصًا بتتبع معين (*.etl.zip file) ، يمكنك سحب هذا الملف إلى المشكلة وسيتم تنزيله. يتيح ذلك لأولئك الذين يراقبون المشكلات لإعادة إنتاج بيئتك وإعطاء إجابات أكثر تفصيلاً ومفيدًا.
لاحظ أنه بمجرد الإجابة على سؤالك ، إذا كان من المحتمل أن تكون المشكلة شائعة ، فيجب أن تفكر بشدة في تحديث الوثائق لتضمين المعلومات. الوثائق ليست سوى ملف واحد فقط https://github.com/microsoft/perfview/blob/main/src/perfview/supportfiles/usersguide.htm. ستحتاج إلى استنساخ المستودع وإنشاء طلب سحب (انظر OpenSourceGitWorkFlow للحصول على تعليمات لإعداد وإنشاء طلب سحب.
يعمل الإبلاغ عن الأخطاء إلى حد كبير بنفس طريقة طرح سؤال. من المحتمل جدًا أن ترغب في تضمين ملف *.etl.zip اللازم لإعادة إنتاج المشكلة وأي خطوات وسلوك غير مرغوب فيه.
إذا كنت ترغب فقط في إجراء تحقيق في الأداء ، فلن تحتاج إلى بناء Perfview بنفسك. فقط استخدم واحد من صفحة تنزيل PerfView. ومع ذلك ، إذا كنت تريد ميزات جديدة أو ترغب فقط في المساهمة في PerfView لجعلها أفضل (انظر المشكلات للأشياء التي يريدها الناس) ، يمكنك القيام بذلك باتباع بقية هذه التعليمات.
الأداة الوحيدة التي تحتاجها لبناء PerfView هي Visual Studio 2022. يمكن تنزيل إصدار Visual Studio 2022 Community Edition مجانًا ولديه كل ما تحتاجه لجلب PerfView من Github و Build واختباره. نتوقع منك تنزيل Visual Studio 2022 Community Edition إذا لم يكن لديك بالفعل Visual Studio 2022.
في تثبيت Visual Studio الخاص بك ، تحتاج إلى التأكد من تثبيت أعباء العمل والمكونات التالية:
يتم تضمين ملف .vsconfig في جذر المستودع الذي يمكن استخدامه لتثبيت المكونات اللازمة. عند فتح الحل في Visual Studio ، سيطالبك بتثبيت أي مكونات تعتقد أنها مفقودة من التثبيت. بدلاً من ذلك ، يمكنك استيراد .vsconfig في Visual Studio Installer.
إذا حصلت على أي أخطاء تقوم بتجميع مشاريع etwclrocompiler ، فمن المحتمل أن يكون ذلك إما أنك لا تم تثبيت نظام التشغيل Windows 10 SDK ، أو لم يكن لديك LIBs المستقر بشكل مُثبت. يرجى الرجوع إلى قسم استكشاف الأخطاء وإصلاحها لمزيد من المعلومات.
الخطوة الأولى في البدء مع رمز مصدر PerfView هي استنساخ مستودع GitHub PerfView. إذا كنت على دراية بكيفية عمل دعم GIT و GitHub و Visual Studio 2022 GIT ، فيمكنك تخطي هذا القسم. ومع ذلك ، إذا لم يكن الأمر كذلك ، فإن إعداد مستودع GitHub محلي مع مستند Visual Studio 2022 سيقودك من خلال أساسيات القيام بذلك. كل ما يفترضه هو أن لديك Visual Studio 2022 مثبتة.
تم تطوير PerfView في Visual Studio 2022 باستخدام الميزات من خلال C# 7.3.
ملف الحل هو perfview.sln. فتح هذا الملف في Visual Studio (أو النقر المزدوج عليه في Windows Explorer) واختيار Build -> Build Solution ، سيقوم بإنشائه. يمكنك أيضًا إنشاء إصدار غير Debug من سطر الأوامر باستخدام MSBuild أو ملف Build.cmd في قاعدة المستودع. يتبع الإنشاء اتفاقيات Visual Studio القياسية ، وينتهي ملف PerfView.exe الناتج في SRC/perfview/bin/ bintype /perfview.exe. تحتاج فقط نشر هذا exe واحد لاستخدامه.
يتكون الحل من عدة مشاريع ، تمثل دعم DLLs و EXE الرئيسي. لتشغيل PerfView في مصحح الأخطاء ، تحتاج إلى التأكد من تعيين "مشروع بدء التشغيل" على مشروع "perfview" بحيث يطلق EXE الرئيسية. إذا لم يكن مشروع PerfView في Solution Explorer (على اليمين) جريئًا ، فانقر بزر الماوس الأيمن على مشروع PerfView وحدد "تعيين كمشروع بدء التشغيل". بعد القيام بذلك ، يجب أن يعمل "بدء تصحيح الأخطاء" (F5).
سترغب في نشر "الإصدار" بدلاً من إصدار "Debug" من PerfView. وبالتالي ، قم أولاً بتعيين تكوين الإنشاء الخاص بك على "الإصدار" (نافذة نصية في شريط الأدوات العلوي ، أو انقر بزر الماوس الأيمن على ملف .sln -> مدير التكوين -> تكوين الحل النشط). Build Next Build (Build-> Build Solution (Ctrl-Thift-B)). وستكون النتيجة أنه في دليل SRC Perfview bin net462 الإفراج ، سيكون هناك من بين أمور أخرى a perfview.exe. هذا الملف الوحيد هو كل ما تحتاجه للنشر. ما عليك سوى نسخه إلى حيث ترغب في نشر التطبيق.
أحد الأشياء غير العادية حول PerfView هو أنه يدمج دعم DLLs في EXE نفسه ، ويتم تفريغها عند الإطلاق الأول. هذا يعني أن هناك تبعيات صعبة في البناء ليست نموذجية. سترى أخطاء لا يمكن العثور على بعض DLLs إذا كانت هناك مشاكل في البناء في وقت مبكر من البناء. عادةً ما يمكنك إصلاح هذا ببساطة عن طريق القيام بإنشاء (غير نقي) عادي ، نظرًا لأن الملف المفقود سيكون موجودًا من آخر مجموعة. إذا لم يصلح هذا الأشياء ، فتعرف على ما إذا كان DLL الذي يتم البحث عنه موجودًا بالفعل (إذا كان الأمر كذلك ، فيجب أن تقوم إعادة البناء بإصلاحها). قد يكون من المنطقي أن تنزل المشاريع واحدة تلو الأخرى وبناءها بشكل فردي لمعرفة أي شخص فشل "الأول".
شيء آخر غير عادي حول PerfView هو أنه يتضمن آلية تمديد كاملة مع العينات. آلية التمديدات هذه هي المشروع "العالمي" (يسمى ذلك لأنه الامتداد العالمي الذي لا يكون لأوامره "نطاق" واضح) ويحتاج إلى الإشارة إلى PerfView لحل بعض مراجعها. وبالتالي ، ستحصل على العديد من المشكلات "لم يتم العثور عليها" في المشروع "العالمي". يمكن تجاهلها حتى تحصل على كل جزء آخر من البناء.
أحد الثوابات في الريبو هو أنه إذا كنت تقوم بتشغيل Visual Studio 2022 وببساطة مزامنة وإنشاء ملف perfview.sln ، فمن المفترض أن "مجرد عمل". إذا لم يحدث ذلك ، ولم تساعد النصيحة أعلاه ، فسنحتاج إما إلى إصلاح ريبو أو تحديث النصيحة أعلاه. وبالتالي من المعقول فتح قضية جيثب. إذا قمت بذلك ، فإن الهدف هو حل المشكلة ، مما يعني أنه يتعين عليك وضع معلومات كافية في المشكلة للقيام بذلك. يتضمن ذلك بالضبط ما جربته ، وما هي رسائل الخطأ.
يمكنك أيضًا إنشاء PerfView من سطر الأوامر (ولكن لا تزال بحاجة إلى تثبيت Visual Studio 2022). إنها عملية من خطوتين. أولاً ، يجب عليك استعادة جميع حزم nuget اللازمة ، ثم تقوم بالبناء نفسه. للقيام بذلك:
إذا حصلت على خطأ "MSB8036: لم يتم العثور على إصدار Windows SDK 10.0.17763.0" ، أو تحصل على خطأ ". لسوء الحظ ، لا تميل هذه المكتبة إلى تثبيت مع Visual Studio بعد الآن إلا إذا طلبت ذلك بشكل صريح. لإصلاحه ، قم بتشغيل برنامج Visual Studio Installer ، وقم بتعديل التثبيت ، ثم ابحث عن تطوير سطح المكتب C ++ وتحقق من تحديد خيار Windows SDK 10.0.17763.0. إذا لم يكن كذلك ، حدده ومتابعة. ثم حاول بناء perfview مرة أخرى.
إذا حصلت على خطأ "MSB8040: هناك حاجة إلى المكتبات المقيدة من الطيور لهذا المشروع" ، فقم بتعديل تثبيت Visual Studio للتأكد من أنك قد تم تثبيت "MSVC V143-VS 2022 C ++ X64/X86 MPIPED-MITIGated LIBS (أحدث).
يحتوي PerfView على عدد من المشاريع *. الاختبار التي لها اختبارات آلية. يمكن تشغيلها في Visual Studio عن طريق تحديد Test -> Run -> All Tests Menu Mene عنصر. للحصول على النتائج الأكثر شمولاً (وبالتأكيد إذا كنت تنوي إرسال التغييرات) ، فأنت بحاجة إلى إجراء هذه الاختبارات مع بناء تصحيح المنتج للمنتج (انظر نافذة النص في شريط الأدوات العلوي ، فإنه يقول "Debug" أو "الإصدار"). في حالة فشل الاختبارات ، يمكنك النقر بزر الماوس الأيمن على الاختبار الفاشل وتحديد عنصر قائمة سياق "Debug" لتشغيل الاختبار تحت مصحح الأخطاء لمعرفة الخطأ الذي حدث.
يستخدم هذا المستودع Azure DevOps لإنشاء واختبار طلبات السحب تلقائيًا ، مما يسمح للمجتمع بعرض نتائج الإنشاء بسهولة. البناء والحالة المنعكسين هنا هو حالة بناء Azure DevOps للفرع الرئيسي .
️ لا تعتبر التصميمات التي تنتجها Azure DevOps CI التصميم الرسمي لـ PerfView ، ولا يتم توقيعها أو التحقق من صحتها بطريقة أخرى من أجل السلامة أو الأمن بأي شكل من الأشكال. يتم توفير تكامل البناء هذا كراحة للمشاركين في المجتمع ، ولكن لا يعتمد عليه Microsoft ولا يعتبر قناة إصدار رسمية بأي شكل من الأشكال. للحصول على معلومات حول التصميم الرسمي ، راجع صفحة تنزيل PerfView.
يمكنك الحصول على الكثير من القيمة من قاعدة التعليمات البرمجية المصدر ببساطة عن طريق القدرة على إنشاء الكود بنفسك ، أو تصحيحها أو صنع ميزة محلية متخصصة ، ولكن تحدث القوة الحقيقية للبرنامج المفتوح المصدر عندما تساهم مرة أخرى في قاعدة التعليمات البرمجية المشتركة وبالتالي تساعد المجتمع ككل. بينما نشجع هذا ، فإنه يتطلب المزيد من الجهد من جانبك . إذا كنت مهتمًا بالتكثيف ، راجع دليل مساهمة PerfView ومعايير ترميز PerfView قبل البدء.
تم تقسيم الرمز إلى عدة أقسام رئيسية: