内存和性能对类和实例方法的影响

时间:2018-02-09 06:27:09

标签: ruby memory optimization memory-management

当我有一个包含几个自我方法的类和非自我方法时,如下所示:

class Employee
  def self.hello
    puts "greet our employee"
  end

  def not_self
    puts "this is not a self method"
  end
end

如果通过not_self调用Employee.new.not_self方法,所有类方法是否仍会加载到内存中并且会对性能产生影响吗?

1 个答案:

答案 0 :(得分:1)

  

如果not_self方法是通过Employee.new.not_self调用的,那么所有类方法是否仍然会被加载到内存中[...]

当Ruby评估您的代码时,它会创建一个新类并将其分配给常量Employee。然后,它会创建两个方法hellonot_self

通过定义方法(通过def ...)而不是通过调用它们来创建方法。你之后是否打电话是无关紧要的。

  

[...]并且有性能影响吗?

不是,因为方法只存储一次。