Skip to content

Conversation

@lorentey
Copy link
Member

@lorentey lorentey commented Feb 7, 2018

This is just an investigation of how a resilient hash function would affect Dictionary/Set performance.

Based on my own tests, I expect this minimal change will have performance comparable to #14442.

@lorentey
Copy link
Member Author

lorentey commented Feb 7, 2018

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Feb 8, 2018

Build comment file:

Optimized (O)

Regression (26)
TEST OLD NEW DELTA SPEEDUP
DictionarySwap 469 555 +18.3% 0.85x
PrefixWhileCountableRange 46 53 +15.2% 0.87x
Hanoi 3313 3639 +9.8% 0.91x
LazilyFilteredRange 3820 4179 +9.4% 0.91x
StringHasPrefixAscii 1518 1660 +9.4% 0.91x
NopDeinit 21580 23491 +8.9% 0.92x
CharIteration_utf16_unicodeScalars_Backwards 16589 17957 +8.2% 0.92x
SetIntersect 332 358 +7.8% 0.93x
CharIteration_korean_unicodeScalars_Backwards 12865 13834 +7.5% 0.93x
CharIteration_tweet_unicodeScalars_Backwards 26194 28142 +7.4% 0.93x
CharIteration_ascii_unicodeScalars_Backwards 13277 14262 +7.4% 0.93x
WordCountUniqueUTF16 21925 23473 +7.1% 0.93x (?)
CharIteration_japanese_unicodeScalars_Backwards 15954 17064 +7.0% 0.93x
StringHasSuffixAscii 1660 1775 +6.9% 0.94x
DictionaryGroup 132 141 +6.8% 0.94x
CharIteration_chinese_unicodeScalars_Backwards 10131 10813 +6.7% 0.94x
CharIteration_russian_unicodeScalars_Backwards 11161 11894 +6.6% 0.94x
DictionaryRemove 2749 2925 +6.4% 0.94x
ArrayAppendReserved 753 799 +6.1% 0.94x
WordCountUniqueASCII 1815 1923 +6.0% 0.94x
ObjectiveCBridgeStubFromNSStringRef 155 164 +5.8% 0.95x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3090 3265 +5.7% 0.95x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2478 2617 +5.6% 0.95x
StringWalk 1421 1500 +5.6% 0.95x
CharIndexing_tweet_unicodeScalars 29901 31556 +5.5% 0.95x
ObjectiveCBridgeStubToNSStringRef 112 118 +5.4% 0.95x
Improvement (6)
TEST OLD NEW DELTA SPEEDUP
StaticArray 6 5 -16.7% 1.20x
PrefixWhileArray 105 88 -16.2% 1.19x
PointerArithmetics 34355 31489 -8.3% 1.09x
SuffixCountableRange 12 11 -8.3% 1.09x
MapReduceLazyCollectionShort 37 34 -8.1% 1.09x
MapReduceAnyCollection 399 371 -7.0% 1.08x (?)
No Changes (328)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3613 3624 +0.3% 1.00x (?)
AnyHashableWithAClass 69824 69410 -0.6% 1.01x (?)
Array2D 2553 2554 +0.0% 1.00x (?)
ArrayAppend 1016 1062 +4.5% 0.96x
ArrayAppendArrayOfInt 798 796 -0.3% 1.00x (?)
ArrayAppendAscii 13534 13685 +1.1% 0.99x (?)
ArrayAppendFromGeneric 798 796 -0.3% 1.00x (?)
ArrayAppendGenericStructs 1429 1426 -0.2% 1.00x (?)
ArrayAppendLatin1 38496 38366 -0.3% 1.00x (?)
ArrayAppendLazyMap 1330 1340 +0.8% 0.99x (?)
ArrayAppendOptionals 1405 1426 +1.5% 0.99x (?)
ArrayAppendRepeatCol 1338 1337 -0.1% 1.00x (?)
ArrayAppendSequence 1130 1132 +0.2% 1.00x (?)
ArrayAppendStrings 15174 15167 -0.0% 1.00x (?)
ArrayAppendToFromGeneric 797 797 +0.0% 1.00x
ArrayAppendToGeneric 788 798 +1.3% 0.99x (?)
ArrayAppendUTF16 37754 37710 -0.1% 1.00x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 150 +0.0% 1.00x
ArrayOfGenericRef 4411 4353 -1.3% 1.01x (?)
ArrayOfPOD 182 183 +0.5% 0.99x (?)
ArrayOfRef 4343 4348 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 796 786 -1.3% 1.01x (?)
ArrayPlusEqualFiveElementCollection 5470 5604 +2.4% 0.98x
ArrayPlusEqualSingleElementCollection 1021 1061 +3.9% 0.96x
ArrayPlusEqualThreeElements 1651 1646 -0.3% 1.00x (?)
ArraySubscript 1528 1514 -0.9% 1.01x (?)
ArrayValueProp 8 8 +0.0% 1.00x
ArrayValueProp2 8 8 +0.0% 1.00x
ArrayValueProp3 8 8 +0.0% 1.00x
ArrayValueProp4 8 8 +0.0% 1.00x
BinaryFloatingPointConversionFromBinaryInteger 46 46 +0.0% 1.00x
BitCount 211 211 +0.0% 1.00x
ByteSwap 98 97 -1.0% 1.01x (?)
COWTree 3587 3630 +1.2% 0.99x (?)
CSVParsing 810709 812105 +0.2% 1.00x (?)
CSVParsingAlt 724672 727494 +0.4% 1.00x (?)
CSVParsingAltIndices 356419 358529 +0.6% 0.99x (?)
CStringLongAscii 4768 4769 +0.0% 1.00x (?)
CStringLongNonAscii 2107 2094 -0.6% 1.01x (?)
CStringShortAscii 4708 4731 +0.5% 1.00x (?)
Calculator 451 448 -0.7% 1.01x (?)
CaptureProp 9161 8876 -3.1% 1.03x
CharIndexing_ascii_unicodeScalars 15164 15816 +4.3% 0.96x
CharIndexing_ascii_unicodeScalars_Backwards 14815 14414 -2.7% 1.03x
CharIndexing_chinese_unicodeScalars 11485 11975 +4.3% 0.96x
CharIndexing_chinese_unicodeScalars_Backwards 11228 10926 -2.7% 1.03x
CharIndexing_japanese_unicodeScalars 18142 18934 +4.4% 0.96x
CharIndexing_japanese_unicodeScalars_Backwards 17735 17253 -2.7% 1.03x
CharIndexing_korean_unicodeScalars 14704 15333 +4.3% 0.96x
CharIndexing_korean_unicodeScalars_Backwards 14371 13981 -2.7% 1.03x
CharIndexing_punctuatedJapanese_unicodeScalars 2760 2875 +4.2% 0.96x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2700 2642 -2.1% 1.02x
CharIndexing_punctuated_unicodeScalars 3448 3592 +4.2% 0.96x
CharIndexing_punctuated_unicodeScalars_Backwards 3376 3296 -2.4% 1.02x
CharIndexing_russian_unicodeScalars 12638 13177 +4.3% 0.96x
CharIndexing_russian_unicodeScalars_Backwards 12358 12022 -2.7% 1.03x
CharIndexing_tweet_unicodeScalars_Backwards 28877 28532 -1.2% 1.01x (?)
CharIndexing_utf16_unicodeScalars 20602 20849 +1.2% 0.99x (?)
CharIndexing_utf16_unicodeScalars_Backwards 21495 21437 -0.3% 1.00x (?)
CharIteration_ascii_unicodeScalars 21146 20627 -2.5% 1.03x
CharIteration_chinese_unicodeScalars 16004 15617 -2.4% 1.02x
CharIteration_japanese_unicodeScalars 25358 24772 -2.3% 1.02x
CharIteration_korean_unicodeScalars 20505 19986 -2.5% 1.03x
CharIteration_punctuatedJapanese_unicodeScalars 3769 3701 -1.8% 1.02x
CharIteration_punctuated_unicodeScalars 4732 4653 -1.7% 1.02x
CharIteration_russian_unicodeScalars 17655 17179 -2.7% 1.03x
CharIteration_tweet_unicodeScalars 41763 40695 -2.6% 1.03x
CharIteration_utf16_unicodeScalars 27561 27410 -0.5% 1.01x (?)
CharacterLiteralsLarge 6121 6105 -0.3% 1.00x (?)
CharacterLiteralsSmall 411 411 +0.0% 1.00x
CharacterPropertiesFetch 4637 4628 -0.2% 1.00x (?)
CharacterPropertiesPrecomputed 1064 1070 +0.6% 0.99x (?)
CharacterPropertiesStashed 1591 1659 +4.3% 0.96x (?)
CharacterPropertiesStashedMemo 1595 1623 +1.8% 0.98x (?)
Chars 971 970 -0.1% 1.00x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 451 451 +0.0% 1.00x
DictOfArraysToArrayOfDicts 784 791 +0.9% 0.99x (?)
Dictionary 498 523 +5.0% 0.95x
Dictionary2 1600 1628 +1.7% 0.98x
Dictionary2OfObjects 2952 2974 +0.7% 0.99x (?)
Dictionary3 240 245 +2.1% 0.98x (?)
Dictionary3OfObjects 673 674 +0.1% 1.00x (?)
DictionaryBridge 2005 1949 -2.8% 1.03x (?)
DictionaryGroupOfObjects 1919 1905 -0.7% 1.01x (?)
DictionaryLiteral 1597 1618 +1.3% 0.99x (?)
DictionaryOfObjects 2178 2191 +0.6% 0.99x (?)
DictionaryRemoveOfObjects 23696 23810 +0.5% 1.00x (?)
DictionarySubscriptDefaultMutation 146 151 +3.4% 0.97x (?)
DictionarySubscriptDefaultMutationArray 489 498 +1.8% 0.98x
DictionarySubscriptDefaultMutationArrayOfObjects 3815 3805 -0.3% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1385 1397 +0.9% 0.99x (?)
DictionarySwapOfObjects 7378 7449 +1.0% 0.99x (?)
DoubleWidthDivision 237 237 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 65302 64254 -1.6% 1.02x (?)
DropFirstAnySeqCRangeIter 18284 18084 -1.1% 1.01x (?)
DropFirstAnySeqCRangeIterLazy 18307 18089 -1.2% 1.01x (?)
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 4400 4415 +0.3% 1.00x (?)
DropFirstAnySequenceLazy 4393 4416 +0.5% 0.99x (?)
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 35 35 +0.0% 1.00x
DropFirstCountableRangeLazy 35 35 +0.0% 1.00x
DropFirstSequence 2698 2699 +0.0% 1.00x (?)
DropFirstSequenceLazy 2791 2792 +0.0% 1.00x (?)
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21886 21861 -0.1% 1.00x (?)
DropLastAnySeqCRangeIter 3528 3517 -0.3% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3526 3517 -0.3% 1.00x (?)
DropLastAnySeqCntRange 23 23 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 23 23 +0.0% 1.00x
DropLastAnySequence 5096 5084 -0.2% 1.00x (?)
DropLastAnySequenceLazy 5190 5189 -0.0% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 638 629 -1.4% 1.01x
DropLastSequenceLazy 638 628 -1.6% 1.02x (?)
DropWhileAnyCollection 99 100 +1.0% 0.99x
DropWhileAnyCollectionLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCRangeIter 14813 14716 -0.7% 1.01x (?)
DropWhileAnySeqCRangeIterLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 147 147 +0.0% 1.00x
DropWhileAnySequence 4733 4698 -0.7% 1.01x
DropWhileAnySequenceLazy 1855 1855 +0.0% 1.00x
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1340 1340 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 431 432 +0.2% 1.00x (?)
EqualSubstringString 431 433 +0.5% 1.00x (?)
EqualSubstringSubstring 430 432 +0.5% 1.00x (?)
EqualSubstringSubstringGenericEquatable 431 432 +0.2% 1.00x (?)
ErrorHandling 2390 2323 -2.8% 1.03x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1302 1310 +0.6% 0.99x (?)
FilterEvenUsingReduceInto 149 148 -0.7% 1.01x (?)
FrequenciesUsingReduce 6658 6727 +1.0% 0.99x (?)
FrequenciesUsingReduceInto 3173 3194 +0.7% 0.99x (?)
HashTest 1760 1753 -0.4% 1.00x (?)
Histogram 324 335 +3.4% 0.97x
Integrate 233 231 -0.9% 1.01x (?)
IterateData 1413 1386 -1.9% 1.02x
Join 368 373 +1.4% 0.99x (?)
LazilyFilteredArrayContains 37856 36270 -4.2% 1.04x
LazilyFilteredArrays 64880 64983 +0.2% 1.00x (?)
LessSubstringSubstring 431 431 +0.0% 1.00x
LessSubstringSubstringGenericComparable 431 432 +0.2% 1.00x (?)
LinkedList 7595 7577 -0.2% 1.00x (?)
LuhnAlgoEager 585 587 +0.3% 1.00x (?)
LuhnAlgoLazy 586 589 +0.5% 0.99x (?)
MapReduce 398 398 +0.0% 1.00x
MapReduceAnyCollectionShort 2022 2055 +1.6% 0.98x (?)
MapReduceClass 3048 3027 -0.7% 1.01x (?)
MapReduceClassShort 4595 4566 -0.6% 1.01x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 451 460 +2.0% 0.98x (?)
MapReduceShort 2013 2017 +0.2% 1.00x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 83 81 -2.4% 1.02x
Memset 216 217 +0.5% 1.00x (?)
MonteCarloE 10409 10320 -0.9% 1.01x (?)
MonteCarloPi 42904 42694 -0.5% 1.00x
NSDictionaryCastToSwift 5373 5464 +1.7% 0.98x (?)
NSError 304 300 -1.3% 1.01x (?)
NSStringConversion 321 320 -0.3% 1.00x (?)
NibbleSort 3958 4119 +4.1% 0.96x
ObjectAllocation 182 182 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 19590 19196 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3966 3999 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 37433 38364 +2.5% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 32935 32498 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122785 120626 -1.8% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObject 60068 58072 -3.3% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4134 4156 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 67982 69324 +2.0% 0.98x (?)
ObjectiveCBridgeFromNSString 1330 1324 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2331 2359 +1.2% 0.99x (?)
ObjectiveCBridgeStubDataAppend 3887 3878 -0.2% 1.00x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 25431 25770 +1.3% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 4140 4245 +2.5% 0.98x (?)
ObjectiveCBridgeStubFromNSString 849 879 +3.5% 0.97x (?)
ObjectiveCBridgeStubNSDataAppend 2480 2518 +1.5% 0.98x (?)
ObjectiveCBridgeStubNSDateMutationRef 12530 12989 +3.7% 0.96x (?)
ObjectiveCBridgeStubToArrayOfNSString 28334 28788 +1.6% 0.98x (?)
ObjectiveCBridgeStubToNSDate 15219 14928 -1.9% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3396 3412 +0.5% 1.00x (?)
ObjectiveCBridgeStubToNSString 1538 1540 +0.1% 1.00x (?)
ObjectiveCBridgeStubURLAppendPath 320466 325153 +1.5% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 325642 323996 -0.5% 1.01x (?)
ObjectiveCBridgeToNSArray 28532 28713 +0.6% 0.99x (?)
ObjectiveCBridgeToNSDictionary 51957 54405 +4.7% 0.96x (?)
ObjectiveCBridgeToNSSet 44590 45718 +2.5% 0.98x (?)
ObjectiveCBridgeToNSString 1312 1314 +0.2% 1.00x (?)
ObserverClosure 2152 2168 +0.7% 0.99x (?)
ObserverForwarderStruct 990 997 +0.7% 0.99x (?)
ObserverPartiallyAppliedMethod 3735 3755 +0.5% 0.99x (?)
ObserverUnappliedMethod 2354 2371 +0.7% 0.99x (?)
OpenClose 257 268 +4.3% 0.96x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 4033 4167 +3.3% 0.97x
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1936 1866 -3.6% 1.04x (?)
PopFrontArrayGeneric 1877 1888 +0.6% 0.99x (?)
PopFrontUnsafePointer 8771 8755 -0.2% 1.00x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 64889 65489 +0.9% 0.99x (?)
PrefixAnySeqCRangeIter 14130 14089 -0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 14133 14089 -0.3% 1.00x (?)
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 3799 3789 -0.3% 1.00x (?)
PrefixAnySequenceLazy 3784 3786 +0.1% 1.00x (?)
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 1325 1325 +0.0% 1.00x
PrefixSequenceLazy 1413 1413 +0.0% 1.00x
PrefixWhileAnyCollection 146 146 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9526 9544 +0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCntRange 142 142 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 106 106 +0.0% 1.00x
PrefixWhileAnySequence 10374 10459 +0.8% 0.99x (?)
PrefixWhileAnySequenceLazy 1392 1392 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 358 358 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 754 775 +2.8% 0.97x
PrimsSplit 758 776 +2.4% 0.98x (?)
QueueConcrete 1306 1307 +0.1% 1.00x (?)
QueueGeneric 1157 1154 -0.3% 1.00x (?)
RC4 168 165 -1.8% 1.02x
RGBHistogram 2987 2961 -0.9% 1.01x (?)
RGBHistogramOfObjects 23802 23959 +0.7% 0.99x (?)
RangeAssignment 352 352 +0.0% 1.00x
RangeIterationSigned 171 171 +0.0% 1.00x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 971 983 +1.2% 0.99x (?)
RecursiveOwnedParameter 2377 2373 -0.2% 1.00x (?)
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 15262 15359 +0.6% 0.99x
ReversedDictionary 126 122 -3.2% 1.03x (?)
RomanNumbers 114230 116790 +2.2% 0.98x (?)
SetExclusiveOr 3363 3493 +3.9% 0.96x
SetExclusiveOr_OfObjects 8740 8711 -0.3% 1.00x (?)
SetIntersect_OfObjects 1758 1794 +2.0% 0.98x
SetIsSubsetOf 299 300 +0.3% 1.00x
SetIsSubsetOf_OfObjects 366 370 +1.1% 0.99x
SetUnion 3079 3211 +4.3% 0.96x
SetUnion_OfObjects 7228 7226 -0.0% 1.00x (?)
SevenBoom 1539 1507 -2.1% 1.02x (?)
Sim2DArray 411 411 +0.0% 1.00x
SortLargeExistentials 7102 7046 -0.8% 1.01x (?)
SortLettersInPlace 1164 1161 -0.3% 1.00x (?)
SortSortedStrings 1165 1199 +2.9% 0.97x
SortStrings 2035 2100 +3.2% 0.97x
SortStringsUnicode 15288 15534 +1.6% 0.98x
StackPromo 22384 22430 +0.2% 1.00x (?)
StrComplexWalk 1565 1567 +0.1% 1.00x (?)
StrToInt 2120 2152 +1.5% 0.99x
StringAdder 4256 4245 -0.3% 1.00x (?)
StringBuilder 1435 1429 -0.4% 1.00x (?)
StringBuilderLong 1084 1068 -1.5% 1.01x (?)
StringComparison_abnormal 856 861 +0.6% 0.99x (?)
StringComparison_ascii 945 993 +5.1% 0.95x
StringComparison_emoji 2535 2543 +0.3% 1.00x (?)
StringComparison_fastPrenormal 8672 8703 +0.4% 1.00x (?)
StringComparison_latin1 5941 5989 +0.8% 0.99x (?)
StringComparison_longSharedPrefix 11491 11522 +0.3% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 4663 4679 +0.3% 1.00x (?)
StringComparison_slowerPrenormal 4159 4177 +0.4% 1.00x (?)
StringComparison_zalgo 1703 1722 +1.1% 0.99x (?)
StringEdits 118620 116541 -1.8% 1.02x (?)
StringEnumRawValueInitialization 1009 993 -1.6% 1.02x (?)
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 10 10 +0.0% 1.00x
StringHasPrefixUnicode 28102 28127 +0.1% 1.00x (?)
StringHasSuffixUnicode 84896 85327 +0.5% 0.99x (?)
StringInterpolation 9187 9343 +1.7% 0.98x (?)
StringMatch 7522 7452 -0.9% 1.01x (?)
StringRemoveDupes 1196 1206 +0.8% 0.99x (?)
StringUTF16Builder 2394 2390 -0.2% 1.00x (?)
StringWithCString 43164 42548 -1.4% 1.01x (?)
StringWordBuilder 1724 1743 +1.1% 0.99x (?)
StringWordBuilderReservingCapacity 1283 1299 +1.2% 0.99x
SubstringComparable 2063 2083 +1.0% 0.99x (?)
SubstringEqualString 2116 2124 +0.4% 1.00x (?)
SubstringEquatable 3143 3163 +0.6% 0.99x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 70 69 -1.4% 1.01x (?)
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21683 21509 -0.8% 1.01x (?)
SuffixAnySeqCRangeIter 3812 3812 +0.0% 1.00x
SuffixAnySeqCRangeIterLazy 3810 3811 +0.0% 1.00x (?)
SuffixAnySeqCntRange 23 23 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 23 23 +0.0% 1.00x
SuffixAnySequence 5125 5068 -1.1% 1.01x (?)
SuffixAnySequenceLazy 5259 5137 -2.3% 1.02x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3769 3718 -1.4% 1.01x (?)
SuffixSequenceLazy 3765 3729 -1.0% 1.01x (?)
SumUsingReduce 101 101 +0.0% 1.00x
SumUsingReduceInto 102 101 -1.0% 1.01x (?)
SuperChars 41253 41618 +0.9% 0.99x (?)
TwoSum 997 1010 +1.3% 0.99x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 313 320 +2.2% 0.98x
Walsh 418 416 -0.5% 1.00x (?)
WordCountHistogramASCII 8036 8217 +2.3% 0.98x
WordCountHistogramUTF16 51722 52518 +1.5% 0.98x (?)
WordSplitASCII 20905 20981 +0.4% 1.00x (?)
WordSplitUTF16 21718 22024 +1.4% 0.99x (?)
XorLoop 390 394 +1.0% 0.99x (?)

