الفرق بين المراجعتين لصفحة: «Ruby/ObjectSpace»
< Ruby
أنشأ الصفحة ب'{{DISPLAYTITLE:الوحدة <code>ObjectSpace</code> في روبي}} تحتوي الوحدة <code>ObjectSpace</code> على مجموعةٍ من البرامج الفر...' |
طلا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 19: | سطر 19: | ||
== توابع الصنف العامة (Public Class Methods) == | == توابع الصنف العامة (Public Class Methods) == | ||
=== <code>id2ref_</code> === | === <code>[[Ruby/ObjectSpace/ id2ref|id2ref_]]</code> === | ||
يُحوِّل معرِّف الكائن (id) إلى مرجعٍ للكائن. | يُحوِّل معرِّف الكائن (id) إلى مرجعٍ للكائن. | ||
=== <code>count_objects</code> === | === <code>[[Ruby/ObjectSpace/count objects|count_objects]]</code> === | ||
يُحصِي جميع الكائنات التي من نوعٍ واحد. | يُحصِي جميع الكائنات التي من نوعٍ واحد. | ||
=== <code>define_finalizer</code> === | === <code>[[Ruby/ObjectSpace/define finalizer|define_finalizer]]</code> === | ||
يضيف كتلة <code>aProc</code> كمُنهِي (finalizer) ليُستدعى بعد تدمير الكائن. | يضيف كتلة <code>aProc</code> كمُنهِي (finalizer) ليُستدعى بعد تدمير الكائن. | ||
=== <code>each_object</code> === | === <code>[[Ruby/ObjectSpace/each object|each_object]]</code> === | ||
يستدعي كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ (living object) أو غير مباشرٍ (nonimmediate object) في هذه العملية الحالية في روبي. | يستدعي كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ (living object) أو غير مباشرٍ (nonimmediate object) في هذه العملية الحالية في روبي. | ||
=== <code>garbage_collect</code> === | === <code>[[Ruby/ObjectSpace/garbage collect|garbage_collect]]</code> === | ||
يبدأ عملية جمع المهملات (garbage collection). | يبدأ عملية جمع المهملات (garbage collection). | ||
=== <code>undefine_finalizer</code> === | === <code>[[Ruby/ObjectSpace/undefine finalizer|undefine_finalizer]]</code> === | ||
يحذف جميع مُنهِيَات (finalizers) الكائن المعطى. | يحذف جميع مُنهِيَات (finalizers) الكائن المعطى. | ||
سطر 41: | سطر 41: | ||
[[تصنيف:Ruby]] | [[تصنيف:Ruby]] | ||
[[تصنيف:Ruby Module]] | [[تصنيف:Ruby Module]] | ||
[[تصنيف:Ruby ObjectSpace]] |
المراجعة الحالية بتاريخ 11:05، 25 نوفمبر 2018
تحتوي الوحدة ObjectSpace
على مجموعةٍ من البرامج الفرعيَّة (routines) التي تتفاعل مع وسائل جمع المهملات وتسمح لك باجتياز جميع الكائنات النشطة مع مُكرَّر (iterator).
تقدِّم الوحدة ObjectSpace
الدَّعم أيضًا لمُنهِيَات كائنٍ (object finalizers) وكتل procs
التي تُستدعى عندما يكون كائنٌ محدَّدٌ على وشك أن يُدمَّر عبر مجمِّع المهملات.
require 'objspace'
a = "A"
b = "B"
ObjectSpace.define_finalizer(a, proc {|id| puts "Finalizer one on #{id}" })
ObjectSpace.define_finalizer(b, proc {|id| puts "Finalizer two on #{id}" })
ينتج عن تطبيق المثال السابق:
Finalizer two on 537763470
Finalizer one on 537763480
توابع الصنف العامة (Public Class Methods)
id2ref_
يُحوِّل معرِّف الكائن (id) إلى مرجعٍ للكائن.
count_objects
يُحصِي جميع الكائنات التي من نوعٍ واحد.
define_finalizer
يضيف كتلة aProc
كمُنهِي (finalizer) ليُستدعى بعد تدمير الكائن.
each_object
يستدعي كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ (living object) أو غير مباشرٍ (nonimmediate object) في هذه العملية الحالية في روبي.
garbage_collect
يبدأ عملية جمع المهملات (garbage collection).
undefine_finalizer
يحذف جميع مُنهِيَات (finalizers) الكائن المعطى.