2010-05-17 50 views
0

与在Ruby中生成100个动态方法相关的性能问题是什么?在Ruby中生成100个动态方法的性能影响?

我一直对使用Ruby Preferences Gem感兴趣,并注意到它会为您设置的每个偏好生成一堆帮助方法。

例如:

class User < ActiveRecord::Base 
    preference :hot_salsa 
end 

...产生类似:

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

如果有这样的偏好100的,这将如何影响应用程序?我认为这不是什么大不了的事,但我只是在理论上想。

+0

你可以测试它,然后实际上知道:-)因为这些(通常)在'启动时'(当类语句执行时)完成,它只是一次性创建成本。 – 2010-05-17 06:02:07

+0

pst是对的,它可能只是一次性成本(内存和启动时间)。 – 2010-05-18 09:32:58

回答

0

几乎每个Ruby程序都会像疯了一样做这种事 - 这就是标准的attr_方法家族所做的事情,在几乎所有的Ruby程序中都会使用这种方法。许多程序也在其他地方这样做 - 例如,它非常常见于method_missing黑客。我从来没有时间看到它究竟是如何执行的,但它很常见,如果这是一个重大问题,现在应该已经注意到了。