Unoptimized (Onone)

Regression (37)
TEST OLD NEW DELTA SPEEDUP
LazilyFilteredRange 472418 580687 +22.9% 0.81x
CharIndexing_punctuated_unicodeScalars_Backwards 84566 103658 +22.6% 0.82x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 66003 80223 +21.5% 0.82x
CharIndexing_tweet_unicodeScalars_Backwards 760630 919239 +20.9% 0.83x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 51500 61356 +19.1% 0.84x
CharIteration_tweet_unicodeScalars_Backwards 588545 700844 +19.1% 0.84x
CharIndexing_punctuated_unicodeScalars 79134 93748 +18.5% 0.84x
CharIndexing_korean_unicodeScalars_Backwards 374866 438831 +17.1% 0.85x
CharIteration_punctuated_unicodeScalars_Backwards 64887 75887 +17.0% 0.86x
CharIndexing_russian_unicodeScalars 299395 349897 +16.9% 0.86x
CharIndexing_japanese_unicodeScalars_Backwards 455309 527535 +15.9% 0.86x
CharIndexing_ascii_unicodeScalars_Backwards 382117 442082 +15.7% 0.86x
CharIndexing_chinese_unicodeScalars_Backwards 286757 331241 +15.5% 0.87x
CharIndexing_chinese_unicodeScalars 269208 306162 +13.7% 0.88x
CharIndexing_ascii_unicodeScalars 357585 406507 +13.7% 0.88x
CharIndexing_tweet_unicodeScalars 727446 826420 +13.6% 0.88x
CharIteration_korean_unicodeScalars_Backwards 288557 326876 +13.3% 0.88x (?)
CharIndexing_japanese_unicodeScalars 428706 485244 +13.2% 0.88x
CharIndexing_punctuatedJapanese_unicodeScalars 63075 71258 +13.0% 0.89x
CharIndexing_russian_unicodeScalars_Backwards 323460 364777 +12.8% 0.89x
CharIndexing_korean_unicodeScalars 353565 393650 +11.3% 0.90x
CharIteration_chinese_unicodeScalars_Backwards 223057 247872 +11.1% 0.90x (?)
CharIteration_ascii_unicodeScalars_Backwards 294277 325939 +10.8% 0.90x (?)
CharIteration_russian_unicodeScalars_Backwards 245077 271266 +10.7% 0.90x (?)
CharIteration_japanese_unicodeScalars_Backwards 356222 394129 +10.6% 0.90x (?)
CharIndexing_utf16_unicodeScalars_Backwards 322343 356546 +10.6% 0.90x
CharIndexing_utf16_unicodeScalars 299401 328502 +9.7% 0.91x
Calculator 1631 1779 +9.1% 0.92x
LuhnAlgoLazy 4968 5400 +8.7% 0.92x
ObjectiveCBridgeFromNSSetAnyObjectForced 6779 7306 +7.8% 0.93x (?)
ObjectiveCBridgeStubToNSDate 15075 16187 +7.4% 0.93x (?)
CharIteration_utf16_unicodeScalars_Backwards 251432 269214 +7.1% 0.93x (?)
StringWalk 12380 13133 +6.1% 0.94x
MapReduceAnyCollectionShort 38480 40745 +5.9% 0.94x
Combos 2139 2258 +5.6% 0.95x
NSDictionaryCastToSwift 6684 7052 +5.5% 0.95x (?)
StringEqualPointerComparison 3293 3467 +5.3% 0.95x
Improvement (6)
TEST OLD NEW DELTA SPEEDUP
PrefixAnyCollectionLazy 108961 100666 -7.6% 1.08x (?)
SuffixAnyCollectionLazy 36308 33617 -7.4% 1.08x (?)
DropLastAnyCollectionLazy 35057 32924 -6.1% 1.06x (?)
TypeFlood 163 154 -5.5% 1.06x (?)
Dictionary2 3041 2891 -4.9% 1.05x (?)
ObjectiveCBridgeFromNSSetAnyObject 67413 64098 -4.9% 1.05x
No Changes (317)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5104 5132 +0.5% 0.99x
AnyHashableWithAClass 86086 86016 -0.1% 1.00x (?)
Array2D 631316 633464 +0.3% 1.00x
ArrayAppend 4676 4780 +2.2% 0.98x
ArrayAppendArrayOfInt 862 862 +0.0% 1.00x
ArrayAppendAscii 39875 40214 +0.9% 0.99x
ArrayAppendFromGeneric 867 872 +0.6% 0.99x (?)
ArrayAppendGenericStructs 1502 1503 +0.1% 1.00x (?)
ArrayAppendLatin1 63616 63204 -0.6% 1.01x (?)
ArrayAppendLazyMap 167149 168556 +0.8% 0.99x
ArrayAppendOptionals 1499 1501 +0.1% 1.00x (?)
ArrayAppendRepeatCol 173440 173371 -0.0% 1.00x (?)
ArrayAppendReserved 4393 4505 +2.5% 0.98x
ArrayAppendSequence 140061 146728 +4.8% 0.95x
ArrayAppendStrings 15394 15378 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 863 864 +0.1% 1.00x (?)
ArrayAppendToGeneric 866 866 +0.0% 1.00x
ArrayAppendUTF16 64079 63843 -0.4% 1.00x (?)
ArrayInClass 6318 6194 -2.0% 1.02x (?)
ArrayLiteral 1774 1779 +0.3% 1.00x (?)
ArrayOfGenericPOD2 1185 1132 -4.5% 1.05x (?)
ArrayOfGenericRef 10339 10041 -2.9% 1.03x (?)
ArrayOfPOD 846 846 +0.0% 1.00x
ArrayOfRef 9545 9469 -0.8% 1.01x (?)
ArrayPlusEqualArrayOfInt 845 865 +2.4% 0.98x (?)
ArrayPlusEqualFiveElementCollection 234334 232825 -0.6% 1.01x (?)
ArrayPlusEqualSingleElementCollection 231481 229432 -0.9% 1.01x (?)
ArrayPlusEqualThreeElements 9245 9322 +0.8% 0.99x (?)
ArraySubscript 81445 82083 +0.8% 0.99x
ArrayValueProp 3614 3629 +0.4% 1.00x (?)
ArrayValueProp2 15916 16090 +1.1% 0.99x (?)
ArrayValueProp3 4118 4143 +0.6% 0.99x
ArrayValueProp4 4070 4081 +0.3% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 5849 5797 -0.9% 1.01x (?)
BitCount 2208 2151 -2.6% 1.03x
ByteSwap 3919 3882 -0.9% 1.01x (?)
COWTree 11306 11352 +0.4% 1.00x (?)
CSVParsing 2460141 2476381 +0.7% 0.99x (?)
CSVParsingAlt 1325097 1346885 +1.6% 0.98x (?)
CSVParsingAltIndices 2515152 2515739 +0.0% 1.00x (?)
CStringLongAscii 4756 4596 -3.4% 1.03x
CStringLongNonAscii 2073 2099 +1.3% 0.99x
CStringShortAscii 7606 7962 +4.7% 0.96x
CaptureProp 255453 257587 +0.8% 0.99x
CharIteration_ascii_unicodeScalars 156006 155773 -0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 118295 117998 -0.3% 1.00x (?)
CharIteration_japanese_unicodeScalars 187358 186717 -0.3% 1.00x (?)
CharIteration_korean_unicodeScalars 151739 151093 -0.4% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 27999 27968 -0.1% 1.00x (?)
CharIteration_punctuated_unicodeScalars 35100 35520 +1.2% 0.99x (?)
CharIteration_russian_unicodeScalars 130143 129783 -0.3% 1.00x (?)
CharIteration_tweet_unicodeScalars 308205 307512 -0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars 131682 132156 +0.4% 1.00x (?)
CharacterLiteralsLarge 5986 5978 -0.1% 1.00x (?)
CharacterLiteralsSmall 736 735 -0.1% 1.00x (?)
CharacterPropertiesFetch 5545 5370 -3.2% 1.03x (?)
CharacterPropertiesPrecomputed 4207 4295 +2.1% 0.98x (?)
CharacterPropertiesStashed 2256 2313 +2.5% 0.98x (?)
CharacterPropertiesStashedMemo 4942 4974 +0.6% 0.99x (?)
Chars 39979 40089 +0.3% 1.00x (?)
ClassArrayGetter 995 996 +0.1% 1.00x (?)
DictOfArraysToArrayOfDicts 3423 3442 +0.6% 0.99x (?)
Dictionary 2549 2585 +1.4% 0.99x (?)
Dictionary2OfObjects 5540 5671 +2.4% 0.98x (?)
Dictionary3 1266 1258 -0.6% 1.01x (?)
Dictionary3OfObjects 2198 2253 +2.5% 0.98x (?)
DictionaryBridge 2161 2089 -3.3% 1.03x (?)
DictionaryGroup 4220 4216 -0.1% 1.00x (?)
DictionaryGroupOfObjects 7502 7523 +0.3% 1.00x (?)
DictionaryLiteral 8521 8545 +0.3% 1.00x (?)
DictionaryOfObjects 6184 6185 +0.0% 1.00x (?)
DictionaryRemove 18227 18361 +0.7% 0.99x (?)
DictionaryRemoveOfObjects 49795 50715 +1.8% 0.98x (?)
DictionarySubscriptDefaultMutation 2098 2106 +0.4% 1.00x (?)
DictionarySubscriptDefaultMutationArray 2353 2359 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9012 9040 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 5599 5627 +0.5% 1.00x (?)
DictionarySwap 5196 5243 +0.9% 0.99x
DictionarySwapOfObjects 22200 22157 -0.2% 1.00x (?)
DoubleWidthDivision 23965 23812 -0.6% 1.01x (?)
DropFirstAnyCollection 13773 13629 -1.0% 1.01x (?)
DropFirstAnyCollectionLazy 105307 102352 -2.8% 1.03x (?)
DropFirstAnySeqCRangeIter 20608 20555 -0.3% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 20506 20544 +0.2% 1.00x (?)
DropFirstAnySeqCntRange 13617 13601 -0.1% 1.00x (?)
DropFirstAnySeqCntRangeLazy 13717 13581 -1.0% 1.01x (?)
DropFirstAnySequence 10902 10771 -1.2% 1.01x (?)
DropFirstAnySequenceLazy 10924 10779 -1.3% 1.01x
DropFirstArray 3852 3877 +0.6% 0.99x (?)
DropFirstArrayLazy 25314 25436 +0.5% 1.00x (?)
DropFirstCountableRange 325 325 +0.0% 1.00x
DropFirstCountableRangeLazy 26164 26011 -0.6% 1.01x (?)
DropFirstSequence 10453 10357 -0.9% 1.01x
DropFirstSequenceLazy 10535 10438 -0.9% 1.01x
DropLastAnyCollection 4619 4573 -1.0% 1.01x (?)
DropLastAnySeqCRangeIter 37491 37498 +0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 37477 37423 -0.1% 1.00x (?)
DropLastAnySeqCntRange 4585 4555 -0.7% 1.01x (?)
DropLastAnySeqCntRangeLazy 4595 4593 -0.0% 1.00x (?)
DropLastAnySequence 28907 28976 +0.2% 1.00x (?)
DropLastAnySequenceLazy 29051 28837 -0.7% 1.01x (?)
DropLastCountableRange 112 112 +0.0% 1.00x
DropLastCountableRangeLazy 8730 8656 -0.8% 1.01x (?)
DropLastSequence 28876 28793 -0.3% 1.00x (?)
DropLastSequenceLazy 28851 28858 +0.0% 1.00x (?)
DropWhileAnyCollection 17702 17470 -1.3% 1.01x
DropWhileAnyCollectionLazy 18988 18791 -1.0% 1.01x
DropWhileAnySeqCRangeIter 22284 23280 +4.5% 0.96x
DropWhileAnySeqCRangeIterLazy 18943 18734 -1.1% 1.01x (?)
DropWhileAnySeqCntRange 17516 17395 -0.7% 1.01x (?)
DropWhileAnySeqCntRangeLazy 18989 18801 -1.0% 1.01x (?)
DropWhileAnySequence 12407 12294 -0.9% 1.01x (?)
DropWhileAnySequenceLazy 10140 10054 -0.8% 1.01x
DropWhileArrayLazy 14021 14042 +0.1% 1.00x (?)
DropWhileCountableRange 4222 4168 -1.3% 1.01x
DropWhileCountableRangeLazy 18715 18649 -0.4% 1.00x (?)
DropWhileSequence 11965 11922 -0.4% 1.00x (?)
DropWhileSequenceLazy 9759 9689 -0.7% 1.01x
EqualStringSubstring 475 477 +0.4% 1.00x
EqualSubstringString 477 478 +0.2% 1.00x (?)
EqualSubstringSubstring 477 479 +0.4% 1.00x
EqualSubstringSubstringGenericEquatable 482 486 +0.8% 0.99x (?)
ErrorHandling 7112 7035 -1.1% 1.01x (?)
ExclusivityGlobal 189 191 +1.1% 0.99x
ExclusivityIndependent 68 70 +2.9% 0.97x (?)
FilterEvenUsingReduce 3751 3741 -0.3% 1.00x (?)
FilterEvenUsingReduceInto 2000 2008 +0.4% 1.00x (?)
FrequenciesUsingReduce 10632 10608 -0.2% 1.00x (?)
FrequenciesUsingReduceInto 5505 5487 -0.3% 1.00x (?)
Hanoi 19725 20358 +3.2% 0.97x
HashTest 16347 16530 +1.1% 0.99x (?)
Histogram 6545 6551 +0.1% 1.00x (?)
Integrate 815 812 -0.4% 1.00x
IterateData 7762 7883 +1.6% 0.98x (?)
Join 1099 1104 +0.5% 1.00x (?)
LazilyFilteredArrayContains 789996 795320 +0.7% 0.99x (?)
LazilyFilteredArrays 1465308 1454846 -0.7% 1.01x (?)
LessSubstringSubstring 477 478 +0.2% 1.00x
LessSubstringSubstringGenericComparable 482 485 +0.6% 0.99x
LinkedList 32391 32271 -0.4% 1.00x (?)
LuhnAlgoEager 5014 5098 +1.7% 0.98x (?)
MapReduce 27184 27298 +0.4% 1.00x
MapReduceAnyCollection 27410 27622 +0.8% 0.99x
MapReduceClass 32099 31952 -0.5% 1.00x (?)
MapReduceClassShort 43858 44393 +1.2% 0.99x (?)
MapReduceLazyCollection 23163 23239 +0.3% 1.00x (?)
MapReduceLazyCollectionShort 34749 34604 -0.4% 1.00x (?)
MapReduceLazySequence 18389 18244 -0.8% 1.01x
MapReduceSequence 30732 30694 -0.1% 1.00x (?)
MapReduceShort 38399 40095 +4.4% 0.96x
MapReduceShortString 237 235 -0.8% 1.01x (?)
MapReduceString 1911 1931 +1.0% 0.99x
Memset 44752 44739 -0.0% 1.00x (?)
MonteCarloE 900726 907430 +0.7% 0.99x (?)
MonteCarloPi 3916017 3951306 +0.9% 0.99x
NSError 713 711 -0.3% 1.00x (?)
NSStringConversion 367 364 -0.8% 1.01x
NibbleSort 305496 305648 +0.0% 1.00x (?)
NopDeinit 166287 170729 +2.7% 0.97x
ObjectAllocation 1347 1355 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 22621 22968 +1.5% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8448 8394 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 40359 41391 +2.6% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 35197 34715 -1.4% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 126425 126988 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 73981 72719 -1.7% 1.02x (?)
ObjectiveCBridgeFromNSString 3167 3154 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2694 2709 +0.6% 0.99x (?)
ObjectiveCBridgeStubDataAppend 4388 4418 +0.7% 0.99x (?)
ObjectiveCBridgeStubDateMutation 630 658 +4.4% 0.96x
ObjectiveCBridgeStubFromArrayOfNSString 25392 26397 +4.0% 0.96x (?)
ObjectiveCBridgeStubFromNSDate 4396 4480 +1.9% 0.98x (?)
ObjectiveCBridgeStubFromNSString 916 943 +2.9% 0.97x
ObjectiveCBridgeStubFromNSStringRef 199 202 +1.5% 0.99x
ObjectiveCBridgeStubNSDataAppend 2999 3023 +0.8% 0.99x (?)
ObjectiveCBridgeStubNSDateMutationRef 16155 16153 -0.0% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 28416 29042 +2.2% 0.98x (?)
ObjectiveCBridgeStubToNSDateRef 3452 3481 +0.8% 0.99x (?)
ObjectiveCBridgeStubToNSString 1585 1569 -1.0% 1.01x (?)
ObjectiveCBridgeStubToNSStringRef 154 156 +1.3% 0.99x
ObjectiveCBridgeStubURLAppendPath 327532 336055 +2.6% 0.97x (?)
ObjectiveCBridgeStubURLAppendPathRef 344791 332487 -3.6% 1.04x (?)
ObjectiveCBridgeToNSArray 29110 29286 +0.6% 0.99x (?)
ObjectiveCBridgeToNSDictionary 53265 56058 +5.2% 0.95x (?)
ObjectiveCBridgeToNSSet 46993 45596 -3.0% 1.03x (?)
ObjectiveCBridgeToNSString 1345 1344 -0.1% 1.00x (?)
ObserverClosure 6286 6297 +0.2% 1.00x (?)
ObserverForwarderStruct 4358 4376 +0.4% 1.00x
ObserverPartiallyAppliedMethod 7815 7840 +0.3% 1.00x (?)
ObserverUnappliedMethod 7929 7966 +0.5% 1.00x (?)
OpenClose 559 582 +4.1% 0.96x
PartialApplyDynamicType 40843 41537 +1.7% 0.98x
Phonebook 20610 21316 +3.4% 0.97x
PointerArithmetics 120344 123198 +2.4% 0.98x
PolymorphicCalls 5930 6045 +1.9% 0.98x (?)
PopFrontArray 4617 4624 +0.2% 1.00x (?)
PopFrontArrayGeneric 5714 5750 +0.6% 0.99x
PopFrontUnsafePointer 11323 10872 -4.0% 1.04x (?)
PrefixAnyCollection 13718 13586 -1.0% 1.01x (?)
PrefixAnySeqCRangeIter 16589 16513 -0.5% 1.00x (?)
PrefixAnySeqCRangeIterLazy 16551 16507 -0.3% 1.00x (?)
PrefixAnySeqCntRange 13754 13642 -0.8% 1.01x (?)
PrefixAnySeqCntRangeLazy 13723 13595 -0.9% 1.01x (?)
PrefixAnySequence 9046 8953 -1.0% 1.01x
PrefixAnySequenceLazy 9014 8957 -0.6% 1.01x (?)
PrefixArray 3857 3881 +0.6% 0.99x (?)
PrefixArrayLazy 25278 25468 +0.8% 0.99x (?)
PrefixCountableRange 325 325 +0.0% 1.00x
PrefixCountableRangeLazy 26264 26017 -0.9% 1.01x (?)
PrefixSequence 8761 8661 -1.1% 1.01x (?)
PrefixSequenceLazy 8838 8693 -1.6% 1.02x
PrefixWhileAnyCollection 24986 24875 -0.4% 1.00x (?)
PrefixWhileAnyCollectionLazy 15991 15809 -1.1% 1.01x (?)
PrefixWhileAnySeqCRangeIter 33046 33054 +0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 15786 15765 -0.1% 1.00x (?)
PrefixWhileAnySeqCntRange 25257 24812 -1.8% 1.02x
PrefixWhileAnySeqCntRangeLazy 15923 15709 -1.3% 1.01x (?)
PrefixWhileAnySequence 26391 26481 +0.3% 1.00x (?)
PrefixWhileAnySequenceLazy 9153 9099 -0.6% 1.01x
PrefixWhileArray 11731 11742 +0.1% 1.00x (?)
PrefixWhileArrayLazy 11985 12076 +0.8% 0.99x
PrefixWhileCountableRange 11850 11673 -1.5% 1.02x
PrefixWhileCountableRangeLazy 15538 15546 +0.1% 1.00x (?)
PrefixWhileSequence 26211 26215 +0.0% 1.00x (?)
PrefixWhileSequenceLazy 8912 8895 -0.2% 1.00x (?)
Prims 9680 9771 +0.9% 0.99x
PrimsSplit 9652 9846 +2.0% 0.98x (?)
QueueConcrete 15041 15180 +0.9% 0.99x (?)
QueueGeneric 18998 19173 +0.9% 0.99x (?)
RC4 16485 16456 -0.2% 1.00x (?)
RGBHistogram 26822 26996 +0.6% 0.99x (?)
RGBHistogramOfObjects 96634 96762 +0.1% 1.00x (?)
RangeAssignment 2701 2707 +0.2% 1.00x (?)
RangeIterationSigned 16575 16779 +1.2% 0.99x
RangeIterationSigned64 39104 38880 -0.6% 1.01x (?)
RangeIterationUnsigned 34772 34588 -0.5% 1.01x (?)
RangeReplaceableCollectionPlusDefault 7881 8260 +4.8% 0.95x (?)
RecursiveOwnedParameter 8118 8026 -1.1% 1.01x
ReversedArray 13188 13126 -0.5% 1.00x (?)
ReversedBidirectional 42168 41986 -0.4% 1.00x (?)
ReversedDictionary 22842 22981 +0.6% 0.99x (?)
RomanNumbers 1187586 1165992 -1.8% 1.02x (?)
SetExclusiveOr 17205 17371 +1.0% 0.99x
SetExclusiveOr_OfObjects 41766 42105 +0.8% 0.99x (?)
SetIntersect 8180 8358 +2.2% 0.98x
SetIntersect_OfObjects 12076 12252 +1.5% 0.99x (?)
SetIsSubsetOf 1344 1357 +1.0% 0.99x
SetIsSubsetOf_OfObjects 1558 1565 +0.4% 1.00x
SetUnion 11875 11955 +0.7% 0.99x (?)
SetUnion_OfObjects 29181 29525 +1.2% 0.99x (?)
SevenBoom 1675 1672 -0.2% 1.00x (?)
Sim2DArray 43606 43614 +0.0% 1.00x (?)
SortLargeExistentials 15796 15790 -0.0% 1.00x (?)
SortLettersInPlace 2830 2862 +1.1% 0.99x (?)
SortSortedStrings 1355 1421 +4.9% 0.95x (?)
SortStrings 2503 2626 +4.9% 0.95x
SortStringsUnicode 16292 16421 +0.8% 0.99x
StackPromo 87756 88090 +0.4% 1.00x (?)
StaticArray 2627 2627 +0.0% 1.00x
StrComplexWalk 6440 6656 +3.4% 0.97x
StrToInt 57301 57588 +0.5% 1.00x
StringAdder 4743 4812 +1.5% 0.99x (?)
StringBuilder 6814 6822 +0.1% 1.00x (?)
StringBuilderLong 2704 2708 +0.1% 1.00x (?)
StringComparison_abnormal 1430 1454 +1.7% 0.98x (?)
StringComparison_ascii 9708 9787 +0.8% 0.99x
StringComparison_emoji 3817 3869 +1.4% 0.99x
StringComparison_fastPrenormal 13145 13379 +1.8% 0.98x
StringComparison_latin1 9474 9619 +1.5% 0.98x (?)
StringComparison_longSharedPrefix 13077 13126 +0.4% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 6942 7086 +2.1% 0.98x
StringComparison_slowerPrenormal 6819 6924 +1.5% 0.98x
StringComparison_zalgo 2860 2881 +0.7% 0.99x (?)
StringEdits 335413 329191 -1.9% 1.02x (?)
StringEnumRawValueInitialization 20819 21272 +2.2% 0.98x
StringFromLongWholeSubstring 23 23 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 199 198 -0.5% 1.01x (?)
StringHasPrefixAscii 3076 3123 +1.5% 0.98x
StringHasPrefixUnicode 30794 31096 +1.0% 0.99x (?)
StringHasSuffixAscii 3131 3230 +3.2% 0.97x
StringHasSuffixUnicode 87803 88455 +0.7% 0.99x (?)
StringInterpolation 13457 13300 -1.2% 1.01x (?)
StringMatch 33292 33806 +1.5% 0.98x (?)
StringRemoveDupes 1430 1428 -0.1% 1.00x (?)
StringUTF16Builder 7677 7568 -1.4% 1.01x (?)
StringWithCString 39471 37718 -4.4% 1.05x
StringWordBuilder 2511 2535 +1.0% 0.99x
StringWordBuilderReservingCapacity 2172 2188 +0.7% 0.99x (?)
SubstringComparable 4104 4162 +1.4% 0.99x (?)
SubstringEqualString 3483 3634 +4.3% 0.96x (?)
SubstringEquatable 7800 8063 +3.4% 0.97x (?)
SubstringFromLongString 24 24 +0.0% 1.00x
SubstringFromLongStringGeneric 103 102 -1.0% 1.01x
SuffixAnyCollection 4535 4544 +0.2% 1.00x (?)
SuffixAnySeqCRangeIter 33606 33492 -0.3% 1.00x (?)
SuffixAnySeqCRangeIterLazy 33821 33540 -0.8% 1.01x (?)
SuffixAnySeqCntRange 4546 4519 -0.6% 1.01x (?)
SuffixAnySeqCntRangeLazy 4591 4551 -0.9% 1.01x
SuffixAnySequence 25028 25097 +0.3% 1.00x
SuffixAnySequenceLazy 25043 25069 +0.1% 1.00x (?)
SuffixCountableRange 111 112 +0.9% 0.99x (?)
SuffixCountableRangeLazy 8731 8663 -0.8% 1.01x (?)
SuffixSequence 24972 24903 -0.3% 1.00x (?)
SuffixSequenceLazy 24930 25010 +0.3% 1.00x (?)
SumUsingReduce 172238 173267 +0.6% 0.99x
SumUsingReduceInto 167078 167523 +0.3% 1.00x
SuperChars 214820 216504 +0.8% 0.99x (?)
TwoSum 3938 3984 +1.2% 0.99x (?)
UTF8Decode 29923 29985 +0.2% 1.00x
Walsh 11996 12035 +0.3% 1.00x (?)
WordCountHistogramASCII 48256 49456 +2.5% 0.98x
WordCountHistogramUTF16 102886 104943 +2.0% 0.98x (?)
WordCountUniqueASCII 8197 8240 +0.5% 0.99x (?)
WordCountUniqueUTF16 35301 34253 -3.0% 1.03x (?)
WordSplitASCII 25815 25370 -1.7% 1.02x (?)
WordSplitUTF16 27406 27439 +0.1% 1.00x (?)
XorLoop 23371 23367 -0.0% 1.00x (?)
Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@xwu
Copy link
Collaborator

