NSArray *tagsArray
およびNSMutableDictionary *cache
が空でない場合。ローカル変数、最適化、およびARC
この:
for (Tag *tag in tagsArray) {
NSString *name = tag.name;
[cache setObject:tag forKey:name];
}
はこれより遅くなることはないはずです。
for (Tag *tag in tagsArray) {
[cache setObject:tag forKey:tag.name];
}
?
__strong var 'name'はARCによる暗黙的な保持/解放を使用しませんか?コンパイラは実際に最初から2番目を生成しますか?
リリースビルドに違いがあると私は驚いていますが、デバッグビルドではretain/releaseがおそらくそこにあります。 – dasblinkenlight
はいこれはまったく同じものにコンパイルされます – trapper
*まったく同じものにコンパイルする必要があります。あなたが実際にそれが遅くなっているのを見ているなら、私は奇妙なことが起こっていることを賭けても大丈夫です。 – mattjgalloway