الوحدة GC في روبي
الوحدة GC
توفر الوحدة GC واجهة لتحديد ومسح آلية جمع البيانات المهملة في روبي.
تتوفر أيضًا بعض التوابع الأساسية من خلال الوحدة ObjectSpace.
ويمكن الحصول على المزيد من المعلومات حول تشغيل GC من خلال GC::Profiler.
=== الثوابت ===
INTERNAL_CONSTANTS
OPTS
توابع الصنف العام
add_stress_to_class(*args)
count → Integer
عدد مرات حدوث GC.
إعادة عدد مرات حدوث GC منذ بدء العملية.
disable → true or false
تعطيل جمع البيانات المهملة، وإعادة true إذا كان جمع البيانات المهملة مُعطَّلًا بالفعل.
zero? → true أو false
تفعيل جمع البيانات المهملة، وإعادة true إذا كان جمع البيانات المهملة مُعطَّلًا بالفعل.
latest_gc_info → {:gc_by=>:newobj}
latest_gc_info(hash) → hash
latest_gc_info(:major_by) → :malloc
إعادة معلومات حول أحدث عملية جمع البيانات المهملة.
malloc_allocated_size → Integer
إعادة حجم الذاكرة المخصصة من قِبَل malloc().
ويتوفر فقط إذا بُنيت روبي مع CALC_EXACT_MALLOC_SIZE.
malloc_allocations → Integer
إعادة عدد عمليات مُخصصات malloc().
ويتوفر فقط إذا بُنيت روبي مع CALC_EXACT_MALLOC_SIZE.
remove_stress_to_class(*args)
start → nil
start(full_mark: true, immediate_sweep: true) → nil
بدء تجميع البيانات المهملة، ما لم تُعطَّل يدويًا.
يُحدد هذا التابع بوسائط الكلمات المفتاحية قِيَمَها الافتراضية true:
def GC.start(full_mark: true, immediate_sweep: true); end
يُضبط full_mark بالقيمة false لتنفيذ GC ثانوية. يُضبط immediate_sweep بالقيمة false لتأجيل المسح (استخدام المسح البطيء).
ملاحظة: تعتمد وسائط الكلمات المفتاحية هذه على التطبيق والإصدار. وليس من المضمون أن تظل متوافقة في المستقبل، ويمكن تجاهلها إذا كان التطبيق الأساسي لا يدعمها.
stat → Hash
stat(hash) → hash
stat(:key) → Numeric
إعادة تجزئة Hash تحتوي على معلومات حول GC.
تتضمن التجزئة معلومات حول الإحصائيات الداخلية حول GC مثل:
محتويات التجزئة خاصة بالتطبيق ويمكن تغييرها في المستقبل.
ومن المتوقع أن يعمل هذا التابع فقط علي روبي C.
stress → integer, true or false
إعادة الحالة الحالية لوضع الضغط لـ GC.
stress = flag → flag
تحديث وضع الضغط لـ GC.
عند تفعيل وضع الضغط، يُستدعى GC في كل فرصة GC: كافة عمليات تخصيص الذاكرة والكائنات.
سيؤدي تفعيل وضع الضغط إلى خفض الأداء، ويُستعمل فقط للتنقيح.
يمكن أن تكون الراية true، أو false، أو عدد صحيح مُجرى على بِتاته العامل OR تبعًا للرايات.
verify_internal_consistency → nil
التحقق من الاتساق الداخلي.
هذا التابع خاص بالتطبيق. يتحقق هذا التابع الآن من تناسق الأجيال إذا كان RGenGC مدعومًا.
توابع المثيل العام
garbage_collect → nilclick النقر للتبديل المصدر
وتشمل GC; garbage_collect → nil
garbage_collect(full_mark: true, immediate_sweep: true) → nil
بدء تجميع البيانات المهملة، ما لم تُعطَّل يدويًا.
يُحدد هذا التابع بوسائط الكلمات المفتاحية قِيَمَها الافتراضية true:
يُضبط full_mark بالقيمة false لتنفيذ GC ثانوية. يُضبط immediate_sweep بالقيمة false لتأجيل المسح (استخدام المسح البطيء).
ملاحظة: تعتمد وسائط الكلمات المفتاحية هذه على التطبيق والإصدار. وليس من المضمون أن تكون متوافقة في المستقبل، ويمكن تجاهلها إذا كان التطبيق الأساسي لا يدعمها.
مصادر
- صفحة وحدة GC في توثيق روبي الرسمي.