xwu commented Feb 8, 2018

Actually a pretty mild regression, hmm.

@lorentey
Copy link
Member Author

lorentey commented Feb 8, 2018

🤔

@lorentey
Copy link
Member Author

lorentey commented Feb 8, 2018

On closer look, this only matches #14442 with multi-field keys; evidently we don't have a benchmark for those yet, just Strings and Ints. (We never exercise _combineHashValues.)

@lorentey
Copy link
Member Author

lorentey commented Feb 8, 2018

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Feb 8, 2018

Build comment file:

Optimized (O)

Regression (15)
TEST OLD NEW DELTA SPEEDUP
Dictionary4OfObjects 176 435 +147.2% 0.40x
Dictionary4 133 257 +93.2% 0.52x
DictionarySwap 419 497 +18.6% 0.84x
Hanoi 3125 3437 +10.0% 0.91x
Integrate 195 214 +9.7% 0.91x
MapReduceAnyCollection 333 358 +7.5% 0.93x
SetIntersect 299 321 +7.4% 0.93x
MapReduce 357 383 +7.3% 0.93x
OpenClose 231 247 +6.9% 0.94x
DictionaryGroup 119 127 +6.7% 0.94x
SortSortedStrings 1028 1095 +6.5% 0.94x
ArrayAppendReserved 667 706 +5.8% 0.94x
SortStrings 1802 1905 +5.7% 0.95x
Dictionary3 211 223 +5.7% 0.95x
PrefixWhileSequence 320 338 +5.6% 0.95x
Improvement (5)
TEST OLD NEW DELTA SPEEDUP
Sim2DArray 543 368 -32.2% 1.48x
RangeIterationSigned 179 154 -14.0% 1.16x
DropLastSequence 624 587 -5.9% 1.06x
Walsh 397 376 -5.3% 1.06x
DropLastSequenceLazy 620 589 -5.0% 1.05x
No Changes (342)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3237 3250 +0.4% 1.00x (?)
AnyHashableWithAClass 61968 61546 -0.7% 1.01x (?)
Array2D 2276 2276 +0.0% 1.00x
ArrayAppend 892 934 +4.7% 0.96x
ArrayAppendArrayOfInt 671 672 +0.1% 1.00x (?)
ArrayAppendAscii 12203 12334 +1.1% 0.99x
ArrayAppendFromGeneric 672 672 +0.0% 1.00x
ArrayAppendGenericStructs 1209 1209 +0.0% 1.00x
ArrayAppendLatin1 34368 34547 +0.5% 0.99x
ArrayAppendLazyMap 1175 1176 +0.1% 1.00x (?)
ArrayAppendOptionals 1209 1210 +0.1% 1.00x (?)
ArrayAppendRepeatCol 1174 1175 +0.1% 1.00x (?)
ArrayAppendSequence 990 990 +0.0% 1.00x
ArrayAppendStrings 13634 13652 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 673 673 +0.0% 1.00x
ArrayAppendToGeneric 673 673 +0.0% 1.00x
ArrayAppendUTF16 33805 33406 -1.2% 1.01x (?)
ArrayInClass 77 77 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 129 129 +0.0% 1.00x
ArrayOfGenericRef 3924 3922 -0.1% 1.00x (?)
ArrayOfPOD 155 155 +0.0% 1.00x
ArrayOfRef 3890 3886 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 671 672 +0.1% 1.00x (?)
ArrayPlusEqualFiveElementCollection 4800 4911 +2.3% 0.98x
ArrayPlusEqualSingleElementCollection 891 934 +4.8% 0.95x
ArrayPlusEqualThreeElements 1481 1475 -0.4% 1.00x (?)
ArraySubscript 1362 1362 +0.0% 1.00x
ArrayValueProp 7 7 +0.0% 1.00x
ArrayValueProp2 7 7 +0.0% 1.00x
ArrayValueProp3 7 7 +0.0% 1.00x
ArrayValueProp4 7 7 +0.0% 1.00x
BinaryFloatingPointConversionFromBinaryInteger 41 43 +4.9% 0.95x
BitCount 189 181 -4.2% 1.04x
ByteSwap 88 90 +2.3% 0.98x
COWTree 3214 3215 +0.0% 1.00x (?)
CSVParsing 727120 727259 +0.0% 1.00x (?)
CSVParsingAlt 650300 651182 +0.1% 1.00x (?)
CSVParsingAltIndices 324214 322824 -0.4% 1.00x (?)
CStringLongAscii 4280 4427 +3.4% 0.97x
CStringLongNonAscii 1890 1908 +1.0% 0.99x (?)
CStringShortAscii 4226 4257 +0.7% 0.99x (?)
Calculator 398 399 +0.3% 1.00x
CaptureProp 8221 8219 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars 14184 14183 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 12934 12934 +0.0% 1.00x
CharIndexing_chinese_unicodeScalars 10742 10740 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 9806 9804 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 16981 16980 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 15478 15481 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 13753 13754 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 12539 12542 +0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2574 2579 +0.2% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2372 2371 -0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3218 3220 +0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 2959 2957 -0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars 11822 11820 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 10782 10781 -0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 28323 28311 -0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 25588 25593 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 18678 18680 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 19179 19158 -0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars 18619 18477 -0.8% 1.01x
CharIteration_ascii_unicodeScalars_Backwards 12793 12793 +0.0% 1.00x
CharIteration_chinese_unicodeScalars 14031 13962 -0.5% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 9701 9699 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 22279 22100 -0.8% 1.01x
CharIteration_japanese_unicodeScalars_Backwards 15314 15311 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 18048 17912 -0.8% 1.01x
CharIteration_korean_unicodeScalars_Backwards 12410 12408 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3338 3314 -0.7% 1.01x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2348 2348 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars 4202 4147 -1.3% 1.01x
CharIteration_punctuated_unicodeScalars_Backwards 2930 2931 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars 15512 15384 -0.8% 1.01x
CharIteration_russian_unicodeScalars_Backwards 10668 10667 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 36653 36478 -0.5% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 25240 25237 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 24490 24473 -0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 16039 16116 +0.5% 1.00x (?)
CharacterLiteralsLarge 5467 5415 -1.0% 1.01x (?)
CharacterLiteralsSmall 368 368 +0.0% 1.00x
CharacterPropertiesFetch 4198 4212 +0.3% 1.00x (?)
CharacterPropertiesPrecomputed 964 963 -0.1% 1.00x (?)
CharacterPropertiesStashed 1476 1474 -0.1% 1.00x (?)
CharacterPropertiesStashedMemo 1454 1447 -0.5% 1.00x (?)
Chars 869 869 +0.0% 1.00x
ClassArrayGetter 13 13 +0.0% 1.00x
Combos 405 406 +0.2% 1.00x (?)
DictOfArraysToArrayOfDicts 700 706 +0.9% 0.99x (?)
Dictionary 447 467 +4.5% 0.96x
Dictionary2 1440 1458 +1.2% 0.99x (?)
Dictionary2OfObjects 2641 2664 +0.9% 0.99x (?)
Dictionary3OfObjects 603 608 +0.8% 0.99x (?)
DictionaryBridge 1787 1762 -1.4% 1.01x (?)
DictionaryGroupOfObjects 1712 1706 -0.4% 1.00x (?)
DictionaryLiteral 1435 1449 +1.0% 0.99x (?)
DictionaryOfObjects 1945 1959 +0.7% 0.99x (?)
DictionaryRemove 2543 2559 +0.6% 0.99x (?)
DictionaryRemoveOfObjects 21215 21304 +0.4% 1.00x (?)
DictionarySubscriptDefaultMutation 130 136 +4.6% 0.96x
DictionarySubscriptDefaultMutationArray 439 448 +2.1% 0.98x
DictionarySubscriptDefaultMutationArrayOfObjects 3405 3404 -0.0% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1243 1252 +0.7% 0.99x (?)
DictionarySwapOfObjects 6631 6693 +0.9% 0.99x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 68 68 +0.0% 1.00x
DropFirstAnyCollectionLazy 58646 58069 -1.0% 1.01x (?)
DropFirstAnySeqCRangeIter 16376 16195 -1.1% 1.01x (?)
DropFirstAnySeqCRangeIterLazy 16376 16222 -0.9% 1.01x (?)
DropFirstAnySeqCntRange 64 64 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 64 64 +0.0% 1.00x
DropFirstAnySequence 3949 3921 -0.7% 1.01x
DropFirstAnySequenceLazy 3938 3898 -1.0% 1.01x (?)
DropFirstArray 31 31 +0.0% 1.00x
DropFirstArrayLazy 31 31 +0.0% 1.00x
DropFirstCountableRange 31 31 +0.0% 1.00x
DropFirstCountableRangeLazy 31 31 +0.0% 1.00x
DropFirstSequence 2420 2420 +0.0% 1.00x
DropFirstSequenceLazy 2504 2505 +0.0% 1.00x (?)
DropLastAnyCollection 25 25 +0.0% 1.00x
DropLastAnyCollectionLazy 19651 19593 -0.3% 1.00x (?)
DropLastAnySeqCRangeIter 3146 3162 +0.5% 0.99x (?)
DropLastAnySeqCRangeIterLazy 3150 3166 +0.5% 0.99x (?)
DropLastAnySeqCntRange 21 21 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 21 21 +0.0% 1.00x
DropLastAnySequence 4588 4575 -0.3% 1.00x (?)
DropLastAnySequenceLazy 4672 4660 -0.3% 1.00x (?)
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropWhileAnyCollection 89 89 +0.0% 1.00x
DropWhileAnyCollectionLazy 132 132 +0.0% 1.00x
DropWhileAnySeqCRangeIter 13283 13207 -0.6% 1.01x (?)
DropWhileAnySeqCRangeIterLazy 132 132 +0.0% 1.00x
DropWhileAnySeqCntRange 85 85 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 132 132 +0.0% 1.00x
DropWhileAnySequence 4216 4224 +0.2% 1.00x (?)
DropWhileAnySequenceLazy 1664 1664 +0.0% 1.00x
DropWhileArrayLazy 116 115 -0.9% 1.01x
DropWhileCountableRange 32 32 +0.0% 1.00x
DropWhileCountableRangeLazy 100 100 +0.0% 1.00x
DropWhileSequence 1202 1202 +0.0% 1.00x
DropWhileSequenceLazy 79 79 +0.0% 1.00x
EqualStringSubstring 386 388 +0.5% 0.99x (?)
EqualSubstringString 387 387 +0.0% 1.00x
EqualSubstringSubstring 386 387 +0.3% 1.00x (?)
EqualSubstringSubstringGenericEquatable 386 387 +0.3% 1.00x (?)
ErrorHandling 2083 2117 +1.6% 0.98x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1168 1169 +0.1% 1.00x (?)
FilterEvenUsingReduceInto 133 133 +0.0% 1.00x
FrequenciesUsingReduce 5931 6009 +1.3% 0.99x (?)
FrequenciesUsingReduceInto 2824 2836 +0.4% 1.00x (?)
HashTest 1590 1573 -1.1% 1.01x (?)
Histogram 292 300 +2.7% 0.97x
IterateData 1275 1237 -3.0% 1.03x
Join 340 341 +0.3% 1.00x (?)
LazilyFilteredArrayContains 34673 33610 -3.1% 1.03x
LazilyFilteredArrays 58888 58941 +0.1% 1.00x (?)
LazilyFilteredRange 3868 3744 -3.2% 1.03x
LessSubstringSubstring 387 387 +0.0% 1.00x
LessSubstringSubstringGenericComparable 387 387 +0.0% 1.00x
LinkedList 6765 6781 +0.2% 1.00x (?)
LuhnAlgoEager 526 530 +0.8% 0.99x (?)
LuhnAlgoLazy 527 530 +0.6% 0.99x (?)
MapReduceAnyCollectionShort 1850 1873 +1.2% 0.99x (?)
MapReduceClass 2719 2747 +1.0% 0.99x (?)
MapReduceClassShort 4152 4149 -0.1% 1.00x (?)
MapReduceLazyCollection 12 12 +0.0% 1.00x
MapReduceLazyCollectionShort 30 30 +0.0% 1.00x
MapReduceLazySequence 77 77 +0.0% 1.00x
MapReduceSequence 405 414 +2.2% 0.98x (?)
MapReduceShort 1837 1847 +0.5% 0.99x (?)
MapReduceShortString 19 19 +0.0% 1.00x
MapReduceString 72 74 +2.8% 0.97x (?)
Memset 193 192 -0.5% 1.01x (?)
MonteCarloE 9419 9385 -0.4% 1.00x (?)
MonteCarloPi 38474 38477 +0.0% 1.00x (?)
NSDictionaryCastToSwift 4764 4747 -0.4% 1.00x (?)
NSError 271 270 -0.4% 1.00x (?)
NSStringConversion 292 294 +0.7% 0.99x
NibbleSort 3695 3694 -0.0% 1.00x (?)
NopDeinit 20757 20678 -0.4% 1.00x (?)
ObjectAllocation 164 164 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 17084 17382 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3495 3553 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 33641 33339 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 29279 29018 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 107285 109305 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObject 51664 52135 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 3723 3734 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 61503 59727 -2.9% 1.03x (?)
ObjectiveCBridgeFromNSString 1179 1203 +2.0% 0.98x (?)
ObjectiveCBridgeFromNSStringForced 2106 2129 +1.1% 0.99x (?)
ObjectiveCBridgeStubDataAppend 3601 3527 -2.1% 1.02x (?)
ObjectiveCBridgeStubDateMutation 231 231 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 22468 22546 +0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3706 3808 +2.8% 0.97x (?)
ObjectiveCBridgeStubFromNSString 768 782 +1.8% 0.98x (?)
ObjectiveCBridgeStubFromNSStringRef 139 139 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2293 2255 -1.7% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 12002 11866 -1.1% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 25413 25544 +0.5% 0.99x (?)
ObjectiveCBridgeStubToNSDate 13381 13704 +2.4% 0.98x (?)
ObjectiveCBridgeStubToNSDateRef 3008 3062 +1.8% 0.98x (?)
ObjectiveCBridgeStubToNSString 1381 1382 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 103 103 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 291149 288957 -0.8% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 295693 295976 +0.1% 1.00x (?)
ObjectiveCBridgeToNSArray 25456 25643 +0.7% 0.99x (?)
ObjectiveCBridgeToNSDictionary 47409 49560 +4.5% 0.96x (?)
ObjectiveCBridgeToNSSet 40095 40766 +1.7% 0.98x (?)
ObjectiveCBridgeToNSString 1177 1177 +0.0% 1.00x
ObserverClosure 1916 1924 +0.4% 1.00x (?)
ObserverForwarderStruct 844 841 -0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 3334 3359 +0.7% 0.99x (?)
ObserverUnappliedMethod 2077 2068 -0.4% 1.00x (?)
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 3684 3705 +0.6% 0.99x
PointerArithmetics 28255 28257 +0.0% 1.00x (?)
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1739 1741 +0.1% 1.00x (?)
PopFrontArrayGeneric 1758 1760 +0.1% 1.00x (?)
PopFrontUnsafePointer 8401 8404 +0.0% 1.00x (?)
PrefixAnyCollection 68 68 +0.0% 1.00x
PrefixAnyCollectionLazy 58633 58740 +0.2% 1.00x (?)
PrefixAnySeqCRangeIter 12670 12648 -0.2% 1.00x (?)
PrefixAnySeqCRangeIterLazy 12674 12648 -0.2% 1.00x (?)
PrefixAnySeqCntRange 64 64 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 64 64 +0.0% 1.00x
PrefixAnySequence 3404 3397 -0.2% 1.00x (?)
PrefixAnySequenceLazy 3393 3407 +0.4% 1.00x (?)
PrefixArray 31 31 +0.0% 1.00x
PrefixArrayLazy 31 31 +0.0% 1.00x
PrefixCountableRange 31 31 +0.0% 1.00x
PrefixCountableRangeLazy 31 31 +0.0% 1.00x
PrefixSequence 1188 1189 +0.1% 1.00x (?)
PrefixSequenceLazy 1267 1268 +0.1% 1.00x (?)
PrefixWhileAnyCollection 131 131 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 95 95 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 8524 8582 +0.7% 0.99x
PrefixWhileAnySeqCRangeIterLazy 95 95 +0.0% 1.00x
PrefixWhileAnySeqCntRange 127 127 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 95 95 +0.0% 1.00x
PrefixWhileAnySequence 9309 9352 +0.5% 1.00x (?)
PrefixWhileAnySequenceLazy 1248 1248 +0.0% 1.00x
PrefixWhileArray 79 79 +0.0% 1.00x
PrefixWhileArrayLazy 63 63 +0.0% 1.00x
PrefixWhileCountableRange 48 48 +0.0% 1.00x
PrefixWhileCountableRangeLazy 31 31 +0.0% 1.00x
PrefixWhileSequenceLazy 47 47 +0.0% 1.00x
Prims 674 700 +3.9% 0.96x
PrimsSplit 679 693 +2.1% 0.98x (?)
QueueConcrete 1171 1170 -0.1% 1.00x (?)
QueueGeneric 1036 1039 +0.3% 1.00x (?)
RC4 148 148 +0.0% 1.00x
RGBHistogram 2643 2693 +1.9% 0.98x
RGBHistogramOfObjects 21295 21485 +0.9% 0.99x (?)
RangeAssignment 314 329 +4.8% 0.95x
RangeIterationSigned64 179 179 +0.0% 1.00x
RangeIterationUnsigned 179 179 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 879 873 -0.7% 1.01x (?)
RecursiveOwnedParameter 2104 2129 +1.2% 0.99x (?)
ReversedArray 51 51 +0.0% 1.00x
ReversedBidirectional 13740 13705 -0.3% 1.00x (?)
ReversedDictionary 99 95 -4.0% 1.04x (?)
RomanNumbers 105536 106018 +0.5% 1.00x (?)
SetExclusiveOr 3042 3086 +1.4% 0.99x (?)
SetExclusiveOr_OfObjects 7999 7819 -2.3% 1.02x
SetIntersect_OfObjects 1576 1620 +2.8% 0.97x
SetIsSubsetOf 269 269 +0.0% 1.00x
SetIsSubsetOf_OfObjects 328 332 +1.2% 0.99x
SetUnion 2795 2799 +0.1% 1.00x (?)
SetUnion_OfObjects 6533 6502 -0.5% 1.00x (?)
SevenBoom 1394 1365 -2.1% 1.02x (?)
SortLargeExistentials 6410 6367 -0.7% 1.01x (?)
SortLettersInPlace 1035 1038 +0.3% 1.00x (?)
SortStringsUnicode 13798 13956 +1.1% 0.99x (?)
StackPromo 20078 20108 +0.1% 1.00x (?)
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1402 1406 +0.3% 1.00x (?)
StrToInt 1926 1987 +3.2% 0.97x
StringAdder 3832 3807 -0.7% 1.01x (?)
StringBuilder 1278 1296 +1.4% 0.99x (?)
StringBuilderLong 974 979 +0.5% 0.99x (?)
StringComparison_abnormal 767 770 +0.4% 1.00x (?)
StringComparison_ascii 876 891 +1.7% 0.98x
StringComparison_emoji 2275 2284 +0.4% 1.00x (?)
StringComparison_fastPrenormal 7756 7797 +0.5% 0.99x (?)
StringComparison_latin1 5320 5369 +0.9% 0.99x (?)
StringComparison_longSharedPrefix 10318 10331 +0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 4177 4203 +0.6% 0.99x (?)
StringComparison_slowerPrenormal 3705 3731 +0.7% 0.99x (?)
StringComparison_zalgo 1531 1544 +0.8% 0.99x (?)
StringEdits 106306 107280 +0.9% 0.99x (?)
StringEnumRawValueInitialization 898 892 -0.7% 1.01x (?)
StringEqualPointerComparison 256 256 +0.0% 1.00x
StringFromLongWholeSubstring 18 18 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 9 9 +0.0% 1.00x
StringHasPrefixAscii 1438 1490 +3.6% 0.97x
StringHasPrefixUnicode 25267 25187 -0.3% 1.00x (?)
StringHasSuffixAscii 1541 1592 +3.3% 0.97x
StringHasSuffixUnicode 76297 76459 +0.2% 1.00x (?)
StringInterpolation 8294 8383 +1.1% 0.99x (?)
StringMatch 6789 6943 +2.3% 0.98x
StringRemoveDupes 1074 1080 +0.6% 0.99x (?)
StringUTF16Builder 2146 2161 +0.7% 0.99x (?)
StringWalk 1308 1324 +1.2% 0.99x
StringWithCString 38476 39661 +3.1% 0.97x
StringWordBuilder 1497 1537 +2.7% 0.97x
StringWordBuilderReservingCapacity 1148 1185 +3.2% 0.97x
SubstringComparable 1848 1865 +0.9% 0.99x (?)
SubstringEqualString 1899 1905 +0.3% 1.00x (?)
SubstringEquatable 2827 2835 +0.3% 1.00x (?)
SubstringFromLongString 9 9 +0.0% 1.00x
SubstringFromLongStringGeneric 66 66 +0.0% 1.00x
SuffixAnyCollection 25 25 +0.0% 1.00x
SuffixAnyCollectionLazy 19553 19425 -0.7% 1.01x (?)
SuffixAnySeqCRangeIter 3412 3420 +0.2% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3412 3415 +0.1% 1.00x (?)
SuffixAnySeqCntRange 21 21 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 21 21 +0.0% 1.00x
SuffixAnySequence 4577 4582 +0.1% 1.00x (?)
SuffixAnySequenceLazy 4611 4616 +0.1% 1.00x (?)
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 3368 3345 -0.7% 1.01x (?)
SuffixSequenceLazy 3370 3337 -1.0% 1.01x (?)
SumUsingReduce 87 91 +4.6% 0.96x
SumUsingReduceInto 87 91 +4.6% 0.96x
SuperChars 36949 36902 -0.1% 1.00x (?)
TwoSum 884 894 +1.1% 0.99x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 286 286 +0.0% 1.00x
WordCountHistogramASCII 7362 7468 +1.4% 0.99x
WordCountHistogramUTF16 46518 47539 +2.2% 0.98x (?)
WordCountUniqueASCII 1621 1665 +2.7% 0.97x (?)
WordCountUniqueUTF16 19355 19447 +0.5% 1.00x (?)
WordSplitASCII 19269 18908 -1.9% 1.02x (?)
WordSplitUTF16 19641 19596 -0.2% 1.00x (?)
XorLoop 335 335 +0.0% 1.00x

