【发布时间】:2014-03-17 16:16:25
【问题描述】:
我想知道 Ruby 中的内存分配是如何工作的。
在 Ruby 中,我们可以打开一个类定义并添加更多实例变量/方法。在这种情况下,新对象将需要比现有实例更多的内存。它如何在内部跟踪分配给实例的内存?
例如,我们有以下类定义:
class MyClass
def myMethod
@a = 5
end
end
我们创建了MyClass的实例:
m = MyClass.new
m.myMethod
此时,m 将被分配一些内存。现在,我们打开类定义并添加另一个实例变量b。
class MyClass
def mySecondMethod
@b = 5
end
end
这个新方法mySecondMethod和实例变量b在Myclass的现有实例m中也可用。
调用mySecondMethod实例化并初始化b:
m.mySecondMethod
Ruby 如何在内部管理内存?它是重新分配内存块,例如m,还是维护某种指向新分配内存的指针?
【问题讨论】:
-
只有一点 -
mySecondMethod在b这样的实例上不可用,而是在b这样的实例类中可用。 -
@ArupRakshit,我不明白你的意思,“像
b这样的实例”。你能改写一下吗?谢谢。
标签: ruby object memory-management