Skip to content

[stdlib][WIP perf experiment] Give Array types a custom Iterator #9145

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

airspeedswift
Copy link
Member

Replacing IndexingIterator with a custom iterator for array types that stores the _buffer.

Ideally this would be a nested type but that seems to be crashing the compiler.

@airspeedswift
Copy link
Member Author

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

swift-ci commented May 1, 2017

Build comment file:

Optimized (O)

Regression (15)
TEST OLD NEW DELTA SPEEDUP
BitCount 0 1 +100000.0% 0.00x
ArrayValueProp2 6 1203 +19946.7% 0.00x
ObjectAllocation 182 243 +33.5% 0.75x
StringBuilder 1388 1740 +25.4% 0.80x
DropLastSequence 514 635 +23.5% 0.81x
DropLastSequenceLazy 518 634 +22.4% 0.82x
StringUTF16Builder 2178 2559 +17.5% 0.85x
DropWhileSequenceLazy 67 76 +13.4% 0.88x
StringHasPrefix 703 795 +13.1% 0.88x
ProtocolDispatch 2727 3031 +11.1% 0.90x
NopDeinit 27538 30465 +10.6% 0.90x
DropWhileArray 42 46 +9.5% 0.91x
PrefixWhileArray 66 71 +7.6% 0.93x
ProtocolDispatch2 160 169 +5.6% 0.95x
OpenClose 54 57 +5.6% 0.95x
Improvement (24)
TEST OLD NEW DELTA SPEEDUP
UTF8Decode 278 0 -100.0% 278001.00x
PrefixWhileAnySeqCRangeIter 12502 3653 -70.8% 3.42x
SuffixSequenceLazy 4471 1482 -66.9% 3.02x
SuffixSequence 4474 1483 -66.9% 3.02x
DropLastAnySeqCRangeIterLazy 4612 1661 -64.0% 2.78x
DropLastAnySeqCRangeIter 4607 1661 -63.9% 2.77x
PrefixWhileAnySequence 14050 5135 -63.5% 2.74x
SuffixAnySeqCRangeIter 4925 1981 -59.8% 2.49x
SuffixAnySeqCRangeIterLazy 4923 1982 -59.7% 2.48x
DropLastAnySequenceLazy 6523 3571 -45.3% 1.83x
SuffixAnySequenceLazy 6549 3649 -44.3% 1.79x
DropLastAnySequence 6722 3783 -43.7% 1.78x
SuffixAnySequence 6701 3810 -43.1% 1.76x
DropWhileArrayLazy 80 70 -12.5% 1.14x
PrefixArrayLazy 33 29 -12.1% 1.14x
PrefixWhileArrayLazy 58 51 -12.1% 1.14x
SuffixArrayLazy 11 10 -9.1% 1.10x
ReversedArray 53 49 -7.5% 1.08x
StringHasSuffix 905 848 -6.3% 1.07x
CaptureProp 4852 4594 -5.3% 1.06x
DropFirstAnySequenceLazy 7184 6804 -5.3% 1.06x
PrefixAnySequence 6432 6092 -5.3% 1.06x
PrefixAnySequenceLazy 6443 6111 -5.2% 1.05x
DropFirstAnySequence 7179 6833 -4.8% 1.05x
No Changes (230)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2954 2918 -1.2% 1.01x
AnyHashableWithAClass 68619 67274 -2.0% 1.02x
Array2D 2146 2052 -4.4% 1.05x (?)
ArrayAppend 773 770 -0.4% 1.00x (?)
ArrayAppendArrayOfInt 597 596 -0.2% 1.00x
ArrayAppendAscii 20225 19913 -1.5% 1.02x (?)
ArrayAppendFromGeneric 597 596 -0.2% 1.00x
ArrayAppendGenericStructs 1232 1227 -0.4% 1.00x
ArrayAppendLatin1 45366 45414 +0.1% 1.00x (?)
ArrayAppendLazyMap 1015 1002 -1.3% 1.01x (?)
ArrayAppendOptionals 1242 1233 -0.7% 1.01x (?)
ArrayAppendRepeatCol 838 838 +0.0% 1.00x
ArrayAppendReserved 534 534 +0.0% 1.00x
ArrayAppendSequence 949 947 -0.2% 1.00x
ArrayAppendStrings 13644 13626 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 596 596 +0.0% 1.00x
ArrayAppendToGeneric 597 596 -0.2% 1.00x
ArrayAppendUTF16 44083 43712 -0.8% 1.01x (?)
ArrayInClass 62 62 +0.0% 1.00x
ArrayLiteral 1228 1232 +0.3% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4052 4030 -0.5% 1.01x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3909 3900 -0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 596 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 4670 4675 +0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 773 773 +0.0% 1.00x
ArrayPlusEqualThreeElements 1605 1593 -0.7% 1.01x (?)
ArraySubscript 1506 1510 +0.3% 1.00x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 13572 13686 +0.8% 0.99x
CStringLongNonAscii 4167 4207 +1.0% 0.99x
CStringShortAscii 6071 6128 +0.9% 0.99x (?)
Calculator 45 43 -4.4% 1.05x
CharacterLiteralsLarge 10640 10590 -0.5% 1.00x
CharacterLiteralsSmall 778 779 +0.1% 1.00x
Chars 1388 1382 -0.4% 1.00x
ClassArrayGetter 14 14 +0.0% 1.00x
DeadArray 181 186 +2.8% 0.97x (?)
Dictionary 828 826 -0.2% 1.00x (?)
Dictionary2 2084 2084 +0.0% 1.00x
Dictionary2OfObjects 3620 3630 +0.3% 1.00x (?)
Dictionary3 602 603 +0.2% 1.00x (?)
Dictionary3OfObjects 1089 1087 -0.2% 1.00x (?)
DictionaryBridge 2816 2831 +0.5% 0.99x (?)
DictionaryLiteral 1495 1476 -1.3% 1.01x (?)
DictionaryOfObjects 2677 2682 +0.2% 1.00x (?)
DictionaryRemove 3275 3299 +0.7% 0.99x
DictionaryRemoveOfObjects 23445 23483 +0.2% 1.00x (?)
DictionarySwap 370 370 +0.0% 1.00x
DictionarySwapOfObjects 7013 6973 -0.6% 1.01x (?)
DropFirstAnyCollection 126 126 +0.0% 1.00x
DropFirstAnyCollectionLazy 45123 45042 -0.2% 1.00x
DropFirstAnySeqCRangeIter 27308 27550 +0.9% 0.99x
DropFirstAnySeqCRangeIterLazy 27138 27796 +2.4% 0.98x
DropFirstAnySeqCntRange 116 116 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 116 115 -0.9% 1.01x
DropFirstArray 29 29 +0.0% 1.00x
DropFirstArrayLazy 29 29 +0.0% 1.00x
DropFirstCountableRange 23 23 +0.0% 1.00x
DropFirstCountableRangeLazy 23 23 +0.0% 1.00x
DropFirstSequence 3067 3067 +0.0% 1.00x
DropFirstSequenceLazy 3031 3031 +0.0% 1.00x
DropLastAnyCollection 52 52 +0.0% 1.00x
DropLastAnyCollectionLazy 15004 15006 +0.0% 1.00x (?)
DropLastAnySeqCntRange 40 40 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 40 40 +0.0% 1.00x
DropLastArray 10 10 +0.0% 1.00x
DropLastArrayLazy 11 11 +0.0% 1.00x
DropLastCountableRange 8 8 +0.0% 1.00x
DropLastCountableRangeLazy 8 8 +0.0% 1.00x
DropWhileAnyCollection 134 134 +0.0% 1.00x
DropWhileAnyCollectionLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22412 21955 -2.0% 1.02x
DropWhileAnySeqCRangeIterLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCntRange 128 128 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 96 96 +0.0% 1.00x
DropWhileAnySequence 7581 7569 -0.2% 1.00x (?)
DropWhileAnySequenceLazy 2109 2108 -0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 79 79 +0.0% 1.00x
DropWhileSequence 3126 3124 -0.1% 1.00x
ErrorHandling 2916 2935 +0.7% 0.99x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3340 3294 -1.4% 1.01x (?)
HashQuadratic 6042417 6353426 +5.1% 0.95x
HashTest 1753 1779 +1.5% 0.99x
Histogram 250 244 -2.4% 1.02x
Integrate 262 262 +0.0% 1.00x
IterateData 764 760 -0.5% 1.01x
Join 455 459 +0.9% 0.99x (?)
LazilyFilteredArrays 64924 64824 -0.2% 1.00x (?)
LazilyFilteredRange 3938 3931 -0.2% 1.00x (?)
LinkedList 7051 7044 -0.1% 1.00x
MapReduce 331 332 +0.3% 1.00x
MapReduceAnyCollection 302 303 +0.3% 1.00x (?)
MapReduceAnyCollectionShort 1994 2005 +0.6% 0.99x
MapReduceClass 3064 3047 -0.6% 1.01x
MapReduceClassShort 4564 4628 +1.4% 0.99x
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 45 44 -2.2% 1.02x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 463 464 +0.2% 1.00x (?)
MapReduceShort 1947 1935 -0.6% 1.01x (?)
MapReduceShortString 18 18 +0.0% 1.00x
MapReduceString 70 72 +2.9% 0.97x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10432 10151 -2.7% 1.03x
MonteCarloPi 44009 43957 -0.1% 1.00x
NSDictionaryCastToSwift 5310 5258 -1.0% 1.01x (?)
NSError 290 291 +0.3% 1.00x (?)
NSStringConversion 767 737 -3.9% 1.04x
ObjectiveCBridgeFromNSArrayAnyObject 24103 23460 -2.7% 1.03x
ObjectiveCBridgeFromNSArrayAnyObjectForced 4452 4493 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43293 44267 +2.2% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37206 38017 +2.2% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 123323 121994 -1.1% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 4883 4941 +1.2% 0.99x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 102096 105449 +3.3% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 98944 98261 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 64535 65036 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4189 4256 +1.6% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 80675 81556 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 71369 72389 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSString 1407 1443 +2.6% 0.98x
ObjectiveCBridgeFromNSStringForced 2321 2392 +3.1% 0.97x
ObjectiveCBridgeStubDataAppend 3783 3782 -0.0% 1.00x (?)
ObjectiveCBridgeStubDateAccess 181 182 +0.6% 0.99x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28383 29307 +3.3% 0.97x
ObjectiveCBridgeStubFromNSDate 3671 3802 +3.6% 0.97x (?)
ObjectiveCBridgeStubFromNSDateRef 3678 3643 -1.0% 1.01x
ObjectiveCBridgeStubFromNSString 940 937 -0.3% 1.00x
ObjectiveCBridgeStubFromNSStringRef 175 177 +1.1% 0.99x
ObjectiveCBridgeStubNSDataAppend 2330 2287 -1.8% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 12666 12217 -3.5% 1.04x (?)
ObjectiveCBridgeStubNSDateRefAccess 347 347 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 28610 28749 +0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14934 15064 +0.9% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3381 3427 +1.4% 0.99x (?)
ObjectiveCBridgeStubToNSString 1516 1517 +0.1% 1.00x
ObjectiveCBridgeStubToNSStringRef 109 108 -0.9% 1.01x (?)
ObjectiveCBridgeStubURLAppendPath 236051 233967 -0.9% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 231978 232497 +0.2% 1.00x (?)
ObjectiveCBridgeToNSArray 29049 29129 +0.3% 1.00x (?)
ObjectiveCBridgeToNSDictionary 61414 61228 -0.3% 1.00x (?)
ObjectiveCBridgeToNSSet 39062 38949 -0.3% 1.00x (?)
ObjectiveCBridgeToNSString 1267 1269 +0.2% 1.00x
ObserverClosure 2305 2299 -0.3% 1.00x (?)
ObserverForwarderStruct 1155 1142 -1.1% 1.01x
ObserverPartiallyAppliedMethod 3821 3822 +0.0% 1.00x (?)
ObserverUnappliedMethod 2660 2653 -0.3% 1.00x (?)
Phonebook 6873 6955 +1.2% 0.99x
PolymorphicCalls 22 21 -4.5% 1.05x
PopFrontArray 1080 1074 -0.6% 1.01x (?)
PopFrontArrayGeneric 1069 1075 +0.6% 0.99x
PopFrontUnsafePointer 8878 8864 -0.2% 1.00x
PrefixAnyCollection 126 126 +0.0% 1.00x
PrefixAnyCollectionLazy 45037 44988 -0.1% 1.00x
PrefixAnySeqCRangeIter 22403 21611 -3.5% 1.04x
PrefixAnySeqCRangeIterLazy 22401 21606 -3.5% 1.04x
PrefixAnySeqCntRange 117 115 -1.7% 1.02x
PrefixAnySeqCntRangeLazy 116 115 -0.9% 1.01x
PrefixArray 30 29 -3.3% 1.03x
PrefixCountableRange 23 23 +0.0% 1.00x
PrefixCountableRangeLazy 23 23 +0.0% 1.00x
PrefixSequence 2638 2563 -2.8% 1.03x
PrefixSequenceLazy 2601 2600 -0.0% 1.00x
PrefixWhileAnyCollection 160 160 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCRangeIterLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCntRange 154 155 +0.6% 0.99x
PrefixWhileAnySeqCntRangeLazy 77 77 +0.0% 1.00x
PrefixWhileAnySequenceLazy 1587 1587 +0.0% 1.00x
PrefixWhileCountableRange 35 36 +2.9% 0.97x
PrefixWhileCountableRangeLazy 23 23 +0.0% 1.00x
PrefixWhileSequence 386 401 +3.9% 0.96x
PrefixWhileSequenceLazy 39 39 +0.0% 1.00x
Prims 790 799 +1.1% 0.99x (?)
RC4 169 169 +0.0% 1.00x
RGBHistogram 2289 2294 +0.2% 1.00x (?)
RGBHistogramOfObjects 24143 24115 -0.1% 1.00x (?)
RangeAssignment 308 313 +1.6% 0.98x (?)
RecursiveOwnedParameter 2315 2320 +0.2% 1.00x (?)
ReversedBidirectional 29156 29077 -0.3% 1.00x
ReversedDictionary 113 113 +0.0% 1.00x
SetExclusiveOr 3002 2941 -2.0% 1.02x (?)
SetExclusiveOr_OfObjects 9634 9574 -0.6% 1.01x (?)
SetIntersect 271 270 -0.4% 1.00x (?)
SetIntersect_OfObjects 1733 1730 -0.2% 1.00x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2782 2698 -3.0% 1.03x
SetUnion_OfObjects 8201 8176 -0.3% 1.00x (?)
SevenBoom 1469 1479 +0.7% 0.99x
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8107 8073 -0.4% 1.00x
SortLettersInPlace 1149 1146 -0.3% 1.00x (?)
SortSortedStrings 838 834 -0.5% 1.00x
SortStrings 1639 1639 +0.0% 1.00x
SortStringsUnicode 7765 7705 -0.8% 1.01x
StackPromo 22025 22065 +0.2% 1.00x
StaticArray 18 18 +0.0% 1.00x
StrComplexWalk 985 998 +1.3% 0.99x
StrToInt 4752 4630 -2.6% 1.03x
StringAdder 0 0 +0.0% 1.00x
StringBuilderLong 974 958 -1.6% 1.02x
StringEdits 376361 382761 +1.7% 0.98x
StringEqualPointerComparison 7302 7341 +0.5% 0.99x
StringHasPrefixUnicode 14507 14489 -0.1% 1.00x
StringHasSuffixUnicode 61251 61640 +0.6% 0.99x
StringInterpolation 8363 8471 +1.3% 0.99x (?)
StringMatch 16734 16536 -1.2% 1.01x
StringWalk 6061 6062 +0.0% 1.00x (?)
StringWithCString 335388 335391 +0.0% 1.00x (?)
SuffixAnyCollection 52 52 +0.0% 1.00x
SuffixAnyCollectionLazy 15105 15025 -0.5% 1.01x
SuffixAnySeqCntRange 40 40 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 40 40 +0.0% 1.00x
SuffixArray 10 10 +0.0% 1.00x
SuffixCountableRange 8 8 +0.0% 1.00x
SuffixCountableRangeLazy 8 8 +0.0% 1.00x
SuperChars 290005 288530 -0.5% 1.01x (?)
TwoSum 900 906 +0.7% 0.99x (?)
TypeFlood 0 0 +0.0% 1.00x
Walsh 355 356 +0.3% 1.00x (?)
XorLoop 347 347 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (20)
TEST OLD NEW DELTA SPEEDUP
Chars 7395 14358 +94.2% 0.52x
ArrayValueProp2 3655 6772 +85.3% 0.54x
StrToInt 7856 10411 +32.5% 0.75x
StringBuilder 2939 3828 +30.2% 0.77x
StringUTF16Builder 3698 4689 +26.8% 0.79x
ObjectAllocation 635 801 +26.1% 0.79x
Dictionary 1949 2319 +19.0% 0.84x
ErrorHandling 3918 4456 +13.7% 0.88x
AngryPhonebook 3110 3481 +11.9% 0.89x
ObjectiveCBridgeStubFromNSDate 3873 4267 +10.2% 0.91x
ObjectiveCBridgeStubFromNSDateRef 3852 4185 +8.6% 0.92x (?)
DictionaryOfObjects 4865 5248 +7.9% 0.93x
ObjectiveCBridgeStubToNSDate 14882 15962 +7.3% 0.93x (?)
RC4 19434 20823 +7.1% 0.93x
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7241 7746 +7.0% 0.93x
ObjectiveCBridgeStubFromNSStringRef 204 217 +6.4% 0.94x
SuperChars 307041 326478 +6.3% 0.94x
ClassArrayGetter 931 988 +6.1% 0.94x
ArrayOfGenericPOD 3075 3242 +5.4% 0.95x
StringHasPrefix 1697 1788 +5.4% 0.95x
Improvement (51)
TEST OLD NEW DELTA SPEEDUP
DropFirstArray 6195 1585 -74.4% 3.91x
PrefixArray 6193 1585 -74.4% 3.91x
DropLastArray 2087 536 -74.3% 3.89x
SuffixArray 2088 537 -74.3% 3.89x
UTF8Decode 37011 10073 -72.8% 3.67x
DropWhileArrayLazy 16910 4976 -70.6% 3.40x
PrefixWhileArrayLazy 14687 5651 -61.5% 2.60x
ReversedDictionary 25843 10009 -61.3% 2.58x
ArrayAppendLazyMap 210126 88650 -57.8% 2.37x
DropWhileArray 9805 5062 -48.4% 1.94x
DictionaryLiteral 13255 6974 -47.4% 1.90x
Join 1263 667 -47.2% 1.89x
MapReduceLazyCollection 32703 17703 -45.9% 1.85x
LazilyFilteredArrays 1706362 963130 -43.6% 1.77x
MapReduceString 2595 1474 -43.2% 1.76x
MapReduceAnyCollection 37765 22973 -39.2% 1.64x
MapReduce 37744 23062 -38.9% 1.64x
MapReduceLazyCollectionShort 44200 28252 -36.1% 1.56x
MapReduceSequence 41017 26306 -35.9% 1.56x
MapReduceClass 43125 28226 -34.5% 1.53x
MapReduceShortString 278 189 -32.0% 1.47x
MapReduceShort 49942 34029 -31.9% 1.47x
MapReduceAnyCollectionShort 50427 34363 -31.9% 1.47x
PrefixWhileSequence 28619 19616 -31.5% 1.46x
PrefixWhileAnySequence 29647 20622 -30.4% 1.44x
MapReduceClassShort 54355 38243 -29.6% 1.42x
Histogram 8765 6279 -28.4% 1.40x
PrefixWhileArray 16836 12168 -27.7% 1.38x
ObserverForwarderStruct 4718 3415 -27.6% 1.38x
PrefixWhileAnySeqCRangeIter 40506 32078 -20.8% 1.26x
ObserverClosure 6701 5313 -20.7% 1.26x
MonteCarloE 134481 107804 -19.8% 1.25x
ObserverPartiallyAppliedMethod 8106 6644 -18.0% 1.22x
ObserverUnappliedMethod 8523 7315 -14.2% 1.17x
RGBHistogram 33893 29156 -14.0% 1.16x
SuffixAnySequence 26892 23829 -11.4% 1.13x
SuffixSequenceLazy 26456 23443 -11.4% 1.13x
SuffixAnySequenceLazy 26882 23867 -11.2% 1.13x
SuffixSequence 26425 23495 -11.1% 1.12x
DropLastAnySequence 29313 26213 -10.6% 1.12x
StringEdits 679110 609269 -10.3% 1.11x
DropLastSequenceLazy 28769 25861 -10.1% 1.11x
DropLastAnySequenceLazy 29169 26246 -10.0% 1.11x
DropLastSequence 28732 25878 -9.9% 1.11x
SuffixAnySeqCRangeIterLazy 41591 38232 -8.1% 1.09x
SuffixAnySeqCRangeIter 41180 38316 -7.0% 1.07x
DropLastAnySeqCRangeIterLazy 43640 40746 -6.6% 1.07x
DropLastAnySeqCRangeIter 43588 40827 -6.3% 1.07x
NopDeinit 53329 50304 -5.7% 1.06x
RGBHistogramOfObjects 98881 94097 -4.8% 1.05x
ObjectiveCBridgeStubDataAppend 3931 3741 -4.8% 1.05x (?)
No Changes (198)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 84381 84884 +0.6% 0.99x
Array2D 608638 608273 -0.1% 1.00x (?)
ArrayAppend 3817 3802 -0.4% 1.00x
ArrayAppendArrayOfInt 658 662 +0.6% 0.99x
ArrayAppendAscii 84023 84385 +0.4% 1.00x
ArrayAppendFromGeneric 664 663 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1301 1301 +0.0% 1.00x
ArrayAppendLatin1 105081 106909 +1.7% 0.98x
ArrayAppendOptionals 1298 1355 +4.4% 0.96x (?)
ArrayAppendRepeatCol 212375 210409 -0.9% 1.01x
ArrayAppendReserved 3423 3539 +3.4% 0.97x
ArrayAppendSequence 75387 74516 -1.2% 1.01x
ArrayAppendStrings 13662 13625 -0.3% 1.00x (?)
ArrayAppendToFromGeneric 662 662 +0.0% 1.00x
ArrayAppendToGeneric 662 663 +0.2% 1.00x
ArrayAppendUTF16 103006 105495 +2.4% 0.98x
ArrayInClass 4737 4734 -0.1% 1.00x (?)
ArrayLiteral 1483 1483 +0.0% 1.00x
ArrayOfGenericRef 9655 9748 +1.0% 0.99x
ArrayOfPOD 1832 1832 +0.0% 1.00x
ArrayOfRef 8783 8915 +1.5% 0.99x
ArrayPlusEqualArrayOfInt 660 660 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 285891 285072 -0.3% 1.00x (?)
ArrayPlusEqualSingleElementCollection 283985 282041 -0.7% 1.01x (?)
ArrayPlusEqualThreeElements 11934 11729 -1.7% 1.02x (?)
ArraySubscript 4178 4163 -0.4% 1.00x (?)
ArrayValueProp 3025 3026 +0.0% 1.00x (?)
ArrayValueProp3 3437 3442 +0.1% 1.00x (?)
ArrayValueProp4 3332 3333 +0.0% 1.00x (?)
BitCount 890 871 -2.1% 1.02x
ByteSwap 270 268 -0.7% 1.01x (?)
CStringLongAscii 12928 13034 +0.8% 0.99x
CStringLongNonAscii 4175 4251 +1.8% 0.98x
CStringShortAscii 8881 9233 +4.0% 0.96x (?)
Calculator 988 950 -3.8% 1.04x
CaptureProp 108813 107151 -1.5% 1.02x
CharacterLiteralsLarge 10561 10724 +1.5% 0.98x
CharacterLiteralsSmall 970 971 +0.1% 1.00x
DeadArray 118672 118991 +0.3% 1.00x (?)
Dictionary2 3812 3800 -0.3% 1.00x (?)
Dictionary2OfObjects 6130 6144 +0.2% 1.00x (?)
Dictionary3 1486 1493 +0.5% 1.00x (?)
Dictionary3OfObjects 2377 2371 -0.3% 1.00x (?)
DictionaryBridge 2951 2972 +0.7% 0.99x (?)
DictionaryRemove 21440 21982 +2.5% 0.98x
DictionaryRemoveOfObjects 55491 55105 -0.7% 1.01x
DictionarySwap 5442 5499 +1.0% 0.99x
DictionarySwapOfObjects 19830 20206 +1.9% 0.98x
DropFirstAnyCollection 19085 19040 -0.2% 1.00x
DropFirstAnyCollectionLazy 136724 137689 +0.7% 0.99x (?)
DropFirstAnySeqCRangeIter 29603 30250 +2.2% 0.98x
DropFirstAnySeqCRangeIterLazy 29497 30034 +1.8% 0.98x (?)
DropFirstAnySeqCntRange 19170 18980 -1.0% 1.01x
DropFirstAnySeqCntRangeLazy 19230 18971 -1.3% 1.01x
DropFirstAnySequence 14234 14059 -1.2% 1.01x
DropFirstAnySequenceLazy 14084 14060 -0.2% 1.00x (?)
DropFirstArrayLazy 45530 46540 +2.2% 0.98x
DropFirstCountableRange 339 338 -0.3% 1.00x
DropFirstCountableRangeLazy 37581 39432 +4.9% 0.95x
DropFirstSequence 13071 12919 -1.2% 1.01x
DropFirstSequenceLazy 12897 13316 +3.2% 0.97x
DropLastAnyCollection 6379 6363 -0.3% 1.00x
DropLastAnyCollectionLazy 46127 45952 -0.4% 1.00x (?)
DropLastAnySeqCntRange 6359 6340 -0.3% 1.00x (?)
DropLastAnySeqCntRangeLazy 6364 6369 +0.1% 1.00x (?)
DropLastArrayLazy 15192 15633 +2.9% 0.97x
DropLastCountableRange 119 119 +0.0% 1.00x
DropLastCountableRangeLazy 12539 13119 +4.6% 0.96x
DropWhileAnyCollection 25162 24815 -1.4% 1.01x
DropWhileAnyCollectionLazy 27146 27659 +1.9% 0.98x (?)
DropWhileAnySeqCRangeIter 31427 31998 +1.8% 0.98x
DropWhileAnySeqCRangeIterLazy 26930 27358 +1.6% 0.98x
DropWhileAnySeqCntRange 25160 24891 -1.1% 1.01x
DropWhileAnySeqCntRangeLazy 26949 27477 +2.0% 0.98x
DropWhileAnySequence 15961 16104 +0.9% 0.99x
DropWhileAnySequenceLazy 12825 12410 -3.2% 1.03x
DropWhileCountableRange 6084 6217 +2.2% 0.98x
DropWhileCountableRangeLazy 25977 26491 +2.0% 0.98x (?)
DropWhileSequence 14891 15041 +1.0% 0.99x
DropWhileSequenceLazy 11203 11212 +0.1% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17588 17600 +0.1% 1.00x (?)
HashQuadratic 48327796 50232696 +3.9% 0.96x
HashTest 18477 18675 +1.1% 0.99x (?)
Integrate 399 399 +0.0% 1.00x
IterateData 12535 12865 +2.6% 0.97x
LazilyFilteredRange 669676 667204 -0.4% 1.00x (?)
LinkedList 32915 32957 +0.1% 1.00x (?)
MapReduceLazySequence 26088 25259 -3.2% 1.03x
Memset 43980 43958 -0.1% 1.00x (?)
MonteCarloPi 53190 53507 +0.6% 0.99x (?)
NSDictionaryCastToSwift 6450 6541 +1.4% 0.99x (?)
NSError 730 739 +1.2% 0.99x (?)
NSStringConversion 1342 1337 -0.4% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 26252 25749 -1.9% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7955 7831 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45457 46642 +2.6% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38814 39346 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 125679 126464 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 108689 107298 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 107168 104439 -2.5% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObject 68596 68293 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7225 7295 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 87277 88106 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 74348 77568 +4.3% 0.96x (?)
ObjectiveCBridgeFromNSString 4073 4032 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2706 2745 +1.4% 0.99x
ObjectiveCBridgeStubDateAccess 1004 1031 +2.7% 0.97x
ObjectiveCBridgeStubDateMutation 515 515 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28498 28729 +0.8% 0.99x (?)
ObjectiveCBridgeStubFromNSString 980 986 +0.6% 0.99x
ObjectiveCBridgeStubNSDataAppend 2654 2746 +3.5% 0.97x
ObjectiveCBridgeStubNSDateMutationRef 15659 15578 -0.5% 1.01x (?)
ObjectiveCBridgeStubNSDateRefAccess 1209 1210 +0.1% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 29441 29661 +0.7% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3405 3354 -1.5% 1.02x (?)
ObjectiveCBridgeStubToNSString 1560 1560 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 149 150 +0.7% 0.99x (?)
ObjectiveCBridgeStubURLAppendPath 239523 234556 -2.1% 1.02x (?)
ObjectiveCBridgeStubURLAppendPathRef 235596 237145 +0.7% 0.99x (?)
ObjectiveCBridgeToNSArray 29221 29099 -0.4% 1.00x (?)
ObjectiveCBridgeToNSDictionary 63498 61971 -2.4% 1.02x (?)
ObjectiveCBridgeToNSSet 39371 39580 +0.5% 0.99x (?)
ObjectiveCBridgeToNSString 1324 1324 +0.0% 1.00x
OpenClose 409 429 +4.9% 0.95x
Phonebook 22250 21868 -1.7% 1.02x
PolymorphicCalls 2909 2930 +0.7% 0.99x
PopFrontArray 9909 9786 -1.2% 1.01x
PopFrontArrayGeneric 8825 8837 +0.1% 1.00x (?)
PopFrontUnsafePointer 97646 97395 -0.3% 1.00x (?)
PrefixAnyCollection 19068 19048 -0.1% 1.00x (?)
PrefixAnyCollectionLazy 139924 137460 -1.8% 1.02x (?)
PrefixAnySeqCRangeIter 23880 24218 +1.4% 0.99x
PrefixAnySeqCRangeIterLazy 23704 24072 +1.6% 0.98x
PrefixAnySeqCntRange 19168 18983 -1.0% 1.01x
PrefixAnySeqCntRangeLazy 19160 18959 -1.0% 1.01x
PrefixAnySequence 11958 11799 -1.3% 1.01x
PrefixAnySequenceLazy 11783 11780 -0.0% 1.00x (?)
PrefixArrayLazy 45209 46599 +3.1% 0.97x (?)
PrefixCountableRange 339 340 +0.3% 1.00x (?)
PrefixCountableRangeLazy 37512 39285 +4.7% 0.95x
PrefixSequence 11085 10783 -2.7% 1.03x
PrefixSequenceLazy 10756 10736 -0.2% 1.00x (?)
PrefixWhileAnyCollection 36832 36255 -1.6% 1.02x (?)
PrefixWhileAnyCollectionLazy 22446 22995 +2.4% 0.98x (?)
PrefixWhileAnySeqCRangeIterLazy 22240 22630 +1.8% 0.98x (?)
PrefixWhileAnySeqCntRange 36510 36325 -0.5% 1.01x (?)
PrefixWhileAnySeqCntRangeLazy 22305 22656 +1.6% 0.98x
PrefixWhileAnySequenceLazy 11330 11311 -0.2% 1.00x
PrefixWhileCountableRange 17526 17871 +2.0% 0.98x (?)
PrefixWhileCountableRangeLazy 21729 21856 +0.6% 0.99x
PrefixWhileSequenceLazy 10377 10466 +0.9% 0.99x (?)
Prims 9016 8722 -3.3% 1.03x
ProtocolDispatch 6930 6949 +0.3% 1.00x
ProtocolDispatch2 490 490 +0.0% 1.00x
RangeAssignment 5776 5792 +0.3% 1.00x (?)
RecursiveOwnedParameter 9636 9642 +0.1% 1.00x (?)
ReversedArray 591 591 +0.0% 1.00x
ReversedBidirectional 75588 75254 -0.4% 1.00x (?)
SetExclusiveOr 21373 21477 +0.5% 1.00x (?)
SetExclusiveOr_OfObjects 41744 41604 -0.3% 1.00x (?)
SetIntersect 10625 10799 +1.6% 0.98x (?)
SetIntersect_OfObjects 11312 11330 +0.2% 1.00x
SetIsSubsetOf 1655 1651 -0.2% 1.00x (?)
SetIsSubsetOf_OfObjects 1574 1572 -0.1% 1.00x (?)
SetUnion 11954 12067 +0.9% 0.99x
SetUnion_OfObjects 29752 29761 +0.0% 1.00x (?)
SevenBoom 1598 1609 +0.7% 0.99x (?)
Sim2DArray 30032 30030 -0.0% 1.00x (?)
SortLargeExistentials 17717 17638 -0.4% 1.00x
SortLettersInPlace 2854 2890 +1.3% 0.99x (?)
SortSortedStrings 1410 1402 -0.6% 1.01x
SortStrings 2517 2450 -2.7% 1.03x
SortStringsUnicode 8813 8792 -0.2% 1.00x (?)
StackPromo 104154 104012 -0.1% 1.00x (?)
StaticArray 4654 4657 +0.1% 1.00x (?)
StrComplexWalk 5980 5983 +0.1% 1.00x (?)
StringAdder 45 45 +0.0% 1.00x
StringBuilderLong 1149 1130 -1.7% 1.02x
StringEqualPointerComparison 9780 9684 -1.0% 1.01x
StringHasPrefixUnicode 16443 16073 -2.3% 1.02x
StringHasSuffix 1850 1853 +0.2% 1.00x
StringHasSuffixUnicode 63489 63462 -0.0% 1.00x
StringInterpolation 12109 12006 -0.9% 1.01x
StringMatch 39144 39133 -0.0% 1.00x (?)
StringWalk 21317 20879 -2.1% 1.02x
StringWithCString 334400 334240 -0.0% 1.00x
SuffixAnyCollection 6377 6350 -0.4% 1.00x
SuffixAnyCollectionLazy 45686 45572 -0.2% 1.00x (?)
SuffixAnySeqCntRange 6398 6338 -0.9% 1.01x
SuffixAnySeqCntRangeLazy 6367 6362 -0.1% 1.00x (?)
SuffixArrayLazy 15091 15594 +3.3% 0.97x
SuffixCountableRange 119 119 +0.0% 1.00x
SuffixCountableRangeLazy 12511 13111 +4.8% 0.95x (?)
TwoSum 4299 4351 +1.2% 0.99x
TypeFlood 167 165 -1.2% 1.01x (?)
Walsh 12018 12023 +0.0% 1.00x (?)
XorLoop 23706 23706 +0.0% 1.00x
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB

