"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > متى يكون من المقبول استدعاء gc.collect ()؟

متى يكون من المقبول استدعاء gc.collect ()؟

نشر في 2025-03-23
تصفح:509

When is it Acceptable to Call GC.Collect()?

حان الوقت لاستخدام gc.collect بحذر

في حين أنه لا ينصح عادة بالاتصال gc.collect () مباشرة ، في بعض الحالات المحددة ، يكون هذا معقولًا. على سبيل المثال ، عندما يتم تشغيل الخدمة بطريقة دائرية وتكون خاملاً لفترة طويلة بعد تنفيذ مهمة ما ، فمن الممكن تحسين استخدام الموارد عندما يتم إجبارها على جمع القمامة خلال مرحلة الخمول لتحرير الذاكرة التي تشغلها العملية على وشك الفشل.

موقف آخر مقبول هو بعد إغلاق نموذج كبير في تطبيق واجهة المستخدم الرسومية. نظرًا لأن جميع عناصر التحكم في واجهة المستخدم تفي بجمع القمامة في هذا الوقت ، وقد لا يلاحظ ذلك انخفاض الأداء القصير أثناء إغلاق النماذج ، فمن المعقول بدء مجموعة GC.

بالإضافة إلى ذلك ، قد تتطلب المواقف التالية أيضًا النظر في الاتصال gc.collect () :

  • عندما يكون لديك أدلة صلبة على أن عددًا كبيرًا من الكائنات (وخاصة كائنات Gen 1 و Gen 2) جاهزة لجمع القمامة ، وأن تأثير الأداء ضئيل.
  • بدءًا من .NET 4.5 ، عند الدخول أو الخروج gclatencymode.lowlatency أو ustainedLowlatency . باستخدام .NET 4.6 ، يمكنك استخدام طريقة
  • gc.trystartnogcregion
  • لتعطيل GC لفترة زمنية. يوصى بإطلاق GC الكامل يدويًا قبل هذه الفترة وبعدها.
  • هذه الاستثناءات تؤكد على أهمية الحذر عند الاتصال
gc.collect ()

. من المهم تقييم البيئة المحددة وتأثير الأداء المحتمل قبل اتخاذ هذا القرار.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3