التابع Object.count_objects
في روبي
< Ruby | ObjectSpace
يُحصِي التابع 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
: يحذف جميع مُنهِيَات الكائن المعطى.