我想知道联合集是如何在 NSMutableSet 实例中实现的。我有两个需要经常合并的大集合,我想知道我是否应该实施自己的合并两个集合的方式,或者 Apple 的方式是否足够快。
问问题
472 次
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 回答