2010-05-17 47 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黑客。我從來沒有時間看到它究竟是如何執行的,但它很常見,如果這是一個重大問題,現在應該已經注意到了。