التابع Object.garbage_collect في روبي

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

يبدأ التابع garbage_collect عملية جمع المهملات (garbage collection)، إلّا إذا عُطِّلت يدويًا.

يُعرَّف هذا التابع عبر وسائط الكلمات المفتاحية (keyword arguments) المُعيَّنة افتراضيًا للقيمة true:

def GC.start(full_mark: true, immediate_sweep: true); end

يمكنك تعيين القيمة false للمعامل full_mark لتنفيذ الوحدة GC الثانوية.

ويمكنك تعيين القيمة false للمعامل immediate_sweep لتأجيل الكنس (sweeping، استخدام الكنس الكسول [lazy sweep]).

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

البنية العامة

start  nil
garbage_collect  nil
include GC; garbage_collect  nil
start(full_mark: true, immediate_sweep: true)  nil
garbage_collect(full_mark: true, immediate_sweep: true)  nil
include GC; garbage_collect(full_mark: true, immediate_sweep: true)  nil

المعاملات

full_mark

يأخذ هذا المعامل القيمة true (افتراضيًا) أو false، ويستخدم لتنفيذ الوحدة GC الثانوية.

immediate_sweep

يأخذ هذا المعامل القيمة true (افتراضيًا) أو false، ويستخدم لتأجيل الكنس (استخدام الكنس الكسول).

القيم المعادة

تُعاد القيمة nil عند نجاح العملية.

انظر أيضًا

  • التابع id2ref_: يُحوِل معرِّف الكائن إلى مرجعٍ للكائن.
  • التابع count_objects: يُحصِي جميع الكائنات التي من نوعٍ واحد.
  • التابع define_finalizer: يضيف كتلة aProc كمُنهِي ليُستدعى بعد تدمير الكائن.
  • التابع each_object: يستدعي كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ أو غير مباشرٍ في هذه العملية الحالية في روبي.
  • التابع undefine_finalizer: يحذف جميع مُنهِيَات الكائن المعطى.

مصادر