Skip to content

[stdlib] Test if two ascii string pointers are equal before memcmp #10018

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

Merged

Conversation

airspeedswift
Copy link
Member

Initially just an experiment to see if it impacts our benchmarks.

@airspeedswift airspeedswift force-pushed the string-pointer-compare branch 3 times, most recently from e233d00 to b1a8d59 Compare June 1, 2017 00:32
@airspeedswift airspeedswift force-pushed the string-pointer-compare branch from b1a8d59 to 47942b0 Compare June 1, 2017 00:50
@airspeedswift
Copy link
Member Author

@swift-ci please test

@airspeedswift
Copy link
Member Author

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Jun 1, 2017

Build comment file:

Optimized (O)

Regression (4)
TEST OLD NEW DELTA SPEEDUP
Calculator 31 36 +16.1% 0.86x
ObjectiveCBridgeStubNSDateRefAccess 317 345 +8.8% 0.92x
IterateData 708 758 +7.1% 0.93x
ObjectiveCBridgeStubFromNSString 871 923 +6.0% 0.94x (?)
Improvement (4)
TEST OLD NEW DELTA SPEEDUP
StringEqualPointerComparison 7329 333 -95.5% 22.01x
ProtocolDispatch 2727 2424 -11.1% 1.12x
Phonebook 6725 6164 -8.3% 1.09x
ObjectiveCBridgeStubToNSStringRef 114 108 -5.3% 1.06x
No Changes (270)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2937 2928 -0.3% 1.00x (?)
AnyHashableWithAClass 67504 67461 -0.1% 1.00x (?)
Array2D 2017 2006 -0.5% 1.01x (?)
ArrayAppend 770 770 +0.0% 1.00x
ArrayAppendArrayOfInt 596 596 +0.0% 1.00x
ArrayAppendAscii 22993 22249 -3.2% 1.03x
ArrayAppendFromGeneric 596 596 +0.0% 1.00x
ArrayAppendGenericStructs 1226 1218 -0.7% 1.01x (?)
ArrayAppendLatin1 43092 43322 +0.5% 0.99x
ArrayAppendLazyMap 933 933 +0.0% 1.00x
ArrayAppendOptionals 1225 1221 -0.3% 1.00x (?)
ArrayAppendRepeatCol 837 837 +0.0% 1.00x
ArrayAppendReserved 533 533 +0.0% 1.00x
ArrayAppendSequence 945 944 -0.1% 1.00x (?)
ArrayAppendStrings 13606 13579 -0.2% 1.00x (?)
ArrayAppendToFromGeneric 597 596 -0.2% 1.00x (?)
ArrayAppendToGeneric 596 596 +0.0% 1.00x
ArrayAppendUTF16 41491 41837 +0.8% 0.99x (?)
ArrayInClass 61 61 +0.0% 1.00x
ArrayLiteral 1216 1215 -0.1% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 3989 3991 +0.1% 1.00x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3902 3886 -0.4% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4661 4647 -0.3% 1.00x (?)
ArrayPlusEqualSingleElementCollection 770 770 +0.0% 1.00x
ArrayPlusEqualThreeElements 1590 1591 +0.1% 1.00x (?)
ArraySubscript 1473 1472 -0.1% 1.00x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
BitCount 12 12 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 5256 5256 +0.0% 1.00x
CStringLongNonAscii 2340 2330 -0.4% 1.00x (?)
CStringShortAscii 5746 5753 +0.1% 1.00x (?)
CaptureProp 4552 4568 +0.4% 1.00x
CharacterLiteralsLarge 8940 8967 +0.3% 1.00x (?)
CharacterLiteralsSmall 310 310 +0.0% 1.00x
Chars 1868 1861 -0.4% 1.00x
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 182 186 +2.2% 0.98x (?)
Dictionary 576 558 -3.1% 1.03x
Dictionary2 1807 1820 +0.7% 0.99x (?)
Dictionary2OfObjects 3344 3349 +0.1% 1.00x (?)
Dictionary3 460 442 -3.9% 1.04x (?)
Dictionary3OfObjects 902 885 -1.9% 1.02x
DictionaryBridge 2625 2622 -0.1% 1.00x (?)
DictionaryLiteral 1474 1468 -0.4% 1.00x (?)
DictionaryOfObjects 2342 2317 -1.1% 1.01x (?)
DictionaryRemove 2423 2413 -0.4% 1.00x (?)
DictionaryRemoveOfObjects 23516 23653 +0.6% 0.99x (?)
DictionarySwap 429 429 +0.0% 1.00x
DictionarySwapOfObjects 6922 6937 +0.2% 1.00x (?)
DropFirstAnyCollection 56 56 +0.0% 1.00x
DropFirstAnyCollectionLazy 44837 45018 +0.4% 1.00x (?)
DropFirstAnySeqCRangeIter 26934 26902 -0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 26789 26818 +0.1% 1.00x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 5830 5838 +0.1% 1.00x (?)
DropFirstAnySequenceLazy 5820 5854 +0.6% 0.99x (?)
DropFirstArray 25 25 +0.0% 1.00x
DropFirstArrayLazy 24 24 +0.0% 1.00x
DropFirstCountableRange 32 32 +0.0% 1.00x
DropFirstCountableRangeLazy 32 32 +0.0% 1.00x
DropFirstSequence 2093 2093 +0.0% 1.00x
DropFirstSequenceLazy 2115 2115 +0.0% 1.00x
DropLastAnyCollection 22 22 +0.0% 1.00x
DropLastAnyCollectionLazy 14992 15038 +0.3% 1.00x (?)
DropLastAnySeqCRangeIter 4600 4602 +0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 4600 4602 +0.0% 1.00x (?)
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6809 6824 +0.2% 1.00x (?)
DropLastAnySequenceLazy 6549 6536 -0.2% 1.00x (?)
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 572 579 +1.2% 0.99x (?)
DropLastSequenceLazy 572 579 +1.2% 0.99x (?)
DropWhileAnyCollection 69 69 +0.0% 1.00x
DropWhileAnyCollectionLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCRangeIter 21524 21790 +1.2% 0.99x (?)
DropWhileAnySeqCRangeIterLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCntRange 64 64 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 103 103 +0.0% 1.00x
DropWhileAnySequence 6699 6698 -0.0% 1.00x (?)
DropWhileAnySequenceLazy 2032 2032 +0.0% 1.00x
DropWhileArray 37 37 +0.0% 1.00x
DropWhileArrayLazy 78 78 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 68 68 +0.0% 1.00x
DropWhileSequence 1548 1547 -0.1% 1.00x (?)
DropWhileSequenceLazy 65 65 +0.0% 1.00x
EqualStringSubstring 11695 11721 +0.2% 1.00x (?)
EqualSubstringString 11696 11693 -0.0% 1.00x (?)
EqualSubstringSubstring 22963 22847 -0.5% 1.01x (?)
EqualSubstringSubstringGenericEquatable 23057 22869 -0.8% 1.01x (?)
ErrorHandling 2966 3074 +3.6% 0.96x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3294 3436 +4.3% 0.96x
HashTest 1699 1707 +0.5% 1.00x (?)
Histogram 299 299 +0.0% 1.00x
Integrate 263 263 +0.0% 1.00x
Join 448 452 +0.9% 0.99x (?)
LazilyFilteredArrays 64738 64622 -0.2% 1.00x (?)
LazilyFilteredRange 3887 3884 -0.1% 1.00x (?)
LessSubstringSubstring 22991 22978 -0.1% 1.00x (?)
LessSubstringSubstringGenericComparable 22989 23078 +0.4% 1.00x (?)
LinkedList 7102 7101 -0.0% 1.00x (?)
MapReduce 304 305 +0.3% 1.00x (?)
MapReduceAnyCollection 331 332 +0.3% 1.00x (?)
MapReduceAnyCollectionShort 2022 2019 -0.1% 1.00x (?)
MapReduceClass 3068 3054 -0.5% 1.00x (?)
MapReduceClassShort 4526 4502 -0.5% 1.01x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 44 44 +0.0% 1.00x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 450 450 +0.0% 1.00x
MapReduceShort 1936 1931 -0.3% 1.00x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 113 113 +0.0% 1.00x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10295 10217 -0.8% 1.01x
MonteCarloPi 43997 44039 +0.1% 1.00x
NSDictionaryCastToSwift 5423 5457 +0.6% 0.99x (?)
NSError 289 290 +0.3% 1.00x (?)
NSStringConversion 733 759 +3.5% 0.97x (?)
NopDeinit 27440 27436 -0.0% 1.00x (?)
ObjectAllocation 181 181 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 23838 23421 -1.7% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4487 4522 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43570 43578 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37874 38052 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 118765 118623 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5162 5139 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 97820 95715 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 89233 89214 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 64375 64386 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4217 4225 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 71675 71562 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 62239 62204 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSString 1416 1415 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2354 2365 +0.5% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3704 3689 -0.4% 1.00x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 29173 29027 -0.5% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 3519 3638 +3.4% 0.97x
ObjectiveCBridgeStubFromNSDateRef 3610 3638 +0.8% 0.99x
ObjectiveCBridgeStubFromNSStringRef 179 176 -1.7% 1.02x (?)
ObjectiveCBridgeStubNSDataAppend 2259 2267 +0.4% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 12031 12097 +0.5% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 28711 28543 -0.6% 1.01x (?)
ObjectiveCBridgeStubToNSDate 14488 14389 -0.7% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3324 3416 +2.8% 0.97x (?)
ObjectiveCBridgeStubToNSString 1503 1517 +0.9% 0.99x (?)
ObjectiveCBridgeStubURLAppendPath 219445 220823 +0.6% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 216325 222400 +2.8% 0.97x (?)
ObjectiveCBridgeToNSArray 29059 28979 -0.3% 1.00x (?)
ObjectiveCBridgeToNSDictionary 44742 44802 +0.1% 1.00x (?)
ObjectiveCBridgeToNSSet 38716 38995 +0.7% 0.99x (?)
ObjectiveCBridgeToNSString 1267 1270 +0.2% 1.00x (?)
ObserverClosure 2281 2277 -0.2% 1.00x (?)
ObserverForwarderStruct 1127 1123 -0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 3820 3809 -0.3% 1.00x (?)
ObserverUnappliedMethod 2639 2640 +0.0% 1.00x (?)
OpenClose 51 52 +2.0% 0.98x
PolymorphicCalls 22 21 -4.5% 1.05x
PopFrontArray 1106 1098 -0.7% 1.01x
PopFrontArrayGeneric 1105 1096 -0.8% 1.01x (?)
PopFrontUnsafePointer 8969 8962 -0.1% 1.00x (?)
PrefixAnyCollection 56 56 +0.0% 1.00x
PrefixAnyCollectionLazy 45077 45095 +0.0% 1.00x (?)
PrefixAnySeqCRangeIter 21127 21082 -0.2% 1.00x (?)
PrefixAnySeqCRangeIterLazy 21102 21072 -0.1% 1.00x (?)
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 5130 5176 +0.9% 0.99x (?)
PrefixAnySequenceLazy 5189 5172 -0.3% 1.00x (?)
PrefixArray 24 25 +4.2% 0.96x
PrefixArrayLazy 24 24 +0.0% 1.00x
PrefixCountableRange 32 32 +0.0% 1.00x
PrefixCountableRangeLazy 32 32 +0.0% 1.00x
PrefixSequence 1573 1571 -0.1% 1.00x
PrefixSequenceLazy 1515 1515 +0.0% 1.00x
PrefixWhileAnyCollection 96 96 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12461 12481 +0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCntRange 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 75 75 +0.0% 1.00x
PrefixWhileAnySequence 13955 14002 +0.3% 1.00x (?)
PrefixWhileAnySequenceLazy 1492 1492 +0.0% 1.00x
PrefixWhileArray 62 62 +0.0% 1.00x
PrefixWhileArrayLazy 49 49 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 32 32 +0.0% 1.00x
PrefixWhileSequence 312 312 +0.0% 1.00x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 768 765 -0.4% 1.00x (?)
ProtocolDispatch2 161 161 +0.0% 1.00x
RC4 159 159 +0.0% 1.00x
RGBHistogram 2352 2337 -0.6% 1.01x (?)
RGBHistogramOfObjects 24034 24023 -0.0% 1.00x (?)
RangeAssignment 304 295 -3.0% 1.03x (?)
RecursiveOwnedParameter 2326 2321 -0.2% 1.00x (?)
ReversedArray 49 49 +0.0% 1.00x
ReversedBidirectional 28984 29003 +0.1% 1.00x (?)
ReversedDictionary 116 115 -0.9% 1.01x (?)
SetExclusiveOr 3100 3082 -0.6% 1.01x (?)
SetExclusiveOr_OfObjects 9581 9546 -0.4% 1.00x (?)
SetIntersect 281 272 -3.2% 1.03x
SetIntersect_OfObjects 1719 1721 +0.1% 1.00x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2796 2836 +1.4% 0.99x (?)
SetUnion_OfObjects 8139 8084 -0.7% 1.01x (?)
SevenBoom 1463 1458 -0.3% 1.00x (?)
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 7950 7872 -1.0% 1.01x
SortLettersInPlace 1149 1147 -0.2% 1.00x (?)
SortSortedStrings 823 863 +4.9% 0.95x
SortStrings 1620 1650 +1.9% 0.98x
SortStringsUnicode 7791 7706 -1.1% 1.01x
StackPromo 22420 22448 +0.1% 1.00x (?)
StaticArray 18 18 +0.0% 1.00x
StrComplexWalk 719 719 +0.0% 1.00x
StrToInt 2330 2331 +0.0% 1.00x (?)
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1356 1355 -0.1% 1.00x (?)
StringBuilderLong 912 918 +0.7% 0.99x (?)
StringEdits 113013 113410 +0.4% 1.00x (?)
StringFromLongWholeSubstring 11899 11927 +0.2% 1.00x (?)
StringFromLongWholeSubstringGeneric 32 32 +0.0% 1.00x
StringHasPrefix 16 16 +0.0% 1.00x
StringHasPrefixUnicode 14907 14555 -2.4% 1.02x
StringHasSuffix 16 16 +0.0% 1.00x
StringHasSuffixUnicode 61914 62232 +0.5% 0.99x (?)
StringInterpolation 10757 10990 +2.2% 0.98x (?)
StringMatch 7073 7300 +3.2% 0.97x (?)
StringUTF16Builder 2127 2111 -0.8% 1.01x (?)
StringWalk 1291 1269 -1.7% 1.02x
StringWithCString 136374 136194 -0.1% 1.00x (?)
SubstringFromLongString 97 98 +1.0% 0.99x (?)
SubstringFromLongStringGeneric 175 177 +1.1% 0.99x (?)
SuffixAnyCollection 22 22 +0.0% 1.00x
SuffixAnyCollectionLazy 14958 14925 -0.2% 1.00x (?)
SuffixAnySeqCRangeIter 4928 4929 +0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4928 4928 +0.0% 1.00x
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6658 6661 +0.0% 1.00x (?)
SuffixAnySequenceLazy 6612 6568 -0.7% 1.01x (?)
SuffixArray 8 8 +0.0% 1.00x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 4480 4444 -0.8% 1.01x
SuffixSequenceLazy 4478 4442 -0.8% 1.01x
SuperChars 103071 103299 +0.2% 1.00x (?)
TwoSum 966 970 +0.4% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 254 257 +1.2% 0.99x
Walsh 355 353 -0.6% 1.01x
XorLoop 347 347 +0.0% 1.00x

