Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[benchmark] Replace hashValue implementations with hash(into:) #16157

Merged
merged 1 commit into from
Apr 27, 2018

Conversation

lorentey
Copy link
Member

This gives us a better picture of expected hashing performance.

Add a new benchmark to track legacy hashValue performance.

This gives us a better picture of expected hashing performance.

Add a new benchmark to track legacy hashValue performance.
@lorentey
Copy link
Member Author

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (4)
TEST OLD NEW DELTA SPEEDUP
DropLastCountableRangeLazy 11 12 +9.1% 0.92x
MapReduce 398 429 +7.8% 0.93x
MapReduceAnyCollection 401 429 +7.0% 0.93x (?)
StringWithCString 40841 43027 +5.4% 0.95x
Improvement (15)
TEST OLD NEW DELTA SPEEDUP
SetIntersect_OfObjects 2304 1560 -32.3% 1.48x
PrimsSplit 1174 918 -21.8% 1.28x
Prims 1167 921 -21.1% 1.27x
SetIsSubsetOf_OfObjects 538 438 -18.6% 1.23x
SetExclusiveOr_OfObjects 14060 11853 -15.7% 1.19x
SetUnion_OfObjects 11942 10168 -14.9% 1.17x
Dictionary4OfObjects 517 453 -12.4% 1.14x
DictionarySwapOfObjects 9498 8580 -9.7% 1.11x (?)
DictionarySubscriptDefaultMutationOfObjects 1906 1735 -9.0% 1.10x (?)
DictionaryRemoveOfObjects 28909 26537 -8.2% 1.09x (?)
Dictionary3OfObjects 830 762 -8.2% 1.09x (?)
DictionaryGroupOfObjects 2312 2131 -7.8% 1.08x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 69868 64975 -7.0% 1.08x (?)
Dictionary2OfObjects 2383 2221 -6.8% 1.07x (?)
FloatingPointPrinting_Float_description_uniform 5247 4978 -5.1% 1.05x
No Changes (403)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3688 3680 -0.2% 1.00x (?)
AnyHashableWithAClass 84108 84369 +0.3% 1.00x (?)
Array2D 2525 2548 +0.9% 0.99x (?)
ArrayAppend 1106 1108 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 796 796 +0.0% 1.00x
ArrayAppendAscii 13895 14016 +0.9% 0.99x (?)
ArrayAppendFromGeneric 797 798 +0.1% 1.00x (?)
ArrayAppendGenericStructs 1424 1426 +0.1% 1.00x (?)
ArrayAppendLatin1 40614 39994 -1.5% 1.02x (?)
ArrayAppendLazyMap 1341 1335 -0.4% 1.00x (?)
ArrayAppendOptionals 1426 1426 +0.0% 1.00x
ArrayAppendRepeatCol 1339 1346 +0.5% 0.99x (?)
ArrayAppendReserved 839 841 +0.2% 1.00x (?)
ArrayAppendSequence 1118 1121 +0.3% 1.00x (?)
ArrayAppendStrings 6243 6243 +0.0% 1.00x
ArrayAppendToFromGeneric 798 787 -1.4% 1.01x (?)
ArrayAppendToGeneric 790 795 +0.6% 0.99x (?)
ArrayAppendUTF16 39878 40132 +0.6% 0.99x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 148 -1.3% 1.01x (?)
ArrayOfGenericRef 4373 4402 +0.7% 0.99x (?)
ArrayOfPOD 182 183 +0.5% 0.99x (?)
ArrayOfRef 4356 4351 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 786 797 +1.4% 0.99x (?)
ArrayPlusEqualFiveElementCollection 5528 5590 +1.1% 0.99x (?)
ArrayPlusEqualSingleElementCollection 1107 1107 +0.0% 1.00x
ArrayPlusEqualThreeElements 1660 1657 -0.2% 1.00x (?)
ArraySubscript 1527 1526 -0.1% 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
BinaryFloatingPointPropertiesBinade 25 25 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 35 35 +0.0% 1.00x
BitCount 202 202 +0.0% 1.00x
ByteSwap 100 101 +1.0% 0.99x (?)
COWTree 5400 5396 -0.1% 1.00x (?)
CSVParsing 706671 708325 +0.2% 1.00x (?)
CSVParsingAlt 783717 779477 -0.5% 1.01x (?)
CSVParsingAltIndices 341824 341131 -0.2% 1.00x (?)
CStringLongAscii 4638 4801 +3.5% 0.97x
CStringLongNonAscii 2181 2211 +1.4% 0.99x (?)
CStringShortAscii 3147 3170 +0.7% 0.99x (?)
Calculator 1080 1106 +2.4% 0.98x
CaptureProp 4101 4098 -0.1% 1.00x (?)
ChainedFilterMap 1408 1407 -0.1% 1.00x (?)
CharIndexing_ascii_unicodeScalars 17353 17349 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 16352 16351 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 13134 13135 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 12388 12391 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 20782 20779 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 19576 19577 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 16827 16827 +0.0% 1.00x
CharIndexing_korean_unicodeScalars_Backwards 15862 15861 -0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 3133 3134 +0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2967 2965 -0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3923 3922 -0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3713 3711 -0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars 14462 14456 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 13620 13623 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 33825 33827 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 32239 32253 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 23148 23139 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 23388 23259 -0.6% 1.01x (?)
CharIteration_ascii_unicodeScalars 21447 22005 +2.6% 0.97x
CharIteration_ascii_unicodeScalars_Backwards 15099 15101 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 16231 16722 +3.0% 0.97x
CharIteration_chinese_unicodeScalars_Backwards 11438 11438 +0.0% 1.00x
CharIteration_japanese_unicodeScalars 25682 26286 +2.4% 0.98x
CharIteration_japanese_unicodeScalars_Backwards 18072 18079 +0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 20794 21376 +2.8% 0.97x
CharIteration_korean_unicodeScalars_Backwards 14643 14642 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3818 3943 +3.3% 0.97x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2733 2734 +0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars 4805 4968 +3.4% 0.97x
CharIteration_punctuated_unicodeScalars_Backwards 3421 3420 -0.0% 1.00x (?)
CharIteration_russian_unicodeScalars 17839 18350 +2.9% 0.97x
CharIteration_russian_unicodeScalars_Backwards 12580 12583 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 42334 43947 +3.8% 0.96x
CharIteration_tweet_unicodeScalars_Backwards 29817 29842 +0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars 27950 28196 +0.9% 0.99x
CharIteration_utf16_unicodeScalars_Backwards 18557 18671 +0.6% 0.99x (?)
CharacterLiteralsLarge 5832 5793 -0.7% 1.01x (?)
CharacterLiteralsSmall 217 217 +0.0% 1.00x
CharacterPropertiesFetch 4507 4512 +0.1% 1.00x (?)
CharacterPropertiesPrecomputed 1230 1224 -0.5% 1.00x (?)
CharacterPropertiesStashed 1452 1448 -0.3% 1.00x (?)
CharacterPropertiesStashedMemo 1669 1667 -0.1% 1.00x (?)
Chars 1215 1215 +0.0% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 493 488 -1.0% 1.01x (?)
DataAccessBytes 1222 1227 +0.4% 1.00x (?)
DataAppendArray 6138 6230 +1.5% 0.99x (?)
DataAppendBytes 5917 5813 -1.8% 1.02x (?)
DataAppendDataLargeToLarge 68152 68039 -0.2% 1.00x (?)
DataAppendDataLargeToMedium 36108 36242 +0.4% 1.00x (?)
DataAppendDataLargeToSmall 35233 35266 +0.1% 1.00x (?)
DataAppendDataMediumToLarge 39025 38519 -1.3% 1.01x (?)
DataAppendDataMediumToMedium 7660 7683 +0.3% 1.00x (?)
DataAppendDataMediumToSmall 6854 6858 +0.1% 1.00x (?)
DataAppendDataSmallToLarge 37746 37732 -0.0% 1.00x (?)
DataAppendDataSmallToMedium 7024 7082 +0.8% 0.99x (?)
DataAppendDataSmallToSmall 6674 6890 +3.2% 0.97x (?)
DataAppendSequence 19396 18929 -2.4% 1.02x (?)
DataCopyBytes 2506 2506 +0.0% 1.00x
DataCount 38 38 +0.0% 1.00x
DataMutateBytes 4253 4255 +0.0% 1.00x (?)
DataReplaceLarge 41552 42782 +3.0% 0.97x (?)
DataReplaceLargeBuffer 58153 57877 -0.5% 1.00x (?)
DataReplaceMedium 11346 11378 +0.3% 1.00x (?)
DataReplaceMediumBuffer 12285 12126 -1.3% 1.01x (?)
DataReplaceSmall 8802 8857 +0.6% 0.99x (?)
DataReplaceSmallBuffer 9116 9309 +2.1% 0.98x (?)
DataReset 3198 3237 +1.2% 0.99x (?)
DataSetCount 883 887 +0.5% 1.00x (?)
DataSubscript 236 237 +0.4% 1.00x (?)
DictOfArraysToArrayOfDicts 819 816 -0.4% 1.00x (?)
Dictionary 736 732 -0.5% 1.01x (?)
Dictionary2 872 860 -1.4% 1.01x (?)
Dictionary3 298 303 +1.7% 0.98x
Dictionary4 344 341 -0.9% 1.01x (?)
DictionaryBridge 1199 1179 -1.7% 1.02x (?)
DictionaryCopy 122624 122505 -0.1% 1.00x (?)
DictionaryFilter 122861 122679 -0.1% 1.00x (?)
DictionaryGroup 281 284 +1.1% 0.99x (?)
DictionaryLiteral 2125 2115 -0.5% 1.00x (?)
DictionaryOfObjects 2589 2473 -4.5% 1.05x (?)
DictionaryRemove 5476 5551 +1.4% 0.99x (?)
DictionarySubscriptDefaultMutation 342 342 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 701 694 -1.0% 1.01x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 4195 4028 -4.0% 1.04x
DictionarySwap 1530 1527 -0.2% 1.00x (?)
DictionarySwapAt 6930 7282 +5.1% 0.95x
DictionarySwapAtOfObjects 52934 52577 -0.7% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 83 83 +0.0% 1.00x
DropFirstAnyCollectionLazy 63167 62787 -0.6% 1.01x (?)
DropFirstAnySeqCRangeIter 21519 21512 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 21520 21520 +0.0% 1.00x
DropFirstAnySeqCntRange 41 41 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 41 41 +0.0% 1.00x
DropFirstAnySequence 4986 4981 -0.1% 1.00x (?)
DropFirstAnySequenceLazy 5088 4984 -2.0% 1.02x
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 2681 2680 -0.0% 1.00x (?)
DropFirstSequenceLazy 2773 2774 +0.0% 1.00x (?)
DropLastAnyCollection 31 30 -3.2% 1.03x
DropLastAnyCollectionLazy 20818 20985 +0.8% 0.99x (?)
DropLastAnySeqCRangeIter 3611 3639 +0.8% 0.99x (?)
DropLastAnySeqCRangeIterLazy 3603 3640 +1.0% 0.99x (?)
DropLastAnySeqCntRange 13 13 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 13 13 +0.0% 1.00x
DropLastAnySequence 5097 5120 +0.5% 1.00x (?)
DropLastAnySequenceLazy 5235 5238 +0.1% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastSequence 545 568 +4.2% 0.96x (?)
DropLastSequenceLazy 545 567 +4.0% 0.96x (?)
DropWhileAnyCollection 107 107 +0.0% 1.00x
DropWhileAnyCollectionLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCRangeIter 16969 16958 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCntRange 50 50 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 125 125 +0.0% 1.00x
DropWhileAnySequence 4874 4858 -0.3% 1.00x (?)
DropWhileAnySequenceLazy 1856 1855 -0.1% 1.00x (?)
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 2210 2223 +0.6% 0.99x (?)
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 55 55 +0.0% 1.00x
EqualSubstringString 64 64 +0.0% 1.00x
EqualSubstringSubstring 48 48 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 48 48 +0.0% 1.00x
ErrorHandling 1480 1477 -0.2% 1.00x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 206149 205815 -0.2% 1.00x (?)
FilterEvenUsingReduce 1302 1299 -0.2% 1.00x (?)
FilterEvenUsingReduceInto 149 147 -1.3% 1.01x (?)
FloatingPointPrinting_Double_description_small 23402 23338 -0.3% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 23132 23014 -0.5% 1.01x (?)
FloatingPointPrinting_Double_interpolated 76762 76456 -0.4% 1.00x (?)
FloatingPointPrinting_Float80_description_small 30761 30734 -0.1% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 29923 30015 +0.3% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 80307 79865 -0.6% 1.01x (?)
FloatingPointPrinting_Float_description_small 5202 5143 -1.1% 1.01x (?)
FloatingPointPrinting_Float_interpolated 52293 52306 +0.0% 1.00x (?)
FrequenciesUsingReduce 5145 5146 +0.0% 1.00x (?)
FrequenciesUsingReduceInto 1784 1786 +0.1% 1.00x (?)
Hanoi 2117 2193 +3.6% 0.97x (?)
HashTest 1011 1011 +0.0% 1.00x
Histogram 900 899 -0.1% 1.00x (?)
Integrate 335 335 +0.0% 1.00x
IterateData 1827 1826 -0.1% 1.00x (?)
Join 182 183 +0.5% 0.99x (?)
LazilyFilteredArrayContains 36653 36655 +0.0% 1.00x (?)
LazilyFilteredArrays 65251 65122 -0.2% 1.00x (?)
LazilyFilteredRange 3876 3878 +0.1% 1.00x (?)
LessSubstringSubstring 49 48 -2.0% 1.02x
LessSubstringSubstringGenericComparable 48 48 +0.0% 1.00x
LinkedList 7537 7550 +0.2% 1.00x (?)
LuhnAlgoEager 298 295 -1.0% 1.01x (?)
LuhnAlgoLazy 300 300 +0.0% 1.00x
MapReduceAnyCollectionShort 2264 2267 +0.1% 1.00x (?)
MapReduceClass 3017 3004 -0.4% 1.00x (?)
MapReduceClassShort 4599 4580 -0.4% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 36 37 +2.8% 0.97x (?)
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 460 458 -0.4% 1.00x (?)
MapReduceShort 2015 2008 -0.3% 1.00x (?)
MapReduceShortString 30 31 +3.3% 0.97x (?)
MapReduceString 78 81 +3.8% 0.96x
Memset 215 215 +0.0% 1.00x
MonteCarloE 10355 10207 -1.4% 1.01x (?)
MonteCarloPi 42783 42622 -0.4% 1.00x (?)
NSDictionaryCastToSwift 5567 5501 -1.2% 1.01x (?)
NSError 173 172 -0.6% 1.01x (?)
NSStringConversion 704 707 +0.4% 1.00x (?)
NibbleSort 3671 3670 -0.0% 1.00x (?)
NopDeinit 32218 32239 +0.1% 1.00x (?)
ObjectAllocation 131 131 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 24163 24601 +1.8% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4655 4519 -2.9% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44007 44191 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 43478 42730 -1.7% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 108383 110400 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObject 49671 49175 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4705 4722 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSString 1216 1217 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2671 2672 +0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 11246 11132 -1.0% 1.01x (?)
ObjectiveCBridgeStubDateMutation 400 400 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 33795 32399 -4.1% 1.04x (?)
ObjectiveCBridgeStubFromNSDate 6422 6559 +2.1% 0.98x (?)
ObjectiveCBridgeStubFromNSString 1022 1038 +1.6% 0.98x (?)
ObjectiveCBridgeStubFromNSStringRef 158 166 +5.1% 0.95x
ObjectiveCBridgeStubNSDataAppend 2530 2484 -1.8% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 13139 13320 +1.4% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 38081 38536 +1.2% 0.99x (?)
ObjectiveCBridgeStubToNSDate 15117 14894 -1.5% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3425 3373 -1.5% 1.02x (?)
ObjectiveCBridgeStubToNSString 2387 2387 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 113 113 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 287259 290018 +1.0% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 289394 285976 -1.2% 1.01x (?)
ObjectiveCBridgeToNSArray 14322 14191 -0.9% 1.01x (?)
ObjectiveCBridgeToNSDictionary 25344 25030 -1.2% 1.01x (?)
ObjectiveCBridgeToNSSet 16177 16257 +0.5% 1.00x (?)
ObjectiveCBridgeToNSString 485 493 +1.6% 0.98x
ObserverClosure 2142 2149 +0.3% 1.00x (?)
ObserverForwarderStruct 1251 1248 -0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 3741 3728 -0.3% 1.00x (?)
ObserverUnappliedMethod 2604 2595 -0.3% 1.00x (?)
OpenClose 263 260 -1.1% 1.01x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 5008 5020 +0.2% 1.00x (?)
PointerArithmetics 31491 31493 +0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1869 1862 -0.4% 1.00x (?)
PopFrontArrayGeneric 1815 1876 +3.4% 0.97x (?)
PopFrontUnsafePointer 8647 8659 +0.1% 1.00x (?)
PrefixAnyCollection 83 83 +0.0% 1.00x
PrefixAnyCollectionLazy 63138 62961 -0.3% 1.00x (?)
PrefixAnySeqCRangeIter 16821 16835 +0.1% 1.00x (?)
PrefixAnySeqCRangeIterLazy 16805 16841 +0.2% 1.00x (?)
PrefixAnySeqCntRange 28 28 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 27 28 +3.7% 0.96x (?)
PrefixAnySequence 4366 4360 -0.1% 1.00x (?)
PrefixAnySequenceLazy 4359 4340 -0.4% 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 2222 2222 +0.0% 1.00x
PrefixSequenceLazy 2275 2275 +0.0% 1.00x
PrefixWhileAnyCollection 154 154 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9006 9048 +0.5% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 72 72 +0.0% 1.00x
PrefixWhileAnySeqCntRange 59 59 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 90 90 +0.0% 1.00x
PrefixWhileAnySequence 10386 10394 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1392 1392 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 360 377 +4.7% 0.95x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
QueueConcrete 1133 1134 +0.1% 1.00x (?)
QueueGeneric 1133 1131 -0.2% 1.00x (?)
RC4 168 170 +1.2% 0.99x
RGBHistogram 3987 3978 -0.2% 1.00x (?)
RGBHistogramOfObjects 25339 24524 -3.2% 1.03x (?)
RangeAssignment 350 365 +4.3% 0.96x
RangeIterationSigned 171 171 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 1002 986 -1.6% 1.02x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 43 45 +4.7% 0.96x
RemoveWhereFilterString 349 348 -0.3% 1.00x (?)
RemoveWhereFilterStrings 432 431 -0.2% 1.00x (?)
RemoveWhereMoveInts 15 15 +0.0% 1.00x
RemoveWhereMoveStrings 702 702 +0.0% 1.00x
RemoveWhereQuadraticInts 1288 1288 +0.0% 1.00x
RemoveWhereQuadraticString 495 495 +0.0% 1.00x
RemoveWhereQuadraticStrings 2753 2753 +0.0% 1.00x
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 850 849 -0.1% 1.00x (?)
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 16588 16584 -0.0% 1.00x (?)
ReversedDictionary 366 365 -0.3% 1.00x (?)
RomanNumbers 136180 139543 +2.5% 0.98x (?)
SequenceAlgosAnySequence 12026 12016 -0.1% 1.00x (?)
SequenceAlgosArray 1579 1580 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 1574 1578 +0.3% 1.00x (?)
SequenceAlgosList 1350 1353 +0.2% 1.00x (?)
SequenceAlgosRange 2576 2576 +0.0% 1.00x
SequenceAlgosUnfoldSequence 1102 1102 +0.0% 1.00x
SetExclusiveOr 6460 6603 +2.2% 0.98x (?)
SetIntersect 959 953 -0.6% 1.01x (?)
SetIsSubsetOf 374 373 -0.3% 1.00x (?)
SetUnion 5560 5693 +2.4% 0.98x (?)
SevenBoom 884 883 -0.1% 1.00x (?)
Sim2DArray 416 417 +0.2% 1.00x (?)
SortLargeExistentials 6171 6182 +0.2% 1.00x (?)
SortLettersInPlace 1057 1051 -0.6% 1.01x (?)
SortSortedStrings 999 1002 +0.3% 1.00x (?)
SortStrings 2039 2022 -0.8% 1.01x
SortStringsUnicode 2510 2521 +0.4% 1.00x (?)
StackPromo 22667 22645 -0.1% 1.00x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1782 1783 +0.1% 1.00x (?)
StrToInt 2855 2804 -1.8% 1.02x
StringAdder 692 710 +2.6% 0.97x
StringBuilder 730 737 +1.0% 0.99x
StringBuilderLong 1226 1218 -0.7% 1.01x (?)
StringBuilderWithLongSubstring 1411 1390 -1.5% 1.02x (?)
StringComparison_abnormal 796 787 -1.1% 1.01x (?)
StringComparison_ascii 1246 1256 +0.8% 0.99x
StringComparison_emoji 802 806 +0.5% 1.00x (?)
StringComparison_fastPrenormal 773 780 +0.9% 0.99x
StringComparison_latin1 612 613 +0.2% 1.00x (?)
StringComparison_longSharedPrefix 923 925 +0.2% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 1582 1582 +0.0% 1.00x
StringComparison_slowerPrenormal 1691 1704 +0.8% 0.99x (?)
StringComparison_zalgo 124820 124824 +0.0% 1.00x (?)
StringEdits 172219 171111 -0.6% 1.01x (?)
StringEnumRawValueInitialization 834 832 -0.2% 1.00x (?)
StringEqualPointerComparison 293 295 +0.7% 0.99x (?)
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 1947 1975 +1.4% 0.99x
StringHasPrefixUnicode 108686 109501 +0.7% 0.99x (?)
StringHasSuffixAscii 2090 2118 +1.3% 0.99x
StringHasSuffixUnicode 113462 114042 +0.5% 0.99x (?)
StringInterpolation 9966 9958 -0.1% 1.00x (?)
StringInterpolationManySmallSegments 18808 18577 -1.2% 1.01x (?)
StringInterpolationSmall 6425 6517 +1.4% 0.99x (?)
StringMatch 11033 11353 +2.9% 0.97x
StringRemoveDupes 803 794 -1.1% 1.01x (?)
StringUTF16Builder 2751 2717 -1.2% 1.01x (?)
StringUTF16SubstringBuilder 5904 5877 -0.5% 1.00x (?)
StringWalk 1417 1424 +0.5% 1.00x (?)
StringWordBuilder 2328 2317 -0.5% 1.00x (?)
StringWordBuilderReservingCapacity 1986 1982 -0.2% 1.00x (?)
SubstringComparable 26 26 +0.0% 1.00x
SubstringEqualString 775 772 -0.4% 1.00x (?)
SubstringEquatable 1364 1361 -0.2% 1.00x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 75 75 +0.0% 1.00x
SuffixAnyCollection 31 31 +0.0% 1.00x
SuffixAnyCollectionLazy 20898 20721 -0.8% 1.01x (?)
SuffixAnySeqCRangeIter 3849 3830 -0.5% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3850 3827 -0.6% 1.01x (?)
SuffixAnySeqCntRange 20 20 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 20 20 +0.0% 1.00x
SuffixAnySequence 5095 5117 +0.4% 1.00x (?)
SuffixAnySequenceLazy 5178 5233 +1.1% 0.99x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3693 3700 +0.2% 1.00x (?)
SuffixSequenceLazy 3696 3702 +0.2% 1.00x (?)
SumUsingReduce 101 101 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 14650 14612 -0.3% 1.00x (?)
TwoSum 1763 1761 -0.1% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 294 294 +0.0% 1.00x
Walsh 405 405 +0.0% 1.00x
WordCountHistogramASCII 8053 8088 +0.4% 1.00x (?)
WordCountHistogramUTF16 14581 14663 +0.6% 0.99x (?)
WordCountUniqueASCII 2492 2448 -1.8% 1.02x (?)
WordCountUniqueUTF16 8085 8029 -0.7% 1.01x (?)
WordSplitASCII 8041 7940 -1.3% 1.01x (?)
WordSplitUTF16 10310 10064 -2.4% 1.02x (?)
XorLoop 396 399 +0.8% 0.99x (?)
Added (2)
TEST MIN MAX MEAN MAX_RSS
Dictionary4Legacy 825 870 845 7696384
Dictionary4OfObjectsLegacy 936 977 959 7675494

