在Ruby中生成100个动态方法的性能影响?

时间:2010-05-17 05:56:05

标签: ruby performance code-generation

在Ruby中生成100个动态方法有哪些性能问题?

我一直对使用Ruby Preferences Gem感兴趣,并注意到它为您设置的每个首选项生成了一堆辅助方法。

例如:

class User < ActiveRecord::Base
  preference :hot_salsa
end

...生成如下内容:

user.prefers_hot_salsa?         # => false
user.prefers_hot_salsa          # => false

如果有100个这样的偏好,这对应用程序有何影响?我认为这不是什么大问题,但理论上我只是想知道。

1 个答案:

答案 0 :(得分:0)

几乎每个Ruby程序都会做类似疯狂的事情 - 这就是标准attr_系列方法所做的事情,它们几乎在每个Ruby程序中都不受惩罚。许多程序也在其他地方执行此操作 - 例如,它在method_missing黑客中非常常见。我从来没有及时确切地看到它的表现如何,但是如果这是一个重大问题,它应该已经被注意到了。