2012-09-12 17 views
0

在下面的問題,有人問怎麼弱指針的niling在Objective-C的工作原理:Objective-C ARC中沒有弱指針?像地獄一樣慢?

How does the ARC's zeroing weak pointer behavior implemented?

答案指出,這份文件似乎包含了答案:http://mikeash.com/pyblog/friday-qa-2010-07-16-zeroing-weak-references-in-objective-c.html

的答案是將對象的字典/散列表保存爲一組弱引用。但是,不是每個釋放都必須使用哈希表查找的結果嗎?這不是一個很難的表現處罰,尤其是在很多短命的物體的情況下?

+2

使用許多短生命的對象始終具有性能懲罰。 – Sulthan

回答

1

散列表查找通常很快,但正如您正確指出的那樣,在大量短期對象的情況下性能損失將會增加。然而,這必須與散列表的便利性保持平衡,以保證弱引用的有效性。