速查 NSArray NSSet NSHashTable 快速遍历之速度比较

因为NSArray中的指针并不是简单的连续存放的,所以简单的测试了Cocoa的三种集合的快速遍历(NSFastEnumeration)性能,给出简单的参考。

添加元素:

[collection addObject:[NSObject new]];

遍历工作:

for (id item in collection.objectEnumerator) {
    [item isProxy];
}

循环次数:1,000,000

 

样本:

NSMutableArray;
//0.026123/0.028087/0.031107/0.026678/0.024862/0.023245

NSMutableSet;
//0.044908/0.026870/0.027532/0.035661/0.034451/0.027642

NSHashTable;
//0.130406/0.128523/0.116676/0.117398/0.121508/0.113544

HashTable最差,慢4倍左右;

数组最稳定,Set不稳定标准差大,数组微胜。

结论:for in中还是数组有优势。

你可能感兴趣的:(速查 NSArray NSSet NSHashTable 快速遍历之速度比较)