Swift Compiler optimization level for unit tests set to -O
Apple LLVM 6.0/7.0 Optimization Level set to Fastest, Aggressive Optimizations -Ofast
Tests written in Objective-C
Shuffle 1,000,000 NSNumber objects in NSMutableArray
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
0.304 seconds 5% STDEV |
0.376 seconds 1% STDEV |
- |
iPhone 6 (8.3) |
Swift 1.2 |
0.281 seconds 3% STDEV |
0.303 seconds 1% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.0 |
0.270 seconds 2% STDEV |
0.273 seconds 2% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.1 |
0.313 seconds 2% STDEV |
0.318 seconds 3% STDEV |
- |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
0.259 seconds 3% STDEV |
0.261 seconds 2% STDEV |
- |
iPhone 6 (9.2) |
Shuffle 1,000,000 NSString objects in NSMutableArray
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
1.091 seconds 2% STDEV |
1.290 seconds 3% STDEV |
- |
iPhone 6 (8.3) |
Swift 1.2 |
1.129 seconds 3% STDEV |
1.238 seconds 2% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.0 |
1.106 seconds 2% STDEV |
1.096 seconds 1% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.1 |
0.307 seconds 2% STDEV |
0.312 seconds 2% STDEV |
- |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
0.258 seconds 4% STDEV |
0.265 seconds 6% STDEV |
- |
iPhone 6 (9.2) |
Shuffle 1,000,000 ObjcObject objects in NSMutableArray
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
0.839 seconds 4% STDEV |
1.014 seconds 4% STDEV |
- |
iPhone 6 (8.3) |
Swift 1.2 |
0.799 seconds 3% STDEV |
0.867 seconds 1% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.0 |
0.791 seconds 4% STDEV |
0.798 seconds 2% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.1 |
0.877 seconds 2% STDEV |
0.862 seconds 1% STDEV |
- |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
0.775 seconds 4% STDEV |
0.780 seconds 4% STDEV |
- |
iPhone 6 (9.2) |
Shuffle 1,000,000 SwiftObject objects in NSMutableArray
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
0.818 seconds 1% STDEV |
1.015 seconds 1% STDEV |
- |
iPhone 6 (8.3) |
Swift 1.2 |
0.854 seconds 2% STDEV |
0.898 seconds 2% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.0 |
0.808 seconds 2% STDEV |
0.817 seconds 2% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.1 |
0.861 seconds 3% STDEV |
0.853 seconds 3% STDEV |
- |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
0.769 seconds 4% STDEV |
0.779 seconds 6% STDEV |
- |
iPhone 6 (9.2) |
Empty loop 1,000,000 objects with NSMutableArray
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
0.006 seconds 2% STDEV |
0.005 seconds 9% STDEV |
- |
iPhone 6 (8.3) |
Swift 1.2 |
0.004 seconds 3% STDEV |
0.005 seconds 10% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.0 |
0.004 seconds 3% STDEV |
0.004 seconds 2% STDEV |
- |
iPhone 6 (8.3) |
Swift 2.1 |
0.005 seconds 8% STDEV |
0.005 seconds 11% STDEV |
- |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
0.006 seconds 36% STDEV |
0.005 seconds 2% STDEV |
- |
iPhone 6 (9.2) |
Shuffle 1,000,000 Int objects with Swift implementation taking [AnyObject]
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
0.296 seconds 1% STDEV |
- |
1.616 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 1.2 |
0.262 seconds 1% STDEV |
- |
0.523 seconds 1% STDEV |
iPhone 6 (8.3) |
Swift 2.0 |
0.271 seconds 2% STDEV |
- |
0.285 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 2.1 |
0.305 seconds 1% STDEV |
- |
0.336 seconds 5% STDEV |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
0.256 seconds 1% STDEV |
- |
0.284 seconds 7% STDEV |
iPhone 6 (9.2) |
Shuffle 1,000,000 Int objects with Swift implementation taking [Any]
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
Same as above |
- |
0.537 seconds 3% STDEV |
iPhone 6 (8.3) |
Swift 1.2 |
Same as above |
- |
0.289 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 2.0 |
Same as above |
- |
0.303 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 2.1 |
Same as above |
- |
0.378 seconds 6% STDEV |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
Same as above |
- |
0.340 seconds 3% STDEV |
iPhone 6 (9.2) |
Shuffle 1,000,000 Int objects with Swift implementation taking [Int]
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
Same as above |
- |
0.181 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 1.2 |
Same as above |
- |
0.189 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 2.0 |
Same as above |
- |
0.197 seconds 5% STDEV |
iPhone 6 (8.3) |
Swift 2.1 |
Same as above |
- |
0.240 seconds 2% STDEV |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
Same as above |
- |
0.198 seconds 6% STDEV |
iPhone 6 (9.2) |
Shuffle 1,000,000 Int objects with Swift implementation taking [T]
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
Same as above |
- |
32.627 seconds 1% STDEV |
iPhone 6 (8.3) |
Swift 1.2 |
Same as above |
- |
2.155 seconds 1% STDEV |
iPhone 6 (8.3) |
Swift 2.0 |
Same as above |
- |
1.478 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 2.1 |
Same as above |
- |
2.025 seconds 1% STDEV |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
Same as above |
- |
2.185 seconds 2% STDEV |
iPhone 6 (9.2) |
Shuffle 1,000,000 String objects with Swift implementation taking [String]
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
1.137 seconds 2% STDEV |
- |
0.829 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 1.2 |
1.112 seconds 3% STDEV |
- |
0.891 seconds 3% STDEV |
iPhone 6 (8.3) |
Swift 2.0 |
1.114 seconds 2% STDEV |
- |
0.925 seconds 1% STDEV |
iPhone 6 (8.3) |
Swift 2.1 |
1.253 seconds 3% STDEV |
- |
1.010 seconds 3% STDEV |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
1.138 seconds 2% STDEV |
- |
0.878 seconds 2% STDEV |
iPhone 6 (9.2) |
Shuffle 1,000,000 ObjcObject objects with Swift implementation taking [ObjcObject]
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
0.816 seconds 3% STDEV |
- |
2.529 seconds 1% STDEV |
iPhone 6 (8.3) |
Swift 1.2 |
0.794 seconds 2% STDEV |
- |
1.252 seconds 1% STDEV |
iPhone 6 (8.3) |
Swift 2.0 |
0.794 seconds 2% STDEV |
- |
0.820 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 2.1 |
0.827 seconds 4% STDEV |
- |
0.895 seconds 2% STDEV |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
0.748 seconds 4% STDEV |
- |
0.810 seconds 1% STDEV |
iPhone 6 (9.2) |
Shuffle 1,000,000 SwiftObject objects with Swift implementation taking [SwiftObject]
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
0.826 seconds 2% STDEV |
- |
2.527 seconds 1% STDEV |
iPhone 6 (8.3) |
Swift 1.2 |
0.795 seconds 2% STDEV |
- |
1.352 seconds 1% STDEV |
iPhone 6 (8.3) |
Swift 2.0 |
0.796 seconds 2% STDEV |
- |
0.830 seconds 3% STDEV |
iPhone 6 (8.3) |
Swift 2.1 |
0.835 seconds 4% STDEV |
- |
0.887 seconds 3% STDEV |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
0.755 seconds 3% STDEV |
- |
0.809 seconds 3% STDEV |
iPhone 6 (9.2) |
Shuffle 1,000,000 SwiftStructObject objects with Swift implementation taking [SwiftStructObject]
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
- |
- |
0.070 seconds 1% STDEV |
iPhone 6 (8.3) |
Swift 1.2 |
- |
- |
0.065 seconds 3% STDEV |
iPhone 6 (8.3) |
Swift 2.0 |
- |
- |
0.067 seconds 2% STDEV |
iPhone 6 (8.3) |
Swift 2.1 |
- |
- |
0.067 seconds 5% STDEV |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
- |
- |
0.069 seconds 17% STDEV |
iPhone 6 (9.2) |
Empty loop 1,000,000 Int objects in [Int]
Version |
Objective-C |
Bridgeable Swift |
Swift |
Device (iOS Version) |
Swift 1.1 |
0.010 seconds 38% STDEV |
- |
0.003 seconds 49% STDEV |
iPhone 6 (8.3) |
Swift 1.2 |
0.005 seconds 10% STDEV |
- |
0.001 seconds 20% STDEV |
iPhone 6 (8.3) |
Swift 2.0 |
0.005 seconds 23% STDEV |
- |
0.001 seconds 10% STDEV |
iPhone 6 (8.3) |
Swift 2.1 |
0.005 seconds 35% STDEV |
- |
0.001 seconds 9% STDEV |
iPhone 6 (9.2) |
Swift 2.2 Snapshot |
0.005 seconds 24% STDEV |
- |
0.000 seconds 106% STDEV |
iPhone 6 (9.2) |