2016-02-26 38 views
1

我有一些生成幾千個Objective C類方法的生成代碼(分佈在大約同樣多的類上)。我聽說過各種聲明,說有大量的類方法會影響啓動性能,因爲每個類都會在類加載期間產生一些開銷,但我還沒有看到有關這種效果的具體文檔。有很多Objective C類方法對啓動性能有什麼影響?

類方法是否會產生足夠的開銷,我應該嘗試重構我的代碼?

+1

如果_你沒有看到重大問題,那就沒有重大問題。還要注意的是,只有在_executable code_中第一次引用該類時纔會加載該類,因此該現象可能會隨時間推移,或者如果某個類實際上是_never_引用的,可能永遠不會出現(具體取決於您的方式使用這些生成的類)。 – matt

回答

0

在Objective-C類方法僅僅是一個的類對象的實例方法 - 類方法具有self正如實例方法,在前者是類對象,在後者的實例對象。因此,必須將兩個&實例方法輸入到內部「方法表」中。

從這個人可能會推斷出任何關於影響性能的類方法的數量的說法,實例方法的數量並不可能是可信的。

許多類可能更有可能具有不可忽略的幅度的影響(注意該聲明中的許多不確定性!);但如果沒有損壞,請不要修復 - 即遇到問題了嗎?

相關問題