Skip to content
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

[stdlib] De-gyb sorting #9135

Merged
merged 3 commits into from
May 1, 2017
Merged

Conversation

airspeedswift
Copy link
Member

@airspeedswift airspeedswift commented Apr 30, 2017

Rebase of @natecook1000's prior PR #6638. Folds in changes for swapAt and throws.

@airspeedswift
Copy link
Member Author

@swift-ci please test

@airspeedswift
Copy link
Member Author

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (6)
TEST OLD NEW DELTA SPEEDUP
Phonebook 6371 7513 +17.9% 0.85x
StaticArray 17 20 +17.6% 0.85x
ClassArrayGetter 12 13 +8.3% 0.92x
StringHasSuffix 780 836 +7.2% 0.93x
PrefixWhileArray 63 67 +6.3% 0.94x
NopDeinit 25877 27324 +5.6% 0.95x
Improvement (7)
TEST OLD NEW DELTA SPEEDUP
ProtocolDispatch 2859 2287 -20.0% 1.25x
DropWhileSequenceLazy 72 63 -12.5% 1.14x
OpenClose 51 45 -11.8% 1.13x
MapReduceAnyCollection 313 284 -9.3% 1.10x
DropLastArrayLazy 11 10 -9.1% 1.10x
ObjectiveCBridgeStubNSDateRefAccess 322 295 -8.4% 1.09x
HashQuadratic 5981954 5675541 -5.1% 1.05x
No Changes (256)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2761 2756 -0.2% 1.00x (?)
AnyHashableWithAClass 63222 63325 +0.2% 1.00x (?)
Array2D 1932 1934 +0.1% 1.00x (?)
ArrayAppend 729 731 +0.3% 1.00x (?)
ArrayAppendArrayOfInt 562 579 +3.0% 0.97x
ArrayAppendAscii 18786 19063 +1.5% 0.99x
ArrayAppendFromGeneric 562 562 +0.0% 1.00x
ArrayAppendGenericStructs 1135 1135 +0.0% 1.00x
ArrayAppendLatin1 42642 42745 +0.2% 1.00x (?)
ArrayAppendLazyMap 946 946 +0.0% 1.00x
ArrayAppendOptionals 1136 1135 -0.1% 1.00x (?)
ArrayAppendRepeatCol 790 790 +0.0% 1.00x
ArrayAppendReserved 503 503 +0.0% 1.00x
ArrayAppendSequence 893 893 +0.0% 1.00x
ArrayAppendStrings 12794 12776 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 562 562 +0.0% 1.00x
ArrayAppendToGeneric 562 562 +0.0% 1.00x
ArrayAppendUTF16 41185 41375 +0.5% 1.00x (?)
ArrayInClass 58 58 +0.0% 1.00x
ArrayLiteral 1150 1144 -0.5% 1.01x (?)
ArrayOfGenericPOD 207 207 +0.0% 1.00x
ArrayOfGenericRef 3783 3764 -0.5% 1.01x (?)
ArrayOfPOD 156 156 +0.0% 1.00x
ArrayOfRef 3682 3681 -0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 563 563 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4180 4170 -0.2% 1.00x (?)
ArrayPlusEqualSingleElementCollection 729 729 +0.0% 1.00x
ArrayPlusEqualThreeElements 1519 1500 -1.3% 1.01x
ArraySubscript 1410 1410 +0.0% 1.00x
ArrayValueProp 5 5 +0.0% 1.00x
ArrayValueProp2 5 5 +0.0% 1.00x
ArrayValueProp3 5 5 +0.0% 1.00x
ArrayValueProp4 5 5 +0.0% 1.00x
BitCount 0 0 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 12909 12808 -0.8% 1.01x (?)
CStringLongNonAscii 3998 3940 -1.5% 1.01x
CStringShortAscii 5751 5738 -0.2% 1.00x (?)
Calculator 40 39 -2.5% 1.03x (?)
CaptureProp 4225 4359 +3.2% 0.97x
CharacterLiteralsLarge 9908 9929 +0.2% 1.00x (?)
CharacterLiteralsSmall 734 734 +0.0% 1.00x
Chars 1310 1307 -0.2% 1.00x (?)
DeadArray 171 171 +0.0% 1.00x
Dictionary 791 790 -0.1% 1.00x (?)
Dictionary2 1970 1970 +0.0% 1.00x
Dictionary2OfObjects 3427 3433 +0.2% 1.00x (?)
Dictionary3 568 569 +0.2% 1.00x (?)
Dictionary3OfObjects 1026 1025 -0.1% 1.00x (?)
DictionaryBridge 2748 2768 +0.7% 0.99x (?)
DictionaryLiteral 1404 1398 -0.4% 1.00x (?)
DictionaryOfObjects 2525 2527 +0.1% 1.00x (?)
DictionaryRemove 3125 3086 -1.2% 1.01x
DictionaryRemoveOfObjects 22191 22295 +0.5% 1.00x (?)
DictionarySwap 352 352 +0.0% 1.00x
DictionarySwapOfObjects 6561 6590 +0.4% 1.00x (?)
DropFirstAnyCollection 120 119 -0.8% 1.01x
DropFirstAnyCollectionLazy 42318 42341 +0.1% 1.00x (?)
DropFirstAnySeqCRangeIter 26473 26287 -0.7% 1.01x (?)
DropFirstAnySeqCRangeIterLazy 26458 26442 -0.1% 1.00x (?)
DropFirstAnySeqCntRange 109 109 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 109 108 -0.9% 1.01x (?)
DropFirstAnySequence 6326 6411 +1.3% 0.99x
DropFirstAnySequenceLazy 6386 6416 +0.5% 1.00x (?)
DropFirstArray 27 28 +3.7% 0.96x
DropFirstArrayLazy 27 27 +0.0% 1.00x
DropFirstCountableRange 22 22 +0.0% 1.00x
DropFirstCountableRangeLazy 22 22 +0.0% 1.00x
DropFirstSequence 2893 2894 +0.0% 1.00x (?)
DropFirstSequenceLazy 2860 2859 -0.0% 1.00x (?)
DropLastAnyCollection 49 49 +0.0% 1.00x
DropLastAnyCollectionLazy 14103 14138 +0.2% 1.00x (?)
DropLastAnySeqCRangeIter 4352 4356 +0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 4357 4362 +0.1% 1.00x (?)
DropLastAnySeqCntRange 38 37 -2.6% 1.03x
DropLastAnySeqCntRangeLazy 38 38 +0.0% 1.00x
DropLastAnySequence 6456 6436 -0.3% 1.00x (?)
DropLastAnySequenceLazy 6146 6160 +0.2% 1.00x (?)
DropLastArray 10 10 +0.0% 1.00x
DropLastCountableRange 8 8 +0.0% 1.00x
DropLastCountableRangeLazy 8 8 +0.0% 1.00x
DropLastSequence 487 500 +2.7% 0.97x (?)
DropLastSequenceLazy 487 500 +2.7% 0.97x (?)
DropWhileAnyCollection 125 126 +0.8% 0.99x
DropWhileAnyCollectionLazy 90 90 +0.0% 1.00x
DropWhileAnySeqCRangeIter 21414 21002 -1.9% 1.02x (?)
DropWhileAnySeqCRangeIterLazy 91 90 -1.1% 1.01x
DropWhileAnySeqCntRange 120 123 +2.5% 0.98x
DropWhileAnySeqCntRangeLazy 90 90 +0.0% 1.00x
DropWhileAnySequence 7143 7208 +0.9% 0.99x
DropWhileAnySequenceLazy 1989 1989 +0.0% 1.00x
DropWhileArray 40 40 +0.0% 1.00x
DropWhileArrayLazy 75 75 +0.0% 1.00x
DropWhileCountableRange 33 34 +3.0% 0.97x
DropWhileCountableRangeLazy 75 75 +0.0% 1.00x
DropWhileSequence 2920 2948 +1.0% 0.99x
ErrorHandling 2779 2759 -0.7% 1.01x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3101 3104 +0.1% 1.00x (?)
HashTest 1658 1658 +0.0% 1.00x
Histogram 236 234 -0.8% 1.01x (?)
Integrate 247 247 +0.0% 1.00x
IterateData 720 721 +0.1% 1.00x (?)
Join 421 425 +1.0% 0.99x (?)
LazilyFilteredArrays 68622 68511 -0.2% 1.00x (?)
LazilyFilteredRange 6541 6626 +1.3% 0.99x
LinkedList 6653 6650 -0.0% 1.00x (?)
MapReduce 309 312 +1.0% 0.99x (?)
MapReduceAnyCollectionShort 1906 1907 +0.1% 1.00x (?)
MapReduceClass 2891 2880 -0.4% 1.00x
MapReduceClassShort 4325 4305 -0.5% 1.00x (?)
MapReduceLazyCollection 14 14 +0.0% 1.00x
MapReduceLazyCollectionShort 42 41 -2.4% 1.02x
MapReduceLazySequence 85 85 +0.0% 1.00x
MapReduceSequence 438 437 -0.2% 1.00x (?)
MapReduceShort 1839 1822 -0.9% 1.01x (?)
MapReduceShortString 17 17 +0.0% 1.00x
MapReduceString 67 68 +1.5% 0.99x (?)
Memset 221 221 +0.0% 1.00x
MonteCarloE 9763 9677 -0.9% 1.01x
MonteCarloPi 41493 41582 +0.2% 1.00x (?)
NSDictionaryCastToSwift 4994 4995 +0.0% 1.00x (?)
NSError 272 272 +0.0% 1.00x
NSStringConversion 684 682 -0.3% 1.00x (?)
ObjectAllocation 171 172 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 21785 21896 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4173 4186 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 40945 40843 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 35105 35171 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 114038 113956 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 4647 4625 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 96531 98137 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 92039 92483 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 60503 60877 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 3907 3934 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76205 76088 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 67262 67535 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSString 1329 1325 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2192 2213 +1.0% 0.99x (?)
ObjectiveCBridgeStubDataAppend 3532 3507 -0.7% 1.01x (?)
ObjectiveCBridgeStubDateAccess 171 171 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 26723 26971 +0.9% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 3466 3436 -0.9% 1.01x
ObjectiveCBridgeStubFromNSDateRef 3408 3350 -1.7% 1.02x
ObjectiveCBridgeStubFromNSString 865 856 -1.0% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 164 167 +1.8% 0.98x (?)
ObjectiveCBridgeStubNSDataAppend 2128 2139 +0.5% 0.99x (?)
ObjectiveCBridgeStubNSDateMutationRef 11638 11691 +0.5% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 27047 27129 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSDate 13714 13722 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3143 3172 +0.9% 0.99x (?)
ObjectiveCBridgeStubToNSString 1428 1415 -0.9% 1.01x (?)
ObjectiveCBridgeStubToNSStringRef 102 104 +2.0% 0.98x
ObjectiveCBridgeStubURLAppendPath 212254 207320 -2.3% 1.02x (?)
ObjectiveCBridgeStubURLAppendPathRef 212892 211203 -0.8% 1.01x (?)
ObjectiveCBridgeToNSArray 27420 27536 +0.4% 1.00x (?)
ObjectiveCBridgeToNSDictionary 57550 58756 +2.1% 0.98x (?)
ObjectiveCBridgeToNSSet 36875 37439 +1.5% 0.98x (?)
ObjectiveCBridgeToNSString 1196 1199 +0.3% 1.00x (?)
ObserverClosure 2175 2148 -1.2% 1.01x (?)
ObserverForwarderStruct 1057 1056 -0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 3645 3625 -0.5% 1.01x (?)
ObserverUnappliedMethod 2532 2532 +0.0% 1.00x
PolymorphicCalls 20 20 +0.0% 1.00x
PopFrontArray 1010 1010 +0.0% 1.00x
PopFrontArrayGeneric 1011 1013 +0.2% 1.00x (?)
PopFrontUnsafePointer 8364 8385 +0.3% 1.00x
PrefixAnyCollection 119 119 +0.0% 1.00x
PrefixAnyCollectionLazy 42350 42299 -0.1% 1.00x (?)
PrefixAnySeqCRangeIter 20971 20730 -1.1% 1.01x (?)
PrefixAnySeqCRangeIterLazy 20979 20728 -1.2% 1.01x (?)
PrefixAnySeqCntRange 109 108 -0.9% 1.01x (?)
PrefixAnySeqCntRangeLazy 109 109 +0.0% 1.00x
PrefixAnySequence 5774 5792 +0.3% 1.00x (?)
PrefixAnySequenceLazy 5754 5803 +0.9% 0.99x (?)
PrefixArray 28 27 -3.6% 1.04x
PrefixArrayLazy 28 28 +0.0% 1.00x
PrefixCountableRange 22 22 +0.0% 1.00x
PrefixCountableRangeLazy 22 22 +0.0% 1.00x
PrefixSequence 2416 2488 +3.0% 0.97x
PrefixSequenceLazy 2453 2454 +0.0% 1.00x (?)
PrefixWhileAnyCollection 151 152 +0.7% 0.99x
PrefixWhileAnyCollectionLazy 73 73 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 11811 11817 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 73 73 +0.0% 1.00x
PrefixWhileAnySeqCntRange 146 145 -0.7% 1.01x
PrefixWhileAnySeqCntRangeLazy 73 73 +0.0% 1.00x
PrefixWhileAnySequence 13309 13223 -0.6% 1.01x (?)
PrefixWhileAnySequenceLazy 1497 1497 +0.0% 1.00x
PrefixWhileArrayLazy 54 54 +0.0% 1.00x
PrefixWhileCountableRange 33 34 +3.0% 0.97x
PrefixWhileCountableRangeLazy 22 22 +0.0% 1.00x
PrefixWhileSequence 378 380 +0.5% 0.99x (?)
PrefixWhileSequenceLazy 36 36 +0.0% 1.00x
Prims 746 732 -1.9% 1.02x
ProtocolDispatch2 158 152 -3.8% 1.04x
RC4 159 161 +1.3% 0.99x
RGBHistogram 2148 2159 +0.5% 0.99x (?)
RGBHistogramOfObjects 22673 22672 -0.0% 1.00x (?)
RangeAssignment 288 295 +2.4% 0.98x (?)
RecursiveOwnedParameter 2190 2196 +0.3% 1.00x (?)
ReversedArray 46 46 +0.0% 1.00x
ReversedBidirectional 27484 27490 +0.0% 1.00x (?)
ReversedDictionary 95 95 +0.0% 1.00x
SetExclusiveOr 2718 2704 -0.5% 1.01x (?)
SetExclusiveOr_OfObjects 9003 9053 +0.6% 0.99x (?)
SetIntersect 256 265 +3.5% 0.97x
SetIntersect_OfObjects 1624 1623 -0.1% 1.00x (?)
SetIsSubsetOf 270 270 +0.0% 1.00x
SetIsSubsetOf_OfObjects 338 338 +0.0% 1.00x
SetUnion 2449 2424 -1.0% 1.01x (?)
SetUnion_OfObjects 7623 7642 +0.2% 1.00x (?)
SevenBoom 1373 1374 +0.1% 1.00x (?)
Sim2DArray 260 260 +0.0% 1.00x
SortLargeExistentials 7583 7519 -0.8% 1.01x
SortLettersInPlace 1083 1081 -0.2% 1.00x (?)
SortSortedStrings 773 772 -0.1% 1.00x (?)
SortStrings 1531 1502 -1.9% 1.02x
SortStringsUnicode 7264 7366 +1.4% 0.99x (?)
StackPromo 20753 20792 +0.2% 1.00x (?)
StrComplexWalk 933 934 +0.1% 1.00x (?)
StrToInt 4127 4145 +0.4% 1.00x (?)
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1314 1316 +0.2% 1.00x (?)
StringBuilderLong 889 893 +0.4% 1.00x
StringEdits 354011 356648 +0.7% 0.99x (?)
StringEqualPointerComparison 6890 6932 +0.6% 0.99x (?)
StringHasPrefix 662 652 -1.5% 1.02x (?)
StringHasPrefixUnicode 13690 13697 +0.1% 1.00x (?)
StringHasSuffixUnicode 58539 58426 -0.2% 1.00x (?)
StringInterpolation 7948 7947 -0.0% 1.00x (?)
StringMatch 15366 15440 +0.5% 1.00x (?)
StringUTF16Builder 2061 2088 +1.3% 0.99x (?)
StringWalk 5719 5719 +0.0% 1.00x
StringWithCString 316456 316446 -0.0% 1.00x (?)
SuffixAnyCollection 49 49 +0.0% 1.00x
SuffixAnyCollectionLazy 14063 14101 +0.3% 1.00x (?)
SuffixAnySeqCRangeIter 4656 4654 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4664 4657 -0.2% 1.00x (?)
SuffixAnySeqCntRange 37 38 +2.7% 0.97x
SuffixAnySeqCntRangeLazy 37 38 +2.7% 0.97x
SuffixAnySequence 6435 6289 -2.3% 1.02x
SuffixAnySequenceLazy 6189 6233 +0.7% 0.99x (?)
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
SuffixSequence 4244 4246 +0.0% 1.00x (?)
SuffixSequenceLazy 4244 4247 +0.1% 1.00x (?)
SuperChars 280127 282975 +1.0% 0.99x (?)
TwoSum 846 869 +2.7% 0.97x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 259 262 +1.2% 0.99x (?)
Walsh 335 335 +0.0% 1.00x
XorLoop 328 328 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (5)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubFromNSDate 3618 3960 +9.5% 0.91x
ObjectiveCBridgeStubFromNSDateRef 3665 4002 +9.2% 0.92x
Phonebook 20995 22836 +8.8% 0.92x
StringWalk 19650 21086 +7.3% 0.93x
ArrayOfGenericPOD 2896 3052 +5.4% 0.95x
Improvement (2)
TEST OLD NEW DELTA SPEEDUP
StringAdder 44 40 -9.1% 1.10x
Calculator 962 901 -6.3% 1.07x
No Changes (262)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2939 2946 +0.2% 1.00x (?)
AnyHashableWithAClass 80003 81734 +2.2% 0.98x
Array2D 574481 573783 -0.1% 1.00x (?)
ArrayAppend 3696 3582 -3.1% 1.03x
ArrayAppendArrayOfInt 621 621 +0.0% 1.00x
ArrayAppendAscii 78392 79155 +1.0% 0.99x
ArrayAppendFromGeneric 624 625 +0.2% 1.00x (?)
ArrayAppendGenericStructs 1200 1200 +0.0% 1.00x
ArrayAppendLatin1 98525 99057 +0.5% 0.99x
ArrayAppendLazyMap 195608 195645 +0.0% 1.00x (?)
ArrayAppendOptionals 1200 1207 +0.6% 0.99x (?)
ArrayAppendRepeatCol 202011 199596 -1.2% 1.01x
ArrayAppendReserved 3365 3454 +2.6% 0.97x
ArrayAppendSequence 71870 73012 +1.6% 0.98x
ArrayAppendStrings 12852 12845 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 624 624 +0.0% 1.00x
ArrayAppendToGeneric 626 625 -0.2% 1.00x (?)
ArrayAppendUTF16 97465 98128 +0.7% 0.99x (?)
ArrayInClass 4467 4468 +0.0% 1.00x (?)
ArrayLiteral 1399 1399 +0.0% 1.00x
ArrayOfGenericRef 9071 9081 +0.1% 1.00x (?)
ArrayOfPOD 1728 1784 +3.2% 0.97x
ArrayOfRef 8289 8295 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 622 623 +0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 268725 269798 +0.4% 1.00x (?)
ArrayPlusEqualSingleElementCollection 266518 267052 +0.2% 1.00x (?)
ArrayPlusEqualThreeElements 10988 10965 -0.2% 1.00x (?)
ArraySubscript 3936 3925 -0.3% 1.00x (?)
ArrayValueProp 2849 2890 +1.4% 0.99x (?)
ArrayValueProp2 3461 3481 +0.6% 0.99x (?)
ArrayValueProp3 3221 3224 +0.1% 1.00x (?)
ArrayValueProp4 3156 3157 +0.0% 1.00x (?)
BitCount 828 832 +0.5% 1.00x
ByteSwap 255 245 -3.9% 1.04x (?)
CStringLongAscii 12179 12155 -0.2% 1.00x (?)
CStringLongNonAscii 3935 3955 +0.5% 0.99x (?)
CStringShortAscii 8359 8353 -0.1% 1.00x (?)
CaptureProp 104384 104674 +0.3% 1.00x (?)
CharacterLiteralsLarge 10120 10010 -1.1% 1.01x
CharacterLiteralsSmall 915 916 +0.1% 1.00x
Chars 6954 7015 +0.9% 0.99x
ClassArrayGetter 877 878 +0.1% 1.00x (?)
DeadArray 112675 111316 -1.2% 1.01x (?)
Dictionary 1832 1843 +0.6% 0.99x (?)
Dictionary2 3663 3622 -1.1% 1.01x
Dictionary2OfObjects 5829 5789 -0.7% 1.01x
Dictionary3 1415 1415 +0.0% 1.00x
Dictionary3OfObjects 2247 2227 -0.9% 1.01x (?)
DictionaryBridge 2898 2897 -0.0% 1.00x (?)
DictionaryLiteral 12522 12579 +0.5% 1.00x (?)
DictionaryOfObjects 4619 4634 +0.3% 1.00x (?)
DictionaryRemove 20390 20111 -1.4% 1.01x
DictionaryRemoveOfObjects 52185 52286 +0.2% 1.00x (?)
DictionarySwap 5441 5247 -3.6% 1.04x (?)
DictionarySwapOfObjects 18606 18698 +0.5% 1.00x (?)
DropFirstAnyCollection 18164 18213 +0.3% 1.00x
DropFirstAnyCollectionLazy 132569 131130 -1.1% 1.01x
DropFirstAnySeqCRangeIter 28538 28576 +0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 28319 28363 +0.2% 1.00x (?)
DropFirstAnySeqCntRange 18127 18154 +0.1% 1.00x (?)
DropFirstAnySeqCntRangeLazy 18062 18153 +0.5% 0.99x
DropFirstAnySequence 13659 13634 -0.2% 1.00x
DropFirstAnySequenceLazy 13300 13279 -0.2% 1.00x
DropFirstArray 5843 5842 -0.0% 1.00x (?)
DropFirstArrayLazy 42748 42625 -0.3% 1.00x (?)
DropFirstCountableRange 322 322 +0.0% 1.00x
DropFirstCountableRangeLazy 36791 37105 +0.9% 0.99x
DropFirstSequence 12661 12896 +1.9% 0.98x
DropFirstSequenceLazy 12475 12296 -1.4% 1.01x
DropLastAnyCollection 6063 6091 +0.5% 1.00x (?)
DropLastAnyCollectionLazy 43422 43533 +0.3% 1.00x (?)
DropLastAnySeqCRangeIter 41426 41738 +0.8% 0.99x (?)
DropLastAnySeqCRangeIterLazy 41919 41910 -0.0% 1.00x (?)
DropLastAnySeqCntRange 6035 6067 +0.5% 0.99x (?)
DropLastAnySeqCntRangeLazy 6093 6060 -0.5% 1.01x
DropLastAnySequence 27453 27481 +0.1% 1.00x (?)
DropLastAnySequenceLazy 27474 27499 +0.1% 1.00x (?)
DropLastArray 1953 1956 +0.2% 1.00x
DropLastArrayLazy 14266 14246 -0.1% 1.00x (?)
DropLastCountableRange 113 113 +0.0% 1.00x
DropLastCountableRangeLazy 12218 12061 -1.3% 1.01x (?)
DropLastSequence 27166 27349 +0.7% 0.99x (?)
DropLastSequenceLazy 27108 27181 +0.3% 1.00x (?)
DropWhileAnyCollection 23540 23599 +0.3% 1.00x
DropWhileAnyCollectionLazy 25912 25966 +0.2% 1.00x (?)
DropWhileAnySeqCRangeIter 30692 30356 -1.1% 1.01x (?)
DropWhileAnySeqCRangeIterLazy 25948 25926 -0.1% 1.00x (?)
DropWhileAnySeqCntRange 23501 23624 +0.5% 0.99x (?)
DropWhileAnySeqCntRangeLazy 25736 25870 +0.5% 0.99x
DropWhileAnySequence 15160 15177 +0.1% 1.00x (?)
DropWhileAnySequenceLazy 11758 11738 -0.2% 1.00x (?)
DropWhileArray 9235 9238 +0.0% 1.00x (?)
DropWhileArrayLazy 16299 15961 -2.1% 1.02x
DropWhileCountableRange 5798 5786 -0.2% 1.00x
DropWhileCountableRangeLazy 25026 24767 -1.0% 1.01x (?)
DropWhileSequence 14136 14116 -0.1% 1.00x (?)
DropWhileSequenceLazy 10699 10842 +1.3% 0.99x (?)
ErrorHandling 3757 3638 -3.2% 1.03x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 16871 16545 -1.9% 1.02x
HashQuadratic 47411662 45293773 -4.5% 1.05x
HashTest 17516 17377 -0.8% 1.01x
Histogram 8423 8265 -1.9% 1.02x (?)
Integrate 372 373 +0.3% 1.00x (?)
IterateData 12165 12278 +0.9% 0.99x (?)
Join 1194 1187 -0.6% 1.01x (?)
LazilyFilteredArrays 2571710 2567573 -0.2% 1.00x (?)
LazilyFilteredRange 1201955 1198407 -0.3% 1.00x (?)
LinkedList 31213 31240 +0.1% 1.00x
MapReduce 35825 35862 +0.1% 1.00x (?)
MapReduceAnyCollection 35703 35855 +0.4% 1.00x
MapReduceAnyCollectionShort 47556 47562 +0.0% 1.00x (?)
MapReduceClass 40970 40953 -0.0% 1.00x (?)
MapReduceClassShort 51752 51432 -0.6% 1.01x
MapReduceLazyCollection 30938 31109 +0.6% 0.99x
MapReduceLazyCollectionShort 42135 42126 -0.0% 1.00x (?)
MapReduceLazySequence 23875 24056 +0.8% 0.99x
MapReduceSequence 38800 39041 +0.6% 0.99x (?)
MapReduceShort 47500 47597 +0.2% 1.00x (?)
MapReduceShortString 267 261 -2.2% 1.02x (?)
MapReduceString 2469 2468 -0.0% 1.00x (?)
Memset 41513 41501 -0.0% 1.00x (?)
MonteCarloE 128240 128124 -0.1% 1.00x (?)
MonteCarloPi 49398 49435 +0.1% 1.00x (?)
NSDictionaryCastToSwift 6021 6055 +0.6% 0.99x (?)
NSError 669 666 -0.4% 1.00x (?)
NSStringConversion 1226 1245 +1.5% 0.98x
NopDeinit 51857 50069 -3.4% 1.04x
ObjectAllocation 597 596 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23961 24180 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7336 7380 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 42131 42425 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 35938 36856 +2.6% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 118820 120096 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 6968 6808 -2.3% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 101631 100872 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 94621 94654 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 63719 64443 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 6757 6731 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 80364 81601 +1.5% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 71215 71878 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSString 3800 3778 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2554 2549 -0.2% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3718 3701 -0.5% 1.00x (?)
ObjectiveCBridgeStubDateAccess 972 956 -1.6% 1.02x
ObjectiveCBridgeStubDateMutation 486 487 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromArrayOfNSString 26863 27526 +2.5% 0.98x (?)
ObjectiveCBridgeStubFromNSString 901 910 +1.0% 0.99x (?)
ObjectiveCBridgeStubFromNSStringRef 197 199 +1.0% 0.99x
ObjectiveCBridgeStubNSDataAppend 2505 2502 -0.1% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 14008 14390 +2.7% 0.97x (?)
ObjectiveCBridgeStubNSDateRefAccess 1142 1147 +0.4% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 27395 27462 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14149 14327 +1.3% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3219 3172 -1.5% 1.01x (?)
ObjectiveCBridgeStubToNSString 1483 1483 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 141 141 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 215345 213515 -0.8% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 221149 220192 -0.4% 1.00x (?)
ObjectiveCBridgeToNSArray 27244 27470 +0.8% 0.99x (?)
ObjectiveCBridgeToNSDictionary 58091 58549 +0.8% 0.99x (?)
ObjectiveCBridgeToNSSet 37249 38234 +2.6% 0.97x (?)
ObjectiveCBridgeToNSString 1231 1235 +0.3% 1.00x
ObserverClosure 6292 6347 +0.9% 0.99x (?)
ObserverForwarderStruct 4453 4425 -0.6% 1.01x
ObserverPartiallyAppliedMethod 7678 7666 -0.2% 1.00x (?)
ObserverUnappliedMethod 7994 8016 +0.3% 1.00x (?)
OpenClose 389 387 -0.5% 1.01x
PolymorphicCalls 2744 2763 +0.7% 0.99x (?)
PopFrontArray 9311 9161 -1.6% 1.02x (?)
PopFrontArrayGeneric 8306 8178 -1.5% 1.02x
PopFrontUnsafePointer 91704 91895 +0.2% 1.00x
PrefixAnyCollection 18138 18156 +0.1% 1.00x (?)
PrefixAnyCollectionLazy 130267 130786 +0.4% 1.00x (?)
PrefixAnySeqCRangeIter 22731 23066 +1.5% 0.99x
PrefixAnySeqCRangeIterLazy 23065 22636 -1.9% 1.02x (?)
PrefixAnySeqCntRange 18148 18158 +0.1% 1.00x (?)
PrefixAnySeqCntRangeLazy 18069 18172 +0.6% 0.99x (?)
PrefixAnySequence 11480 11242 -2.1% 1.02x
PrefixAnySequenceLazy 11374 11474 +0.9% 0.99x
PrefixArray 5840 5841 +0.0% 1.00x (?)
PrefixArrayLazy 43032 42732 -0.7% 1.01x (?)
PrefixCountableRange 319 322 +0.9% 0.99x
PrefixCountableRangeLazy 36744 36447 -0.8% 1.01x (?)
PrefixSequence 10080 10023 -0.6% 1.01x
PrefixSequenceLazy 10508 10407 -1.0% 1.01x (?)
PrefixWhileAnyCollection 34411 34519 +0.3% 1.00x (?)
PrefixWhileAnyCollectionLazy 21869 21349 -2.4% 1.02x
PrefixWhileAnySeqCRangeIter 38349 38589 +0.6% 0.99x (?)
PrefixWhileAnySeqCRangeIterLazy 21271 21287 +0.1% 1.00x (?)
PrefixWhileAnySeqCntRange 34482 34577 +0.3% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 21873 21169 -3.2% 1.03x
PrefixWhileAnySequence 28042 27974 -0.2% 1.00x (?)
PrefixWhileAnySequenceLazy 10713 10659 -0.5% 1.01x (?)
PrefixWhileArray 15897 15902 +0.0% 1.00x (?)
PrefixWhileArrayLazy 14347 14155 -1.3% 1.01x
PrefixWhileCountableRange 16646 16606 -0.2% 1.00x (?)
PrefixWhileCountableRangeLazy 21285 20794 -2.3% 1.02x (?)
PrefixWhileSequence 26855 26841 -0.1% 1.00x (?)
PrefixWhileSequenceLazy 10175 9997 -1.7% 1.02x
Prims 8470 8447 -0.3% 1.00x (?)
ProtocolDispatch 6553 6540 -0.2% 1.00x
ProtocolDispatch2 462 462 +0.0% 1.00x
RC4 18460 18425 -0.2% 1.00x (?)
RGBHistogram 32132 32165 +0.1% 1.00x (?)
RGBHistogramOfObjects 93119 92912 -0.2% 1.00x (?)
RangeAssignment 5435 5345 -1.7% 1.02x
RecursiveOwnedParameter 9023 9131 +1.2% 0.99x
ReversedArray 558 557 -0.2% 1.00x (?)
ReversedBidirectional 72689 70708 -2.7% 1.03x (?)
ReversedDictionary 24575 24747 +0.7% 0.99x
SetExclusiveOr 20195 20156 -0.2% 1.00x (?)
SetExclusiveOr_OfObjects 38952 39041 +0.2% 1.00x (?)
SetIntersect 10323 10381 +0.6% 0.99x
SetIntersect_OfObjects 10901 10752 -1.4% 1.01x
SetIsSubsetOf 1543 1538 -0.3% 1.00x (?)
SetIsSubsetOf_OfObjects 1438 1446 +0.6% 0.99x
SetUnion 11470 11295 -1.5% 1.02x
SetUnion_OfObjects 28123 28086 -0.1% 1.00x (?)
SevenBoom 1522 1523 +0.1% 1.00x (?)
Sim2DArray 28333 28339 +0.0% 1.00x (?)
SortLargeExistentials 16684 16801 +0.7% 0.99x
SortLettersInPlace 2703 2692 -0.4% 1.00x (?)
SortSortedStrings 1318 1321 +0.2% 1.00x (?)
SortStrings 2282 2307 +1.1% 0.99x
SortStringsUnicode 8427 8378 -0.6% 1.01x (?)
StackPromo 96815 95209 -1.7% 1.02x (?)
StaticArray 4441 4292 -3.4% 1.03x
StrComplexWalk 5651 5652 +0.0% 1.00x (?)
StrToInt 7644 7657 +0.2% 1.00x (?)
StringBuilder 2707 2688 -0.7% 1.01x (?)
StringBuilderLong 1041 1059 +1.7% 0.98x (?)
StringEdits 646171 640837 -0.8% 1.01x (?)
StringEqualPointerComparison 9175 9009 -1.8% 1.02x
StringHasPrefix 1725 1654 -4.1% 1.04x
StringHasPrefixUnicode 15660 15259 -2.6% 1.03x
StringHasSuffix 1737 1717 -1.2% 1.01x
StringHasSuffixUnicode 60309 60052 -0.4% 1.00x (?)
StringInterpolation 11725 11559 -1.4% 1.01x (?)
StringMatch 36990 37119 +0.3% 1.00x
StringUTF16Builder 3512 3459 -1.5% 1.02x (?)
StringWithCString 316198 316153 -0.0% 1.00x (?)
SuffixAnyCollection 6070 6092 +0.4% 1.00x
SuffixAnyCollectionLazy 43608 43769 +0.4% 1.00x (?)
SuffixAnySeqCRangeIter 39250 39157 -0.2% 1.00x
SuffixAnySeqCRangeIterLazy 39361 39258 -0.3% 1.00x (?)
SuffixAnySeqCntRange 6034 6088 +0.9% 0.99x (?)
SuffixAnySeqCntRangeLazy 6072 6075 +0.0% 1.00x (?)
SuffixAnySequence 25302 25336 +0.1% 1.00x (?)
SuffixAnySequenceLazy 25308 25330 +0.1% 1.00x (?)
SuffixArray 1955 1956 +0.1% 1.00x (?)
SuffixArrayLazy 14281 14287 +0.0% 1.00x (?)
SuffixCountableRange 113 113 +0.0% 1.00x
SuffixCountableRangeLazy 12154 11991 -1.3% 1.01x (?)
SuffixSequence 24919 24924 +0.0% 1.00x (?)
SuffixSequenceLazy 24956 25041 +0.3% 1.00x (?)
SuperChars 293134 297395 +1.5% 0.99x (?)
TwoSum 4153 4165 +0.3% 1.00x (?)
TypeFlood 160 155 -3.1% 1.03x (?)
UTF8Decode 35380 35143 -0.7% 1.01x
Walsh 11231 11394 +1.5% 0.99x
XorLoop 22367 22366 -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

@airspeedswift
Copy link
Member Author

I think these benchmarks are OK to merge. Worth noting that they are small regressions on top of big speed increases recently e.g. #9119 sped up the StaticArray benchmark from >100 to 17, so a 15% regression isn't really material.

@airspeedswift airspeedswift merged commit 43211b6 into swiftlang:master May 1, 2017
@airspeedswift airspeedswift deleted the sort-degyb branch May 1, 2017 01:11
@airspeedswift airspeedswift mentioned this pull request May 21, 2017
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.

3 participants