@airspeedswift
Copy link
Member Author

@swift-ci please benchmark

@slavapestov
Copy link
Contributor

@airspeedswift Can you file a bug with the crash you were seeing?

@swift-ci
Copy link
Contributor

swift-ci commented May 1, 2017

Build comment file:

Optimized (O)

Regression (10)
TEST OLD NEW DELTA SPEEDUP
ArrayValueProp2 6 1148 +19030.2% 0.01x
ObjectAllocation 179 236 +31.8% 0.76x
StringBuilder 1385 1738 +25.5% 0.80x
StringUTF16Builder 2177 2541 +16.7% 0.86x
PrefixArrayLazy 29 33 +13.8% 0.88x
DropLastSequence 516 578 +12.0% 0.89x
DropLastSequenceLazy 516 577 +11.8% 0.89x
OpenClose 48 51 +6.2% 0.94x
StrToInt 4418 4685 +6.0% 0.94x
CaptureProp 4581 4852 +5.9% 0.94x
Improvement (22)
TEST OLD NEW DELTA SPEEDUP
UTF8Decode 278 0 -100.0% 278001.00x
PrefixWhileAnySeqCRangeIter 12505 3656 -70.8% 3.42x
SuffixSequenceLazy 4496 1458 -67.6% 3.08x
SuffixSequence 4496 1458 -67.6% 3.08x
DropLastAnySeqCRangeIter 4613 1615 -65.0% 2.86x
DropLastAnySeqCRangeIterLazy 4606 1613 -65.0% 2.86x
PrefixWhileAnySequence 14052 5157 -63.3% 2.72x
SuffixAnySeqCRangeIter 4932 1980 -59.9% 2.49x
SuffixAnySeqCRangeIterLazy 4927 1979 -59.8% 2.49x
DropLastAnySequence 7177 3819 -46.8% 1.88x
DropLastAnySequenceLazy 6532 3578 -45.2% 1.83x
SuffixAnySequenceLazy 6561 3643 -44.5% 1.80x
SuffixAnySequence 6745 3792 -43.8% 1.78x
DropWhileArrayLazy 80 70 -12.5% 1.14x
PrefixWhileArrayLazy 58 51 -12.1% 1.14x
DropWhileSequenceLazy 76 67 -11.8% 1.13x
ProtocolDispatch 2727 2424 -11.1% 1.12x
StringHasSuffix 894 828 -7.4% 1.08x
PrefixWhileArray 71 66 -7.0% 1.08x
NopDeinit 28957 27434 -5.3% 1.06x
PrefixWhileSequence 403 382 -5.2% 1.05x
HashQuadratic 6343741 6018620 -5.1% 1.05x
No Changes (237)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2923 2903 -0.7% 1.01x (?)
AnyHashableWithAClass 67050 66941 -0.2% 1.00x (?)
Array2D 2026 2045 +0.9% 0.99x (?)
ArrayAppend 776 775 -0.1% 1.00x (?)
ArrayAppendArrayOfInt 597 596 -0.2% 1.00x (?)
ArrayAppendAscii 19811 19984 +0.9% 0.99x (?)
ArrayAppendFromGeneric 596 596 +0.0% 1.00x
ArrayAppendGenericStructs 1218 1222 +0.3% 1.00x (?)
ArrayAppendLatin1 46072 45141 -2.0% 1.02x (?)
ArrayAppendLazyMap 1003 1001 -0.2% 1.00x (?)
ArrayAppendOptionals 1220 1227 +0.6% 0.99x (?)
ArrayAppendRepeatCol 837 838 +0.1% 1.00x (?)
ArrayAppendReserved 533 533 +0.0% 1.00x
ArrayAppendSequence 947 949 +0.2% 1.00x (?)
ArrayAppendStrings 13589 13607 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 596 596 +0.0% 1.00x
ArrayAppendToGeneric 596 596 +0.0% 1.00x
ArrayAppendUTF16 43748 43409 -0.8% 1.01x
ArrayInClass 62 62 +0.0% 1.00x
ArrayLiteral 1228 1230 +0.2% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4012 4009 -0.1% 1.00x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3887 3903 +0.4% 1.00x (?)
ArrayPlusEqualArrayOfInt 596 597 +0.2% 1.00x
ArrayPlusEqualFiveElementCollection 4657 4679 +0.5% 1.00x (?)
ArrayPlusEqualSingleElementCollection 774 774 +0.0% 1.00x
ArrayPlusEqualThreeElements 1591 1605 +0.9% 0.99x (?)
ArraySubscript 1498 1501 +0.2% 1.00x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
BitCount 0 0 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 13616 13492 -0.9% 1.01x (?)
CStringLongNonAscii 4189 4135 -1.3% 1.01x
CStringShortAscii 6114 6051 -1.0% 1.01x (?)
Calculator 44 46 +4.5% 0.96x
CharacterLiteralsLarge 10792 10613 -1.7% 1.02x (?)
CharacterLiteralsSmall 778 778 +0.0% 1.00x
Chars 1389 1382 -0.5% 1.01x
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 182 181 -0.5% 1.01x (?)
Dictionary 837 838 +0.1% 1.00x (?)
Dictionary2 2095 2085 -0.5% 1.00x (?)
Dictionary2OfObjects 3650 3637 -0.4% 1.00x (?)
Dictionary3 602 602 +0.0% 1.00x
Dictionary3OfObjects 1086 1084 -0.2% 1.00x (?)
DictionaryBridge 2791 2792 +0.0% 1.00x (?)
DictionaryLiteral 1483 1464 -1.3% 1.01x (?)
DictionaryOfObjects 2674 2672 -0.1% 1.00x (?)
DictionaryRemove 3298 3290 -0.2% 1.00x (?)
DictionaryRemoveOfObjects 23597 23333 -1.1% 1.01x (?)
DictionarySwap 370 370 +0.0% 1.00x
DictionarySwapOfObjects 6989 6931 -0.8% 1.01x (?)
DropFirstAnyCollection 127 126 -0.8% 1.01x (?)
DropFirstAnyCollectionLazy 44890 45028 +0.3% 1.00x (?)
DropFirstAnySeqCRangeIter 27573 27657 +0.3% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 27545 27701 +0.6% 0.99x (?)
DropFirstAnySeqCntRange 115 115 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 115 115 +0.0% 1.00x
DropFirstAnySequence 6803 6770 -0.5% 1.00x
DropFirstAnySequenceLazy 6820 6780 -0.6% 1.01x (?)
DropFirstArray 29 29 +0.0% 1.00x
DropFirstArrayLazy 29 29 +0.0% 1.00x
DropFirstCountableRange 23 23 +0.0% 1.00x
DropFirstCountableRangeLazy 23 23 +0.0% 1.00x
DropFirstSequence 3067 3066 -0.0% 1.00x
DropFirstSequenceLazy 3028 3030 +0.1% 1.00x (?)
DropLastAnyCollection 52 52 +0.0% 1.00x
DropLastAnyCollectionLazy 14951 14982 +0.2% 1.00x (?)
DropLastAnySeqCntRange 40 40 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 40 40 +0.0% 1.00x
DropLastArray 10 10 +0.0% 1.00x
DropLastArrayLazy 12 12 +0.0% 1.00x
DropLastCountableRange 8 8 +0.0% 1.00x
DropLastCountableRangeLazy 8 8 +0.0% 1.00x
DropWhileAnyCollection 134 133 -0.7% 1.01x (?)
DropWhileAnyCollectionLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22246 22247 +0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCntRange 128 129 +0.8% 0.99x
DropWhileAnySeqCntRangeLazy 96 96 +0.0% 1.00x
DropWhileAnySequence 7630 7645 +0.2% 1.00x (?)
DropWhileAnySequenceLazy 2108 2108 +0.0% 1.00x
DropWhileArray 42 43 +2.4% 0.98x
DropWhileCountableRange 35 35 +0.0% 1.00x
DropWhileCountableRangeLazy 79 79 +0.0% 1.00x
DropWhileSequence 3121 3127 +0.2% 1.00x (?)
ErrorHandling 2958 2971 +0.4% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3266 3282 +0.5% 1.00x (?)
HashTest 1749 1780 +1.8% 0.98x (?)
Histogram 250 248 -0.8% 1.01x
Integrate 263 262 -0.4% 1.00x (?)
IterateData 764 762 -0.3% 1.00x
Join 444 453 +2.0% 0.98x
LazilyFilteredArrays 64704 64769 +0.1% 1.00x (?)
LazilyFilteredRange 4052 4011 -1.0% 1.01x (?)
LinkedList 7047 7051 +0.1% 1.00x (?)
MapReduce 330 327 -0.9% 1.01x (?)
MapReduceAnyCollection 302 301 -0.3% 1.00x (?)
MapReduceAnyCollectionShort 2009 1988 -1.0% 1.01x
MapReduceClass 3045 3058 +0.4% 1.00x (?)
MapReduceClassShort 4648 4603 -1.0% 1.01x
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 44 45 +2.3% 0.98x (?)
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 463 462 -0.2% 1.00x (?)
MapReduceShort 1931 1936 +0.3% 1.00x (?)
MapReduceShortString 18 18 +0.0% 1.00x
MapReduceString 72 70 -2.8% 1.03x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10194 10266 +0.7% 0.99x
MonteCarloPi 43992 43957 -0.1% 1.00x (?)
NSDictionaryCastToSwift 5381 5370 -0.2% 1.00x (?)
NSError 288 289 +0.3% 1.00x (?)
NSStringConversion 716 749 +4.6% 0.96x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23209 23063 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4433 4495 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43402 43377 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37460 37565 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 121393 122093 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 4908 4940 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 102130 105007 +2.8% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 98665 98357 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 64677 64128 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4159 4082 -1.9% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 81131 80842 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 71639 72042 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSString 1415 1412 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2346 2311 -1.5% 1.02x (?)
ObjectiveCBridgeStubDataAppend 3684 3668 -0.4% 1.00x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28407 28304 -0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3642 3744 +2.8% 0.97x (?)
ObjectiveCBridgeStubFromNSDateRef 3551 3583 +0.9% 0.99x
ObjectiveCBridgeStubFromNSString 898 940 +4.7% 0.96x
ObjectiveCBridgeStubFromNSStringRef 174 176 +1.1% 0.99x (?)
ObjectiveCBridgeStubNSDataAppend 2274 2274 +0.0% 1.00x
ObjectiveCBridgeStubNSDateMutationRef 11906 12476 +4.8% 0.95x (?)
ObjectiveCBridgeStubNSDateRefAccess 316 317 +0.3% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 28008 28470 +1.6% 0.98x (?)
ObjectiveCBridgeStubToNSDate 14221 14699 +3.4% 0.97x (?)
ObjectiveCBridgeStubToNSDateRef 3382 3282 -3.0% 1.03x (?)
ObjectiveCBridgeStubToNSString 1514 1512 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 110 109 -0.9% 1.01x (?)
ObjectiveCBridgeStubURLAppendPath 213503 212427 -0.5% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 213851 215085 +0.6% 0.99x (?)
ObjectiveCBridgeToNSArray 29146 28426 -2.5% 1.03x (?)
ObjectiveCBridgeToNSDictionary 60958 60730 -0.4% 1.00x (?)
ObjectiveCBridgeToNSSet 39073 38662 -1.1% 1.01x (?)
ObjectiveCBridgeToNSString 1271 1267 -0.3% 1.00x (?)
ObserverClosure 2292 2307 +0.7% 0.99x (?)
ObserverForwarderStruct 1170 1167 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 3832 3855 +0.6% 0.99x (?)
ObserverUnappliedMethod 2722 2682 -1.5% 1.01x (?)
Phonebook 7997 8158 +2.0% 0.98x
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1071 1070 -0.1% 1.00x (?)
PopFrontArrayGeneric 1074 1066 -0.7% 1.01x (?)
PopFrontUnsafePointer 8891 8880 -0.1% 1.00x (?)
PrefixAnyCollection 127 127 +0.0% 1.00x
PrefixAnyCollectionLazy 44831 44974 +0.3% 1.00x (?)
PrefixAnySeqCRangeIter 21757 21718 -0.2% 1.00x (?)
PrefixAnySeqCRangeIterLazy 21755 21715 -0.2% 1.00x (?)
PrefixAnySeqCntRange 115 116 +0.9% 0.99x (?)
PrefixAnySeqCntRangeLazy 115 116 +0.9% 0.99x
PrefixAnySequence 6125 6084 -0.7% 1.01x (?)
PrefixAnySequenceLazy 6124 6086 -0.6% 1.01x (?)
PrefixArray 29 29 +0.0% 1.00x
PrefixCountableRange 23 23 +0.0% 1.00x
PrefixCountableRangeLazy 23 23 +0.0% 1.00x
PrefixSequence 2637 2637 +0.0% 1.00x
PrefixSequenceLazy 2600 2600 +0.0% 1.00x
PrefixWhileAnyCollection 162 160 -1.2% 1.01x
PrefixWhileAnyCollectionLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCRangeIterLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCntRange 154 154 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 77 77 +0.0% 1.00x
PrefixWhileAnySequenceLazy 1587 1587 +0.0% 1.00x
PrefixWhileCountableRange 36 35 -2.8% 1.03x
PrefixWhileCountableRangeLazy 23 23 +0.0% 1.00x
PrefixWhileSequenceLazy 39 39 +0.0% 1.00x
Prims 776 776 +0.0% 1.00x
ProtocolDispatch2 169 161 -4.7% 1.05x
RC4 171 170 -0.6% 1.01x (?)
RGBHistogram 2287 2274 -0.6% 1.01x (?)
RGBHistogramOfObjects 24071 24040 -0.1% 1.00x (?)
RangeAssignment 316 302 -4.4% 1.05x (?)
RecursiveOwnedParameter 2327 2322 -0.2% 1.00x (?)
ReversedArray 49 49 +0.0% 1.00x
ReversedBidirectional 29121 29052 -0.2% 1.00x
ReversedDictionary 110 110 +0.0% 1.00x
SetExclusiveOr 2842 2945 +3.6% 0.97x (?)
SetExclusiveOr_OfObjects 9583 9607 +0.3% 1.00x (?)
SetIntersect 282 281 -0.4% 1.00x (?)
SetIntersect_OfObjects 1724 1726 +0.1% 1.00x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2566 2619 +2.1% 0.98x (?)
SetUnion_OfObjects 8084 8132 +0.6% 0.99x (?)
SevenBoom 1465 1463 -0.1% 1.00x (?)
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 7945 7996 +0.6% 0.99x
SortLettersInPlace 1147 1145 -0.2% 1.00x (?)
SortSortedStrings 822 844 +2.7% 0.97x (?)
SortStrings 1611 1621 +0.6% 0.99x (?)
SortStringsUnicode 7789 7755 -0.4% 1.00x (?)
StackPromo 22027 22092 +0.3% 1.00x (?)
StaticArray 21 21 +0.0% 1.00x
StrComplexWalk 990 983 -0.7% 1.01x (?)
StringAdder 0 0 +0.0% 1.00x
StringBuilderLong 975 974 -0.1% 1.00x (?)
StringEdits 379715 380115 +0.1% 1.00x (?)
StringEqualPointerComparison 7282 7341 +0.8% 0.99x
StringHasPrefix 696 719 +3.3% 0.97x (?)
StringHasPrefixUnicode 14550 14967 +2.9% 0.97x
StringHasSuffixUnicode 61869 61718 -0.2% 1.00x (?)
StringInterpolation 8393 8417 +0.3% 1.00x (?)
StringMatch 16154 16282 +0.8% 0.99x (?)
StringWalk 6061 6061 +0.0% 1.00x
StringWithCString 335335 335109 -0.1% 1.00x (?)
SuffixAnyCollection 52 52 +0.0% 1.00x
SuffixAnyCollectionLazy 15013 15014 +0.0% 1.00x (?)
SuffixAnySeqCntRange 41 41 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 40 41 +2.5% 0.98x
SuffixArray 10 10 +0.0% 1.00x
SuffixArrayLazy 10 10 +0.0% 1.00x
SuffixCountableRange 8 8 +0.0% 1.00x
SuffixCountableRangeLazy 8 8 +0.0% 1.00x
SuperChars 289951 288166 -0.6% 1.01x (?)
TwoSum 905 903 -0.2% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
Walsh 356 355 -0.3% 1.00x (?)
XorLoop 348 347 -0.3% 1.00x
**Unoptimized (Onone)**
Regression (11)
TEST OLD NEW DELTA SPEEDUP
Chars 7395 14508 +96.2% 0.51x
ArrayValueProp2 3663 6738 +83.9% 0.54x
StringBuilder 2856 3752 +31.4% 0.76x
StrToInt 7992 10311 +29.0% 0.78x
StringUTF16Builder 3723 4711 +26.5% 0.79x
ObjectAllocation 635 798 +25.7% 0.80x
ErrorHandling 3805 4487 +17.9% 0.85x
Dictionary 1994 2303 +15.5% 0.87x
AngryPhonebook 3127 3408 +9.0% 0.92x
DictionaryOfObjects 4897 5199 +6.2% 0.94x
SuperChars 309940 327656 +5.7% 0.95x
Improvement (50)
TEST OLD NEW DELTA SPEEDUP
PrefixArray 6189 1332 -78.5% 4.65x
DropFirstArray 6193 1333 -78.5% 4.65x
DropLastArray 2072 452 -78.2% 4.58x
SuffixArray 2074 453 -78.2% 4.58x
UTF8Decode 36894 10013 -72.9% 3.68x
DropWhileArrayLazy 17041 4862 -71.5% 3.50x
PrefixWhileArrayLazy 14731 5594 -62.0% 2.63x
ReversedDictionary 26121 9975 -61.8% 2.62x
ArrayAppendLazyMap 207667 88373 -57.4% 2.35x
DropWhileArray 9784 4934 -49.6% 1.98x
DictionaryLiteral 13199 6932 -47.5% 1.90x
Join 1260 665 -47.2% 1.89x
MapReduceLazyCollection 32778 17891 -45.4% 1.83x
MapReduceString 2639 1475 -44.1% 1.79x
LazilyFilteredArrays 1681066 974474 -42.0% 1.73x
MapReduce 38034 23004 -39.5% 1.65x
MapReduceAnyCollection 37822 23034 -39.1% 1.64x
MapReduceLazyCollectionShort 44351 28134 -36.6% 1.58x
MapReduceSequence 40859 26225 -35.8% 1.56x
MapReduceClass 43174 28378 -34.3% 1.52x
MapReduceAnyCollectionShort 50739 34117 -32.8% 1.49x
MapReduceShort 50391 33943 -32.6% 1.48x
MapReduceShortString 279 188 -32.6% 1.48x
PrefixWhileSequence 28466 19526 -31.4% 1.46x
PrefixWhileAnySequence 29506 20631 -30.1% 1.43x
MapReduceClassShort 54236 38183 -29.6% 1.42x
PrefixWhileArray 17022 11985 -29.6% 1.42x
Histogram 8790 6243 -29.0% 1.41x
ObserverForwarderStruct 4705 3388 -28.0% 1.39x
MonteCarloE 135380 106025 -21.7% 1.28x
ObserverClosure 6635 5241 -21.0% 1.27x
PrefixWhileAnySeqCRangeIter 40957 33323 -18.6% 1.23x
ObserverPartiallyAppliedMethod 8121 6641 -18.2% 1.22x
ObserverUnappliedMethod 8471 7155 -15.5% 1.18x
RGBHistogram 33828 29644 -12.4% 1.14x
SuffixAnySequenceLazy 26817 23752 -11.4% 1.13x
SuffixAnySequence 26871 23806 -11.4% 1.13x
SuffixSequence 26457 23443 -11.4% 1.13x
SuffixSequenceLazy 26430 23423 -11.4% 1.13x
DropLastAnySequence 29196 26102 -10.6% 1.12x
DropLastSequenceLazy 28767 25724 -10.6% 1.12x
DropLastSequence 28709 25686 -10.5% 1.12x
DropLastAnySequenceLazy 29092 26101 -10.3% 1.11x
StringEdits 677938 610193 -10.0% 1.11x
OpenClose 458 416 -9.2% 1.10x
ObjectiveCBridgeStubFromNSDateRef 4244 3942 -7.1% 1.08x
SuffixAnySeqCRangeIterLazy 41809 38837 -7.1% 1.08x
SuffixAnySeqCRangeIter 41396 38489 -7.0% 1.08x
ArrayAppendReserved 3654 3423 -6.3% 1.07x
ArrayOfGenericPOD 3237 3073 -5.1% 1.05x
No Changes (208)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 84864 84874 +0.0% 1.00x (?)
Array2D 608169 607980 -0.0% 1.00x (?)
ArrayAppend 3843 3695 -3.9% 1.04x
ArrayAppendArrayOfInt 659 659 +0.0% 1.00x
ArrayAppendAscii 83835 83415 -0.5% 1.01x
ArrayAppendFromGeneric 663 664 +0.2% 1.00x (?)
ArrayAppendGenericStructs 1300 1305 +0.4% 1.00x (?)
ArrayAppendLatin1 105247 103899 -1.3% 1.01x
ArrayAppendOptionals 1301 1312 +0.8% 0.99x
ArrayAppendRepeatCol 213219 208770 -2.1% 1.02x
ArrayAppendSequence 75779 76133 +0.5% 1.00x
ArrayAppendStrings 13611 13679 +0.5% 1.00x (?)
ArrayAppendToFromGeneric 662 662 +0.0% 1.00x
ArrayAppendToGeneric 663 663 +0.0% 1.00x
ArrayAppendUTF16 103806 102699 -1.1% 1.01x (?)
ArrayInClass 4734 4735 +0.0% 1.00x (?)
ArrayLiteral 1504 1488 -1.1% 1.01x
ArrayOfGenericRef 9641 9660 +0.2% 1.00x (?)
ArrayOfPOD 1892 1892 +0.0% 1.00x
ArrayOfRef 8803 8814 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 660 661 +0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 286005 285341 -0.2% 1.00x (?)
ArrayPlusEqualSingleElementCollection 286555 283311 -1.1% 1.01x (?)
ArrayPlusEqualThreeElements 11670 11654 -0.1% 1.00x (?)
ArraySubscript 4167 4180 +0.3% 1.00x (?)
ArrayValueProp 2980 3022 +1.4% 0.99x
ArrayValueProp3 3438 3420 -0.5% 1.01x (?)
ArrayValueProp4 3336 3338 +0.1% 1.00x (?)
BitCount 889 875 -1.6% 1.02x
ByteSwap 268 262 -2.2% 1.02x (?)
CStringLongAscii 12911 12869 -0.3% 1.00x (?)
CStringLongNonAscii 4175 4164 -0.3% 1.00x (?)
CStringShortAscii 8862 9113 +2.8% 0.97x
Calculator 955 991 +3.8% 0.96x
CaptureProp 107060 107796 +0.7% 0.99x (?)
CharacterLiteralsLarge 10525 10858 +3.2% 0.97x
CharacterLiteralsSmall 971 971 +0.0% 1.00x
ClassArrayGetter 931 930 -0.1% 1.00x (?)
DeadArray 116479 118863 +2.0% 0.98x (?)
Dictionary2 3841 3835 -0.2% 1.00x (?)
Dictionary2OfObjects 6145 6098 -0.8% 1.01x (?)
Dictionary3 1492 1485 -0.5% 1.00x (?)
Dictionary3OfObjects 2365 2377 +0.5% 0.99x (?)
DictionaryBridge 2887 2912 +0.9% 0.99x (?)
DictionaryRemove 21518 21041 -2.2% 1.02x (?)
DictionaryRemoveOfObjects 54940 54888 -0.1% 1.00x (?)
DictionarySwap 5591 5453 -2.5% 1.03x
DictionarySwapOfObjects 19881 19790 -0.5% 1.00x (?)
DropFirstAnyCollection 19082 19239 +0.8% 0.99x
DropFirstAnyCollectionLazy 135978 135250 -0.5% 1.01x (?)
DropFirstAnySeqCRangeIter 30105 29704 -1.3% 1.01x
DropFirstAnySeqCRangeIterLazy 30274 29665 -2.0% 1.02x (?)
DropFirstAnySeqCntRange 19072 19021 -0.3% 1.00x (?)
DropFirstAnySeqCntRangeLazy 19075 19098 +0.1% 1.00x
DropFirstAnySequence 14381 14027 -2.5% 1.03x (?)
DropFirstAnySequenceLazy 14046 14289 +1.7% 0.98x
DropFirstArrayLazy 45487 45486 -0.0% 1.00x (?)
DropFirstCountableRange 341 340 -0.3% 1.00x (?)
DropFirstCountableRangeLazy 38294 38637 +0.9% 0.99x
DropFirstSequence 12993 12875 -0.9% 1.01x (?)
DropFirstSequenceLazy 13226 12891 -2.5% 1.03x
DropLastAnyCollection 6390 6418 +0.4% 1.00x (?)
DropLastAnyCollectionLazy 46413 46343 -0.2% 1.00x (?)
DropLastAnySeqCRangeIter 44159 42898 -2.9% 1.03x
DropLastAnySeqCRangeIterLazy 44159 42548 -3.6% 1.04x
DropLastAnySeqCntRange 6381 6433 +0.8% 0.99x (?)
DropLastAnySeqCntRangeLazy 6388 6359 -0.5% 1.00x (?)
DropLastArrayLazy 15128 15178 +0.3% 1.00x (?)
DropLastCountableRange 119 119 +0.0% 1.00x
DropLastCountableRangeLazy 12792 12672 -0.9% 1.01x (?)
DropWhileAnyCollection 24929 25055 +0.5% 0.99x (?)
DropWhileAnyCollectionLazy 27269 26886 -1.4% 1.01x (?)
DropWhileAnySeqCRangeIter 31888 31771 -0.4% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 27469 27198 -1.0% 1.01x (?)
DropWhileAnySeqCntRange 24911 24947 +0.1% 1.00x (?)
DropWhileAnySeqCntRangeLazy 27418 27123 -1.1% 1.01x (?)
DropWhileAnySequence 15938 16092 +1.0% 0.99x
DropWhileAnySequenceLazy 12422 12422 +0.0% 1.00x
DropWhileCountableRange 6153 6132 -0.3% 1.00x (?)
DropWhileCountableRangeLazy 26414 26044 -1.4% 1.01x (?)
DropWhileSequence 14985 15065 +0.5% 0.99x (?)
DropWhileSequenceLazy 11209 11265 +0.5% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17475 17658 +1.0% 0.99x
HashQuadratic 47947536 50202047 +4.7% 0.96x
HashTest 18385 19070 +3.7% 0.96x
Integrate 398 398 +0.0% 1.00x
IterateData 12631 12863 +1.8% 0.98x
LazilyFilteredRange 685217 674804 -1.5% 1.02x (?)
LinkedList 32993 32938 -0.2% 1.00x (?)
MapReduceLazySequence 25344 25324 -0.1% 1.00x (?)
Memset 43983 43987 +0.0% 1.00x (?)
MonteCarloPi 52402 52688 +0.5% 0.99x
NSDictionaryCastToSwift 6410 6433 +0.4% 1.00x (?)
NSError 717 718 +0.1% 1.00x (?)
NSStringConversion 1305 1345 +3.1% 0.97x (?)
NopDeinit 50414 51799 +2.7% 0.97x
ObjectiveCBridgeFromNSArrayAnyObject 25581 24701 -3.4% 1.04x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7811 7761 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44927 45095 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38843 38464 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 126813 126962 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7195 7401 +2.9% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 107218 106671 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 101459 101213 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 67813 67307 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 6981 7120 +2.0% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 86174 86343 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 75012 75601 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSString 4026 4023 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2696 2706 +0.4% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3837 3921 +2.2% 0.98x (?)
ObjectiveCBridgeStubDateAccess 1016 1016 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 519 515 -0.8% 1.01x
ObjectiveCBridgeStubFromArrayOfNSString 28782 28715 -0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 4181 4114 -1.6% 1.02x (?)
ObjectiveCBridgeStubFromNSString 949 990 +4.3% 0.96x
ObjectiveCBridgeStubFromNSStringRef 210 218 +3.8% 0.96x
ObjectiveCBridgeStubNSDataAppend 2659 2643 -0.6% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 15308 14789 -3.4% 1.04x (?)
ObjectiveCBridgeStubNSDateRefAccess 1218 1219 +0.1% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 29662 29125 -1.8% 1.02x (?)
ObjectiveCBridgeStubToNSDate 14869 15505 +4.3% 0.96x (?)
ObjectiveCBridgeStubToNSDateRef 3335 3375 +1.2% 0.99x (?)
ObjectiveCBridgeStubToNSString 1567 1568 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 148 149 +0.7% 0.99x (?)
ObjectiveCBridgeStubURLAppendPath 219648 219553 -0.0% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 217474 218251 +0.4% 1.00x (?)
ObjectiveCBridgeToNSArray 29334 29062 -0.9% 1.01x (?)
ObjectiveCBridgeToNSDictionary 62909 61366 -2.5% 1.03x (?)
ObjectiveCBridgeToNSSet 40530 39434 -2.7% 1.03x
ObjectiveCBridgeToNSString 1314 1312 -0.2% 1.00x (?)
Phonebook 24250 24338 +0.4% 1.00x (?)
PolymorphicCalls 2949 2951 +0.1% 1.00x (?)
PopFrontArray 9905 9862 -0.4% 1.00x
PopFrontArrayGeneric 8812 8850 +0.4% 1.00x
PopFrontUnsafePointer 97355 99495 +2.2% 0.98x
PrefixAnyCollection 19103 19219 +0.6% 0.99x
PrefixAnyCollectionLazy 138975 137625 -1.0% 1.01x (?)
PrefixAnySeqCRangeIter 24132 23974 -0.7% 1.01x (?)
PrefixAnySeqCRangeIterLazy 24257 24065 -0.8% 1.01x
PrefixAnySeqCntRange 19089 19014 -0.4% 1.00x
PrefixAnySeqCntRangeLazy 19080 19108 +0.1% 1.00x (?)
PrefixAnySequence 12031 11789 -2.0% 1.02x
PrefixAnySequenceLazy 11967 11786 -1.5% 1.02x
PrefixArrayLazy 45480 45481 +0.0% 1.00x (?)
PrefixCountableRange 341 341 +0.0% 1.00x
PrefixCountableRangeLazy 38399 38613 +0.6% 0.99x (?)
PrefixSequence 11039 10756 -2.6% 1.03x (?)
PrefixSequenceLazy 10889 10696 -1.8% 1.02x
PrefixWhileAnyCollection 36441 36829 +1.1% 0.99x
PrefixWhileAnyCollectionLazy 22587 22440 -0.7% 1.01x (?)
PrefixWhileAnySeqCRangeIterLazy 22577 22553 -0.1% 1.00x (?)
PrefixWhileAnySeqCntRange 36445 36622 +0.5% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 22494 22388 -0.5% 1.00x (?)
PrefixWhileAnySequenceLazy 11456 11371 -0.7% 1.01x
PrefixWhileCountableRange 17584 17597 +0.1% 1.00x (?)
PrefixWhileCountableRangeLazy 21816 21639 -0.8% 1.01x (?)
PrefixWhileSequenceLazy 10509 10451 -0.6% 1.01x
Prims 8979 8721 -2.9% 1.03x
ProtocolDispatch 7295 7308 +0.2% 1.00x (?)
ProtocolDispatch2 489 489 +0.0% 1.00x
RC4 19497 20476 +5.0% 0.95x
RGBHistogramOfObjects 98107 94004 -4.2% 1.04x
RangeAssignment 5873 5818 -0.9% 1.01x (?)
RecursiveOwnedParameter 9639 9638 -0.0% 1.00x (?)
ReversedArray 589 591 +0.3% 1.00x (?)
ReversedBidirectional 75489 75346 -0.2% 1.00x (?)
SetExclusiveOr 21351 20958 -1.8% 1.02x
SetExclusiveOr_OfObjects 41279 41417 +0.3% 1.00x
SetIntersect 10970 10567 -3.7% 1.04x
SetIntersect_OfObjects 11293 11224 -0.6% 1.01x
SetIsSubsetOf 1650 1641 -0.5% 1.01x (?)
SetIsSubsetOf_OfObjects 1579 1524 -3.5% 1.04x
SetUnion 12342 12051 -2.4% 1.02x
SetUnion_OfObjects 29605 29683 +0.3% 1.00x
SevenBoom 1612 1608 -0.2% 1.00x (?)
Sim2DArray 30033 30032 -0.0% 1.00x (?)
SortLargeExistentials 17721 17865 +0.8% 0.99x
SortLettersInPlace 2876 2851 -0.9% 1.01x (?)
SortSortedStrings 1401 1405 +0.3% 1.00x
SortStrings 2445 2460 +0.6% 0.99x
SortStringsUnicode 8897 9016 +1.3% 0.99x
StackPromo 102166 101655 -0.5% 1.01x (?)
StaticArray 4549 4565 +0.4% 1.00x
StrComplexWalk 5975 6257 +4.7% 0.95x
StringAdder 42 42 +0.0% 1.00x
StringBuilderLong 1122 1115 -0.6% 1.01x
StringEqualPointerComparison 9542 9758 +2.3% 0.98x
StringHasPrefix 1733 1772 +2.3% 0.98x (?)
StringHasPrefixUnicode 15928 16568 +4.0% 0.96x
StringHasSuffix 1819 1847 +1.5% 0.98x
StringHasSuffixUnicode 64117 63596 -0.8% 1.01x
StringInterpolation 12237 12176 -0.5% 1.01x (?)
StringMatch 39151 38665 -1.2% 1.01x
StringWalk 22362 23352 +4.4% 0.96x
StringWithCString 334400 334305 -0.0% 1.00x (?)
SuffixAnyCollection 6384 6422 +0.6% 0.99x (?)
SuffixAnyCollectionLazy 45561 45710 +0.3% 1.00x (?)
SuffixAnySeqCntRange 6388 6446 +0.9% 0.99x (?)
SuffixAnySeqCntRangeLazy 6380 6359 -0.3% 1.00x
SuffixArrayLazy 15153 15171 +0.1% 1.00x (?)
SuffixCountableRange 119 119 +0.0% 1.00x
SuffixCountableRangeLazy 12738 12658 -0.6% 1.01x
TwoSum 4392 4302 -2.0% 1.02x
TypeFlood 164 170 +3.7% 0.96x (?)
Walsh 12049 11898 -1.3% 1.01x
XorLoop 23707 23707 +0.0% 1.00x
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB

