الوحدة GC في روبي

من موسوعة حسوب
مراجعة 20:15، 22 أكتوبر 2018 بواسطة Khaled-yassin (نقاش | مساهمات) (أنشأ الصفحة ب' <noinclude>{{DISPLAYTITLE: الوحدة GC في روبي}}</noinclude> = الوحدة GC = توفر الوحدة 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 في توثيق روبي الرسمي.