module ObjectSpace

Die Bibliothek objspace erweitert das Modul ObjectSpace und fügt mehrere Methoden hinzu, um interne statistische Informationen über die Objekt-/Speicherverwaltung zu erhalten.

Sie müssen require 'objspace' verwenden, um dieses Erweiterungsmodul zu nutzen.

Im Allgemeinen SOLLTEN Sie diese Bibliothek **NICHT** verwenden, wenn Sie die MRI-Implementierung nicht kennen. Hauptsächlich ist diese Bibliothek für (Speicher-)Profiler-Entwickler und MRI-Entwickler gedacht, die die MRI-Speichernutzung kennen müssen.

Das Modul ObjectSpace enthält eine Reihe von Routinen, die mit der Garbage-Collection-Einrichtung interagieren und es Ihnen ermöglichen, alle lebenden Objekte mit einem Iterator zu durchlaufen.

ObjectSpace bietet auch Unterstützung für Objektfinalisierer, das sind Procs, die aufgerufen werden, nachdem ein bestimmtes Objekt durch die Garbage-Collection zerstört wurde. Siehe die Dokumentation für ObjectSpace.define_finalizer für wichtige Informationen zur korrekten Verwendung dieser Methode.

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}" })

a = nil
b = nil

ergibt

Finalizer two on 537763470
Finalizer one on 537763480