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