本文简要介绍ruby语言中 ObjectSpace模块
的用法。
objspace 库扩展了 ObjectSpace
模块并添加了几种方法来获取有关对象/内存管理的内部统计信息。
您需要require 'objspace'
才能使用此扩展模块。
通常,如果您不了解 MRI 实施,您*不应该*使用此库。该库主要面向需要了解 MRI 内存使用情况的(内存)分析器开发人员和 MRI 开发人员。
ObjectSpace
模块包含许多与垃圾收集工具交互的例程,并允许您使用迭代器遍历所有活动对象。
ObjectSpace
还提供对对象终结器的支持,当特定对象即将被垃圾回收销毁时,将调用它们。有关如何正确使用此方法的重要信息,请参阅ObjectSpace.define_finalizer
的文档。
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
产生:
Finalizer two on 537763470
Finalizer one on 537763480
相关用法
- Ruby ObjectSpace.memsize_of_all用法及代码示例
- Ruby ObjectSpace.count_symbols用法及代码示例
- Ruby ObjectSpace.define_finalizer用法及代码示例
- Ruby ObjectSpace.count_imemo_objects用法及代码示例
- Ruby ObjectSpace.allocation_generation用法及代码示例
- Ruby ObjectSpace.each_object用法及代码示例
- Ruby ObjectSpace.reachable_objects_from用法及代码示例
- Ruby ObjectSpace.allocation_class_path用法及代码示例
- Ruby ObjectSpace.count_objects_size用法及代码示例
- Ruby ObjectSpace.count_nodes用法及代码示例
- Ruby ObjectSpace.trace_object_allocations用法及代码示例
- Ruby ObjectSpace.count_objects用法及代码示例
- Ruby ObjectSpace.count_tdata_objects用法及代码示例
- Ruby ObjectSpace.allocation_method_id用法及代码示例
- Ruby Object.instance_variable_get用法及代码示例
- Ruby Object.display用法及代码示例
- Ruby Object.remove_instance_variable用法及代码示例
- Ruby Object.define_singleton_method用法及代码示例
- Ruby Object.methods用法及代码示例
- Ruby Object.public_send用法及代码示例
- Ruby Object.xmp用法及代码示例
- Ruby Object.singleton_methods用法及代码示例
- Ruby Object.enum_for用法及代码示例
- Ruby Object.freeze用法及代码示例
- Ruby Object.inspect用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 ObjectSpace模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。