Unoptimized (Onone)

Regression (38)
TEST OLD NEW DELTA SPEEDUP
LazilyFilteredRange 421229 520540 +23.6% 0.81x
CharIteration_korean_unicodeScalars_Backwards 252752 304279 +20.4% 0.83x
CharIndexing_chinese_unicodeScalars_Backwards 259109 311012 +20.0% 0.83x
CharIteration_chinese_unicodeScalars_Backwards 197384 235805 +19.5% 0.84x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 46027 54607 +18.6% 0.84x
CharIndexing_russian_unicodeScalars 266616 309750 +16.2% 0.86x
CharIndexing_punctuated_unicodeScalars_Backwards 74461 85867 +15.3% 0.87x
CharIndexing_punctuatedJapanese_unicodeScalars 55885 64398 +15.2% 0.87x
CharIndexing_korean_unicodeScalars_Backwards 332551 381132 +14.6% 0.87x
CharIndexing_chinese_unicodeScalars 243493 277886 +14.1% 0.88x
CharIndexing_ascii_unicodeScalars_Backwards 341105 389230 +14.1% 0.88x
Calculator 1430 1631 +14.1% 0.88x
CharIndexing_japanese_unicodeScalars 383818 437565 +14.0% 0.88x
CharIndexing_ascii_unicodeScalars 320241 363266 +13.4% 0.88x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 59457 67107 +12.9% 0.89x (?)
CharIndexing_tweet_unicodeScalars_Backwards 685288 771840 +12.6% 0.89x
CharIndexing_tweet_unicodeScalars 644056 724885 +12.5% 0.89x
CharIteration_ascii_unicodeScalars_Backwards 262695 293527 +11.7% 0.89x (?)
CharIndexing_punctuated_unicodeScalars 72446 80751 +11.5% 0.90x (?)
StringEqualPointerComparison 2762 3078 +11.4% 0.90x
CharIndexing_korean_unicodeScalars 319023 355264 +11.4% 0.90x
ArrayPlusEqualSingleElementCollection 205864 228670 +11.1% 0.90x
CharIteration_russian_unicodeScalars_Backwards 218043 241539 +10.8% 0.90x (?)
CharIteration_punctuated_unicodeScalars_Backwards 58301 64378 +10.4% 0.91x (?)
CharIteration_tweet_unicodeScalars_Backwards 521234 575302 +10.4% 0.91x (?)
CharIteration_japanese_unicodeScalars_Backwards 314759 346237 +10.0% 0.91x (?)
CharIndexing_utf16_unicodeScalars 271212 297460 +9.7% 0.91x (?)
CharIteration_utf16_unicodeScalars_Backwards 221526 240259 +8.5% 0.92x
WordCountUniqueUTF16 28267 30373 +7.5% 0.93x (?)
RangeReplaceableCollectionPlusDefault 7006 7527 +7.4% 0.93x
PopFrontUnsafePointer 9559 10229 +7.0% 0.93x (?)
OpenClose 488 521 +6.8% 0.94x
CharIndexing_russian_unicodeScalars_Backwards 306958 327665 +6.7% 0.94x (?)
StringWalk 11115 11804 +6.2% 0.94x
ObjectiveCBridgeToNSDictionary 48408 51259 +5.9% 0.94x
CStringLongNonAscii 1859 1965 +5.7% 0.95x
CharIndexing_japanese_unicodeScalars_Backwards 441636 466445 +5.6% 0.95x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7318 7724 +5.5% 0.95x (?)
Improvement (5)
TEST OLD NEW DELTA SPEEDUP
DropFirstAnyCollectionLazy 97022 89229 -8.0% 1.09x (?)
UTF8Decode 28779 27013 -6.1% 1.07x (?)
SuffixAnyCollectionLazy 31649 29727 -6.1% 1.06x (?)
DictionaryBridge 1943 1833 -5.7% 1.06x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 31616 30022 -5.0% 1.05x (?)
No Changes (319)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4555 4572 +0.4% 1.00x (?)
AnyHashableWithAClass 77225 76704 -0.7% 1.01x
Array2D 567357 568243 +0.2% 1.00x (?)
ArrayAppend 4174 4173 -0.0% 1.00x (?)
ArrayAppendArrayOfInt 726 728 +0.3% 1.00x (?)
ArrayAppendAscii 35751 35923 +0.5% 1.00x
ArrayAppendFromGeneric 731 731 +0.0% 1.00x
ArrayAppendGenericStructs 1276 1272 -0.3% 1.00x (?)
ArrayAppendLatin1 57383 56959 -0.7% 1.01x
ArrayAppendLazyMap 149868 151252 +0.9% 0.99x
ArrayAppendOptionals 1272 1272 +0.0% 1.00x
ArrayAppendRepeatCol 153308 152818 -0.3% 1.00x
ArrayAppendReserved 3835 3837 +0.1% 1.00x (?)
ArrayAppendSequence 125510 131725 +5.0% 0.95x
ArrayAppendStrings 13774 13826 +0.4% 1.00x (?)
ArrayAppendToFromGeneric 729 730 +0.1% 1.00x (?)
ArrayAppendToGeneric 732 733 +0.1% 1.00x (?)
ArrayAppendUTF16 57511 57243 -0.5% 1.00x (?)
ArrayInClass 5552 5572 +0.4% 1.00x
ArrayLiteral 1594 1599 +0.3% 1.00x
ArrayOfGenericPOD2 1062 1016 -4.3% 1.05x
ArrayOfGenericRef 9459 9124 -3.5% 1.04x (?)
ArrayOfPOD 758 753 -0.7% 1.01x
ArrayOfRef 8719 8559 -1.8% 1.02x (?)
ArrayPlusEqualArrayOfInt 727 729 +0.3% 1.00x (?)
ArrayPlusEqualFiveElementCollection 208866 208988 +0.1% 1.00x (?)
ArrayPlusEqualThreeElements 8286 8388 +1.2% 0.99x (?)
ArraySubscript 73265 72797 -0.6% 1.01x
ArrayValueProp 3257 3255 -0.1% 1.00x (?)
ArrayValueProp2 14260 14337 +0.5% 0.99x (?)
ArrayValueProp3 3696 3693 -0.1% 1.00x (?)
ArrayValueProp4 3654 3656 +0.1% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 5298 5148 -2.8% 1.03x (?)
BitCount 2027 2027 +0.0% 1.00x
ByteSwap 3537 3523 -0.4% 1.00x
COWTree 10156 10076 -0.8% 1.01x (?)
CSVParsing 2206811 2238636 +1.4% 0.99x (?)
CSVParsingAlt 1171490 1191063 +1.7% 0.98x (?)
CSVParsingAltIndices 2260798 2233538 -1.2% 1.01x (?)
CStringLongAscii 4275 4132 -3.3% 1.03x
CStringShortAscii 6789 6791 +0.0% 1.00x (?)
CaptureProp 228570 229425 +0.4% 1.00x
CharIndexing_utf16_unicodeScalars_Backwards 304853 317616 +4.2% 0.96x (?)
CharIteration_ascii_unicodeScalars 139776 138738 -0.7% 1.01x (?)
CharIteration_chinese_unicodeScalars 105200 104911 -0.3% 1.00x (?)
CharIteration_japanese_unicodeScalars 166637 166032 -0.4% 1.00x (?)
CharIteration_korean_unicodeScalars 134696 134770 +0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 24824 24800 -0.1% 1.00x (?)
CharIteration_punctuated_unicodeScalars 31145 31676 +1.7% 0.98x (?)
CharIteration_russian_unicodeScalars 115706 115503 -0.2% 1.00x (?)
CharIteration_tweet_unicodeScalars 274291 274052 -0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars 118048 118660 +0.5% 0.99x (?)
CharacterLiteralsLarge 5386 5335 -0.9% 1.01x (?)
CharacterLiteralsSmall 670 685 +2.2% 0.98x
CharacterPropertiesFetch 4835 4974 +2.9% 0.97x (?)
CharacterPropertiesPrecomputed 3785 3837 +1.4% 0.99x (?)
CharacterPropertiesStashed 2026 2061 +1.7% 0.98x (?)
CharacterPropertiesStashedMemo 4581 4786 +4.5% 0.96x (?)
Chars 35745 35888 +0.4% 1.00x
ClassArrayGetter 878 882 +0.5% 1.00x
Combos 1843 1869 +1.4% 0.99x (?)
DictOfArraysToArrayOfDicts 3030 3111 +2.7% 0.97x (?)
Dictionary 2291 2373 +3.6% 0.97x
Dictionary2 2578 2594 +0.6% 0.99x (?)
Dictionary2OfObjects 5028 5109 +1.6% 0.98x (?)
Dictionary3 1142 1138 -0.4% 1.00x (?)
Dictionary3OfObjects 2010 1984 -1.3% 1.01x (?)
Dictionary4 1063 1085 +2.1% 0.98x
Dictionary4OfObjects 1630 1660 +1.8% 0.98x (?)
DictionaryGroup 3797 3798 +0.0% 1.00x (?)
DictionaryGroupOfObjects 6706 6668 -0.6% 1.01x (?)
DictionaryLiteral 7632 7664 +0.4% 1.00x (?)
DictionaryOfObjects 5582 5536 -0.8% 1.01x (?)
DictionaryRemove 16277 16442 +1.0% 0.99x
DictionaryRemoveOfObjects 45259 44460 -1.8% 1.02x (?)
DictionarySubscriptDefaultMutation 1896 1884 -0.6% 1.01x
DictionarySubscriptDefaultMutationArray 2117 2114 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 8163 8083 -1.0% 1.01x (?)
DictionarySubscriptDefaultMutationOfObjects 5180 5092 -1.7% 1.02x (?)
DictionarySwap 4655 4718 +1.4% 0.99x
DictionarySwapOfObjects 20179 20231 +0.3% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 12359 12253 -0.9% 1.01x
DropFirstAnySeqCRangeIter 18473 18447 -0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 18403 18237 -0.9% 1.01x
DropFirstAnySeqCntRange 12381 12250 -1.1% 1.01x (?)
DropFirstAnySeqCntRangeLazy 12330 12226 -0.8% 1.01x (?)
DropFirstAnySequence 9729 9635 -1.0% 1.01x
DropFirstAnySequenceLazy 9775 9643 -1.4% 1.01x
DropFirstArray 3558 3589 +0.9% 0.99x (?)
DropFirstArrayLazy 22516 22640 +0.6% 0.99x
DropFirstCountableRange 291 291 +0.0% 1.00x
DropFirstCountableRangeLazy 23428 23358 -0.3% 1.00x (?)
DropFirstSequence 9458 9355 -1.1% 1.01x
DropFirstSequenceLazy 9516 9381 -1.4% 1.01x (?)
DropLastAnyCollection 4093 4095 +0.0% 1.00x (?)
DropLastAnyCollectionLazy 32057 30638 -4.4% 1.05x (?)
DropLastAnySeqCRangeIter 33589 33559 -0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 33734 33693 -0.1% 1.00x (?)
DropLastAnySeqCntRange 4116 4090 -0.6% 1.01x (?)
DropLastAnySeqCntRangeLazy 4133 4091 -1.0% 1.01x (?)
DropLastAnySequence 25889 25911 +0.1% 1.00x (?)
DropLastAnySequenceLazy 26009 25914 -0.4% 1.00x (?)
DropLastCountableRange 100 100 +0.0% 1.00x
DropLastCountableRangeLazy 7855 7784 -0.9% 1.01x (?)
DropLastSequence 25829 25883 +0.2% 1.00x (?)
DropLastSequenceLazy 25944 25863 -0.3% 1.00x (?)
DropWhileAnyCollection 15742 15588 -1.0% 1.01x
DropWhileAnyCollectionLazy 17086 16880 -1.2% 1.01x
DropWhileAnySeqCRangeIter 19975 20903 +4.6% 0.96x
DropWhileAnySeqCRangeIterLazy 16951 16781 -1.0% 1.01x
DropWhileAnySeqCntRange 15785 15685 -0.6% 1.01x
DropWhileAnySeqCntRangeLazy 17026 16871 -0.9% 1.01x (?)
DropWhileAnySequence 11052 10987 -0.6% 1.01x
DropWhileAnySequenceLazy 9082 9057 -0.3% 1.00x (?)
DropWhileArrayLazy 12324 12348 +0.2% 1.00x
DropWhileCountableRange 3780 3729 -1.3% 1.01x
DropWhileCountableRangeLazy 16626 16552 -0.4% 1.00x (?)
DropWhileSequence 10767 10766 -0.0% 1.00x (?)
DropWhileSequenceLazy 8756 8718 -0.4% 1.00x
EqualStringSubstring 427 429 +0.5% 1.00x
EqualSubstringString 428 428 +0.0% 1.00x
EqualSubstringSubstring 428 428 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 434 437 +0.7% 0.99x
ErrorHandling 6331 6280 -0.8% 1.01x (?)
ExclusivityGlobal 161 167 +3.7% 0.96x
ExclusivityIndependent 62 62 +0.0% 1.00x
FilterEvenUsingReduce 3342 3355 +0.4% 1.00x (?)
FilterEvenUsingReduceInto 1772 1781 +0.5% 0.99x (?)
FrequenciesUsingReduce 9443 9668 +2.4% 0.98x (?)
FrequenciesUsingReduceInto 5006 4964 -0.8% 1.01x (?)
Hanoi 17572 18291 +4.1% 0.96x
HashTest 15041 15125 +0.6% 0.99x (?)
Histogram 5906 5909 +0.1% 1.00x (?)
Integrate 740 737 -0.4% 1.00x (?)
IterateData 7066 7016 -0.7% 1.01x (?)
Join 986 990 +0.4% 1.00x
LazilyFilteredArrayContains 691529 690935 -0.1% 1.00x (?)
LazilyFilteredArrays 1307543 1315458 +0.6% 0.99x
LessSubstringSubstring 427 428 +0.2% 1.00x (?)
LessSubstringSubstringGenericComparable 433 435 +0.5% 1.00x
LinkedList 28757 28743 -0.0% 1.00x (?)
LuhnAlgoEager 4619 4639 +0.4% 1.00x (?)
LuhnAlgoLazy 4545 4741 +4.3% 0.96x (?)
MapReduce 24416 24569 +0.6% 0.99x (?)
MapReduceAnyCollection 24439 24618 +0.7% 0.99x
MapReduceAnyCollectionShort 34656 36115 +4.2% 0.96x (?)
MapReduceClass 28693 28756 +0.2% 1.00x (?)
MapReduceClassShort 38136 39469 +3.5% 0.97x
MapReduceLazyCollection 20716 20871 +0.7% 0.99x
MapReduceLazyCollectionShort 29699 30376 +2.3% 0.98x (?)
MapReduceLazySequence 16446 16498 +0.3% 1.00x (?)
MapReduceSequence 27489 27431 -0.2% 1.00x (?)
MapReduceShort 34596 35749 +3.3% 0.97x
MapReduceShortString 218 214 -1.8% 1.02x (?)
MapReduceString 1717 1736 +1.1% 0.99x (?)
Memset 40141 40155 +0.0% 1.00x (?)
MonteCarloE 809858 804193 -0.7% 1.01x (?)
MonteCarloPi 3538997 3508898 -0.9% 1.01x
NSDictionaryCastToSwift 6089 6144 +0.9% 0.99x (?)
NSError 641 647 +0.9% 0.99x (?)
NSStringConversion 330 332 +0.6% 0.99x
NibbleSort 275884 272618 -1.2% 1.01x
NopDeinit 146780 151786 +3.4% 0.97x (?)
ObjectAllocation 1208 1224 +1.3% 0.99x
ObjectiveCBridgeFromNSArrayAnyObject 20470 20621 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 35939 37013 +3.0% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 110963 113913 +2.7% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObject 57450 58988 +2.7% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 6210 6342 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 66301 68792 +3.8% 0.96x (?)
ObjectiveCBridgeFromNSString 2825 2808 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2389 2420 +1.3% 0.99x (?)
ObjectiveCBridgeStubDataAppend 3978 3955 -0.6% 1.01x (?)
ObjectiveCBridgeStubDateMutation 539 539 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 23993 24815 +3.4% 0.97x (?)
ObjectiveCBridgeStubFromNSDate 4069 4124 +1.4% 0.99x
ObjectiveCBridgeStubFromNSString 825 840 +1.8% 0.98x (?)
ObjectiveCBridgeStubFromNSStringRef 178 176 -1.1% 1.01x
ObjectiveCBridgeStubNSDataAppend 2779 2656 -4.4% 1.05x (?)
ObjectiveCBridgeStubNSDateMutationRef 14263 14183 -0.6% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 25913 25851 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14059 14237 +1.3% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3105 3126 +0.7% 0.99x (?)
ObjectiveCBridgeStubToNSString 1408 1410 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 142 140 -1.4% 1.01x
ObjectiveCBridgeStubURLAppendPath 310950 309418 -0.5% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 306750 310489 +1.2% 0.99x (?)
ObjectiveCBridgeToNSArray 26188 26451 +1.0% 0.99x (?)
ObjectiveCBridgeToNSSet 41899 41812 -0.2% 1.00x (?)
ObjectiveCBridgeToNSString 1206 1206 +0.0% 1.00x
ObserverClosure 5710 5757 +0.8% 0.99x (?)
ObserverForwarderStruct 3879 3886 +0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 7019 7033 +0.2% 1.00x (?)
ObserverUnappliedMethod 7388 7382 -0.1% 1.00x (?)
PartialApplyDynamicType 37299 36932 -1.0% 1.01x (?)
Phonebook 18407 19121 +3.9% 0.96x
PointerArithmetics 102756 107932 +5.0% 0.95x
PolymorphicCalls 5378 5500 +2.3% 0.98x (?)
PopFrontArray 4139 4154 +0.4% 1.00x (?)
PopFrontArrayGeneric 5100 5200 +2.0% 0.98x
PrefixAnyCollection 12291 12289 -0.0% 1.00x (?)
PrefixAnyCollectionLazy 95437 97075 +1.7% 0.98x (?)
PrefixAnySeqCRangeIter 14796 14773 -0.2% 1.00x (?)
PrefixAnySeqCRangeIterLazy 14781 14790 +0.1% 1.00x (?)
PrefixAnySeqCntRange 12291 12245 -0.4% 1.00x (?)
PrefixAnySeqCntRangeLazy 12374 12223 -1.2% 1.01x (?)
PrefixAnySequence 8065 8076 +0.1% 1.00x (?)
PrefixAnySequenceLazy 8099 8075 -0.3% 1.00x
PrefixArray 3555 3580 +0.7% 0.99x (?)
PrefixArrayLazy 22524 22694 +0.8% 0.99x
PrefixCountableRange 291 291 +0.0% 1.00x
PrefixCountableRangeLazy 23539 23358 -0.8% 1.01x
PrefixSequence 7857 7816 -0.5% 1.01x (?)
PrefixSequenceLazy 8053 7872 -2.2% 1.02x
PrefixWhileAnyCollection 22570 22279 -1.3% 1.01x (?)
PrefixWhileAnyCollectionLazy 14312 14189 -0.9% 1.01x (?)
PrefixWhileAnySeqCRangeIter 29662 29681 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 14200 14023 -1.2% 1.01x (?)
PrefixWhileAnySeqCntRange 22580 22305 -1.2% 1.01x (?)
PrefixWhileAnySeqCntRangeLazy 14157 14157 +0.0% 1.00x
PrefixWhileAnySequence 23720 23812 +0.4% 1.00x
PrefixWhileAnySequenceLazy 8260 8208 -0.6% 1.01x
PrefixWhileArray 10307 10345 +0.4% 1.00x (?)
PrefixWhileArrayLazy 10690 10704 +0.1% 1.00x (?)
PrefixWhileCountableRange 10616 10461 -1.5% 1.01x
PrefixWhileCountableRangeLazy 14079 13993 -0.6% 1.01x (?)
PrefixWhileSequence 23423 23639 +0.9% 0.99x (?)
PrefixWhileSequenceLazy 8013 7976 -0.5% 1.00x
Prims 8770 8772 +0.0% 1.00x (?)
PrimsSplit 8638 8784 +1.7% 0.98x (?)
QueueConcrete 13509 13601 +0.7% 0.99x (?)
QueueGeneric 17042 17172 +0.8% 0.99x (?)
RC4 15052 14711 -2.3% 1.02x
RGBHistogram 24099 24230 +0.5% 0.99x (?)
RGBHistogramOfObjects 86365 86673 +0.4% 1.00x (?)
RangeAssignment 2423 2430 +0.3% 1.00x (?)
RangeIterationSigned 14970 14937 -0.2% 1.00x (?)
RangeIterationSigned64 34805 34894 +0.3% 1.00x (?)
RangeIterationUnsigned 31068 30953 -0.4% 1.00x (?)
RecursiveOwnedParameter 7025 6973 -0.7% 1.01x
ReversedArray 11703 11726 +0.2% 1.00x
ReversedBidirectional 37673 37667 -0.0% 1.00x (?)
ReversedDictionary 19850 20272 +2.1% 0.98x (?)
RomanNumbers 1060524 1041296 -1.8% 1.02x (?)
SetExclusiveOr 15492 15635 +0.9% 0.99x
SetExclusiveOr_OfObjects 37534 37781 +0.7% 0.99x (?)
SetIntersect 7325 7486 +2.2% 0.98x
SetIntersect_OfObjects 10890 11046 +1.4% 0.99x (?)
SetIsSubsetOf 1206 1216 +0.8% 0.99x
SetIsSubsetOf_OfObjects 1396 1394 -0.1% 1.00x (?)
SetUnion 10644 10718 +0.7% 0.99x (?)
SetUnion_OfObjects 26189 26430 +0.9% 0.99x (?)
SevenBoom 1495 1508 +0.9% 0.99x (?)
Sim2DArray 39128 39228 +0.3% 1.00x
SortLargeExistentials 14124 14219 +0.7% 0.99x
SortLettersInPlace 2531 2556 +1.0% 0.99x (?)
SortSortedStrings 1211 1200 -0.9% 1.01x (?)
SortStrings 2271 2253 -0.8% 1.01x
SortStringsUnicode 14595 14724 +0.9% 0.99x
StackPromo 78535 78845 +0.4% 1.00x (?)
StaticArray 2403 2411 +0.3% 1.00x (?)
StrComplexWalk 5786 5976 +3.3% 0.97x
StrToInt 51108 51973 +1.7% 0.98x
StringAdder 4262 4250 -0.3% 1.00x (?)
StringBuilder 6205 6203 -0.0% 1.00x (?)
StringBuilderLong 2441 2444 +0.1% 1.00x (?)
StringComparison_abnormal 1286 1308 +1.7% 0.98x
StringComparison_ascii 8545 8600 +0.6% 0.99x
StringComparison_emoji 3409 3459 +1.5% 0.99x
StringComparison_fastPrenormal 11811 12002 +1.6% 0.98x (?)
StringComparison_latin1 8485 8762 +3.3% 0.97x
StringComparison_longSharedPrefix 11736 11858 +1.0% 0.99x
StringComparison_nonBMPSlowestPrenormal 6259 6329 +1.1% 0.99x
StringComparison_slowerPrenormal 6087 6197 +1.8% 0.98x
StringComparison_zalgo 2546 2570 +0.9% 0.99x (?)
StringEdits 289233 297558 +2.9% 0.97x (?)
StringEnumRawValueInitialization 18561 18972 +2.2% 0.98x
StringFromLongWholeSubstring 20 20 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 178 178 +0.0% 1.00x
StringHasPrefixAscii 2739 2852 +4.1% 0.96x (?)
StringHasPrefixUnicode 27755 27831 +0.3% 1.00x (?)
StringHasSuffixAscii 2731 2850 +4.4% 0.96x
StringHasSuffixUnicode 79032 79139 +0.1% 1.00x (?)
StringInterpolation 11971 12267 +2.5% 0.98x (?)
StringMatch 29771 30274 +1.7% 0.98x
StringRemoveDupes 1258 1259 +0.1% 1.00x (?)
StringUTF16Builder 7044 6891 -2.2% 1.02x (?)
StringWithCString 35281 33615 -4.7% 1.05x
StringWordBuilder 2223 2315 +4.1% 0.96x
StringWordBuilderReservingCapacity 1956 2035 +4.0% 0.96x
SubstringComparable 3689 3737 +1.3% 0.99x (?)
SubstringEqualString 3131 3283 +4.9% 0.95x (?)
SubstringEquatable 6992 7327 +4.8% 0.95x (?)
SubstringFromLongString 22 22 +0.0% 1.00x
SubstringFromLongStringGeneric 93 91 -2.2% 1.02x
SuffixAnyCollection 4110 4087 -0.6% 1.01x (?)
SuffixAnySeqCRangeIter 30202 30147 -0.2% 1.00x (?)
SuffixAnySeqCRangeIterLazy 30240 30126 -0.4% 1.00x
SuffixAnySeqCntRange 4110 4081 -0.7% 1.01x (?)
SuffixAnySeqCntRangeLazy 4117 4093 -0.6% 1.01x (?)
SuffixAnySequence 22453 22503 +0.2% 1.00x (?)
SuffixAnySequenceLazy 22429 22503 +0.3% 1.00x (?)
SuffixCountableRange 100 100 +0.0% 1.00x
SuffixCountableRangeLazy 7857 7776 -1.0% 1.01x (?)
SuffixSequence 22319 22410 +0.4% 1.00x
SuffixSequenceLazy 22386 22437 +0.2% 1.00x (?)
SumUsingReduce 152759 153676 +0.6% 0.99x
SumUsingReduceInto 152156 152364 +0.1% 1.00x (?)
SuperChars 193471 193778 +0.2% 1.00x (?)
TwoSum 3524 3580 +1.6% 0.98x
TypeFlood 140 144 +2.9% 0.97x (?)
Walsh 10978 10798 -1.6% 1.02x
WordCountHistogramASCII 43008 44240 +2.9% 0.97x
WordCountHistogramUTF16 93977 93449 -0.6% 1.01x (?)
WordCountUniqueASCII 7104 7217 +1.6% 0.98x
WordSplitASCII 23170 22838 -1.4% 1.01x (?)
WordSplitUTF16 24027 24174 +0.6% 0.99x (?)
XorLoop 20960 20963 +0.0% 1.00x (?)
Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 8-Core Intel Xeon E5
  Processor Speed: 3 GHz
  Number of Processors: 1
  Total Number of Cores: 8
  L2 Cache (per Core): 256 KB
  L3 Cache: 25 MB
  Memory: 64 GB

