ruby - ObjectSpace - 它是什么以及人们如何使用它?

标签 ruby memory-management garbage-collection objectspace

Ruby-doc 有这样的描述:

The ObjectSpace module contains a number of routines that interact with the garbage collection facility and allow you to traverse all living objects with an iterator.

ObjectSpace also provides support for object finalizers, procs that will be called when a specific object is about to be destroyed by garbage collection.

任何人都可以用更简单的语言解释一下吗?如果不能,请至少提供有关使用位置的信息?

最佳答案

A garbage collector是具有托管内存的语言的构造。它是管理内存的东西。本质上,垃圾收集器的工作是确定何时不再需要一 block 已分配的内存,并释放它。

当您使用带有垃圾收集器的语言时,您可能需要做一些事情:

  1. 每当释放一 block 内存时运行一个方法
  2. 计算当前占用内存的类的所有实例
  3. 计算所有类的所有实例

ObjectSpace 使您可以进行此类操作。从本质上讲,这是一种访问当前正在使用已分配内存的任何事物的方法。

关于ruby - ObjectSpace - 它是什么以及人们如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115401/

相关文章:

Ruby 从模块导入局部变量

ruby-on-rails - before_filter 运行多个方法

ruby-on-rails - 使用多个数据库测试 Rails 应用程序

使用 malloc() 时数据大小的兼容性

c# - 为什么 sortedDictionary 需要这么多开销?

go - 为什么 "concurrent"Go GC 阶段看起来是停止世界的?

javascript - Ruby 和 JS 中相同输入的不同和相同正则表达式

c - C 中 malloc 分配的意外大小输出

c++ - 垃圾收集器 C++

language-agnostic - 为什么托管语言不提供手动删除对象的能力?