مشاركة عبر


عدّادات الأداء في و التطبيقات ذات العمليات المتزامنة.

استخدام "مراقب الأداء" (Perfmon.exe) ، من الممكن التمييز بين عدّادات الأداء على الأساس لكل وقت تشغيل. يصف هذا الموضوع تغيير السجل المطلوب لتمكين هذه الوظيفة.

السلوك الافتراضي

بشكل افتراضي، مراقب الأداء يعرض عدّادات الأداء على الأساس لكل تطبيق. ومع ذلك، هناك سيناريوهين حيث يسبّب فيهم مشاكل:

  • عند مراقبة تطبيقين لهما نفس الإسم. على سبيل المثال، إذا كان إسم كلا من التطبيقين myapp.exe , سيتم عرض أحدهما كـ myapp و الآخر ك myapp # 1في العمود مثيل. في هذه الحالة، يكون من الصعب إرفاق عداد الأداء لتطبيق معين. إنه ليس من الواضح ما إذا كانت البيانات التي تم تجميعها ل myapp#1 تشير إلى myapp.exe الأول أو myapp.exe الثاني .

  • عندما يستخدم التطبيق مثيلات متعددة من وقت تشغيل اللغة العامة. دعم .NET Framework الإصدار 4 في سيناريوهات الاستضافة جنباً إلى جنب; أي، عملية مفردة أو تطبيق يمكنهم تحميل مثيلات متعددة لوقت تشغيل اللغة العامة. إذا كان تطبيق مفرد يسمى myapp.exe يحمل مثيلي وقت تشغيل , سيتم تحديدهم في العمود مثيل كـmyapp و myapp # 1. في هذه الحالة،إنه من غير الواضح ما إذا كان myapp و myapp#1 يشيران إلى تطبيقين بنفس الإسم, أو إلى نفس التطبيق بوقتين تشغيل. إذا كان هناك تطبيقات متعددة بنفس الإسم تحمّل أوقات تشغيل متعددة, الإلتباس سيزيد.

يمكنك تعيين مفتاح تسجيل للتخلص من هذا الغموض. للتطبيقات التي تم تطويرها باستخدام .NET Framework 4، يضيف تغيير السجل هذا معرّف عملية متبوعاً بمثيل وقت التشغيل إلى اسم التطبيق في العمود مثيل. بدلاً من تطبيق أو تطبيق رقم واحد , يتم التعريف عن التطبيق الآن على أنه تطبيق_pprocessID_rruntimeID في العمود مثيل. إذا تم تطوير التطبيق باستخدام إصدار سابق من وقت تشغيل اللغة العامة , يتم تمثيل المثيل ك application_pprocessID بشرط أن .NET Framework 4 مثبت.

عدّادات الأداء في و التطبيقات ذات العمليات المتزامنة.

للتحكم بعدادات الأداء لإصدارات متعددة من وقت تشغيل اللغة العامة التي تم استضافتها في تطبيق واحد , يجب عليك تغيير إعدادات مفتاح تسجيل واحد كما هو موضّح في الجدول التالي.

Key name

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\.NETFramework\Performance

اسم القيمة

ProcessNameFormat

نوع القيمة

REG_DWORD

Value

1 (0x00000001)

تشير القيمة 0 ل ProcessNameFormat إلى أن السلوك الافتراضي ممكّناً; أي ، Perfmon.exe يعرض عدّادات الأداء على الأساس لكل تطبيق. عند تعيين هذه القيمة إلى 1, Perfmon.exe تزيل الغموض من إصدارات متعددة لأحد التطبيقات كما توفّر عدّادات الأداء على الأساس لكل وقت تشغيل . أية قيمة أخرى إعداد مفتاح السجل ProcessNameFormat غير معتمدة إعداد و محجوزة للاستخدام المستقبلي.

بعد تحديث إعداد مفتاح التسجيل ProcessNameFormat ، يجب عليك إعادة تشغيل Perfmon.exe أو أي مستخدمين لعدّادات الأداء لكي تعمل ميزة تسمية المثيل الجديد بشكل صحيح.

يظهر المثال التالي كيفية تغيير القيمة ProcessNameFormat برمجياً.

' Create or open registry key.
Dim key As Microsoft.Win32.RegistryKey 
key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey( _
            "System\CurrentControlSet\Services\.NETFramework\Performance")
' Create or overwrite value.
key.SetValue("ProcessNameFormat", 1, _
             Microsoft.Win32.RegistryValueKind.DWord)
key.Close()             
// Create or open registry key.
Microsoft.Win32.RegistryKey key; 
key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey( 
          @"System\CurrentControlSet\Services\.NETFramework\Performance");
// Create or overwrite value.
key.SetValue("ProcessNameFormat", 1, 
             Microsoft.Win32.RegistryValueKind.DWord);
key.Close();

عند إنشاء تغيير السجل هذا , Perfmon.exe تعرض أسماء التطبيقات التي تستهداف .NET Framework 4 كـ تطبيق_pprocessID_rوقت التشغيل معرف, حيث تطبيق هو اسم التطبيق , processID هو معرّف العملية الخاصة بالتطبيق و وقت التشغيل معرف هو معرف وقت تشغيل اللغة العامة. على سبيل المثال، إذا كان التطبيق المسمى myapp.exe يحمّل مثيلين من وقت تشغيل اللغة العامة ، تقوم Perfmon.exe بتعريف مثيل واحد كـ myapp_p1416_r10 و الثاني كـ myapp_p3160_r10. معرّف وقت التشغيل يلغي فقط أوقات التشغيل ضمن عملية ; لا يوفّر أية معلومات أخرى حول وقت التشغيل. (على سبيل المثال، معرّف وقت التشغيل ليس له أي علاقة بالإصدار أو SKU الخاص بوقت التشغيل.)

إذا كان .NET Framework 4 مثبت , تغيير السجل يؤثر أيضاً يؤثر على التطبيقات التي تم تطويرها باستخدام إصدارات سابقة من .NET Framework. تظهر هذا في Perfmon.exe كـ application_pprocessID, حيث تطبيق هو اسم التطبيق و عملية معرف معرف العملية. على سبيل المثال، إذا كان يتم مراقبة عدادات الأداء لتطبيقين بالإسم myapp.exe قد يظهر أحدهما كـ myapp_p23900 و الآخر كـ myapp_p24908.

ملاحظةملاحظة

معرّف العملية يزيل الغموض لحل تطبيقين بنفس الاسم اللذان يستخدمان إصدارات سابقة من وقت التشغيل.معرّف وقت تشغيل غير مطلوب للإصدارات السابقة لأن الإصدارات السابقة من وقت تشغيل اللغة العامة لا تدعم السيناريوهات المتزامنة.

إذا كان .NET Framework 4 غير موجود أو تم إزالة تثبيته , فان تعيين مفتاح التسجيل ليس له أي تأثير. وهذا يعني أن تطبيقين بنفس الاسم سوف يستمران بالظهور في Perfmon.exe كـ تطبيق and تطبيق # 1 (على سبيل المثال، ك myapp و myapp # 1).