@lorentey
Copy link
Member Author

lorentey commented Feb 8, 2018

That's more like it! The Dictionary4 slowdown is because of extra ARC traffic around item.hashValue, which I believe is there to protect the dictionary storage against a possible asymmetric release in _combineHashValues.

Adding @effects(readonly) to the definition of _combineHashValues will make the extra retain/release go away, restoring performance. Unfortunately, I'm not sure how we can promise the same thing in #14442's new interface.

@lorentey
Copy link
Member Author

lorentey commented Feb 8, 2018

@swift-ci please benchmark

2 similar comments
@xwu
Copy link
Collaborator

xwu commented Feb 9, 2018

@swift-ci please benchmark

@xwu
Copy link
Collaborator

xwu commented Feb 9, 2018

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Feb 9, 2018

Build comment file:

Optimized (O)

Regression (10)
TEST OLD NEW DELTA SPEEDUP
Dictionary4 147 184 +25.2% 0.80x
Dictionary4OfObjects 199 242 +21.6% 0.82x
DictionarySwap 482 552 +14.5% 0.87x
Integrate 217 242 +11.5% 0.90x
SetIntersect 331 363 +9.7% 0.91x
MapReduceAnyCollection 371 399 +7.5% 0.93x
MapReduce 399 427 +7.0% 0.93x
DictionaryGroup 133 141 +6.0% 0.94x
StringWithCString 42561 45063 +5.9% 0.94x
WordCountUniqueUTF16 21824 23091 +5.8% 0.95x (?)
Improvement (7)
TEST OLD NEW DELTA SPEEDUP
Sim2DArray 603 411 -31.8% 1.47x
StaticArray 6 5 -16.7% 1.20x
RangeIterationSigned 200 171 -14.5% 1.17x
LazilyFilteredRange 4322 3950 -8.6% 1.09x
SubstringFromLongStringGeneric 76 70 -7.9% 1.09x
Hanoi 3770 3510 -6.9% 1.07x
ReversedDictionary 130 122 -6.2% 1.07x
No Changes (345)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3633 3613 -0.6% 1.01x (?)
AnyHashableWithAClass 69320 69720 +0.6% 0.99x (?)
Array2D 2522 2520 -0.1% 1.00x (?)
ArrayAppend 1013 1016 +0.3% 1.00x (?)
ArrayAppendArrayOfInt 795 795 +0.0% 1.00x
ArrayAppendAscii 13606 13661 +0.4% 1.00x (?)
ArrayAppendFromGeneric 785 783 -0.3% 1.00x (?)
ArrayAppendGenericStructs 1424 1424 +0.0% 1.00x
ArrayAppendLatin1 38540 38143 -1.0% 1.01x
ArrayAppendLazyMap 1329 1339 +0.8% 0.99x (?)
ArrayAppendOptionals 1427 1397 -2.1% 1.02x (?)
ArrayAppendRepeatCol 1339 1337 -0.1% 1.00x (?)
ArrayAppendReserved 752 755 +0.4% 1.00x (?)
ArrayAppendSequence 1124 1121 -0.3% 1.00x (?)
ArrayAppendStrings 15214 15199 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 786 779 -0.9% 1.01x (?)
ArrayAppendToGeneric 785 781 -0.5% 1.01x (?)
ArrayAppendUTF16 37907 37890 -0.0% 1.00x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 151 +0.7% 0.99x (?)
ArrayOfGenericRef 4364 4365 +0.0% 1.00x (?)
ArrayOfPOD 183 183 +0.0% 1.00x
ArrayOfRef 4342 4344 +0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 793 790 -0.4% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5484 5536 +0.9% 0.99x (?)
ArrayPlusEqualSingleElementCollection 1019 1018 -0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1655 1647 -0.5% 1.00x (?)
ArraySubscript 1525 1521 -0.3% 1.00x (?)
ArrayValueProp 8 8 +0.0% 1.00x
ArrayValueProp2 8 8 +0.0% 1.00x
ArrayValueProp3 8 8 +0.0% 1.00x
ArrayValueProp4 8 8 +0.0% 1.00x
BinaryFloatingPointConversionFromBinaryInteger 46 48 +4.3% 0.96x
BitCount 211 202 -4.3% 1.04x
ByteSwap 97 100 +3.1% 0.97x
COWTree 3612 3605 -0.2% 1.00x (?)
CSVParsing 800956 798528 -0.3% 1.00x (?)
CSVParsingAlt 719797 727281 +1.0% 0.99x (?)
CSVParsingAltIndices 357141 357808 +0.2% 1.00x (?)
CStringLongAscii 4768 4929 +3.4% 0.97x
CStringLongNonAscii 2167 2186 +0.9% 0.99x (?)
CStringShortAscii 4716 4728 +0.3% 1.00x (?)
Calculator 446 442 -0.9% 1.01x
CaptureProp 8875 9188 +3.5% 0.97x
CharIndexing_ascii_unicodeScalars 15816 15817 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 14419 14412 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 11977 11971 -0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 10924 10926 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 18932 18933 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 17247 17248 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 15338 15329 -0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 13984 13977 -0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2872 2872 +0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2642 2641 -0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3592 3588 -0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3297 3295 -0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars 13177 13182 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 12018 12013 -0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 31563 31557 -0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 28518 28523 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 20817 20827 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 21352 21359 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 20606 20706 +0.5% 1.00x
CharIteration_ascii_unicodeScalars_Backwards 14266 14258 -0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 15617 15670 +0.3% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 10811 10809 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 24717 24805 +0.4% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 17065 17063 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 20037 20095 +0.3% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 13830 13824 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3713 3686 -0.7% 1.01x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2617 2615 -0.1% 1.00x (?)
CharIteration_punctuated_unicodeScalars 4634 4663 +0.6% 0.99x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3267 3263 -0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 17176 17281 +0.6% 0.99x
CharIteration_russian_unicodeScalars_Backwards 11891 11884 -0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars 40711 40800 +0.2% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 28134 28136 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 27262 27212 -0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 17953 17529 -2.4% 1.02x
CharacterLiteralsLarge 6081 6063 -0.3% 1.00x (?)
CharacterLiteralsSmall 411 403 -1.9% 1.02x (?)
CharacterPropertiesFetch 4642 4656 +0.3% 1.00x (?)
CharacterPropertiesPrecomputed 1076 1075 -0.1% 1.00x (?)
CharacterPropertiesStashed 1642 1649 +0.4% 1.00x (?)
CharacterPropertiesStashedMemo 1622 1614 -0.5% 1.00x (?)
Chars 970 968 -0.2% 1.00x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 451 452 +0.2% 1.00x (?)
DictOfArraysToArrayOfDicts 787 790 +0.4% 1.00x (?)
Dictionary 504 530 +5.2% 0.95x
Dictionary2 1613 1625 +0.7% 0.99x (?)
Dictionary2OfObjects 2962 2959 -0.1% 1.00x (?)
Dictionary3 235 244 +3.8% 0.96x
Dictionary3OfObjects 672 675 +0.4% 1.00x (?)
DictionaryBridge 2007 1968 -1.9% 1.02x (?)
DictionaryGroupOfObjects 1902 1922 +1.1% 0.99x (?)
DictionaryLiteral 1609 1605 -0.2% 1.00x (?)
DictionaryOfObjects 2172 2195 +1.1% 0.99x (?)
DictionaryRemove 2829 2858 +1.0% 0.99x (?)
DictionaryRemoveOfObjects 23689 23845 +0.7% 0.99x
DictionarySubscriptDefaultMutation 152 151 -0.7% 1.01x (?)
DictionarySubscriptDefaultMutationArray 489 498 +1.8% 0.98x
DictionarySubscriptDefaultMutationArrayOfObjects 3823 3809 -0.4% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1388 1396 +0.6% 0.99x (?)
DictionarySwapOfObjects 7431 7436 +0.1% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 66136 65433 -1.1% 1.01x (?)
DropFirstAnySeqCRangeIter 18135 18001 -0.7% 1.01x
DropFirstAnySeqCRangeIterLazy 18142 18002 -0.8% 1.01x
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 4374 4338 -0.8% 1.01x
DropFirstAnySequenceLazy 4377 4340 -0.8% 1.01x
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 35 35 +0.0% 1.00x
DropFirstCountableRangeLazy 35 35 +0.0% 1.00x
DropFirstSequence 2698 2697 -0.0% 1.00x (?)
DropFirstSequenceLazy 2786 2791 +0.2% 1.00x (?)
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 22066 21754 -1.4% 1.01x (?)
DropLastAnySeqCRangeIter 3502 3513 +0.3% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3499 3504 +0.1% 1.00x (?)
DropLastAnySeqCntRange 23 23 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 23 23 +0.0% 1.00x
DropLastAnySequence 5151 5117 -0.7% 1.01x (?)
DropLastAnySequenceLazy 5266 5229 -0.7% 1.01x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 688 660 -4.1% 1.04x
DropLastSequenceLazy 687 659 -4.1% 1.04x
DropWhileAnyCollection 100 99 -1.0% 1.01x
DropWhileAnyCollectionLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCRangeIter 14786 14694 -0.6% 1.01x
DropWhileAnySeqCRangeIterLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 147 147 +0.0% 1.00x
DropWhileAnySequence 4719 4698 -0.4% 1.00x
DropWhileAnySequenceLazy 1855 1854 -0.1% 1.00x (?)
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1339 1340 +0.1% 1.00x (?)
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 433 431 -0.5% 1.00x (?)
EqualSubstringString 434 431 -0.7% 1.01x (?)
EqualSubstringSubstring 433 431 -0.5% 1.00x (?)
EqualSubstringSubstringGenericEquatable 432 431 -0.2% 1.00x (?)
ErrorHandling 2312 2354 +1.8% 0.98x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1307 1309 +0.2% 1.00x (?)
FilterEvenUsingReduceInto 148 149 +0.7% 0.99x (?)
FrequenciesUsingReduce 6714 6784 +1.0% 0.99x (?)
FrequenciesUsingReduceInto 3154 3163 +0.3% 1.00x (?)
HashTest 1768 1751 -1.0% 1.01x (?)
Histogram 323 333 +3.1% 0.97x
IterateData 1424 1382 -2.9% 1.03x
Join 372 370 -0.5% 1.01x (?)
LazilyFilteredArrayContains 37456 38646 +3.2% 0.97x
LazilyFilteredArrays 64915 65082 +0.3% 1.00x (?)
LessSubstringSubstring 433 431 -0.5% 1.00x (?)
LessSubstringSubstringGenericComparable 433 432 -0.2% 1.00x (?)
LinkedList 7542 7549 +0.1% 1.00x (?)
LuhnAlgoEager 584 587 +0.5% 0.99x (?)
LuhnAlgoLazy 582 586 +0.7% 0.99x (?)
MapReduceAnyCollectionShort 2067 2077 +0.5% 1.00x (?)
MapReduceClass 3060 3029 -1.0% 1.01x (?)
MapReduceClassShort 4588 4614 +0.6% 0.99x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 453 453 +0.0% 1.00x
MapReduceShort 2022 2040 +0.9% 0.99x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 81 82 +1.2% 0.99x
Memset 215 216 +0.5% 1.00x (?)
MonteCarloE 10498 10481 -0.2% 1.00x (?)
MonteCarloPi 42875 42992 +0.3% 1.00x (?)
NSDictionaryCastToSwift 5335 5303 -0.6% 1.01x (?)
NSError 304 301 -1.0% 1.01x (?)
NSStringConversion 325 324 -0.3% 1.00x (?)
NibbleSort 4119 4118 -0.0% 1.00x (?)
NopDeinit 23761 23185 -2.4% 1.02x
ObjectAllocation 183 183 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 19791 19454 -1.7% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3921 3920 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 36926 37809 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 33696 32557 -3.4% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 118063 122575 +3.8% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObject 58443 58664 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4222 4155 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 69659 68303 -1.9% 1.02x (?)
ObjectiveCBridgeFromNSString 1311 1308 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2360 2350 -0.4% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3887 3901 +0.4% 1.00x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 25277 25807 +2.1% 0.98x (?)
ObjectiveCBridgeStubFromNSDate 4132 4245 +2.7% 0.97x (?)
ObjectiveCBridgeStubFromNSString 854 871 +2.0% 0.98x (?)
ObjectiveCBridgeStubFromNSStringRef 155 155 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2516 2500 -0.6% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 13111 13058 -0.4% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 28644 28580 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14657 14896 +1.6% 0.98x (?)
ObjectiveCBridgeStubToNSDateRef 3408 3395 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1540 1542 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 115 115 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 323823 316448 -2.3% 1.02x (?)
ObjectiveCBridgeStubURLAppendPathRef 331158 320199 -3.3% 1.03x (?)
ObjectiveCBridgeToNSArray 28747 28648 -0.3% 1.00x (?)
ObjectiveCBridgeToNSDictionary 54289 51913 -4.4% 1.05x (?)
ObjectiveCBridgeToNSSet 44723 43834 -2.0% 1.02x (?)
ObjectiveCBridgeToNSString 1314 1312 -0.2% 1.00x (?)
ObserverClosure 2161 2157 -0.2% 1.00x (?)
ObserverForwarderStruct 995 993 -0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 3720 3749 +0.8% 0.99x (?)
ObserverUnappliedMethod 2357 2362 +0.2% 1.00x (?)
OpenClose 269 257 -4.5% 1.05x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 4136 4065 -1.7% 1.02x
PointerArithmetics 31496 31491 -0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1867 1864 -0.2% 1.00x (?)
PopFrontArrayGeneric 1882 1884 +0.1% 1.00x (?)
PopFrontUnsafePointer 9015 8774 -2.7% 1.03x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 65988 65215 -1.2% 1.01x (?)
PrefixAnySeqCRangeIter 14213 14090 -0.9% 1.01x (?)
PrefixAnySeqCRangeIterLazy 14211 14094 -0.8% 1.01x (?)
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 3780 3796 +0.4% 1.00x (?)
PrefixAnySequenceLazy 3783 3790 +0.2% 1.00x
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 1325 1324 -0.1% 1.00x (?)
PrefixSequenceLazy 1413 1413 +0.0% 1.00x
PrefixWhileAnyCollection 146 147 +0.7% 0.99x (?)
PrefixWhileAnyCollectionLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9278 9287 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCntRange 142 142 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 106 106 +0.0% 1.00x
PrefixWhileAnySequence 10399 10394 -0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 1392 1391 -0.1% 1.00x (?)
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 53 53 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 357 375 +5.0% 0.95x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 751 776 +3.3% 0.97x
PrimsSplit 755 778 +3.0% 0.97x
QueueConcrete 1308 1308 +0.0% 1.00x
QueueGeneric 1160 1161 +0.1% 1.00x (?)
RC4 165 165 +0.0% 1.00x
RGBHistogram 2909 3019 +3.8% 0.96x
RGBHistogramOfObjects 23763 23830 +0.3% 1.00x (?)
RangeAssignment 351 366 +4.3% 0.96x (?)
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 978 975 -0.3% 1.00x (?)
RecursiveOwnedParameter 2346 2373 +1.2% 0.99x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 15264 15333 +0.5% 1.00x (?)
RomanNumbers 117711 118985 +1.1% 0.99x (?)
SetExclusiveOr 3399 3456 +1.7% 0.98x (?)
SetExclusiveOr_OfObjects 8739 8844 +1.2% 0.99x (?)
SetIntersect_OfObjects 1764 1797 +1.9% 0.98x
SetIsSubsetOf 300 300 +0.0% 1.00x
SetIsSubsetOf_OfObjects 366 370 +1.1% 0.99x (?)
SetUnion 3112 3134 +0.7% 0.99x (?)
SetUnion_OfObjects 7147 7448 +4.2% 0.96x
SevenBoom 1531 1536 +0.3% 1.00x (?)
SortLargeExistentials 7215 7030 -2.6% 1.03x
SortLettersInPlace 1156 1154 -0.2% 1.00x (?)
SortSortedStrings 1174 1198 +2.0% 0.98x
SortStrings 2060 2078 +0.9% 0.99x
SortStringsUnicode 15633 15482 -1.0% 1.01x (?)
StackPromo 21866 21790 -0.3% 1.00x (?)
StrComplexWalk 1564 1566 +0.1% 1.00x (?)
StrToInt 2221 2154 -3.0% 1.03x
StringAdder 4268 4243 -0.6% 1.01x (?)
StringBuilder 1426 1440 +1.0% 0.99x (?)
StringBuilderLong 1085 1084 -0.1% 1.00x (?)
StringComparison_abnormal 862 857 -0.6% 1.01x (?)
StringComparison_ascii 1008 960 -4.8% 1.05x
StringComparison_emoji 2555 2542 -0.5% 1.01x (?)
StringComparison_fastPrenormal 8704 8686 -0.2% 1.00x (?)
StringComparison_latin1 5995 5982 -0.2% 1.00x (?)
StringComparison_longSharedPrefix 11531 11504 -0.2% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 4685 4649 -0.8% 1.01x (?)
StringComparison_slowerPrenormal 4178 4172 -0.1% 1.00x (?)
StringComparison_zalgo 1741 1720 -1.2% 1.01x (?)
StringEdits 119716 119174 -0.5% 1.00x (?)
StringEnumRawValueInitialization 996 992 -0.4% 1.00x (?)
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 10 10 +0.0% 1.00x
StringHasPrefixAscii 1660 1603 -3.4% 1.04x
StringHasPrefixUnicode 28282 28231 -0.2% 1.00x (?)
StringHasSuffixAscii 1775 1717 -3.3% 1.03x
StringHasSuffixUnicode 85174 85071 -0.1% 1.00x (?)
StringInterpolation 9242 9274 +0.3% 1.00x (?)
StringMatch 7678 7589 -1.2% 1.01x
StringRemoveDupes 1200 1200 +0.0% 1.00x
StringUTF16Builder 2391 2410 +0.8% 0.99x (?)
StringWalk 1474 1472 -0.1% 1.00x (?)
StringWordBuilder 1763 1807 +2.5% 0.98x
StringWordBuilderReservingCapacity 1312 1349 +2.8% 0.97x
SubstringComparable 2086 2078 -0.4% 1.00x (?)
SubstringEqualString 2137 2136 -0.0% 1.00x (?)
SubstringEquatable 3189 3162 -0.8% 1.01x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 22050 21826 -1.0% 1.01x (?)
SuffixAnySeqCRangeIter 3795 3799 +0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3792 3793 +0.0% 1.00x (?)
SuffixAnySeqCntRange 23 23 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 23 23 +0.0% 1.00x
SuffixAnySequence 5136 5075 -1.2% 1.01x (?)
SuffixAnySequenceLazy 5189 5178 -0.2% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3725 3749 +0.6% 0.99x (?)
SuffixSequenceLazy 3722 3737 +0.4% 1.00x (?)
SumUsingReduce 97 101 +4.1% 0.96x
SumUsingReduceInto 97 102 +5.2% 0.95x
SuperChars 41463 41502 +0.1% 1.00x (?)
TwoSum 1008 997 -1.1% 1.01x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 318 318 +0.0% 1.00x
Walsh 429 429 +0.0% 1.00x
WordCountHistogramASCII 8363 8099 -3.2% 1.03x
WordCountHistogramUTF16 54588 52640 -3.6% 1.04x (?)
WordCountUniqueASCII 1793 1833 +2.2% 0.98x
WordSplitASCII 20973 21452 +2.3% 0.98x (?)
WordSplitUTF16 21792 22049 +1.2% 0.99x (?)
XorLoop 394 389 -1.3% 1.01x (?)