Unoptimized (Onone)

Regression (2)
TEST OLD NEW DELTA SPEEDUP
PrefixWhileAnySequenceLazy 11653 12555 +7.7% 0.93x
ArrayOfGenericPOD 3068 3244 +5.7% 0.95x
Improvement (3)
TEST OLD NEW DELTA SPEEDUP
StringEqualPointerComparison 9510 2430 -74.4% 3.91x
ArrayInClass 4940 4627 -6.3% 1.07x
BitCount 168 159 -5.4% 1.06x
No Changes (273)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4925 4921 -0.1% 1.00x (?)
AnyHashableWithAClass 84427 84445 +0.0% 1.00x (?)
Array2D 608569 608070 -0.1% 1.00x (?)
ArrayAppend 3792 3724 -1.8% 1.02x
ArrayAppendArrayOfInt 651 650 -0.2% 1.00x (?)
ArrayAppendAscii 59873 60851 +1.6% 0.98x (?)
ArrayAppendFromGeneric 652 653 +0.2% 1.00x (?)
ArrayAppendGenericStructs 1298 1296 -0.2% 1.00x (?)
ArrayAppendLatin1 82662 83885 +1.5% 0.99x (?)
ArrayAppendLazyMap 215004 211420 -1.7% 1.02x
ArrayAppendOptionals 1305 1289 -1.2% 1.01x (?)
ArrayAppendRepeatCol 212524 214756 +1.1% 0.99x
ArrayAppendReserved 3439 3421 -0.5% 1.01x
ArrayAppendSequence 76674 74412 -3.0% 1.03x
ArrayAppendStrings 13702 13729 +0.2% 1.00x (?)
ArrayAppendToFromGeneric 652 653 +0.2% 1.00x (?)
ArrayAppendToGeneric 653 653 +0.0% 1.00x
ArrayAppendUTF16 81880 82051 +0.2% 1.00x (?)
ArrayLiteral 1798 1777 -1.2% 1.01x (?)
ArrayOfGenericRef 9574 9581 +0.1% 1.00x (?)
ArrayOfPOD 1873 1901 +1.5% 0.99x
ArrayOfRef 8802 8757 -0.5% 1.01x (?)
ArrayPlusEqualArrayOfInt 650 650 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 294976 296951 +0.7% 0.99x (?)
ArrayPlusEqualSingleElementCollection 295785 292301 -1.2% 1.01x (?)
ArrayPlusEqualThreeElements 10604 10595 -0.1% 1.00x (?)
ArraySubscript 4148 4146 -0.0% 1.00x (?)
ArrayValueProp 3547 3531 -0.5% 1.00x (?)
ArrayValueProp2 18362 18408 +0.3% 1.00x (?)
ArrayValueProp3 3904 3920 +0.4% 1.00x (?)
ArrayValueProp4 3853 3828 -0.6% 1.01x
ByteSwap 27 26 -3.7% 1.04x
CStringLongAscii 5362 5326 -0.7% 1.01x (?)
CStringLongNonAscii 2434 2421 -0.5% 1.01x (?)
CStringShortAscii 9510 9470 -0.4% 1.00x (?)
Calculator 1152 1155 +0.3% 1.00x
CaptureProp 107048 107862 +0.8% 0.99x
CharacterLiteralsLarge 10355 10193 -1.6% 1.02x
CharacterLiteralsSmall 1007 1006 -0.1% 1.00x
Chars 53058 51435 -3.1% 1.03x (?)
ClassArrayGetter 930 930 +0.0% 1.00x
DeadArray 121199 120836 -0.3% 1.00x (?)
Dictionary 3017 3023 +0.2% 1.00x (?)
Dictionary2 3494 3491 -0.1% 1.00x (?)
Dictionary2OfObjects 5828 5837 +0.2% 1.00x (?)
Dictionary3 1319 1311 -0.6% 1.01x (?)
Dictionary3OfObjects 2210 2193 -0.8% 1.01x (?)
DictionaryBridge 2703 2751 +1.8% 0.98x (?)
DictionaryLiteral 8201 8237 +0.4% 1.00x (?)
DictionaryOfObjects 5973 5929 -0.7% 1.01x (?)
DictionaryRemove 21325 21299 -0.1% 1.00x (?)
DictionaryRemoveOfObjects 55240 55216 -0.0% 1.00x (?)
DictionarySwap 5527 5512 -0.3% 1.00x (?)
DictionarySwapOfObjects 19758 19745 -0.1% 1.00x (?)
DropFirstAnyCollection 19226 19370 +0.7% 0.99x
DropFirstAnyCollectionLazy 135790 135386 -0.3% 1.00x (?)
DropFirstAnySeqCRangeIter 29436 29474 +0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 29149 29433 +1.0% 0.99x
DropFirstAnySeqCntRange 19151 19308 +0.8% 0.99x (?)
DropFirstAnySeqCntRangeLazy 19339 19260 -0.4% 1.00x
DropFirstAnySequence 13270 13189 -0.6% 1.01x
DropFirstAnySequenceLazy 12978 13015 +0.3% 1.00x
DropFirstArray 6187 6190 +0.0% 1.00x (?)
DropFirstArrayLazy 45172 45414 +0.5% 0.99x
DropFirstCountableRange 336 337 +0.3% 1.00x (?)
DropFirstCountableRangeLazy 39413 38907 -1.3% 1.01x (?)
DropFirstSequence 11835 11852 +0.1% 1.00x (?)
DropFirstSequenceLazy 11857 11897 +0.3% 1.00x
DropLastAnyCollection 6455 6480 +0.4% 1.00x (?)
DropLastAnyCollectionLazy 45455 45863 +0.9% 0.99x (?)
DropLastAnySeqCRangeIter 44652 44655 +0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 44190 44256 +0.1% 1.00x (?)
DropLastAnySeqCntRange 6383 6424 +0.6% 0.99x
DropLastAnySeqCntRangeLazy 6459 6436 -0.4% 1.00x (?)
DropLastAnySequence 28949 29060 +0.4% 1.00x (?)
DropLastAnySequenceLazy 29089 29098 +0.0% 1.00x (?)
DropLastArray 2070 2071 +0.0% 1.00x
DropLastArrayLazy 15086 15154 +0.5% 1.00x (?)
DropLastCountableRange 118 118 +0.0% 1.00x
DropLastCountableRangeLazy 13183 13027 -1.2% 1.01x (?)
DropLastSequence 28638 28541 -0.3% 1.00x
DropLastSequenceLazy 28743 28950 +0.7% 0.99x
DropWhileAnyCollection 25347 25371 +0.1% 1.00x (?)
DropWhileAnyCollectionLazy 27604 27582 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIter 31286 31114 -0.5% 1.01x
DropWhileAnySeqCRangeIterLazy 27879 27722 -0.6% 1.01x
DropWhileAnySeqCntRange 25022 25193 +0.7% 0.99x (?)
DropWhileAnySeqCntRangeLazy 27401 27366 -0.1% 1.00x
DropWhileAnySequence 15450 15418 -0.2% 1.00x
DropWhileAnySequenceLazy 12617 12461 -1.2% 1.01x
DropWhileArray 10281 10637 +3.5% 0.97x (?)
DropWhileArrayLazy 17326 17320 -0.0% 1.00x (?)
DropWhileCountableRange 6227 6209 -0.3% 1.00x (?)
DropWhileCountableRangeLazy 26254 26522 +1.0% 0.99x (?)
DropWhileSequence 14282 14286 +0.0% 1.00x (?)
DropWhileSequenceLazy 11355 11164 -1.7% 1.02x
EqualStringSubstring 11736 11730 -0.1% 1.00x (?)
EqualSubstringString 11794 11824 +0.3% 1.00x (?)
EqualSubstringSubstring 22857 22906 +0.2% 1.00x (?)
EqualSubstringSubstringGenericEquatable 22855 22903 +0.2% 1.00x (?)
ErrorHandling 6962 6918 -0.6% 1.01x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17393 17525 +0.8% 0.99x
HashTest 14930 14935 +0.0% 1.00x (?)
Histogram 8748 8734 -0.2% 1.00x (?)
Integrate 395 395 +0.0% 1.00x
IterateData 12817 12835 +0.1% 1.00x
Join 1270 1260 -0.8% 1.01x
LazilyFilteredArrays 1700392 1702930 +0.1% 1.00x (?)
LazilyFilteredRange 673514 673848 +0.0% 1.00x (?)
LessSubstringSubstring 22854 22845 -0.0% 1.00x (?)
LessSubstringSubstringGenericComparable 22897 22916 +0.1% 1.00x (?)
LinkedList 33297 33288 -0.0% 1.00x (?)
MapReduce 38279 38324 +0.1% 1.00x
MapReduceAnyCollection 38831 38756 -0.2% 1.00x (?)
MapReduceAnyCollectionShort 50576 50632 +0.1% 1.00x (?)
MapReduceClass 43177 43138 -0.1% 1.00x
MapReduceClassShort 54621 54546 -0.1% 1.00x (?)
MapReduceLazyCollection 34073 34049 -0.1% 1.00x (?)
MapReduceLazyCollectionShort 45173 45302 +0.3% 1.00x (?)
MapReduceLazySequence 25778 25783 +0.0% 1.00x (?)
MapReduceSequence 41229 41220 -0.0% 1.00x (?)
MapReduceShort 50089 50269 +0.4% 1.00x (?)
MapReduceShortString 277 276 -0.4% 1.00x (?)
MapReduceString 2566 2559 -0.3% 1.00x (?)
Memset 43995 44020 +0.1% 1.00x
MonteCarloE 133152 133505 +0.3% 1.00x (?)
MonteCarloPi 52532 52399 -0.3% 1.00x
NSDictionaryCastToSwift 6582 6676 +1.4% 0.99x (?)
NSError 713 727 +2.0% 0.98x (?)
NSStringConversion 1343 1350 +0.5% 0.99x
NopDeinit 50322 50290 -0.1% 1.00x
ObjectAllocation 1362 1364 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 25757 25709 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7899 7908 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44988 45306 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 39051 38773 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 121966 122568 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7625 7743 +1.5% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 103542 102049 -1.4% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 91555 91814 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 67914 67285 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7039 7018 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76330 76035 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 66060 66147 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSString 4000 4021 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2744 2772 +1.0% 0.99x (?)
ObjectiveCBridgeStubDataAppend 3815 3802 -0.3% 1.00x (?)
ObjectiveCBridgeStubDateAccess 1061 1053 -0.8% 1.01x
ObjectiveCBridgeStubDateMutation 485 486 +0.2% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28904 29340 +1.5% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 3948 4061 +2.9% 0.97x
ObjectiveCBridgeStubFromNSDateRef 4031 4135 +2.6% 0.97x (?)
ObjectiveCBridgeStubFromNSString 926 965 +4.2% 0.96x
ObjectiveCBridgeStubFromNSStringRef 207 207 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2606 2663 +2.2% 0.98x (?)
ObjectiveCBridgeStubNSDateMutationRef 14874 15585 +4.8% 0.95x (?)
ObjectiveCBridgeStubNSDateRefAccess 1216 1209 -0.6% 1.01x
ObjectiveCBridgeStubToArrayOfNSString 28931 28796 -0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15263 14766 -3.3% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3413 3352 -1.8% 1.02x (?)
ObjectiveCBridgeStubToNSString 1566 1567 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 153 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 227279 227895 +0.3% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 225705 222718 -1.3% 1.01x (?)
ObjectiveCBridgeToNSArray 29205 29219 +0.0% 1.00x (?)
ObjectiveCBridgeToNSDictionary 45566 45948 +0.8% 0.99x (?)
ObjectiveCBridgeToNSSet 39812 40117 +0.8% 0.99x (?)
ObjectiveCBridgeToNSString 1312 1311 -0.1% 1.00x (?)
ObserverClosure 6676 6677 +0.0% 1.00x (?)
ObserverForwarderStruct 4678 4677 -0.0% 1.00x (?)
ObserverPartiallyAppliedMethod 8082 8098 +0.2% 1.00x (?)
ObserverUnappliedMethod 8411 8416 +0.1% 1.00x (?)
OpenClose 402 395 -1.7% 1.02x
Phonebook 22201 21714 -2.2% 1.02x
PolymorphicCalls 2867 2876 +0.3% 1.00x
PopFrontArray 7496 7519 +0.3% 1.00x
PopFrontArrayGeneric 6425 6424 -0.0% 1.00x (?)
PopFrontUnsafePointer 97116 97083 -0.0% 1.00x (?)
PrefixAnyCollection 19236 19299 +0.3% 1.00x
PrefixAnyCollectionLazy 136077 135789 -0.2% 1.00x (?)
PrefixAnySeqCRangeIter 23360 23483 +0.5% 0.99x (?)
PrefixAnySeqCRangeIterLazy 23468 23446 -0.1% 1.00x (?)
PrefixAnySeqCntRange 19166 19276 +0.6% 0.99x
PrefixAnySeqCntRangeLazy 19315 19273 -0.2% 1.00x (?)
PrefixAnySequence 11529 11452 -0.7% 1.01x
PrefixAnySequenceLazy 10824 10841 +0.2% 1.00x (?)
PrefixArray 6188 6192 +0.1% 1.00x (?)
PrefixArrayLazy 45167 45445 +0.6% 0.99x
PrefixCountableRange 339 339 +0.0% 1.00x
PrefixCountableRangeLazy 39421 38934 -1.2% 1.01x (?)
PrefixSequence 9773 9762 -0.1% 1.00x (?)
PrefixSequenceLazy 9819 9802 -0.2% 1.00x (?)
PrefixWhileAnyCollection 36755 36817 +0.2% 1.00x (?)
PrefixWhileAnyCollectionLazy 22773 22942 +0.7% 0.99x
PrefixWhileAnySeqCRangeIter 41134 41048 -0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 22974 22385 -2.6% 1.03x
PrefixWhileAnySeqCntRange 36525 36466 -0.2% 1.00x
PrefixWhileAnySeqCntRangeLazy 22614 22750 +0.6% 0.99x (?)
PrefixWhileAnySequence 29583 29552 -0.1% 1.00x (?)
PrefixWhileArray 16894 17734 +5.0% 0.95x
PrefixWhileArrayLazy 14943 15009 +0.4% 1.00x
PrefixWhileCountableRange 17892 17910 +0.1% 1.00x (?)
PrefixWhileCountableRangeLazy 21795 21923 +0.6% 0.99x (?)
PrefixWhileSequence 28441 28453 +0.0% 1.00x (?)
PrefixWhileSequenceLazy 10583 10721 +1.3% 0.99x (?)
Prims 9544 9535 -0.1% 1.00x (?)
ProtocolDispatch 6972 6986 +0.2% 1.00x
ProtocolDispatch2 493 492 -0.2% 1.00x
RC4 19140 18831 -1.6% 1.02x
RGBHistogram 34105 34164 +0.2% 1.00x (?)
RGBHistogramOfObjects 99247 99229 -0.0% 1.00x (?)
RangeAssignment 5691 5688 -0.1% 1.00x (?)
RecursiveOwnedParameter 9466 9628 +1.7% 0.98x
ReversedArray 44129 43652 -1.1% 1.01x
ReversedBidirectional 74952 74740 -0.3% 1.00x (?)
ReversedDictionary 26506 26562 +0.2% 1.00x
SetExclusiveOr 21225 21089 -0.6% 1.01x
SetExclusiveOr_OfObjects 41343 41175 -0.4% 1.00x (?)
SetIntersect 10691 10758 +0.6% 0.99x
SetIntersect_OfObjects 11355 11381 +0.2% 1.00x (?)
SetIsSubsetOf 1667 1670 +0.2% 1.00x
SetIsSubsetOf_OfObjects 1531 1532 +0.1% 1.00x (?)
SetUnion 12142 12142 +0.0% 1.00x
SetUnion_OfObjects 29888 29831 -0.2% 1.00x (?)
SevenBoom 1593 1590 -0.2% 1.00x (?)
Sim2DArray 30020 30019 -0.0% 1.00x (?)
SortLargeExistentials 17833 17826 -0.0% 1.00x (?)
SortLettersInPlace 2881 2867 -0.5% 1.00x (?)
SortSortedStrings 1409 1406 -0.2% 1.00x (?)
SortStrings 2487 2454 -1.3% 1.01x
SortStringsUnicode 8899 8922 +0.3% 1.00x
StackPromo 100084 100210 +0.1% 1.00x (?)
StaticArray 4547 4554 +0.2% 1.00x (?)
StrComplexWalk 6962 6856 -1.5% 1.02x
StrToInt 97861 97719 -0.1% 1.00x (?)
StringAdder 42 43 +2.4% 0.98x
StringBuilder 7225 7266 +0.6% 0.99x
StringBuilderLong 1070 1104 +3.2% 0.97x
StringEdits 387995 386242 -0.5% 1.00x (?)
StringFromLongWholeSubstring 11555 11579 +0.2% 1.00x (?)
StringFromLongWholeSubstringGeneric 211 210 -0.5% 1.00x (?)
StringHasPrefix 1699 1732 +1.9% 0.98x
StringHasPrefixUnicode 16049 16279 +1.4% 0.99x
StringHasSuffix 1808 1809 +0.1% 1.00x (?)
StringHasSuffixUnicode 63835 63541 -0.5% 1.00x (?)
StringInterpolation 14084 14056 -0.2% 1.00x (?)
StringMatch 30626 30200 -1.4% 1.01x (?)
StringUTF16Builder 8077 8115 +0.5% 1.00x (?)
StringWalk 4343 4421 +1.8% 0.98x
StringWithCString 136388 136203 -0.1% 1.00x (?)
SubstringFromLongString 115 115 +0.0% 1.00x
SubstringFromLongStringGeneric 206 206 +0.0% 1.00x
SuffixAnyCollection 6432 6481 +0.8% 0.99x
SuffixAnyCollectionLazy 45420 45230 -0.4% 1.00x (?)
SuffixAnySeqCRangeIter 42120 41983 -0.3% 1.00x (?)
SuffixAnySeqCRangeIterLazy 41528 41573 +0.1% 1.00x (?)
SuffixAnySeqCntRange 6402 6448 +0.7% 0.99x
SuffixAnySeqCntRangeLazy 6472 6437 -0.5% 1.01x
SuffixAnySequence 26893 26911 +0.1% 1.00x (?)
SuffixAnySequenceLazy 27003 26947 -0.2% 1.00x
SuffixArray 2072 2072 +0.0% 1.00x
SuffixArrayLazy 15109 15137 +0.2% 1.00x (?)
SuffixCountableRange 117 118 +0.9% 0.99x
SuffixCountableRangeLazy 13173 13029 -1.1% 1.01x
SuffixSequence 26591 26658 +0.3% 1.00x (?)
SuffixSequenceLazy 26786 26769 -0.1% 1.00x (?)
SuperChars 212319 211917 -0.2% 1.00x (?)
TwoSum 4311 4339 +0.6% 0.99x
TypeFlood 167 161 -3.6% 1.04x (?)
UTF8Decode 37430 37412 -0.0% 1.00x (?)
Walsh 11898 11899 +0.0% 1.00x (?)
XorLoop 23703 23627 -0.3% 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 airspeedswift requested a review from milseman June 1, 2017 16:50
Copy link
Member

@milseman milseman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@airspeedswift airspeedswift merged commit 28c470d into swiftlang:master Jun 1, 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