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

من موسوعة حسوب
مراجعة 11:03، 25 نوفمبر 2018 بواسطة محمد-خطيب (نقاش | مساهمات) (أنشأ الصفحة ب'{{DISPLAYTITLE:التابع <code>Object.count_objects</code> في روبي}} يُحصِي التابع <code>count_objects</code> جميع الكائنات التي م...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يُحصِي التابع count_objects جميع الكائنات التي من نوعٍ واحد.

من المتوقع أن يعمل هذا التابع على C Ruby فقط.

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

count_objects([result_hash])  hash

المعاملات

result_hash

إذا أُعطي الوسيط الاختياري result_hash، فسيُستبدَل (overwritten) الناتج ويعدَّل قبل إعادته ثمَّ يُعاد. الهدف من استعمال هذا المعامل هو تفادي تأثير الاختبار (probe effect).

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

تُعاد تجزئةٌ (hash) مثل:

{
  :TOTAL=>10000,
  :FREE=>3011,
  :T_OBJECT=>6,
  :T_CLASS=>404,
  # ...
}

تتبع هذه المحتويات طريقة التنفيذ، لذلك قد تتغيَّر في المستقبل.

المفاتيح التي تبدأ بالمقطع _T تعني كائنات نشطة مثل T_ARRAY الذي يمثِّل عدد المصفوفات. يمثِّل المفتاح FREE: عدد مداخل الكائن (object slots) غير المستعملة حاليًا. يمثِّل المفتاح TOTAL: المجموع الكلي لما يسبقه.

أمثلة

مثالٌ عن استخدام التابع count_objects:

h = {}
ObjectSpace.count_objects(h)
puts h
# => { :TOTAL=>10000, :T_CLASS=>158280, :T_MODULE=>20672, :T_STRING=>527249 }

انظر أيضًا

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

مصادر