سؤال

لدينا تطبيق يستخدم (طرف ثالث) تحكم ActiveX نماذج Windows، ويلاحظ في كائنات الأداء. NET تحت عنوان ".NET CLR الذاكرة" أن عدد "كتل سينك" في استخدام يتزايد باستمرار (جنبا إلى جنب مع زيادة استخدام الذاكرة)، على الرغم من طلبنا هو يجلس هناك خمول.

والتفسير المدمج في لدول كتلة بالوعة العد:

<اقتباس فقرة>   

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

وكتلة العد متزامنة لا يبدو للحصول على إعادة عندما نتحول إلى تطبيق آخر على الرغم من. ما الذي يسبب هذه بالضبط للحصول على خلق، وهل هناك أي نصائح للحد من عدد من هذه؟

و(راجع للشغل، فإنه في الحقيقة هو مكتوبة "كتلة بالوعة" في قائمة عدادات الأداء. لست متأكدا إذا به خطأ مطبعي أو مزحة السباكة)

هل كانت مفيدة؟

المحلول

وفي كل مرة كنت تستخدم تأمين بدائية مثل lock أو Monitor.Enter في منصة .NET، يتم تهيئة بنية كتلة متزامنة ضد مثيل كائن ليكون مؤمنا. كما جاء في التعريف، يمكن لهذه الكتل عقد مزيد من المعلومات مثل المعلومات رمز التجزئة وإمكانية التشغيل المتداخل COM للكائن.

ومنذ هذه الكتل تقتصر في ما يمكن تخزينها، الوصول إلى كتل يسبب في وقت واحد الخلاف الذي يسبب بدوره محتويات رأس الكائن لتصبح فهرس في جدول كتل متزامنة على نطاق المنظومة التي تديرها CLR. وCLR غير قادرة على إعادة تدوير هذه الكتلة المزامنة، وعندما الكائن في حاجة إليها.

وقفل على كائن دائما يتحمل الغزل CPU قبل انتظار على كائن نواة نظام. كلما تدور CPU المخصصة ليست satisified كنت للسماح لرصد للحصول على قسم تأمين النقدي، وسيتم إنشاء لصناعة السيارات في إعادة التعامل مع أحداث النظام وإشارة إلى أنه سيتم طرحه في كتلة متزامنة المرتبطة بها. المواضيع الأخرى التي تنتظر على هذا المؤشر الحدث وبعد ذلك منع على التعامل مع الحدث حتى موضوع امتلاك أثار الافراج عن التعامل مع الحدث.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top