Unoptimized (Onone)

Regression (13)
TEST OLD NEW DELTA SPEEDUP
CharIteration_russian_unicodeScalars 123837 147957 +19.5% 0.84x
DropLastCountableRange 112 133 +18.7% 0.84x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 65938 74941 +13.7% 0.88x (?)
SetIsSubsetOf_OfObjects 1938 2170 +12.0% 0.89x
ObjectiveCBridgeFromNSSetAnyObjectForced 6080 6705 +10.3% 0.91x (?)
DataReplaceMediumBuffer 11330 12265 +8.3% 0.92x (?)
WordSplitASCII 11190 12052 +7.7% 0.93x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 70167 75458 +7.5% 0.93x (?)
CharIndexing_chinese_unicodeScalars_Backwards 315636 335117 +6.2% 0.94x (?)
CharIteration_russian_unicodeScalars_Backwards 222874 235909 +5.8% 0.94x (?)
StringInterpolationSmall 8396 8860 +5.5% 0.95x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 111845 118008 +5.5% 0.95x (?)
CharIteration_tweet_unicodeScalars 302790 319416 +5.5% 0.95x
Improvement (23)
TEST OLD NEW DELTA SPEEDUP
SetIntersect_OfObjects 12571 9841 -21.7% 1.28x
SetUnion_OfObjects 33893 28543 -15.8% 1.19x
SetExclusiveOr_OfObjects 47185 40009 -15.2% 1.18x
CharIndexing_russian_unicodeScalars_Backwards 350890 301841 -14.0% 1.16x
CharIteration_korean_unicodeScalars_Backwards 298701 257449 -13.8% 1.16x (?)
CharIndexing_korean_unicodeScalars_Backwards 418535 370570 -11.5% 1.13x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 10334 9209 -10.9% 1.12x
CharIndexing_ascii_unicodeScalars_Backwards 406244 363094 -10.6% 1.12x (?)
Dictionary4OfObjects 1941 1735 -10.6% 1.12x
CharIteration_japanese_unicodeScalars_Backwards 347234 314510 -9.4% 1.10x (?)
ObjectiveCBridgeStubFromArrayOfNSString 36036 32754 -9.1% 1.10x (?)
Dictionary2OfObjects 4669 4245 -9.1% 1.10x
DictionarySubscriptDefaultMutationOfObjects 5717 5247 -8.2% 1.09x (?)
DictionaryRemoveOfObjects 55081 50942 -7.5% 1.08x
CharIteration_ascii_unicodeScalars_Backwards 283324 263741 -6.9% 1.07x (?)
DictionaryGroupOfObjects 7431 6918 -6.9% 1.07x (?)
CharIteration_punctuated_unicodeScalars_Backwards 61821 57748 -6.6% 1.07x (?)
RemoveWhereMoveInts 3778 3541 -6.3% 1.07x
RemoveWhereMoveStrings 4313 4067 -5.7% 1.06x
CStringShortAscii 6556 6204 -5.4% 1.06x (?)
DictionaryBridge 1379 1306 -5.3% 1.06x (?)
DataAppendBytes 5569 5280 -5.2% 1.05x (?)
ObjectiveCBridgeStubURLAppendPathRef 313489 298300 -4.8% 1.05x (?)
No Changes (386)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5363 5337 -0.5% 1.00x (?)
AnyHashableWithAClass 101305 101325 +0.0% 1.00x (?)
Array2D 632537 633015 +0.1% 1.00x (?)
ArrayAppend 4663 4670 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 864 864 +0.0% 1.00x
ArrayAppendAscii 39527 39792 +0.7% 0.99x
ArrayAppendFromGeneric 870 871 +0.1% 1.00x (?)
ArrayAppendGenericStructs 1504 1505 +0.1% 1.00x (?)
ArrayAppendLatin1 64795 64867 +0.1% 1.00x (?)
ArrayAppendLazyMap 170546 169284 -0.7% 1.01x (?)
ArrayAppendOptionals 1504 1509 +0.3% 1.00x
ArrayAppendRepeatCol 184390 184743 +0.2% 1.00x (?)
ArrayAppendReserved 4278 4278 +0.0% 1.00x
ArrayAppendSequence 104485 103950 -0.5% 1.01x (?)
ArrayAppendStrings 6364 6369 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 865 867 +0.2% 1.00x (?)
ArrayAppendToGeneric 882 874 -0.9% 1.01x
ArrayAppendUTF16 64128 64111 -0.0% 1.00x (?)
ArrayInClass 6272 6229 -0.7% 1.01x (?)
ArrayLiteral 1800 1804 +0.2% 1.00x (?)
ArrayOfGenericPOD2 1186 1192 +0.5% 0.99x (?)
ArrayOfGenericRef 10730 10690 -0.4% 1.00x (?)
ArrayOfPOD 849 845 -0.5% 1.00x
ArrayOfRef 9921 9902 -0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 866 870 +0.5% 1.00x (?)
ArrayPlusEqualFiveElementCollection 236176 235878 -0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 232539 233129 +0.3% 1.00x (?)
ArrayPlusEqualThreeElements 9297 9282 -0.2% 1.00x (?)
ArraySubscript 108628 106759 -1.7% 1.02x
ArrayValueProp 3659 3661 +0.1% 1.00x (?)
ArrayValueProp2 15169 15235 +0.4% 1.00x (?)
ArrayValueProp3 4173 4168 -0.1% 1.00x (?)
ArrayValueProp4 4138 4141 +0.1% 1.00x (?)
BinaryFloatingPointPropertiesBinade 88 88 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 134 134 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 131 131 +0.0% 1.00x
BitCount 9119 8886 -2.6% 1.03x
ByteSwap 9827 9664 -1.7% 1.02x
COWTree 12447 12050 -3.2% 1.03x (?)
CSVParsing 2895115 2939482 +1.5% 0.98x (?)
CSVParsingAlt 1500995 1441066 -4.0% 1.04x (?)
CSVParsingAltIndices 2404283 2462719 +2.4% 0.98x (?)
CStringLongAscii 5382 5372 -0.2% 1.00x (?)
CStringLongNonAscii 2477 2473 -0.2% 1.00x (?)
Calculator 2049 2019 -1.5% 1.01x
CaptureProp 281617 281951 +0.1% 1.00x (?)
ChainedFilterMap 233907 233148 -0.3% 1.00x (?)
CharIndexing_ascii_unicodeScalars 317157 320515 +1.1% 0.99x (?)
CharIndexing_chinese_unicodeScalars 239692 241170 +0.6% 0.99x (?)
CharIndexing_japanese_unicodeScalars 376883 379525 +0.7% 0.99x (?)
CharIndexing_japanese_unicodeScalars_Backwards 444995 460718 +3.5% 0.97x (?)
CharIndexing_korean_unicodeScalars 312654 309895 -0.9% 1.01x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 56125 56792 +1.2% 0.99x (?)
CharIndexing_punctuated_unicodeScalars 70478 71287 +1.1% 0.99x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 83669 83778 +0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars 261822 262483 +0.3% 1.00x (?)
CharIndexing_tweet_unicodeScalars 621488 621622 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 761368 747766 -1.8% 1.02x (?)
CharIndexing_utf16_unicodeScalars 274522 279622 +1.9% 0.98x (?)
CharIndexing_utf16_unicodeScalars_Backwards 310830 310900 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 150635 148934 -1.1% 1.01x (?)
CharIteration_chinese_unicodeScalars 113022 112987 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 203211 199955 -1.6% 1.02x (?)
CharIteration_japanese_unicodeScalars 178519 178631 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 145007 144920 -0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 26473 26466 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 45846 46025 +0.4% 1.00x (?)
CharIteration_punctuated_unicodeScalars 33312 33638 +1.0% 0.99x (?)
CharIteration_tweet_unicodeScalars_Backwards 556452 551304 -0.9% 1.01x (?)
CharIteration_utf16_unicodeScalars 128102 127434 -0.5% 1.01x (?)
CharIteration_utf16_unicodeScalars_Backwards 228077 225066 -1.3% 1.01x (?)
CharacterLiteralsLarge 5921 5775 -2.5% 1.03x
CharacterLiteralsSmall 681 678 -0.4% 1.00x
CharacterPropertiesFetch 5629 5581 -0.9% 1.01x (?)
CharacterPropertiesPrecomputed 3579 3737 +4.4% 0.96x (?)
CharacterPropertiesStashed 2366 2328 -1.6% 1.02x (?)
CharacterPropertiesStashedMemo 4483 4655 +3.8% 0.96x (?)
Chars 35872 35871 -0.0% 1.00x (?)
ClassArrayGetter 986 987 +0.1% 1.00x (?)
Combos 2243 2295 +2.3% 0.98x (?)
DataAccessBytes 2407 2402 -0.2% 1.00x (?)
DataAppendArray 5700 5448 -4.4% 1.05x (?)
DataAppendDataLargeToLarge 67890 67012 -1.3% 1.01x (?)
DataAppendDataLargeToMedium 34805 35322 +1.5% 0.99x (?)
DataAppendDataLargeToSmall 34442 34222 -0.6% 1.01x (?)
DataAppendDataMediumToLarge 37153 37238 +0.2% 1.00x (?)
DataAppendDataMediumToMedium 6782 6832 +0.7% 0.99x (?)
DataAppendDataMediumToSmall 5959 5972 +0.2% 1.00x (?)
DataAppendDataSmallToLarge 36703 36638 -0.2% 1.00x (?)
DataAppendDataSmallToMedium 6099 6000 -1.6% 1.02x (?)
DataAppendDataSmallToSmall 5765 5756 -0.2% 1.00x (?)
DataAppendSequence 1925084 1920413 -0.2% 1.00x (?)
DataCopyBytes 2482 2474 -0.3% 1.00x (?)
DataCount 223 223 +0.0% 1.00x
DataMutateBytes 5282 5200 -1.6% 1.02x (?)
DataReplaceLarge 39957 40214 +0.6% 0.99x (?)
DataReplaceLargeBuffer 57863 58207 +0.6% 0.99x (?)
DataReplaceMedium 9133 8991 -1.6% 1.02x (?)
DataReplaceSmall 6942 7201 +3.7% 0.96x (?)
DataReplaceSmallBuffer 9437 9383 -0.6% 1.01x (?)
DataReset 2864 2927 +2.2% 0.98x (?)
DataSetCount 563 575 +2.1% 0.98x (?)
DataSubscript 443 444 +0.2% 1.00x (?)
DictOfArraysToArrayOfDicts 3482 3436 -1.3% 1.01x (?)
Dictionary 2364 2356 -0.3% 1.00x (?)
Dictionary2 1493 1507 +0.9% 0.99x (?)
Dictionary3 901 893 -0.9% 1.01x
Dictionary3OfObjects 2193 2144 -2.2% 1.02x (?)
Dictionary4 1170 1178 +0.7% 0.99x (?)
DictionaryCopy 335923 328773 -2.1% 1.02x
DictionaryFilter 336073 336968 +0.3% 1.00x (?)
DictionaryGroup 4562 4562 +0.0% 1.00x
DictionaryLiteral 8822 8883 +0.7% 0.99x (?)
DictionaryOfObjects 5968 6030 +1.0% 0.99x (?)
DictionaryRemove 17927 17955 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutation 2033 2006 -1.3% 1.01x (?)
DictionarySubscriptDefaultMutationArray 2266 2271 +0.2% 1.00x (?)
DictionarySwap 5265 5248 -0.3% 1.00x
DictionarySwapAt 36694 36692 -0.0% 1.00x (?)
DictionarySwapAtOfObjects 115622 113904 -1.5% 1.02x
DictionarySwapOfObjects 19527 18630 -4.6% 1.05x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 15507 15652 +0.9% 0.99x (?)
DropFirstAnyCollectionLazy 102556 99098 -3.4% 1.03x (?)
DropFirstAnySeqCRangeIter 24088 23995 -0.4% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 24046 23975 -0.3% 1.00x (?)
DropFirstAnySeqCntRange 15493 15632 +0.9% 0.99x (?)
DropFirstAnySeqCntRangeLazy 15658 15615 -0.3% 1.00x (?)
DropFirstAnySequence 12908 12931 +0.2% 1.00x (?)
DropFirstAnySequenceLazy 12929 12890 -0.3% 1.00x (?)
DropFirstArray 3443 3437 -0.2% 1.00x (?)
DropFirstArrayLazy 32174 32080 -0.3% 1.00x (?)
DropFirstCountableRange 323 323 +0.0% 1.00x
DropFirstCountableRangeLazy 34816 34658 -0.5% 1.00x (?)
DropFirstSequence 12545 12526 -0.2% 1.00x (?)
DropFirstSequenceLazy 12580 12632 +0.4% 1.00x (?)
DropLastAnyCollection 5190 5243 +1.0% 0.99x (?)
DropLastAnyCollectionLazy 33645 34090 +1.3% 0.99x (?)
DropLastAnySeqCRangeIter 40789 40625 -0.4% 1.00x (?)
DropLastAnySeqCRangeIterLazy 40766 40711 -0.1% 1.00x (?)
DropLastAnySeqCntRange 5181 5232 +1.0% 0.99x (?)
DropLastAnySeqCntRangeLazy 5229 5228 -0.0% 1.00x (?)
DropLastAnySequence 30721 30794 +0.2% 1.00x (?)
DropLastAnySequenceLazy 30934 30913 -0.1% 1.00x (?)
DropLastCountableRangeLazy 11889 11724 -1.4% 1.01x (?)
DropLastSequence 30534 30599 +0.2% 1.00x (?)
DropLastSequenceLazy 30849 31025 +0.6% 0.99x (?)
DropWhileAnyCollection 20191 20181 -0.0% 1.00x (?)
DropWhileAnyCollectionLazy 22749 22797 +0.2% 1.00x (?)
DropWhileAnySeqCRangeIter 24781 24777 -0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 22822 22493 -1.4% 1.01x (?)
DropWhileAnySeqCntRange 20085 20064 -0.1% 1.00x (?)
DropWhileAnySeqCntRangeLazy 22682 22691 +0.0% 1.00x (?)
DropWhileAnySequence 13673 13599 -0.5% 1.01x
DropWhileAnySequenceLazy 12593 12677 +0.7% 0.99x (?)
DropWhileArrayLazy 14011 13989 -0.2% 1.00x (?)
DropWhileCountableRange 4894 4891 -0.1% 1.00x (?)
DropWhileCountableRangeLazy 22311 22378 +0.3% 1.00x (?)
DropWhileSequence 13268 13227 -0.3% 1.00x (?)
DropWhileSequenceLazy 12127 12142 +0.1% 1.00x (?)
EqualStringSubstring 71 71 +0.0% 1.00x
EqualSubstringString 71 71 +0.0% 1.00x
EqualSubstringSubstring 72 72 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 58 58 +0.0% 1.00x
ErrorHandling 6505 6623 +1.8% 0.98x (?)
ExclusivityGlobal 200 197 -1.5% 1.02x
ExclusivityIndependent 75 75 +0.0% 1.00x
FatCompactMap 295441 296475 +0.3% 1.00x (?)
FilterEvenUsingReduce 3610 3583 -0.7% 1.01x (?)
FilterEvenUsingReduceInto 1869 1884 +0.8% 0.99x (?)
FloatingPointPrinting_Double_description_small 24592 24558 -0.1% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 36679 36525 -0.4% 1.00x (?)
FloatingPointPrinting_Double_interpolated 98693 100662 +2.0% 0.98x (?)
FloatingPointPrinting_Float80_description_small 31614 31546 -0.2% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 62981 60645 -3.7% 1.04x (?)
FloatingPointPrinting_Float80_interpolated 124569 119402 -4.1% 1.04x (?)
FloatingPointPrinting_Float_description_small 7011 6873 -2.0% 1.02x
FloatingPointPrinting_Float_description_uniform 17723 17770 +0.3% 1.00x (?)
FloatingPointPrinting_Float_interpolated 70855 68991 -2.6% 1.03x (?)
FrequenciesUsingReduce 11522 11061 -4.0% 1.04x (?)
FrequenciesUsingReduceInto 3392 3380 -0.4% 1.00x (?)
Hanoi 20128 20143 +0.1% 1.00x (?)
HashTest 22277 22035 -1.1% 1.01x (?)
Histogram 6423 6707 +4.4% 0.96x
Integrate 458 462 +0.9% 0.99x
IterateData 5487 5485 -0.0% 1.00x (?)
Join 778 787 +1.2% 0.99x
LazilyFilteredArrayContains 747858 748937 +0.1% 1.00x (?)
LazilyFilteredArrays 1437171 1431110 -0.4% 1.00x (?)
LazilyFilteredRange 537097 549405 +2.3% 0.98x (?)
LessSubstringSubstring 72 72 +0.0% 1.00x
LessSubstringSubstringGenericComparable 58 58 +0.0% 1.00x
LinkedList 32359 32365 +0.0% 1.00x (?)
LuhnAlgoEager 5621 5690 +1.2% 0.99x (?)
LuhnAlgoLazy 5719 5788 +1.2% 0.99x (?)
MapReduce 25496 25661 +0.6% 0.99x
MapReduceAnyCollection 25403 25302 -0.4% 1.00x
MapReduceAnyCollectionShort 36816 37279 +1.3% 0.99x (?)
MapReduceClass 29428 29501 +0.2% 1.00x (?)
MapReduceClassShort 42537 40708 -4.3% 1.04x (?)
MapReduceLazyCollection 22744 22700 -0.2% 1.00x (?)
MapReduceLazyCollectionShort 34460 34618 +0.5% 1.00x (?)
MapReduceLazySequence 20371 20378 +0.0% 1.00x (?)
MapReduceSequence 30629 30775 +0.5% 1.00x (?)
MapReduceShort 37337 38319 +2.6% 0.97x (?)
MapReduceShortString 225 220 -2.2% 1.02x (?)
MapReduceString 1724 1718 -0.3% 1.00x (?)
Memset 44130 44176 +0.1% 1.00x (?)
MonteCarloE 1153976 1137901 -1.4% 1.01x
MonteCarloPi 5254084 5188446 -1.2% 1.01x
NSDictionaryCastToSwift 6837 6517 -4.7% 1.05x (?)
NSError 603 604 +0.2% 1.00x (?)
NSStringConversion 750 744 -0.8% 1.01x
NibbleSort 505259 502094 -0.6% 1.01x
NopDeinit 203627 202233 -0.7% 1.01x
ObjectAllocation 1258 1252 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 29110 28151 -3.3% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9694 9518 -1.8% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 47581 47931 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 45218 46522 +2.9% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObject 54264 55851 +2.9% 0.97x (?)
ObjectiveCBridgeFromNSString 2846 2852 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2794 2795 +0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 6254 6344 +1.4% 0.99x (?)
ObjectiveCBridgeStubDateMutation 744 745 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 6882 6883 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1071 1072 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 193 194 +0.5% 0.99x (?)
ObjectiveCBridgeStubNSDataAppend 3028 3009 -0.6% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 15938 16084 +0.9% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 38498 38359 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15764 16276 +3.2% 0.97x (?)
ObjectiveCBridgeStubToNSDateRef 3447 3469 +0.6% 0.99x (?)
ObjectiveCBridgeStubToNSString 2421 2415 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 153 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 307170 314576 +2.4% 0.98x (?)
ObjectiveCBridgeToNSArray 14585 14370 -1.5% 1.01x (?)
ObjectiveCBridgeToNSDictionary 25913 26701 +3.0% 0.97x (?)
ObjectiveCBridgeToNSSet 17320 17422 +0.6% 0.99x (?)
ObjectiveCBridgeToNSString 523 522 -0.2% 1.00x (?)
ObserverClosure 6392 6389 -0.0% 1.00x (?)
ObserverForwarderStruct 4332 4333 +0.0% 1.00x (?)
ObserverPartiallyAppliedMethod 7974 7990 +0.2% 1.00x (?)
ObserverUnappliedMethod 8101 8119 +0.2% 1.00x (?)
OpenClose 868 871 +0.3% 1.00x
PartialApplyDynamicType 38972 39351 +1.0% 0.99x (?)
Phonebook 18619 18633 +0.1% 1.00x (?)
PointerArithmetics 120252 117436 -2.3% 1.02x
PolymorphicCalls 2377 2379 +0.1% 1.00x (?)
PopFrontArray 4645 4678 +0.7% 0.99x
PopFrontArrayGeneric 5435 5430 -0.1% 1.00x (?)
PopFrontUnsafePointer 10631 10627 -0.0% 1.00x (?)
PrefixAnyCollection 15634 15727 +0.6% 0.99x (?)
PrefixAnyCollectionLazy 104058 101719 -2.2% 1.02x (?)
PrefixAnySeqCRangeIter 19217 19326 +0.6% 0.99x (?)
PrefixAnySeqCRangeIterLazy 19212 19120 -0.5% 1.00x (?)
PrefixAnySeqCntRange 15736 15626 -0.7% 1.01x (?)
PrefixAnySeqCntRangeLazy 15636 15594 -0.3% 1.00x (?)
PrefixAnySequence 10531 10471 -0.6% 1.01x (?)
PrefixAnySequenceLazy 10509 10545 +0.3% 1.00x (?)
PrefixArray 3455 3458 +0.1% 1.00x (?)
PrefixArrayLazy 32378 32416 +0.1% 1.00x (?)
PrefixCountableRange 323 323 +0.0% 1.00x
PrefixCountableRangeLazy 35310 35129 -0.5% 1.01x (?)
PrefixSequence 10178 10162 -0.2% 1.00x (?)
PrefixSequenceLazy 10193 10236 +0.4% 1.00x (?)
PrefixWhileAnyCollection 29166 29222 +0.2% 1.00x (?)
PrefixWhileAnyCollectionLazy 21471 21018 -2.1% 1.02x (?)
PrefixWhileAnySeqCRangeIter 34387 34530 +0.4% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 20581 20856 +1.3% 0.99x (?)
PrefixWhileAnySeqCntRange 29008 29026 +0.1% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 22131 21345 -3.6% 1.04x (?)
PrefixWhileAnySequence 26785 26838 +0.2% 1.00x (?)
PrefixWhileAnySequenceLazy 11045 11107 +0.6% 0.99x (?)
PrefixWhileArray 10514 10668 +1.5% 0.99x
PrefixWhileArrayLazy 12308 12306 -0.0% 1.00x (?)
PrefixWhileCountableRange 13879 13895 +0.1% 1.00x (?)
PrefixWhileCountableRangeLazy 18400 18584 +1.0% 0.99x (?)
PrefixWhileSequence 26329 26416 +0.3% 1.00x (?)
PrefixWhileSequenceLazy 10848 10899 +0.5% 1.00x (?)
Prims 9895 9596 -3.0% 1.03x
PrimsSplit 9901 9548 -3.6% 1.04x
QueueConcrete 14255 14296 +0.3% 1.00x
QueueGeneric 18997 18995 -0.0% 1.00x (?)
RC4 16232 16272 +0.2% 1.00x (?)
RGBHistogram 25355 25318 -0.1% 1.00x (?)
RGBHistogramOfObjects 79854 78106 -2.2% 1.02x (?)
RangeAssignment 2645 2639 -0.2% 1.00x (?)
RangeIterationSigned 15253 15240 -0.1% 1.00x (?)
RangeReplaceableCollectionPlusDefault 11020 10677 -3.1% 1.03x (?)
RecursiveOwnedParameter 5812 5922 +1.9% 0.98x (?)
RemoveWhereFilterInts 1978 2029 +2.6% 0.97x (?)
RemoveWhereFilterString 1309 1351 +3.2% 0.97x (?)
RemoveWhereFilterStrings 2522 2551 +1.1% 0.99x (?)
RemoveWhereQuadraticInts 8057 8052 -0.1% 1.00x (?)
RemoveWhereQuadraticString 2253 2273 +0.9% 0.99x (?)
RemoveWhereQuadraticStrings 10080 9755 -3.2% 1.03x
RemoveWhereSwapInts 6341 6201 -2.2% 1.02x
RemoveWhereSwapStrings 7031 6903 -1.8% 1.02x
ReversedArray 13036 13054 +0.1% 1.00x (?)
ReversedBidirectional 43254 43260 +0.0% 1.00x (?)
ReversedDictionary 23325 23958 +2.7% 0.97x (?)
RomanNumbers 1342160 1374370 +2.4% 0.98x (?)
SequenceAlgosAnySequence 13123 13125 +0.0% 1.00x (?)
SequenceAlgosArray 767705 769378 +0.2% 1.00x
SequenceAlgosContiguousArray 284219 284305 +0.0% 1.00x (?)
SequenceAlgosList 8691 8679 -0.1% 1.00x (?)
SequenceAlgosRange 1284181 1282405 -0.1% 1.00x (?)
SequenceAlgosUnfoldSequence 6596 6606 +0.2% 1.00x (?)
SetExclusiveOr 17142 17155 +0.1% 1.00x (?)
SetIntersect 6804 6812 +0.1% 1.00x (?)
SetIsSubsetOf 1239 1241 +0.2% 1.00x (?)
SetUnion 12503 12370 -1.1% 1.01x (?)
SevenBoom 1083 1081 -0.2% 1.00x (?)
Sim2DArray 43560 43410 -0.3% 1.00x
SortLargeExistentials 11566 11546 -0.2% 1.00x
SortLettersInPlace 1973 1957 -0.8% 1.01x
SortSortedStrings 1131 1111 -1.8% 1.02x
SortStrings 2268 2264 -0.2% 1.00x (?)
SortStringsUnicode 2820 2801 -0.7% 1.01x (?)
StackPromo 99386 98989 -0.4% 1.00x (?)
StaticArray 2541 2531 -0.4% 1.00x (?)
StrComplexWalk 7271 7268 -0.0% 1.00x (?)
StrToInt 80543 79356 -1.5% 1.01x (?)
StringAdder 1122 1140 +1.6% 0.98x (?)
StringBuilder 5531 5518 -0.2% 1.00x (?)
StringBuilderLong 2945 2945 +0.0% 1.00x
StringBuilderWithLongSubstring 5118 5357 +4.7% 0.96x (?)
StringComparison_abnormal 1341 1320 -1.6% 1.02x (?)
StringComparison_ascii 9383 9384 +0.0% 1.00x (?)
StringComparison_emoji 1981 1975 -0.3% 1.00x (?)
StringComparison_fastPrenormal 4902 4891 -0.2% 1.00x (?)
StringComparison_latin1 3818 3817 -0.0% 1.00x (?)
StringComparison_longSharedPrefix 2360 2355 -0.2% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 3653 3664 +0.3% 1.00x (?)
StringComparison_slowerPrenormal 4120 4117 -0.1% 1.00x (?)
StringComparison_zalgo 128381 128048 -0.3% 1.00x (?)
StringEdits 386380 374098 -3.2% 1.03x (?)
StringEnumRawValueInitialization 32605 32830 +0.7% 0.99x (?)
StringEqualPointerComparison 1591 1626 +2.2% 0.98x
StringFromLongWholeSubstring 12 12 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 196 196 +0.0% 1.00x
StringHasPrefixAscii 3046 3064 +0.6% 0.99x
StringHasPrefixUnicode 106403 105983 -0.4% 1.00x (?)
StringHasSuffixAscii 3178 3202 +0.8% 0.99x
StringHasSuffixUnicode 107515 105688 -1.7% 1.02x (?)
StringInterpolation 12507 12281 -1.8% 1.02x (?)
StringInterpolationManySmallSegments 20267 20649 +1.9% 0.98x (?)
StringMatch 41749 42079 +0.8% 0.99x (?)
StringRemoveDupes 783 789 +0.8% 0.99x (?)
StringUTF16Builder 8120 8261 +1.7% 0.98x (?)
StringUTF16SubstringBuilder 23003 22678 -1.4% 1.01x (?)
StringWalk 13096 12757 -2.6% 1.03x
StringWithCString 41600 41614 +0.0% 1.00x (?)
StringWordBuilder 2501 2471 -1.2% 1.01x (?)
StringWordBuilderReservingCapacity 2098 2098 +0.0% 1.00x
SubstringComparable 1626 1638 +0.7% 0.99x (?)
SubstringEqualString 1686 1685 -0.1% 1.00x (?)
SubstringEquatable 5392 5385 -0.1% 1.00x (?)
SubstringFromLongString 18 18 +0.0% 1.00x
SubstringFromLongStringGeneric 108 107 -0.9% 1.01x (?)
SuffixAnyCollection 5232 5238 +0.1% 1.00x (?)
SuffixAnyCollectionLazy 33972 34411 +1.3% 0.99x (?)
SuffixAnySeqCRangeIter 36659 36667 +0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 36381 36419 +0.1% 1.00x (?)
SuffixAnySeqCntRange 5185 5259 +1.4% 0.99x
SuffixAnySeqCntRangeLazy 5233 5189 -0.8% 1.01x (?)
SuffixAnySequence 26816 26740 -0.3% 1.00x (?)
SuffixAnySequenceLazy 26436 26635 +0.8% 0.99x (?)
SuffixCountableRange 112 112 +0.0% 1.00x
SuffixCountableRangeLazy 11902 11671 -1.9% 1.02x (?)
SuffixSequence 26723 26596 -0.5% 1.00x (?)
SuffixSequenceLazy 26634 26501 -0.5% 1.01x (?)
SumUsingReduce 158925 158725 -0.1% 1.00x (?)
SumUsingReduceInto 152288 152139 -0.1% 1.00x (?)
SuperChars 85245 86702 +1.7% 0.98x (?)
TwoSum 3799 3738 -1.6% 1.02x (?)
TypeFlood 202 197 -2.5% 1.03x (?)
UTF8Decode 29578 30679 +3.7% 0.96x
Walsh 11957 11907 -0.4% 1.00x (?)
WordCountHistogramASCII 38092 38001 -0.2% 1.00x (?)
WordCountHistogramUTF16 45655 45921 +0.6% 0.99x (?)
WordCountUniqueASCII 8204 8217 +0.2% 1.00x (?)
WordCountUniqueUTF16 14236 14279 +0.3% 1.00x (?)
WordSplitUTF16 13664 14132 +3.4% 0.97x (?)
XorLoop 23244 23222 -0.1% 1.00x (?)
Added (2)
TEST MIN MAX MEAN MAX_RSS
Dictionary4Legacy 1557 1584 1571 8216576
Dictionary4OfObjectsLegacy 2154 2369 2283 8192819
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

Yep, this is pretty much as expected. All the *OfObjects tests improved because the Box<T> class now forwards hash(into:) rather than hashValue. That extra finalize does matter!

@lorentey
Copy link
Member Author

Dictionary4Legacy is at roughly the same level Dictionary4 was before #16073. 👍

@lorentey
Copy link
Member Author

@swift-ci please smoke test

@lorentey lorentey merged commit 1b8a489 into swiftlang:master Apr 27, 2018
@lorentey lorentey deleted the modernize-hashing-in-benchmarks branch April 30, 2018 19:18
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