Unoptimized (Onone)

Regression (6)
TEST OLD NEW DELTA SPEEDUP
CharIndexing_utf16_unicodeScalars 319033 352789 +10.6% 0.90x
ObjectiveCBridgeFromNSArrayAnyObjectToString 40631 43340 +6.7% 0.94x
CharIndexing_punctuated_unicodeScalars_Backwards 89927 95558 +6.3% 0.94x (?)
CharIndexing_ascii_unicodeScalars_Backwards 410806 436321 +6.2% 0.94x (?)
ArrayOfGenericPOD2 1072 1130 +5.4% 0.95x
CharIndexing_korean_unicodeScalars_Backwards 427114 449802 +5.3% 0.95x (?)
Improvement (10)
TEST OLD NEW DELTA SPEEDUP
CharIteration_japanese_unicodeScalars_Backwards 399675 356444 -10.8% 1.12x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 57988 51996 -10.3% 1.12x (?)
CharIteration_chinese_unicodeScalars_Backwards 248448 225021 -9.4% 1.10x (?)
Calculator 1759 1628 -7.4% 1.08x
PolymorphicCalls 6584 6147 -6.6% 1.07x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8809 8294 -5.8% 1.06x (?)
StringWalk 13187 12430 -5.7% 1.06x
NSDictionaryCastToSwift 6972 6575 -5.7% 1.06x (?)
OpenClose 570 538 -5.6% 1.06x
StringWithCString 39760 37566 -5.5% 1.06x
No Changes (346)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5077 5082 +0.1% 1.00x (?)
AnyHashableWithAClass 88177 86419 -2.0% 1.02x
Array2D 635759 633560 -0.3% 1.00x (?)
ArrayAppend 4665 4665 +0.0% 1.00x
ArrayAppendArrayOfInt 859 864 +0.6% 0.99x
ArrayAppendAscii 40581 39577 -2.5% 1.03x (?)
ArrayAppendFromGeneric 866 862 -0.5% 1.00x (?)
ArrayAppendGenericStructs 1472 1500 +1.9% 0.98x (?)
ArrayAppendLatin1 67991 68444 +0.7% 0.99x
ArrayAppendLazyMap 167010 168106 +0.7% 0.99x (?)
ArrayAppendOptionals 1501 1501 +0.0% 1.00x
ArrayAppendRepeatCol 173164 170534 -1.5% 1.02x
ArrayAppendReserved 4277 4277 +0.0% 1.00x
ArrayAppendSequence 143019 140669 -1.6% 1.02x
ArrayAppendStrings 15382 15420 +0.2% 1.00x (?)
ArrayAppendToFromGeneric 864 864 +0.0% 1.00x
ArrayAppendToGeneric 867 868 +0.1% 1.00x (?)
ArrayAppendUTF16 68217 68367 +0.2% 1.00x (?)
ArrayInClass 6286 6188 -1.6% 1.02x (?)
ArrayLiteral 1782 1784 +0.1% 1.00x (?)
ArrayOfGenericRef 10479 10702 +2.1% 0.98x (?)
ArrayOfPOD 756 756 +0.0% 1.00x
ArrayOfRef 9786 9433 -3.6% 1.04x (?)
ArrayPlusEqualArrayOfInt 864 867 +0.3% 1.00x (?)
ArrayPlusEqualFiveElementCollection 233419 232592 -0.4% 1.00x (?)
ArrayPlusEqualSingleElementCollection 231226 229916 -0.6% 1.01x (?)
ArrayPlusEqualThreeElements 9214 9176 -0.4% 1.00x (?)
ArraySubscript 82354 81132 -1.5% 1.02x (?)
ArrayValueProp 3623 3620 -0.1% 1.00x (?)
ArrayValueProp2 15953 16128 +1.1% 0.99x (?)
ArrayValueProp3 4129 4135 +0.1% 1.00x (?)
ArrayValueProp4 4073 4064 -0.2% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 5994 5871 -2.1% 1.02x (?)
BitCount 2260 2259 -0.0% 1.00x (?)
ByteSwap 3926 3939 +0.3% 1.00x
COWTree 11312 11033 -2.5% 1.03x (?)
CSVParsing 2454923 2523065 +2.8% 0.97x
CSVParsingAlt 1316157 1290866 -1.9% 1.02x (?)
CSVParsingAltIndices 2469753 2445000 -1.0% 1.01x (?)
CStringLongAscii 4766 4599 -3.5% 1.04x
CStringLongNonAscii 2119 2149 +1.4% 0.99x (?)
CStringShortAscii 7579 7621 +0.6% 0.99x (?)
CaptureProp 258826 254766 -1.6% 1.02x
CharIndexing_ascii_unicodeScalars 389866 403272 +3.4% 0.97x (?)
CharIndexing_chinese_unicodeScalars 300545 313166 +4.2% 0.96x (?)
CharIndexing_chinese_unicodeScalars_Backwards 312654 324568 +3.8% 0.96x (?)
CharIndexing_japanese_unicodeScalars 481627 494074 +2.6% 0.97x (?)
CharIndexing_japanese_unicodeScalars_Backwards 509738 513248 +0.7% 0.99x (?)
CharIndexing_korean_unicodeScalars 377712 391209 +3.6% 0.97x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 68412 70508 +3.1% 0.97x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 72151 73897 +2.4% 0.98x (?)
CharIndexing_punctuated_unicodeScalars 93699 96502 +3.0% 0.97x (?)
CharIndexing_russian_unicodeScalars 333617 336432 +0.8% 0.99x (?)
CharIndexing_russian_unicodeScalars_Backwards 344420 357748 +3.9% 0.96x (?)
CharIndexing_tweet_unicodeScalars 819883 798880 -2.6% 1.03x (?)
CharIndexing_tweet_unicodeScalars_Backwards 823810 852170 +3.4% 0.97x (?)
CharIndexing_utf16_unicodeScalars_Backwards 340361 352105 +3.5% 0.97x (?)
CharIteration_ascii_unicodeScalars 154871 155943 +0.7% 0.99x (?)
CharIteration_ascii_unicodeScalars_Backwards 296934 299922 +1.0% 0.99x (?)
CharIteration_chinese_unicodeScalars 116575 117202 +0.5% 0.99x (?)
CharIteration_japanese_unicodeScalars 185230 185399 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 150363 150480 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 287052 288357 +0.5% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 27579 27815 +0.9% 0.99x (?)
CharIteration_punctuated_unicodeScalars 34706 34906 +0.6% 0.99x (?)
CharIteration_punctuated_unicodeScalars_Backwards 65882 66200 +0.5% 1.00x (?)
CharIteration_russian_unicodeScalars 128452 128772 +0.2% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 245712 249882 +1.7% 0.98x (?)
CharIteration_tweet_unicodeScalars 305635 306680 +0.3% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 592426 588215 -0.7% 1.01x (?)
CharIteration_utf16_unicodeScalars 132594 131862 -0.6% 1.01x
CharIteration_utf16_unicodeScalars_Backwards 249702 251814 +0.8% 0.99x (?)
CharacterLiteralsLarge 5979 6002 +0.4% 1.00x (?)
CharacterLiteralsSmall 746 766 +2.7% 0.97x
CharacterPropertiesFetch 5435 5443 +0.1% 1.00x (?)
CharacterPropertiesPrecomputed 4395 4260 -3.1% 1.03x
CharacterPropertiesStashed 2287 2263 -1.0% 1.01x
CharacterPropertiesStashedMemo 5172 4934 -4.6% 1.05x (?)
Chars 40044 40312 +0.7% 0.99x
ClassArrayGetter 988 990 +0.2% 1.00x (?)
Combos 2119 2226 +5.0% 0.95x (?)
DictOfArraysToArrayOfDicts 3490 3478 -0.3% 1.00x (?)
Dictionary 2569 2558 -0.4% 1.00x (?)
Dictionary2 2905 2885 -0.7% 1.01x (?)
Dictionary2OfObjects 5567 5540 -0.5% 1.00x (?)
Dictionary3 1274 1266 -0.6% 1.01x
Dictionary3OfObjects 2236 2229 -0.3% 1.00x (?)
Dictionary4 1191 1202 +0.9% 0.99x
Dictionary4OfObjects 1820 1864 +2.4% 0.98x (?)
DictionaryBridge 2122 2126 +0.2% 1.00x (?)
DictionaryGroup 4229 4184 -1.1% 1.01x (?)
DictionaryGroupOfObjects 7455 7492 +0.5% 1.00x (?)
DictionaryLiteral 8543 8724 +2.1% 0.98x (?)
DictionaryOfObjects 6069 6209 +2.3% 0.98x (?)
DictionaryRemove 18398 18420 +0.1% 1.00x (?)
DictionaryRemoveOfObjects 49700 49844 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutation 2122 2101 -1.0% 1.01x (?)
DictionarySubscriptDefaultMutationArray 2363 2347 -0.7% 1.01x
DictionarySubscriptDefaultMutationArrayOfObjects 9154 9081 -0.8% 1.01x (?)
DictionarySubscriptDefaultMutationOfObjects 5677 5659 -0.3% 1.00x (?)
DictionarySwap 5223 5225 +0.0% 1.00x (?)
DictionarySwapOfObjects 22474 22278 -0.9% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 13652 13557 -0.7% 1.01x (?)
DropFirstAnyCollectionLazy 100264 102503 +2.2% 0.98x (?)
DropFirstAnySeqCRangeIter 20680 20557 -0.6% 1.01x (?)
DropFirstAnySeqCRangeIterLazy 20703 20551 -0.7% 1.01x (?)
DropFirstAnySeqCntRange 13678 13521 -1.1% 1.01x
DropFirstAnySeqCntRangeLazy 13629 13543 -0.6% 1.01x
DropFirstAnySequence 10819 10845 +0.2% 1.00x (?)
DropFirstAnySequenceLazy 10794 10820 +0.2% 1.00x
DropFirstArray 3970 3964 -0.2% 1.00x (?)
DropFirstArrayLazy 25393 25489 +0.4% 1.00x (?)
DropFirstCountableRange 324 325 +0.3% 1.00x
DropFirstCountableRangeLazy 25921 25974 +0.2% 1.00x (?)
DropFirstSequence 10459 10528 +0.7% 0.99x
DropFirstSequenceLazy 10430 10589 +1.5% 0.98x (?)
DropLastAnyCollection 4581 4530 -1.1% 1.01x
DropLastAnyCollectionLazy 33032 33537 +1.5% 0.98x (?)
DropLastAnySeqCRangeIter 37695 37059 -1.7% 1.02x
DropLastAnySeqCRangeIterLazy 37666 37063 -1.6% 1.02x
DropLastAnySeqCntRange 4570 4523 -1.0% 1.01x
DropLastAnySeqCntRangeLazy 4584 4532 -1.1% 1.01x (?)
DropLastAnySequence 28999 28899 -0.3% 1.00x
DropLastAnySequenceLazy 28938 28898 -0.1% 1.00x (?)
DropLastCountableRange 111 112 +0.9% 0.99x (?)
DropLastCountableRangeLazy 8629 8676 +0.5% 0.99x (?)
DropLastSequence 28877 28799 -0.3% 1.00x (?)
DropLastSequenceLazy 28909 28830 -0.3% 1.00x (?)
DropWhileAnyCollection 17511 17439 -0.4% 1.00x
DropWhileAnyCollectionLazy 18789 18828 +0.2% 1.00x (?)
DropWhileAnySeqCRangeIter 22201 22205 +0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 18940 18858 -0.4% 1.00x (?)
DropWhileAnySeqCntRange 17458 17555 +0.6% 0.99x
DropWhileAnySeqCntRangeLazy 18770 18827 +0.3% 1.00x
DropWhileAnySequence 12237 12360 +1.0% 0.99x (?)
DropWhileAnySequenceLazy 10116 10130 +0.1% 1.00x (?)
DropWhileArrayLazy 13930 13961 +0.2% 1.00x
DropWhileCountableRange 4130 4131 +0.0% 1.00x (?)
DropWhileCountableRangeLazy 18773 18627 -0.8% 1.01x
DropWhileSequence 11966 12080 +1.0% 0.99x
DropWhileSequenceLazy 9687 9775 +0.9% 0.99x
EqualStringSubstring 477 476 -0.2% 1.00x (?)
EqualSubstringString 478 477 -0.2% 1.00x (?)
EqualSubstringSubstring 478 478 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 486 485 -0.2% 1.00x (?)
ErrorHandling 7294 7018 -3.8% 1.04x (?)
ExclusivityGlobal 186 180 -3.2% 1.03x
ExclusivityIndependent 72 69 -4.2% 1.04x (?)
FilterEvenUsingReduce 3734 3730 -0.1% 1.00x (?)
FilterEvenUsingReduceInto 2015 2046 +1.5% 0.98x (?)
FrequenciesUsingReduce 10517 10925 +3.9% 0.96x (?)
FrequenciesUsingReduceInto 5519 5447 -1.3% 1.01x (?)
Hanoi 20409 19782 -3.1% 1.03x (?)
HashTest 16885 16773 -0.7% 1.01x (?)
Histogram 6526 6504 -0.3% 1.00x (?)
Integrate 820 822 +0.2% 1.00x (?)
IterateData 7909 7764 -1.8% 1.02x
Join 1105 1107 +0.2% 1.00x (?)
LazilyFilteredArrayContains 771580 773334 +0.2% 1.00x (?)
LazilyFilteredArrays 1453890 1465768 +0.8% 0.99x (?)
LazilyFilteredRange 468003 466962 -0.2% 1.00x
LessSubstringSubstring 477 477 +0.0% 1.00x
LessSubstringSubstringGenericComparable 484 482 -0.4% 1.00x
LinkedList 32128 32160 +0.1% 1.00x (?)
LuhnAlgoEager 5153 5042 -2.2% 1.02x (?)
LuhnAlgoLazy 5101 5046 -1.1% 1.01x (?)
MapReduce 27124 27351 +0.8% 0.99x
MapReduceAnyCollection 27529 27604 +0.3% 1.00x (?)
MapReduceAnyCollectionShort 39048 40531 +3.8% 0.96x
MapReduceClass 31841 31947 +0.3% 1.00x (?)
MapReduceClassShort 43427 43594 +0.4% 1.00x (?)
MapReduceLazyCollection 23113 23159 +0.2% 1.00x
MapReduceLazyCollectionShort 33818 33272 -1.6% 1.02x (?)
MapReduceLazySequence 18191 18354 +0.9% 0.99x
MapReduceSequence 30604 30718 +0.4% 1.00x (?)
MapReduceShort 38497 39734 +3.2% 0.97x (?)
MapReduceShortString 245 245 +0.0% 1.00x
MapReduceString 1914 1921 +0.4% 1.00x (?)
Memset 44729 44687 -0.1% 1.00x (?)
MonteCarloE 907953 894833 -1.4% 1.01x
MonteCarloPi 3940185 3909707 -0.8% 1.01x
NSError 722 730 +1.1% 0.99x (?)
NSStringConversion 368 368 +0.0% 1.00x
NibbleSort 305379 305432 +0.0% 1.00x (?)
NopDeinit 169260 163560 -3.4% 1.03x
ObjectAllocation 1349 1352 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23472 23320 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 34880 34866 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 126167 130183 +3.2% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObject 63412 65939 +4.0% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 6672 6817 +2.2% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76871 75437 -1.9% 1.02x (?)
ObjectiveCBridgeFromNSString 3125 3138 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2677 2670 -0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 4682 4541 -3.0% 1.03x
ObjectiveCBridgeStubDateMutation 602 603 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromArrayOfNSString 26355 26183 -0.7% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 4533 4597 +1.4% 0.99x (?)
ObjectiveCBridgeStubFromNSString 921 925 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 199 197 -1.0% 1.01x
ObjectiveCBridgeStubNSDataAppend 3082 3003 -2.6% 1.03x (?)
ObjectiveCBridgeStubNSDateMutationRef 15790 15863 +0.5% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 28984 29030 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15994 16028 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3445 3434 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSString 1582 1582 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 159 156 -1.9% 1.02x
ObjectiveCBridgeStubURLAppendPath 339080 328743 -3.0% 1.03x (?)
ObjectiveCBridgeStubURLAppendPathRef 341323 332566 -2.6% 1.03x (?)
ObjectiveCBridgeToNSArray 30234 29035 -4.0% 1.04x (?)
ObjectiveCBridgeToNSDictionary 56212 53679 -4.5% 1.05x (?)
ObjectiveCBridgeToNSSet 47156 47008 -0.3% 1.00x (?)
ObjectiveCBridgeToNSString 1345 1344 -0.1% 1.00x (?)
ObserverClosure 6382 6339 -0.7% 1.01x (?)
ObserverForwarderStruct 4360 4378 +0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 7852 7835 -0.2% 1.00x (?)
ObserverUnappliedMethod 7911 8000 +1.1% 0.99x
PartialApplyDynamicType 40959 41020 +0.1% 1.00x (?)
Phonebook 20862 20597 -1.3% 1.01x
PointerArithmetics 120239 114518 -4.8% 1.05x
PopFrontArray 4666 4636 -0.6% 1.01x (?)
PopFrontArrayGeneric 5885 5715 -2.9% 1.03x
PopFrontUnsafePointer 10664 10625 -0.4% 1.00x (?)
PrefixAnyCollection 13636 13571 -0.5% 1.00x
PrefixAnyCollectionLazy 102676 101313 -1.3% 1.01x (?)
PrefixAnySeqCRangeIter 16597 16526 -0.4% 1.00x
PrefixAnySeqCRangeIterLazy 16537 16547 +0.1% 1.00x (?)
PrefixAnySeqCntRange 13649 13481 -1.2% 1.01x
PrefixAnySeqCntRangeLazy 13637 13508 -0.9% 1.01x
PrefixAnySequence 9055 9064 +0.1% 1.00x (?)
PrefixAnySequenceLazy 9014 9051 +0.4% 1.00x
PrefixArray 3951 3917 -0.9% 1.01x (?)
PrefixArrayLazy 25428 25509 +0.3% 1.00x (?)
PrefixCountableRange 325 325 +0.0% 1.00x
PrefixCountableRangeLazy 25926 25967 +0.2% 1.00x
PrefixSequence 8734 8723 -0.1% 1.00x (?)
PrefixSequenceLazy 8776 8819 +0.5% 1.00x (?)
PrefixWhileAnyCollection 25022 24829 -0.8% 1.01x
PrefixWhileAnyCollectionLazy 15910 15915 +0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIter 33526 33176 -1.0% 1.01x (?)
PrefixWhileAnySeqCRangeIterLazy 15807 15763 -0.3% 1.00x
PrefixWhileAnySeqCntRange 24865 24762 -0.4% 1.00x
PrefixWhileAnySeqCntRangeLazy 15815 15904 +0.6% 0.99x
PrefixWhileAnySequence 26598 26507 -0.3% 1.00x (?)
PrefixWhileAnySequenceLazy 9099 9184 +0.9% 0.99x (?)
PrefixWhileArray 11662 11828 +1.4% 0.99x (?)
PrefixWhileArrayLazy 12050 12108 +0.5% 1.00x
PrefixWhileCountableRange 11645 11637 -0.1% 1.00x
PrefixWhileCountableRangeLazy 15633 15554 -0.5% 1.01x
PrefixWhileSequence 26493 26248 -0.9% 1.01x (?)
PrefixWhileSequenceLazy 8952 8944 -0.1% 1.00x (?)
Prims 9703 9816 +1.2% 0.99x (?)
PrimsSplit 9762 9764 +0.0% 1.00x (?)
QueueConcrete 15209 14997 -1.4% 1.01x
QueueGeneric 19177 18932 -1.3% 1.01x
RC4 16469 16390 -0.5% 1.00x (?)
RGBHistogram 26787 27193 +1.5% 0.99x
RGBHistogramOfObjects 97712 98587 +0.9% 0.99x (?)
RangeAssignment 2684 2746 +2.3% 0.98x
RangeIterationSigned 16778 16663 -0.7% 1.01x (?)
RangeIterationSigned64 39244 38961 -0.7% 1.01x
RangeIterationUnsigned 34859 34689 -0.5% 1.00x (?)
RangeReplaceableCollectionPlusDefault 8147 8067 -1.0% 1.01x (?)
RecursiveOwnedParameter 7855 7891 +0.5% 1.00x (?)
ReversedArray 13149 13139 -0.1% 1.00x (?)
ReversedBidirectional 42289 42404 +0.3% 1.00x
ReversedDictionary 22879 23036 +0.7% 0.99x
RomanNumbers 1181134 1134779 -3.9% 1.04x
SetExclusiveOr 17303 17188 -0.7% 1.01x (?)
SetExclusiveOr_OfObjects 41997 41975 -0.1% 1.00x (?)
SetIntersect 8136 8157 +0.3% 1.00x (?)
SetIntersect_OfObjects 12371 12117 -2.1% 1.02x (?)
SetIsSubsetOf 1339 1339 +0.0% 1.00x
SetIsSubsetOf_OfObjects 1566 1558 -0.5% 1.01x
SetUnion 11789 11884 +0.8% 0.99x (?)
SetUnion_OfObjects 29294 29406 +0.4% 1.00x (?)
SevenBoom 1679 1676 -0.2% 1.00x (?)
Sim2DArray 43628 43620 -0.0% 1.00x (?)
SortLargeExistentials 15702 15794 +0.6% 0.99x
SortLettersInPlace 2840 2817 -0.8% 1.01x (?)
SortSortedStrings 1344 1327 -1.3% 1.01x (?)
SortStrings 2451 2442 -0.4% 1.00x (?)
SortStringsUnicode 16426 16378 -0.3% 1.00x (?)
StackPromo 89320 88520 -0.9% 1.01x (?)
StaticArray 2678 2675 -0.1% 1.00x (?)
StrComplexWalk 6650 6443 -3.1% 1.03x
StrToInt 57928 57312 -1.1% 1.01x (?)
StringAdder 4774 4763 -0.2% 1.00x (?)
StringBuilder 6911 6840 -1.0% 1.01x (?)
StringBuilderLong 2766 2751 -0.5% 1.01x (?)
StringComparison_abnormal 1449 1447 -0.1% 1.00x (?)
StringComparison_ascii 9666 9701 +0.4% 1.00x
StringComparison_emoji 3827 3832 +0.1% 1.00x (?)
StringComparison_fastPrenormal 13250 13289 +0.3% 1.00x (?)
StringComparison_latin1 9553 9520 -0.3% 1.00x (?)
StringComparison_longSharedPrefix 13112 13125 +0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 6924 6908 -0.2% 1.00x (?)
StringComparison_slowerPrenormal 6856 6841 -0.2% 1.00x (?)
StringComparison_zalgo 2880 2870 -0.3% 1.00x (?)
StringEdits 335958 338290 +0.7% 0.99x (?)
StringEnumRawValueInitialization 21246 20935 -1.5% 1.01x
StringEqualPointerComparison 3278 3229 -1.5% 1.02x
StringFromLongWholeSubstring 23 23 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 199 198 -0.5% 1.01x (?)
StringHasPrefixAscii 3092 3136 +1.4% 0.99x (?)
StringHasPrefixUnicode 31097 31032 -0.2% 1.00x (?)
StringHasSuffixAscii 3117 3093 -0.8% 1.01x
StringHasSuffixUnicode 87978 87846 -0.2% 1.00x (?)
StringInterpolation 13431 13525 +0.7% 0.99x (?)
StringMatch 33205 33529 +1.0% 0.99x
StringRemoveDupes 1409 1446 +2.6% 0.97x (?)
StringUTF16Builder 7753 7619 -1.7% 1.02x (?)
StringWordBuilder 2541 2590 +1.9% 0.98x
StringWordBuilderReservingCapacity 2209 2244 +1.6% 0.98x (?)
SubstringComparable 4328 4149 -4.1% 1.04x
SubstringEqualString 3702 3611 -2.5% 1.03x (?)
SubstringEquatable 8265 8336 +0.9% 0.99x (?)
SubstringFromLongString 24 24 +0.0% 1.00x
SubstringFromLongStringGeneric 103 104 +1.0% 0.99x (?)
SuffixAnyCollection 4538 4543 +0.1% 1.00x (?)
SuffixAnyCollectionLazy 33057 33363 +0.9% 0.99x (?)
SuffixAnySeqCRangeIter 33562 33344 -0.6% 1.01x
SuffixAnySeqCRangeIterLazy 33676 33370 -0.9% 1.01x
SuffixAnySeqCntRange 4561 4501 -1.3% 1.01x (?)
SuffixAnySeqCntRangeLazy 4548 4533 -0.3% 1.00x
SuffixAnySequence 25084 25046 -0.2% 1.00x (?)
SuffixAnySequenceLazy 25076 25114 +0.2% 1.00x (?)
SuffixCountableRange 111 111 +0.0% 1.00x
SuffixCountableRangeLazy 8638 8659 +0.2% 1.00x (?)
SuffixSequence 24943 24964 +0.1% 1.00x (?)
SuffixSequenceLazy 24953 25044 +0.4% 1.00x (?)
SumUsingReduce 170820 170712 -0.1% 1.00x (?)
SumUsingReduceInto 168882 172434 +2.1% 0.98x
SuperChars 215072 213657 -0.7% 1.01x (?)
TwoSum 3894 3974 +2.1% 0.98x
TypeFlood 160 156 -2.5% 1.03x (?)
UTF8Decode 30506 30470 -0.1% 1.00x (?)
Walsh 12092 12035 -0.5% 1.00x (?)
WordCountHistogramASCII 48841 48391 -0.9% 1.01x (?)
WordCountHistogramUTF16 105439 105450 +0.0% 1.00x (?)
WordCountUniqueASCII 7958 7926 -0.4% 1.00x
WordCountUniqueUTF16 34689 33362 -3.8% 1.04x (?)
WordSplitASCII 25271 25106 -0.7% 1.01x (?)
WordSplitUTF16 25879 26729 +3.3% 0.97x (?)
XorLoop 23367 23356 -0.0% 1.00x (?)
Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@lorentey
Copy link
Member Author

lorentey commented Feb 9, 2018

Yay, it works! Now we just need to find out how to do the same sort of thing for #14442.

E.g., making the hash state update nonmutating would let us apply the same @effects(readonly) attribute to it, but we'd lose the attractively minimal API, and I'm not sure how out-of-place state updates would perform on SipHash's five-word state.

@lorentey
Copy link
Member Author

(Closing this, as the experiment is complete.)

@lorentey lorentey closed this Feb 26, 2018
@lorentey lorentey deleted the opaque-mixint branch February 26, 2018 20:05
@lorentey lorentey restored the opaque-mixint branch February 26, 2018 20:05
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