1

我想知道联合集是如何在 NSMutableSet 实例中实现的。我有两个需要经常合并的大集合,我想知道我是否应该实施自己的合并两个集合的方式,或者 Apple 的方式是否足够快。

4

2 回答 2

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 回答
1

的性能在NSMutableSet很大程度上取决于集合中对象的实现-hash和执行。-isEqual我认为您自己实施它不会提高性能。但是,您可以尝试一下,然后分析您的代码以查看它是否“太慢”。

于 2013-01-15T01:59:41.243 回答