swiftix added a commit to swiftix/swift that referenced this pull request Aug 2, 2017
…tors

This patch is supposed to recover the performance regressions that would be introduced by yet to be merged PR swiftlang#9145, which introduces custom, more efficient array iterators.

The crucial part of this patch is running loop unrolling also during the mid-level optimizations phase, because it may catch more loops with constant trip counts. To make trip counts constant, an additional run of constant propagation is helpful.
@swiftix
Copy link
Contributor

swiftix commented Aug 2, 2017

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Aug 3, 2017

Build comment file:

Optimized (O)

Regression (3)
TEST OLD NEW DELTA SPEEDUP
EqualSubstringSubstringGenericEquatable 378 413 +9.3% 0.92x (?)
ErrorHandling 1992 2109 +5.9% 0.94x
ReversedDictionary 103 109 +5.8% 0.94x (?)
Improvement (136)
TEST OLD NEW DELTA SPEEDUP
MapReduceAnyCollection 431 357 -17.2% 1.21x
ArrayValueProp 6 5 -16.7% 1.20x
ArrayValueProp4 6 5 -16.7% 1.20x
CharIteration_ascii_unicodeScalars_Backwards 18291 15829 -13.5% 1.16x
CharIteration_chinese_unicodeScalars 13389 11686 -12.7% 1.15x
SuffixArray 8 7 -12.5% 1.14x
ArrayAppendOptionals 1289 1138 -11.7% 1.13x
CaptureProp 5176 4575 -11.6% 1.13x
ArrayAppendRepeatCol 897 793 -11.6% 1.13x
MapReduceString 115 102 -11.3% 1.13x
CharIteration_korean_unicodeScalars 17246 15298 -11.3% 1.13x
MapReduce 427 380 -11.0% 1.12x
CharIteration_punctuated_unicodeScalars_Backwards 4007 3567 -11.0% 1.12x
CharIteration_japanese_unicodeScalars 21105 18819 -10.8% 1.12x
CharIteration_chinese_unicodeScalars_Backwards 13790 12320 -10.7% 1.12x
StringWithCString 65879 58901 -10.6% 1.12x
CharIteration_russian_unicodeScalars 14484 12988 -10.3% 1.12x
SubstringFromLongString 10 9 -10.0% 1.11x
DictionarySwap 462 417 -9.7% 1.11x
ArrayAppend 805 728 -9.6% 1.11x
CharIteration_tweet_unicodeScalars_Backwards 34749 31429 -9.6% 1.11x
Dictionary3 462 419 -9.3% 1.10x
NSStringConversion 368 334 -9.2% 1.10x
Dictionary3OfObjects 931 845 -9.2% 1.10x
CharIteration_japanese_unicodeScalars_Backwards 21433 19488 -9.1% 1.10x
CharIndexing_chinese_unicodeScalars 11491 10452 -9.0% 1.10x
ArrayAppendReserved 553 503 -9.0% 1.10x
CStringLongAscii 5243 4769 -9.0% 1.10x
CharIndexing_punctuatedJapanese_unicodeScalars 2762 2515 -8.9% 1.10x
ArrayAppendLazyMap 1092 995 -8.9% 1.10x
ArrayPlusEqualFiveElementCollection 4939 4507 -8.7% 1.10x
MapReduceLazyCollectionShort 46 42 -8.7% 1.10x
ObjectiveCBridgeStubFromNSString 564 515 -8.7% 1.10x
CharIteration_tweet_unicodeScalars 33990 31047 -8.7% 1.09x
DropFirstAnySeqCRangeIter 30870 28255 -8.5% 1.09x
ArrayAppendLatin1 45309 41552 -8.3% 1.09x (?)
Dictionary2OfObjects 3488 3199 -8.3% 1.09x
ObjectiveCBridgeStubToNSDateRef 3275 3004 -8.3% 1.09x
LessSubstringSubstring 400 367 -8.2% 1.09x
ObjectiveCBridgeStubDataAppend 4080 3744 -8.2% 1.09x
Dictionary 585 537 -8.2% 1.09x
CharIteration_punctuated_unicodeScalars 3868 3553 -8.1% 1.09x
CharIndexing_korean_unicodeScalars_Backwards 11947 10977 -8.1% 1.09x
ObjectiveCBridgeFromNSSetAnyObject 69621 64009 -8.1% 1.09x
ObjectiveCBridgeFromNSArrayAnyObjectToString 42286 38887 -8.0% 1.09x
NSError 300 276 -8.0% 1.09x
ObjectAllocation 188 173 -8.0% 1.09x
MapReduceShort 2032 1871 -7.9% 1.09x
ObjectiveCBridgeFromNSSetAnyObjectToString 71735 66108 -7.8% 1.09x
ObjectiveCBridgeFromNSString 1089 1004 -7.8% 1.08x
CharIndexing_japanese_unicodeScalars_Backwards 14714 13568 -7.8% 1.08x
DictionaryBridge 2713 2502 -7.8% 1.08x
CharIndexing_punctuated_unicodeScalars 3407 3143 -7.7% 1.08x
CharIteration_ascii_unicodeScalars 16923 15615 -7.7% 1.08x
DictionaryRemove 2647 2443 -7.7% 1.08x
ArrayInClass 65 60 -7.7% 1.08x
ClassArrayGetter 13 12 -7.7% 1.08x
CharIndexing_punctuated_unicodeScalars_Backwards 2822 2606 -7.7% 1.08x
ArrayAppendSequence 968 894 -7.6% 1.08x
NopDeinit 23966 22143 -7.6% 1.08x (?)
Dictionary2 1927 1781 -7.6% 1.08x
CharIndexing_tweet_unicodeScalars_Backwards 24104 22298 -7.5% 1.08x
LazilyFilteredRange 3955 3660 -7.5% 1.08x
CharIteration_russian_unicodeScalars_Backwards 14641 13549 -7.5% 1.08x
RangeAssignment 349 323 -7.4% 1.08x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3659 3387 -7.4% 1.08x
CharIteration_punctuatedJapanese_unicodeScalars 3061 2834 -7.4% 1.08x
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 71712 66416 -7.4% 1.08x
ObjectiveCBridgeFromNSDictionaryAnyObject 126033 116775 -7.3% 1.08x
DeadArray 191 177 -7.3% 1.08x
ArrayAppendUTF16 43604 40408 -7.3% 1.08x
Array2D 2233 2070 -7.3% 1.08x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5438 5046 -7.2% 1.08x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23711 22006 -7.2% 1.08x
CharIndexing_ascii_unicodeScalars 15318 14222 -7.2% 1.08x
PrefixAnyCollection 56 52 -7.1% 1.08x
ArrayPlusEqualThreeElements 1723 1600 -7.1% 1.08x
CharIndexing_chinese_unicodeScalars_Backwards 9228 8575 -7.1% 1.08x
DictionaryGroupOfObjects 1811 1683 -7.1% 1.08x
ObjectiveCBridgeStubDateAccess 184 171 -7.1% 1.08x
Chars 439 408 -7.1% 1.08x
CharIteration_korean_unicodeScalars_Backwards 16971 15793 -6.9% 1.07x
ArrayOfGenericRef 4214 3924 -6.9% 1.07x
ObjectiveCBridgeStubNSDataAppend 2573 2396 -6.9% 1.07x
CharacterLiteralsSmall 409 381 -6.8% 1.07x
Join 399 372 -6.8% 1.07x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 107487 100272 -6.7% 1.07x
PrefixAnyCollectionLazy 46219 43147 -6.6% 1.07x
CharIndexing_utf16_unicodeScalars 78499 73287 -6.6% 1.07x
CStringShortAscii 4864 4543 -6.6% 1.07x
DictionaryLiteral 1533 1432 -6.6% 1.07x
DropFirstAnySeqCRangeIterLazy 31568 29498 -6.6% 1.07x
ArrayAppendAscii 21805 20377 -6.5% 1.07x (?)
CharIndexing_tweet_unicodeScalars 29126 27238 -6.5% 1.07x
CharIndexing_japanese_unicodeScalars 17933 16771 -6.5% 1.07x
CharIndexing_ascii_unicodeScalars_Backwards 12103 11319 -6.5% 1.07x
LessSubstringSubstringGenericComparable 403 377 -6.5% 1.07x
CharacterLiteralsLarge 6141 5745 -6.4% 1.07x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 36396 34053 -6.4% 1.07x
AngryPhonebook 3118 2918 -6.4% 1.07x (?)
PrefixWhileSequence 313 293 -6.4% 1.07x
LazilyFilteredArrays 66155 61931 -6.4% 1.07x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2241 2099 -6.3% 1.07x
ObjectiveCBridgeFromNSSetAnyObjectForced 4538 4252 -6.3% 1.07x
CharIndexing_utf16_unicodeScalars_Backwards 77367 72497 -6.3% 1.07x
ArrayLiteral 1272 1192 -6.3% 1.07x
Calculator 32 30 -6.2% 1.07x
MapReduceLazyCollection 16 15 -6.2% 1.07x
CharIndexing_russian_unicodeScalars 12309 11548 -6.2% 1.07x
ObjectiveCBridgeStubFromArrayOfNSString 25706 24139 -6.1% 1.06x (?)
DropFirstAnySequence 9728 9135 -6.1% 1.06x
ArrayAppendStrings 14063 13206 -6.1% 1.06x
ObjectiveCBridgeFromNSStringForced 1973 1854 -6.0% 1.06x
DictionarySwapOfObjects 7697 7242 -5.9% 1.06x
CharIndexing_russian_unicodeScalars_Backwards 10113 9521 -5.9% 1.06x
ArrayOfRef 4056 3819 -5.8% 1.06x (?)
XorLoop 348 328 -5.7% 1.06x
NSDictionaryCastToSwift 5642 5318 -5.7% 1.06x
ArrayAppendGenericStructs 1206 1137 -5.7% 1.06x
MapReduceSequence 439 414 -5.7% 1.06x
DropFirstAnySeqCntRange 53 50 -5.7% 1.06x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 3097 2923 -5.6% 1.06x
ArraySubscript 1523 1438 -5.6% 1.06x
ArrayPlusEqualSingleElementCollection 792 748 -5.6% 1.06x
MapReduceClassShort 4560 4307 -5.5% 1.06x
ObjectiveCBridgeStubToArrayOfNSString 29282 27689 -5.4% 1.06x (?)
CStringLongNonAscii 2271 2148 -5.4% 1.06x
CharIteration_utf16_unicodeScalars 92128 87151 -5.4% 1.06x
DictionaryGroup 278 263 -5.4% 1.06x
MapReduceAnyCollectionShort 2067 1958 -5.3% 1.06x
DropLastAnyCollection 19 18 -5.3% 1.06x
ObjectiveCBridgeToNSDictionary 46020 43604 -5.2% 1.06x
SortSortedStrings 824 781 -5.2% 1.06x
DropLastAnySeqCRangeIter 5985 5673 -5.2% 1.05x (?)
ObjectiveCBridgeStubToNSString 1510 1433 -5.1% 1.05x
LinkedList 7088 6739 -4.9% 1.05x
No Changes (188)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 72657 74160 +2.1% 0.98x (?)
ArrayAppendArrayOfInt 585 563 -3.8% 1.04x
ArrayAppendFromGeneric 584 563 -3.6% 1.04x
ArrayAppendToFromGeneric 605 597 -1.3% 1.01x
ArrayAppendToGeneric 607 580 -4.4% 1.05x
ArrayOfGenericPOD 222 213 -4.1% 1.04x
ArrayOfPOD 168 161 -4.2% 1.04x
ArrayPlusEqualArrayOfInt 590 563 -4.6% 1.05x
ArrayValueProp2 5 5 +0.0% 1.00x
ArrayValueProp3 5 5 +0.0% 1.00x
BitCount 147 140 -4.8% 1.05x
ByteSwap 116 112 -3.4% 1.04x
CharIndexing_korean_unicodeScalars 14447 13784 -4.6% 1.05x
CharIteration_utf16_unicodeScalars_Backwards 112351 107907 -4.0% 1.04x
DictionaryOfObjects 2415 2305 -4.6% 1.05x
DictionaryRemoveOfObjects 22926 22762 -0.7% 1.01x
DropFirstAnyCollection 54 54 +0.0% 1.00x
DropFirstAnyCollectionLazy 44917 44352 -1.3% 1.01x
DropFirstAnySeqCntRangeLazy 51 49 -3.9% 1.04x
DropFirstAnySequenceLazy 9608 9336 -2.8% 1.03x
DropFirstArray 24 24 +0.0% 1.00x
DropFirstArrayLazy 24 23 -4.2% 1.04x
DropFirstCountableRange 30 30 +0.0% 1.00x
DropFirstCountableRangeLazy 30 30 +0.0% 1.00x
DropFirstSequence 2741 2656 -3.1% 1.03x
DropFirstSequenceLazy 2648 2587 -2.3% 1.02x
DropLastAnyCollectionLazy 14844 14467 -2.5% 1.03x
DropLastAnySeqCRangeIterLazy 6098 5826 -4.5% 1.05x
DropLastAnySeqCntRange 10 10 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 10 10 +0.0% 1.00x
DropLastAnySequence 8541 8221 -3.7% 1.04x
DropLastAnySequenceLazy 8379 8177 -2.4% 1.02x
DropLastArray 8 8 +0.0% 1.00x
DropLastArrayLazy 8 8 +0.0% 1.00x
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropLastSequence 627 606 -3.3% 1.03x
DropLastSequenceLazy 632 610 -3.5% 1.04x
DropWhileAnyCollection 66 67 +1.5% 0.99x (?)
DropWhileAnyCollectionLazy 98 98 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22100 21965 -0.6% 1.01x (?)
DropWhileAnySeqCRangeIterLazy 98 103 +5.1% 0.95x
DropWhileAnySeqCntRange 61 62 +1.6% 0.98x
DropWhileAnySeqCntRangeLazy 98 97 -1.0% 1.01x (?)
DropWhileAnySequence 7876 7794 -1.0% 1.01x (?)
DropWhileAnySequenceLazy 2618 2654 +1.4% 0.99x (?)
DropWhileArray 36 36 +0.0% 1.00x
DropWhileArrayLazy 74 73 -1.4% 1.01x
DropWhileCountableRange 34 34 +0.0% 1.00x
DropWhileCountableRangeLazy 65 64 -1.5% 1.02x
DropWhileSequence 1996 1989 -0.4% 1.00x
DropWhileSequenceLazy 62 61 -1.6% 1.02x
EqualStringSubstring 378 366 -3.2% 1.03x
EqualSubstringString 381 367 -3.7% 1.04x
EqualSubstringSubstring 378 380 +0.5% 0.99x (?)
FilterEvenUsingReduce 1248 1258 +0.8% 0.99x (?)
FilterEvenUsingReduceInto 143 139 -2.8% 1.03x
FrequenciesUsingReduce 7199 7524 +4.5% 0.96x (?)
FrequenciesUsingReduceInto 4298 4155 -3.3% 1.03x (?)
Hanoi 3327 3179 -4.4% 1.05x
HashTest 1667 1654 -0.8% 1.01x
Histogram 306 293 -4.2% 1.04x
Integrate 278 268 -3.6% 1.04x
IterateData 800 782 -2.2% 1.02x
MapReduceClass 2984 2882 -3.4% 1.04x
MapReduceLazySequence 87 85 -2.3% 1.02x
MapReduceShortString 22 21 -4.5% 1.05x
Memset 238 227 -4.6% 1.05x
MonteCarloE 10258 9852 -4.0% 1.04x
MonteCarloPi 42173 41474 -1.7% 1.02x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 101695 97279 -4.3% 1.05x
ObjectiveCBridgeStubDateMutation 268 259 -3.4% 1.03x
ObjectiveCBridgeStubFromNSDate 3729 3655 -2.0% 1.02x (?)
ObjectiveCBridgeStubFromNSDateRef 4155 3980 -4.2% 1.04x
ObjectiveCBridgeStubFromNSStringRef 142 138 -2.8% 1.03x
ObjectiveCBridgeStubNSDateMutationRef 12883 13133 +1.9% 0.98x (?)
ObjectiveCBridgeStubNSDateRefAccess 342 333 -2.6% 1.03x
ObjectiveCBridgeStubToNSDate 15021 14705 -2.1% 1.02x (?)
ObjectiveCBridgeStubToNSStringRef 106 102 -3.8% 1.04x
ObjectiveCBridgeStubURLAppendPath 229605 223411 -2.7% 1.03x (?)
ObjectiveCBridgeStubURLAppendPathRef 231302 227398 -1.7% 1.02x
ObjectiveCBridgeToNSArray 29607 28236 -4.6% 1.05x
ObjectiveCBridgeToNSSet 39721 37970 -4.4% 1.05x
ObjectiveCBridgeToNSString 1251 1235 -1.3% 1.01x (?)
ObserverClosure 2181 2158 -1.1% 1.01x (?)
ObserverForwarderStruct 1065 1057 -0.8% 1.01x (?)
ObserverPartiallyAppliedMethod 3606 3587 -0.5% 1.01x (?)
ObserverUnappliedMethod 2507 2497 -0.4% 1.00x (?)
OpenClose 48 46 -4.2% 1.04x
Phonebook 5698 5452 -4.3% 1.05x (?)
PolymorphicCalls 21 21 +0.0% 1.00x
PopFrontArray 1209 1165 -3.6% 1.04x
PopFrontArrayGeneric 1241 1187 -4.4% 1.05x
PopFrontUnsafePointer 9343 9031 -3.3% 1.03x (?)
PrefixAnySeqCRangeIter 23052 22380 -2.9% 1.03x
PrefixAnySeqCRangeIterLazy 23248 23061 -0.8% 1.01x (?)
PrefixAnySeqCntRange 50 51 +2.0% 0.98x (?)
PrefixAnySeqCntRangeLazy 49 49 +0.0% 1.00x
PrefixAnySequence 7952 7843 -1.4% 1.01x
PrefixAnySequenceLazy 7927 7843 -1.1% 1.01x (?)
PrefixArray 24 24 +0.0% 1.00x
PrefixArrayLazy 24 23 -4.2% 1.04x
PrefixCountableRange 30 30 +0.0% 1.00x
PrefixCountableRangeLazy 30 30 +0.0% 1.00x
PrefixSequence 1982 1975 -0.4% 1.00x
PrefixSequenceLazy 1943 1924 -1.0% 1.01x
PrefixWhileAnyCollection 91 90 -1.1% 1.01x
PrefixWhileAnyCollectionLazy 72 71 -1.4% 1.01x
PrefixWhileAnySeqCRangeIter 16046 15716 -2.1% 1.02x (?)
PrefixWhileAnySeqCRangeIterLazy 71 71 +0.0% 1.00x
PrefixWhileAnySeqCntRange 87 85 -2.3% 1.02x
PrefixWhileAnySeqCntRangeLazy 72 71 -1.4% 1.01x
PrefixWhileAnySequence 18141 17782 -2.0% 1.02x
PrefixWhileAnySequenceLazy 2066 2060 -0.3% 1.00x (?)
PrefixWhileArray 60 59 -1.7% 1.02x
PrefixWhileArrayLazy 49 47 -4.1% 1.04x
PrefixWhileCountableRange 34 34 +0.0% 1.00x
PrefixWhileCountableRangeLazy 30 30 +0.0% 1.00x
PrefixWhileSequenceLazy 26 26 +0.0% 1.00x
Prims 738 741 +0.4% 1.00x (?)
ProtocolDispatch 2426 2357 -2.8% 1.03x
ProtocolDispatch2 159 154 -3.1% 1.03x
RC4 154 155 +0.6% 0.99x (?)
RGBHistogram 2336 2322 -0.6% 1.01x (?)
RGBHistogramOfObjects 23053 22210 -3.7% 1.04x
RecursiveOwnedParameter 2219 2200 -0.9% 1.01x (?)
ReversedArray 46 48 +4.3% 0.96x
ReversedBidirectional 29192 28984 -0.7% 1.01x
SetExclusiveOr 3192 3135 -1.8% 1.02x
SetExclusiveOr_OfObjects 7897 7861 -0.5% 1.00x (?)
SetIntersect 301 301 +0.0% 1.00x
SetIntersect_OfObjects 1673 1673 +0.0% 1.00x
SetIsSubsetOf 279 276 -1.1% 1.01x (?)
SetIsSubsetOf_OfObjects 342 339 -0.9% 1.01x
SetUnion 2759 2711 -1.7% 1.02x (?)
SetUnion_OfObjects 6536 6439 -1.5% 1.02x
SevenBoom 1463 1420 -2.9% 1.03x
Sim2DArray 283 281 -0.7% 1.01x
SortLargeExistentials 7852 7862 +0.1% 1.00x (?)
SortLettersInPlace 1119 1090 -2.6% 1.03x (?)
SortStrings 1570 1545 -1.6% 1.02x (?)
SortStringsUnicode 7656 7547 -1.4% 1.01x (?)
StackPromo 21408 21573 +0.8% 0.99x (?)
StaticArray 17 17 +0.0% 1.00x
StrComplexWalk 704 675 -4.1% 1.04x
StrToInt 1868 1829 -2.1% 1.02x (?)
StringAdder 3429 3523 +2.7% 0.97x (?)
StringBuilder 1033 991 -4.1% 1.04x (?)
StringBuilderLong 939 935 -0.4% 1.00x
StringEdits 117942 114278 -3.1% 1.03x
StringEqualPointerComparison 328 314 -4.3% 1.04x
StringFromLongWholeSubstring 198 191 -3.5% 1.04x
StringFromLongWholeSubstringGeneric 22 21 -4.5% 1.05x
StringHasPrefix 15 15 +0.0% 1.00x
StringHasPrefixUnicode 14201 13747 -3.2% 1.03x (?)
StringHasSuffix 15 15 +0.0% 1.00x
StringHasSuffixUnicode 61016 58900 -3.5% 1.04x
StringInterpolation 10502 10625 +1.2% 0.99x (?)
StringMatch 7424 7387 -0.5% 1.01x (?)
StringUTF16Builder 1840 1883 +2.3% 0.98x
StringWalk 1254 1258 +0.3% 1.00x (?)
SubstringComparable 1509 1456 -3.5% 1.04x (?)
SubstringEqualString 1426 1369 -4.0% 1.04x
SubstringEquatable 3452 3326 -3.7% 1.04x
SubstringFromLongStringGeneric 61 61 +0.0% 1.00x
SuffixAnyCollection 18 18 +0.0% 1.00x
SuffixAnyCollectionLazy 14666 14503 -1.1% 1.01x
SuffixAnySeqCRangeIter 6045 5951 -1.6% 1.02x
SuffixAnySeqCRangeIterLazy 6074 5950 -2.0% 1.02x
SuffixAnySeqCntRange 10 10 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 10 10 +0.0% 1.00x
SuffixAnySequence 8550 8498 -0.6% 1.01x (?)
SuffixAnySequenceLazy 8301 8147 -1.9% 1.02x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 5584 5554 -0.5% 1.01x
SuffixSequenceLazy 5610 5556 -1.0% 1.01x
SumUsingReduce 96 93 -3.1% 1.03x
SumUsingReduceInto 96 93 -3.1% 1.03x
SuperChars 78142 76673 -1.9% 1.02x (?)
TwoSum 948 929 -2.0% 1.02x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 252 243 -3.6% 1.04x
Walsh 373 372 -0.3% 1.00x (?)
accessGlobal 2 2 +0.0% 1.00x
accessInMatSet 18 18 +0.0% 1.00x
accessIndependent 2 2 +0.0% 1.00x

