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