1

NSMutableSet インスタンスにユニオン セットがどのように実装されているのか疑問に思っています。頻繁にユニオン化する必要がある 2 つの大きなセットがあり、2 つのセットをユニオン化する独自の方法を実装する必要があるのか​​、それとも Apple の方法で十分速いのか疑問に思っています。

4

2 に答える 2

1

のパフォーマンスは、セット内のオブジェクトの実装とオブジェクトNSMutableSetによって大きく異なります。自分で実装してもパフォーマンスが向上するとは思いませんただし、それを試してからコードをプロファイリングして、「遅すぎる」かどうかを確認することはできます。-hash-isEqual

于 2013-01-15T01:59:41.243 に答える
1

Apple のバージョンは大幅に最適化されているに違いありません。Instrumentsを実行して、パフォーマンスの問題があるかどうかを確認してみませんか?

CFSet のソース コードについては、opensource.apple.comを参照してください。

static Boolean __CFSetEqual(CFTypeRef cf1, CFTypeRef cf2) {
return __CFBasicHashEqual((CFBasicHashRef)cf1, (CFBasicHashRef)cf2);
}

static CFHashCode __CFSetHash(CFTypeRef cf) {
return __CFBasicHashHash((CFBasicHashRef)cf);
}
于 2013-01-15T01:55:59.250 に答える