Unoptimized (Onone)

Regression (1)
TEST OLD NEW DELTA SPEEDUP
ObjectAllocation 1605 1692 +5.4% 0.95x
Improvement (16)
TEST OLD NEW DELTA SPEEDUP
ArrayOfGenericPOD 1380 1203 -12.8% 1.15x
DictionaryBridge 2809 2552 -9.1% 1.10x
ArrayOfPOD 774 711 -8.1% 1.09x
DropWhileAnyCollection 28360 26168 -7.7% 1.08x
Dictionary3 1382 1278 -7.5% 1.08x
Dictionary3OfObjects 2456 2275 -7.4% 1.08x
CharIteration_korean_unicodeScalars_Backwards 408121 379529 -7.0% 1.08x
CharIteration_korean_unicodeScalars 235451 219719 -6.7% 1.07x
NopDeinit 179071 167164 -6.6% 1.07x
Dictionary2OfObjects 6380 5993 -6.1% 1.06x
Integrate 730 688 -5.8% 1.06x
NSStringConversion 399 377 -5.5% 1.06x
DictionaryGroupOfObjects 9324 8814 -5.5% 1.06x
StringWalk 13014 12322 -5.3% 1.06x
DropWhileAnySequenceLazy 16109 15283 -5.1% 1.05x
DropLastSequenceLazy 32677 31080 -4.9% 1.05x (?)
No Changes (310)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5511 5361 -2.7% 1.03x
AnyHashableWithAClass 84226 83342 -1.0% 1.01x (?)
Array2D 593498 590135 -0.6% 1.01x (?)
ArrayAppend 4190 4016 -4.2% 1.04x
ArrayAppendArrayOfInt 638 649 +1.7% 0.98x
ArrayAppendAscii 49866 49005 -1.7% 1.02x
ArrayAppendFromGeneric 640 657 +2.7% 0.97x
ArrayAppendGenericStructs 1233 1213 -1.6% 1.02x (?)
ArrayAppendLatin1 71780 69663 -2.9% 1.03x
ArrayAppendLazyMap 293629 283774 -3.4% 1.03x (?)
ArrayAppendOptionals 1239 1224 -1.2% 1.01x
ArrayAppendRepeatCol 231256 225939 -2.3% 1.02x (?)
ArrayAppendReserved 3978 3908 -1.8% 1.02x
ArrayAppendSequence 119205 116330 -2.4% 1.02x (?)
ArrayAppendStrings 13611 13308 -2.2% 1.02x (?)
ArrayAppendToFromGeneric 640 632 -1.2% 1.01x (?)
ArrayAppendToGeneric 633 620 -2.1% 1.02x
ArrayAppendUTF16 73464 71068 -3.3% 1.03x (?)
ArrayInClass 6165 6059 -1.7% 1.02x (?)
ArrayLiteral 1667 1650 -1.0% 1.01x (?)
ArrayOfGenericRef 9592 9427 -1.7% 1.02x
ArrayOfRef 8554 8841 +3.4% 0.97x
ArrayPlusEqualArrayOfInt 622 635 +2.1% 0.98x (?)
ArrayPlusEqualFiveElementCollection 288359 286705 -0.6% 1.01x (?)
ArrayPlusEqualSingleElementCollection 291930 283791 -2.8% 1.03x
ArrayPlusEqualThreeElements 10861 10555 -2.8% 1.03x
ArraySubscript 4101 4072 -0.7% 1.01x
ArrayValueProp 3381 3402 +0.6% 0.99x (?)
ArrayValueProp2 23115 23337 +1.0% 0.99x (?)
ArrayValueProp3 3843 3718 -3.3% 1.03x
ArrayValueProp4 3797 3742 -1.4% 1.01x
BitCount 1677 1695 +1.1% 0.99x (?)
ByteSwap 4049 4014 -0.9% 1.01x (?)
CStringLongAscii 4863 4669 -4.0% 1.04x
CStringLongNonAscii 2292 2324 +1.4% 0.99x (?)
CStringShortAscii 9023 9132 +1.2% 0.99x (?)
Calculator 1171 1177 +0.5% 0.99x (?)
CaptureProp 132783 127674 -3.8% 1.04x
CharIndexing_ascii_unicodeScalars 579576 577358 -0.4% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 639663 643578 +0.6% 0.99x (?)
CharIndexing_chinese_unicodeScalars 438057 433398 -1.1% 1.01x
CharIndexing_chinese_unicodeScalars_Backwards 490726 479071 -2.4% 1.02x (?)
CharIndexing_japanese_unicodeScalars 683652 683722 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 753289 747511 -0.8% 1.01x (?)
CharIndexing_korean_unicodeScalars 558950 560272 +0.2% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 613531 613005 -0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 100745 98973 -1.8% 1.02x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 114609 111683 -2.6% 1.03x (?)
CharIndexing_punctuated_unicodeScalars 126818 129566 +2.2% 0.98x
CharIndexing_punctuated_unicodeScalars_Backwards 140335 141771 +1.0% 0.99x (?)
CharIndexing_russian_unicodeScalars 477441 480382 +0.6% 0.99x (?)
CharIndexing_russian_unicodeScalars_Backwards 539727 533637 -1.1% 1.01x
CharIndexing_tweet_unicodeScalars 1149082 1139134 -0.9% 1.01x
CharIndexing_tweet_unicodeScalars_Backwards 1257901 1224367 -2.7% 1.03x (?)
CharIndexing_utf16_unicodeScalars 629516 627584 -0.3% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 694846 691557 -0.5% 1.00x (?)
CharIteration_ascii_unicodeScalars 234120 224680 -4.0% 1.04x
CharIteration_ascii_unicodeScalars_Backwards 395945 389954 -1.5% 1.02x (?)
CharIteration_chinese_unicodeScalars 168695 166165 -1.5% 1.02x (?)
CharIteration_chinese_unicodeScalars_Backwards 297341 298179 +0.3% 1.00x (?)
CharIteration_japanese_unicodeScalars 265707 264923 -0.3% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 470120 473907 +0.8% 0.99x (?)
CharIteration_punctuatedJapanese_unicodeScalars 41953 40197 -4.2% 1.04x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 69850 68690 -1.7% 1.02x
CharIteration_punctuated_unicodeScalars 49930 50134 +0.4% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 87026 86677 -0.4% 1.00x (?)
CharIteration_russian_unicodeScalars 187528 186887 -0.3% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 326779 323893 -0.9% 1.01x (?)
CharIteration_tweet_unicodeScalars 435553 432870 -0.6% 1.01x (?)
CharIteration_tweet_unicodeScalars_Backwards 779710 755194 -3.1% 1.03x (?)
CharIteration_utf16_unicodeScalars 237248 244824 +3.2% 0.97x
CharIteration_utf16_unicodeScalars_Backwards 468502 464844 -0.8% 1.01x
CharacterLiteralsLarge 6107 6022 -1.4% 1.01x (?)
CharacterLiteralsSmall 657 636 -3.2% 1.03x
Chars 65157 67007 +2.8% 0.97x
ClassArrayGetter 962 987 +2.6% 0.97x
DeadArray 114512 113372 -1.0% 1.01x (?)
Dictionary 3556 3463 -2.6% 1.03x (?)
Dictionary2 3474 3391 -2.4% 1.02x (?)
DictionaryGroup 5610 5343 -4.8% 1.05x
DictionaryLiteral 8206 8075 -1.6% 1.02x (?)
DictionaryOfObjects 6994 6911 -1.2% 1.01x
DictionaryRemove 21177 21072 -0.5% 1.00x (?)
DictionaryRemoveOfObjects 59636 58123 -2.5% 1.03x
DictionarySwap 5315 5188 -2.4% 1.02x
DictionarySwapOfObjects 23236 23204 -0.1% 1.00x (?)
DropFirstAnyCollection 21145 21206 +0.3% 1.00x (?)
DropFirstAnyCollectionLazy 156447 154914 -1.0% 1.01x
DropFirstAnySeqCRangeIter 31788 31410 -1.2% 1.01x (?)
DropFirstAnySeqCRangeIterLazy 30989 30519 -1.5% 1.02x (?)
DropFirstAnySeqCntRange 21130 21559 +2.0% 0.98x (?)
DropFirstAnySeqCntRangeLazy 21294 21231 -0.3% 1.00x (?)
DropFirstAnySequence 17369 17249 -0.7% 1.01x
DropFirstAnySequenceLazy 17448 16860 -3.4% 1.03x
DropFirstArray 10274 10038 -2.3% 1.02x (?)
DropFirstArrayLazy 52299 50343 -3.7% 1.04x
DropFirstCountableRange 338 336 -0.6% 1.01x (?)
DropFirstCountableRangeLazy 38465 39122 +1.7% 0.98x (?)
DropFirstSequence 15913 15922 +0.1% 1.00x (?)
DropFirstSequenceLazy 15570 15574 +0.0% 1.00x (?)
DropLastAnyCollection 7101 7058 -0.6% 1.01x
DropLastAnyCollectionLazy 51721 49628 -4.0% 1.04x
DropLastAnySeqCRangeIter 47511 48240 +1.5% 0.98x (?)
DropLastAnySeqCRangeIterLazy 47098 48093 +2.1% 0.98x (?)
DropLastAnySeqCntRange 6948 7072 +1.8% 0.98x
DropLastAnySeqCntRangeLazy 7044 7122 +1.1% 0.99x (?)
DropLastAnySequence 32184 32338 +0.5% 1.00x (?)
DropLastAnySequenceLazy 32262 31778 -1.5% 1.02x
DropLastArray 3434 3295 -4.0% 1.04x (?)
DropLastArrayLazy 17457 17240 -1.2% 1.01x
DropLastCountableRange 119 118 -0.8% 1.01x
DropLastCountableRangeLazy 13062 12847 -1.6% 1.02x
DropLastSequence 32848 32889 +0.1% 1.00x (?)
DropWhileAnyCollectionLazy 31496 30318 -3.7% 1.04x (?)
DropWhileAnySeqCRangeIter 33472 33187 -0.9% 1.01x (?)
DropWhileAnySeqCRangeIterLazy 30214 31478 +4.2% 0.96x
DropWhileAnySeqCntRange 26365 26928 +2.1% 0.98x (?)
DropWhileAnySeqCntRangeLazy 30730 30598 -0.4% 1.00x (?)
DropWhileAnySequence 17255 16991 -1.5% 1.02x
DropWhileArray 13456 13699 +1.8% 0.98x (?)
DropWhileArrayLazy 24515 23520 -4.1% 1.04x
DropWhileCountableRange 5952 6031 +1.3% 0.99x
DropWhileCountableRangeLazy 28845 29090 +0.8% 0.99x (?)
DropWhileSequence 16023 16444 +2.6% 0.97x
DropWhileSequenceLazy 13950 14113 +1.2% 0.99x (?)
EqualStringSubstring 662 662 +0.0% 1.00x
EqualSubstringString 670 664 -0.9% 1.01x
EqualSubstringSubstring 786 771 -1.9% 1.02x
EqualSubstringSubstringGenericEquatable 420 415 -1.2% 1.01x
ErrorHandling 7691 7562 -1.7% 1.02x (?)
FilterEvenUsingReduce 4790 4772 -0.4% 1.00x (?)
FilterEvenUsingReduceInto 3024 3002 -0.7% 1.01x (?)
FrequenciesUsingReduce 16421 16114 -1.9% 1.02x (?)
FrequenciesUsingReduceInto 9407 9787 +4.0% 0.96x (?)
Hanoi 18258 18654 +2.2% 0.98x
HashTest 18018 17834 -1.0% 1.01x
Histogram 9754 9796 +0.4% 1.00x (?)
IterateData 12815 12859 +0.3% 1.00x (?)
Join 1706 1686 -1.2% 1.01x (?)
LazilyFilteredArrays 2013537 1992469 -1.0% 1.01x (?)
LazilyFilteredRange 759664 744774 -2.0% 1.02x (?)
LessSubstringSubstring 787 781 -0.8% 1.01x (?)
LessSubstringSubstringGenericComparable 442 436 -1.4% 1.01x
LinkedList 39205 39174 -0.1% 1.00x (?)
MapReduce 42714 42169 -1.3% 1.01x
MapReduceAnyCollection 42543 42530 -0.0% 1.00x (?)
MapReduceAnyCollectionShort 55598 54281 -2.4% 1.02x
MapReduceClass 48296 46834 -3.0% 1.03x
MapReduceClassShort 59743 58607 -1.9% 1.02x
MapReduceLazyCollection 42855 42946 +0.2% 1.00x (?)
MapReduceLazyCollectionShort 54446 54085 -0.7% 1.01x
MapReduceLazySequence 31462 30284 -3.7% 1.04x
MapReduceSequence 48993 50175 +2.4% 0.98x
MapReduceShort 55145 55226 +0.1% 1.00x (?)
MapReduceShortString 321 312 -2.8% 1.03x
MapReduceString 3181 3115 -2.1% 1.02x (?)
Memset 42180 42180 +0.0% 1.00x
MonteCarloE 138887 137875 -0.7% 1.01x (?)
MonteCarloPi 50025 49602 -0.8% 1.01x (?)
NSDictionaryCastToSwift 6313 6427 +1.8% 0.98x (?)
NSError 714 689 -3.5% 1.04x (?)
ObjectiveCBridgeFromNSArrayAnyObject 24411 25033 +2.5% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7297 6976 -4.4% 1.05x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 40139 40715 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 32997 34201 +3.6% 0.96x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122508 122981 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7537 7582 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 98767 99588 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 104999 105086 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 67614 68710 +1.6% 0.98x
ObjectiveCBridgeFromNSSetAnyObjectForced 7435 7579 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 72612 71765 -1.2% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 71828 71071 -1.1% 1.01x (?)
ObjectiveCBridgeFromNSString 3820 3852 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2263 2233 -1.3% 1.01x (?)
ObjectiveCBridgeStubDataAppend 3934 3920 -0.4% 1.00x (?)
ObjectiveCBridgeStubDateAccess 1005 1004 -0.1% 1.00x
ObjectiveCBridgeStubDateMutation 515 519 +0.8% 0.99x
ObjectiveCBridgeStubFromArrayOfNSString 25840 25705 -0.5% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 4240 4236 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 4545 4673 +2.8% 0.97x (?)
ObjectiveCBridgeStubFromNSString 588 579 -1.5% 1.02x
ObjectiveCBridgeStubFromNSStringRef 177 182 +2.8% 0.97x
ObjectiveCBridgeStubNSDataAppend 2823 2770 -1.9% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 15648 15756 +0.7% 0.99x (?)
ObjectiveCBridgeStubNSDateRefAccess 1189 1189 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 28401 29833 +5.0% 0.95x
ObjectiveCBridgeStubToNSDate 15314 15143 -1.1% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3254 3261 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSString 1519 1521 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 150 150 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 219666 222691 +1.4% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 231855 225842 -2.6% 1.03x (?)
ObjectiveCBridgeToNSArray 28704 28288 -1.4% 1.01x (?)
ObjectiveCBridgeToNSDictionary 44357 45361 +2.3% 0.98x (?)
ObjectiveCBridgeToNSSet 39770 38687 -2.7% 1.03x
ObjectiveCBridgeToNSString 1288 1264 -1.9% 1.02x (?)
ObserverClosure 7143 7059 -1.2% 1.01x (?)
ObserverForwarderStruct 5206 5281 +1.4% 0.99x
ObserverPartiallyAppliedMethod 8603 8440 -1.9% 1.02x (?)
ObserverUnappliedMethod 8976 8931 -0.5% 1.01x (?)
OpenClose 387 391 +1.0% 0.99x (?)
Phonebook 22082 22917 +3.8% 0.96x
PolymorphicCalls 5380 5320 -1.1% 1.01x (?)
PopFrontArray 9915 9954 +0.4% 1.00x (?)
PopFrontArrayGeneric 8684 8708 +0.3% 1.00x (?)
PopFrontUnsafePointer 97250 99218 +2.0% 0.98x (?)
PrefixAnyCollection 21561 21135 -2.0% 1.02x (?)
PrefixAnyCollectionLazy 149664 152894 +2.2% 0.98x (?)
PrefixAnySeqCRangeIter 24186 24996 +3.3% 0.97x
PrefixAnySeqCRangeIterLazy 24798 24851 +0.2% 1.00x (?)
PrefixAnySeqCntRange 21485 21581 +0.4% 1.00x (?)
PrefixAnySeqCntRangeLazy 20609 21183 +2.8% 0.97x
PrefixAnySequence 13651 13597 -0.4% 1.00x
PrefixAnySequenceLazy 13419 13366 -0.4% 1.00x (?)
PrefixArray 10154 10265 +1.1% 0.99x (?)
PrefixArrayLazy 53363 51163 -4.1% 1.04x
PrefixCountableRange 337 332 -1.5% 1.02x
PrefixCountableRangeLazy 38698 38556 -0.4% 1.00x (?)
PrefixSequence 12768 12583 -1.4% 1.01x
PrefixSequenceLazy 12245 12210 -0.3% 1.00x (?)
PrefixWhileAnyCollection 37069 38186 +3.0% 0.97x
PrefixWhileAnyCollectionLazy 25523 25680 +0.6% 0.99x (?)
PrefixWhileAnySeqCRangeIter 47931 45667 -4.7% 1.05x (?)
PrefixWhileAnySeqCRangeIterLazy 25852 25328 -2.0% 1.02x (?)
PrefixWhileAnySeqCntRange 37840 38136 +0.8% 0.99x
PrefixWhileAnySeqCntRangeLazy 25946 26021 +0.3% 1.00x (?)
PrefixWhileAnySequence 34130 35073 +2.8% 0.97x
PrefixWhileAnySequenceLazy 13990 14168 +1.3% 0.99x (?)
PrefixWhileArray 20746 20092 -3.2% 1.03x (?)
PrefixWhileArrayLazy 23436 22748 -2.9% 1.03x (?)
PrefixWhileCountableRange 16823 17053 +1.4% 0.99x (?)
PrefixWhileCountableRangeLazy 24575 24813 +1.0% 0.99x (?)
PrefixWhileSequence 34744 34506 -0.7% 1.01x (?)
PrefixWhileSequenceLazy 14068 13931 -1.0% 1.01x (?)
Prims 10136 10182 +0.5% 1.00x (?)
ProtocolDispatch 6918 6814 -1.5% 1.02x (?)
ProtocolDispatch2 491 491 +0.0% 1.00x
RC4 18524 18813 +1.6% 0.98x (?)
RGBHistogram 34832 36088 +3.6% 0.97x
RGBHistogramOfObjects 107006 107080 +0.1% 1.00x (?)
RangeAssignment 5664 5530 -2.4% 1.02x
RecursiveOwnedParameter 10555 10819 +2.5% 0.98x
ReversedArray 52037 50436 -3.1% 1.03x
ReversedBidirectional 85098 87347 +2.6% 0.97x (?)
ReversedDictionary 34236 34881 +1.9% 0.98x
SetExclusiveOr 21488 21712 +1.0% 0.99x (?)
SetExclusiveOr_OfObjects 47091 47174 +0.2% 1.00x (?)
SetIntersect 10724 10676 -0.4% 1.00x (?)
SetIntersect_OfObjects 12641 12356 -2.3% 1.02x (?)
SetIsSubsetOf 1641 1647 +0.4% 1.00x (?)
SetIsSubsetOf_OfObjects 1593 1554 -2.4% 1.03x
SetUnion 12882 12351 -4.1% 1.04x
SetUnion_OfObjects 33766 33093 -2.0% 1.02x
SevenBoom 1556 1572 +1.0% 0.99x (?)
Sim2DArray 41938 42762 +2.0% 0.98x (?)
SortLargeExistentials 17286 16948 -2.0% 1.02x (?)
SortLettersInPlace 3068 3147 +2.6% 0.97x (?)
SortSortedStrings 1376 1384 +0.6% 0.99x (?)
SortStrings 2399 2410 +0.5% 1.00x (?)
SortStringsUnicode 8772 8669 -1.2% 1.01x (?)
StackPromo 104335 101866 -2.4% 1.02x (?)
StaticArray 4508 4433 -1.7% 1.02x (?)
StrComplexWalk 6682 6757 +1.1% 0.99x (?)
StrToInt 116802 116086 -0.6% 1.01x (?)
StringAdder 3768 3765 -0.1% 1.00x (?)
StringBuilder 8437 8338 -1.2% 1.01x (?)
StringBuilderLong 1109 1072 -3.3% 1.03x
StringEdits 404723 413222 +2.1% 0.98x
StringEqualPointerComparison 2568 2559 -0.4% 1.00x (?)
StringFromLongWholeSubstring 208 210 +1.0% 0.99x (?)
StringFromLongWholeSubstringGeneric 195 200 +2.6% 0.98x
StringHasPrefix 1700 1749 +2.9% 0.97x
StringHasPrefixUnicode 16071 16204 +0.8% 0.99x (?)
StringHasSuffix 1921 1862 -3.1% 1.03x (?)
StringHasSuffixUnicode 63599 63796 +0.3% 1.00x
StringInterpolation 13940 13821 -0.9% 1.01x (?)
StringMatch 34042 34753 +2.1% 0.98x
StringUTF16Builder 9559 9215 -3.6% 1.04x
StringWithCString 57978 57338 -1.1% 1.01x (?)
SubstringComparable 4662 4659 -0.1% 1.00x (?)
SubstringEqualString 6441 6421 -0.3% 1.00x (?)
SubstringEquatable 9177 9404 +2.5% 0.98x
SubstringFromLongString 12 12 +0.0% 1.00x
SubstringFromLongStringGeneric 109 110 +0.9% 0.99x
SuffixAnyCollection 6901 6936 +0.5% 0.99x (?)
SuffixAnyCollectionLazy 50512 51329 +1.6% 0.98x
SuffixAnySeqCRangeIter 44603 45778 +2.6% 0.97x (?)
SuffixAnySeqCRangeIterLazy 43902 43924 +0.1% 1.00x (?)
SuffixAnySeqCntRange 6910 6930 +0.3% 1.00x (?)
SuffixAnySeqCntRangeLazy 7032 7051 +0.3% 1.00x
SuffixAnySequence 29289 29274 -0.1% 1.00x (?)
SuffixAnySequenceLazy 29272 29111 -0.6% 1.01x
SuffixArray 3419 3329 -2.6% 1.03x
SuffixArrayLazy 17122 16886 -1.4% 1.01x (?)
SuffixCountableRange 117 117 +0.0% 1.00x
SuffixCountableRangeLazy 12900 12849 -0.4% 1.00x (?)
SuffixSequence 29681 29580 -0.3% 1.00x (?)
SuffixSequenceLazy 28793 28722 -0.2% 1.00x (?)
SumUsingReduce 298659 299780 +0.4% 1.00x (?)
SumUsingReduceInto 277141 277470 +0.1% 1.00x (?)
SuperChars 208489 216699 +3.9% 0.96x
TwoSum 4218 4123 -2.3% 1.02x
TypeFlood 165 172 +4.2% 0.96x
UTF8Decode 46519 46652 +0.3% 1.00x (?)
Walsh 11350 11348 -0.0% 1.00x (?)
XorLoop 22665 22661 -0.0% 1.00x (?)
accessGlobal 177 169 -4.5% 1.05x
accessInMatSet 333 327 -1.8% 1.02x (?)
accessIndependent 124 124 +0.0% 1.00x
Hardware Overview
  Model Name: Mac mini
  Model Identifier: Macmini7,1
  Processor Name: Intel Core i7
  Processor Speed: 3 GHz
  Number of Processors: 1
  Total Number of Cores: 2
  L2 Cache (per Core): 256 KB
  L3 Cache: 4 MB
  Memory: 16 GB

@swiftix
Copy link
Contributor

swiftix commented Aug 3, 2017

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Aug 3, 2017

Build comment file:

Build failed before running benchmark.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants