Skip to content

Conversation

@lorentey
Copy link
Member

@lorentey lorentey commented Feb 9, 2018

This is a variant of #14442 where the original hasher is replaced with the SipHash algorithm.

SipHash has a five-word state and more complicated calculations, so I expect things will be slower. But how much slower?

- Add the method _hash(into:) as a Hashable requirement. It takes a closure into which the function can feed integer values representing bits to be hashed.
- Implement _hash(into:) in terms of hashValue in an extension, for compatibility.
- Add struct _QuickHasher, for emulating Swift 4 hashes in the new interface.
- Add _defaultHashValue<T>(for:), implementing hashValue in terms of _hash(into:) and _QuickHasher.
We don't need to stream bytes, just words.
This is a version for hasher that uses a nonmutating append, so that we can mark it @effects(readonly), reducing retain/releases around its calls.
This restores speed of String hashing, among other types.
@lorentey
Copy link
Member Author

lorentey commented Feb 9, 2018

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (54)
TEST OLD NEW DELTA SPEEDUP
SetIntersect 296 737 +149.0% 0.40x
DictionarySwap 419 1003 +139.4% 0.42x
Dictionary4OfObjects 177 420 +137.3% 0.42x
Histogram 290 606 +109.0% 0.48x
Dictionary4 132 267 +102.3% 0.49x
ReversedDictionary 101 189 +87.1% 0.53x
DictionaryGroup 119 211 +77.3% 0.56x
DictionaryRemove 2562 4353 +69.9% 0.59x
DictionarySubscriptDefaultMutation 136 226 +66.2% 0.60x
SetExclusiveOr 3082 5099 +65.4% 0.60x
SetUnion 2842 4396 +54.7% 0.65x
SetIntersect_OfObjects 1576 2351 +49.2% 0.67x
TwoSum 884 1277 +44.5% 0.69x
SetExclusiveOr_OfObjects 7975 11347 +42.3% 0.70x
SetUnion_OfObjects 6499 9006 +38.6% 0.72x
Prims 671 928 +38.3% 0.72x
PrimsSplit 677 930 +37.4% 0.73x
RGBHistogram 2649 3467 +30.9% 0.76x
SetIsSubsetOf_OfObjects 328 408 +24.4% 0.80x
DictionarySubscriptDefaultMutationArray 441 533 +20.9% 0.83x
Dictionary3 210 252 +20.0% 0.83x
CharacterPropertiesPrecomputed 950 1127 +18.6% 0.84x
DictionaryLiteral 1442 1703 +18.1% 0.85x
WordCountUniqueASCII 1580 1838 +16.3% 0.86x
DictionarySwapOfObjects 6644 7663 +15.3% 0.87x
DropWhileAnySeqCRangeIter 13204 15136 +14.6% 0.87x
PrefixAnySeqCRangeIterLazy 12600 14407 +14.3% 0.87x
PrefixAnySeqCRangeIter 12600 14400 +14.3% 0.88x
DictionarySubscriptDefaultMutationOfObjects 1252 1420 +13.4% 0.88x
SetIsSubsetOf 268 299 +11.6% 0.90x
DictionaryRemoveOfObjects 21236 23604 +11.2% 0.90x
DictionaryGroupOfObjects 1709 1884 +10.2% 0.91x
CharacterPropertiesStashedMemo 1451 1593 +9.8% 0.91x
Hanoi 2996 3255 +8.6% 0.92x
CharIteration_utf16_unicodeScalars_Backwards 14857 16109 +8.4% 0.92x
ClassArrayGetter 12 13 +8.3% 0.92x
StringWordBuilderReservingCapacity 1136 1230 +8.3% 0.92x
ObjectiveCBridgeFromNSSetAnyObjectToString 61398 66437 +8.2% 0.92x (?)
StringWordBuilder 1479 1592 +7.6% 0.93x
StringHasPrefixAscii 1361 1464 +7.6% 0.93x
RGBHistogramOfObjects 21353 22927 +7.4% 0.93x
Dictionary 453 486 +7.3% 0.93x
CharIteration_russian_unicodeScalars_Backwards 9941 10665 +7.3% 0.93x
CharIteration_tweet_unicodeScalars_Backwards 23528 25241 +7.3% 0.93x
CharIteration_ascii_unicodeScalars_Backwards 11932 12792 +7.2% 0.93x
CharIteration_chinese_unicodeScalars_Backwards 9047 9698 +7.2% 0.93x
PrefixAnySequenceLazy 3405 3650 +7.2% 0.93x
CharIteration_punctuated_unicodeScalars_Backwards 2731 2927 +7.2% 0.93x
CharIteration_japanese_unicodeScalars_Backwards 14285 15307 +7.2% 0.93x
CharIteration_korean_unicodeScalars_Backwards 11582 12405 +7.1% 0.93x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2195 2346 +6.9% 0.94x
DictionarySubscriptDefaultMutationArrayOfObjects 3408 3622 +6.3% 0.94x
CharIndexing_tweet_unicodeScalars 26817 28305 +5.5% 0.95x
Dictionary3OfObjects 606 638 +5.3% 0.95x
Improvement (6)
TEST OLD NEW DELTA SPEEDUP
WordSplitASCII 18976 6909 -63.6% 2.75x (?)
WordSplitUTF16 19712 7844 -60.2% 2.51x (?)
StringEnumRawValueInitialization 874 723 -17.3% 1.21x (?)
ObjectiveCBridgeFromNSSetAnyObject 52676 46437 -11.8% 1.13x (?)
PopFrontUnsafePointer 8429 7849 -6.9% 1.07x (?)
ArrayAppendReserved 707 667 -5.7% 1.06x
No Changes (302)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3264 3288 +0.7% 0.99x (?)
AnyHashableWithAClass 62532 62965 +0.7% 0.99x (?)
Array2D 2276 2278 +0.1% 1.00x (?)
ArrayAppend 933 896 -4.0% 1.04x
ArrayAppendArrayOfInt 670 672 +0.3% 1.00x (?)
ArrayAppendAscii 12115 12258 +1.2% 0.99x (?)
ArrayAppendFromGeneric 671 674 +0.4% 1.00x (?)
ArrayAppendGenericStructs 1210 1210 +0.0% 1.00x
ArrayAppendLatin1 34518 34405 -0.3% 1.00x (?)
ArrayAppendLazyMap 1177 1178 +0.1% 1.00x (?)
ArrayAppendOptionals 1209 1209 +0.0% 1.00x
ArrayAppendRepeatCol 1174 1173 -0.1% 1.00x (?)
ArrayAppendSequence 991 991 +0.0% 1.00x
ArrayAppendStrings 13644 13664 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 673 673 +0.0% 1.00x
ArrayAppendToGeneric 672 673 +0.1% 1.00x (?)
ArrayAppendUTF16 33831 34025 +0.6% 0.99x (?)
ArrayInClass 77 77 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 129 129 +0.0% 1.00x
ArrayOfGenericRef 3927 3924 -0.1% 1.00x (?)
ArrayOfPOD 156 155 -0.6% 1.01x
ArrayOfRef 3895 3907 +0.3% 1.00x (?)
ArrayPlusEqualArrayOfInt 671 671 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4927 4828 -2.0% 1.02x
ArrayPlusEqualSingleElementCollection 934 892 -4.5% 1.05x
ArrayPlusEqualThreeElements 1486 1489 +0.2% 1.00x (?)
ArraySubscript 1368 1354 -1.0% 1.01x (?)
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 34 34 +0.0% 1.00x
BitCount 181 181 +0.0% 1.00x
ByteSwap 92 90 -2.2% 1.02x
COWTree 3219 3248 +0.9% 0.99x (?)
CSVParsing 718031 726099 +1.1% 0.99x (?)
CSVParsingAlt 648046 648767 +0.1% 1.00x (?)
CSVParsingAltIndices 322546 325632 +1.0% 0.99x (?)
CStringLongAscii 4282 4281 -0.0% 1.00x (?)
CStringLongNonAscii 1932 1862 -3.6% 1.04x
CStringShortAscii 4245 4225 -0.5% 1.00x (?)
Calculator 384 399 +3.9% 0.96x
CaptureProp 8220 7917 -3.7% 1.04x
CharIndexing_ascii_unicodeScalars 13607 14192 +4.3% 0.96x
CharIndexing_ascii_unicodeScalars_Backwards 13293 12929 -2.7% 1.03x
CharIndexing_chinese_unicodeScalars 10304 10752 +4.3% 0.96x
CharIndexing_chinese_unicodeScalars_Backwards 10075 9803 -2.7% 1.03x
CharIndexing_japanese_unicodeScalars 16290 16988 +4.3% 0.96x
CharIndexing_japanese_unicodeScalars_Backwards 15911 15473 -2.8% 1.03x
CharIndexing_korean_unicodeScalars 13195 13770 +4.4% 0.96x
CharIndexing_korean_unicodeScalars_Backwards 12896 12539 -2.8% 1.03x
CharIndexing_punctuatedJapanese_unicodeScalars 2481 2575 +3.8% 0.96x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2427 2368 -2.4% 1.02x
CharIndexing_punctuated_unicodeScalars 3095 3221 +4.1% 0.96x
CharIndexing_punctuated_unicodeScalars_Backwards 3029 2955 -2.4% 1.03x
CharIndexing_russian_unicodeScalars 11336 11831 +4.4% 0.96x
CharIndexing_russian_unicodeScalars_Backwards 11085 10781 -2.7% 1.03x
CharIndexing_tweet_unicodeScalars_Backwards 26204 25597 -2.3% 1.02x
CharIndexing_utf16_unicodeScalars 18481 18683 +1.1% 0.99x
CharIndexing_utf16_unicodeScalars_Backwards 19252 19148 -0.5% 1.01x
CharIteration_ascii_unicodeScalars 18743 18670 -0.4% 1.00x (?)
CharIteration_chinese_unicodeScalars 14183 14144 -0.3% 1.00x (?)
CharIteration_japanese_unicodeScalars 22440 22356 -0.4% 1.00x (?)
CharIteration_korean_unicodeScalars 18170 18114 -0.3% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3339 3364 +0.7% 0.99x
CharIteration_punctuated_unicodeScalars 4199 4208 +0.2% 1.00x
CharIteration_russian_unicodeScalars 15602 15529 -0.5% 1.00x (?)
CharIteration_tweet_unicodeScalars 37168 36801 -1.0% 1.01x
CharIteration_utf16_unicodeScalars 24612 24488 -0.5% 1.01x
CharacterLiteralsLarge 5437 5468 +0.6% 0.99x (?)
CharacterLiteralsSmall 368 368 +0.0% 1.00x
CharacterPropertiesFetch 4199 4202 +0.1% 1.00x (?)
CharacterPropertiesStashed 1479 1459 -1.4% 1.01x (?)
Chars 869 869 +0.0% 1.00x
Combos 407 411 +1.0% 0.99x (?)
DictOfArraysToArrayOfDicts 701 724 +3.3% 0.97x (?)
Dictionary2 1443 1501 +4.0% 0.96x (?)
Dictionary2OfObjects 2661 2721 +2.3% 0.98x (?)
DictionaryBridge 1800 1807 +0.4% 1.00x (?)
DictionaryOfObjects 1950 2001 +2.6% 0.97x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 68 68 +0.0% 1.00x
DropFirstAnyCollectionLazy 58666 58357 -0.5% 1.01x (?)
DropFirstAnySeqCRangeIter 16218 16561 +2.1% 0.98x
DropFirstAnySeqCRangeIterLazy 16216 16572 +2.2% 0.98x (?)
DropFirstAnySeqCntRange 64 64 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 64 64 +0.0% 1.00x
DropFirstAnySequence 3917 3941 +0.6% 0.99x (?)
DropFirstAnySequenceLazy 3918 3944 +0.7% 0.99x
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 2505 2505 +0.0% 1.00x
DropLastAnyCollection 25 25 +0.0% 1.00x
DropLastAnyCollectionLazy 19580 19489 -0.5% 1.00x (?)
DropLastAnySeqCRangeIter 3159 3204 +1.4% 0.99x
DropLastAnySeqCRangeIterLazy 3155 3251 +3.0% 0.97x
DropLastAnySeqCntRange 21 21 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 21 21 +0.0% 1.00x
DropLastAnySequence 4610 4700 +2.0% 0.98x (?)
DropLastAnySequenceLazy 4642 4703 +1.3% 0.99x (?)
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropLastSequence 569 563 -1.1% 1.01x (?)
DropLastSequenceLazy 570 563 -1.2% 1.01x
DropWhileAnyCollection 89 89 +0.0% 1.00x
DropWhileAnyCollectionLazy 132 132 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 132 132 +0.0% 1.00x
DropWhileAnySeqCntRange 85 85 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 132 132 +0.0% 1.00x
DropWhileAnySequence 4253 4333 +1.9% 0.98x (?)
DropWhileAnySequenceLazy 1664 1663 -0.1% 1.00x (?)
DropWhileArrayLazy 115 115 +0.0% 1.00x
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 387 388 +0.3% 1.00x (?)
EqualSubstringString 387 388 +0.3% 1.00x (?)
EqualSubstringSubstring 387 388 +0.3% 1.00x (?)
EqualSubstringSubstringGenericEquatable 387 389 +0.5% 0.99x (?)
ErrorHandling 2087 2077 -0.5% 1.00x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1175 1178 +0.3% 1.00x (?)
FilterEvenUsingReduceInto 134 133 -0.7% 1.01x (?)
FrequenciesUsingReduce 5975 6101 +2.1% 0.98x (?)
FrequenciesUsingReduceInto 2828 2967 +4.9% 0.95x (?)
HashTest 1578 1582 +0.3% 1.00x (?)
Integrate 202 195 -3.5% 1.04x (?)
IterateData 1235 1251 +1.3% 0.99x
Join 340 342 +0.6% 0.99x (?)
LazilyFilteredArrayContains 32895 31819 -3.3% 1.03x
LazilyFilteredArrays 59057 59235 +0.3% 1.00x (?)
LazilyFilteredRange 3419 3418 -0.0% 1.00x (?)
LessSubstringSubstring 388 388 +0.0% 1.00x
LessSubstringSubstringGenericComparable 388 388 +0.0% 1.00x
LinkedList 6765 6798 +0.5% 1.00x
LuhnAlgoEager 529 532 +0.6% 0.99x (?)
LuhnAlgoLazy 527 533 +1.1% 0.99x (?)
MapReduce 357 357 +0.0% 1.00x
MapReduceAnyCollection 358 358 +0.0% 1.00x
MapReduceAnyCollectionShort 1837 1830 -0.4% 1.00x (?)
MapReduceClass 2736 2716 -0.7% 1.01x (?)
MapReduceClassShort 4129 4145 +0.4% 1.00x (?)
MapReduceLazyCollection 12 12 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 77 77 +0.0% 1.00x
MapReduceSequence 408 408 +0.0% 1.00x
MapReduceShort 1832 1849 +0.9% 0.99x (?)
MapReduceShortString 19 19 +0.0% 1.00x
MapReduceString 74 74 +0.0% 1.00x
Memset 192 192 +0.0% 1.00x
MonteCarloE 9301 9211 -1.0% 1.01x
MonteCarloPi 38493 38464 -0.1% 1.00x (?)
NSDictionaryCastToSwift 4745 4835 +1.9% 0.98x (?)
NSError 269 272 +1.1% 0.99x (?)
NSStringConversion 293 282 -3.8% 1.04x
NibbleSort 3551 3551 +0.0% 1.00x
NopDeinit 19365 19353 -0.1% 1.00x (?)
ObjectAllocation 164 163 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObject 16993 17356 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3541 3536 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 34534 33531 -2.9% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 29349 29114 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 108516 103922 -4.2% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 3718 3780 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSString 1211 1172 -3.2% 1.03x (?)
ObjectiveCBridgeFromNSStringForced 2083 2122 +1.9% 0.98x (?)
ObjectiveCBridgeStubDataAppend 3480 3530 +1.4% 0.99x (?)
ObjectiveCBridgeStubDateMutation 231 231 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 23049 23596 +2.4% 0.98x (?)
ObjectiveCBridgeStubFromNSDate 3662 3770 +2.9% 0.97x (?)
ObjectiveCBridgeStubFromNSString 765 763 -0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 142 142 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2255 2236 -0.8% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 11677 11587 -0.8% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 25476 25741 +1.0% 0.99x (?)
ObjectiveCBridgeStubToNSDate 13870 14115 +1.8% 0.98x (?)
ObjectiveCBridgeStubToNSDateRef 3057 3045 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1382 1394 +0.9% 0.99x (?)
ObjectiveCBridgeStubToNSStringRef 101 101 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 284696 292942 +2.9% 0.97x (?)
ObjectiveCBridgeStubURLAppendPathRef 287602 298242 +3.7% 0.96x (?)
ObjectiveCBridgeToNSArray 25504 26425 +3.6% 0.97x (?)
ObjectiveCBridgeToNSDictionary 49026 48555 -1.0% 1.01x (?)
ObjectiveCBridgeToNSSet 39901 39264 -1.6% 1.02x (?)
ObjectiveCBridgeToNSString 1179 1180 +0.1% 1.00x (?)
ObserverClosure 1923 1921 -0.1% 1.00x (?)
ObserverForwarderStruct 840 839 -0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 3326 3325 -0.0% 1.00x (?)
ObserverUnappliedMethod 2064 2078 +0.7% 0.99x (?)
OpenClose 228 233 +2.2% 0.98x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 3631 3692 +1.7% 0.98x
PointerArithmetics 30823 30824 +0.0% 1.00x (?)
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1736 1737 +0.1% 1.00x (?)
PopFrontArrayGeneric 1755 1708 -2.7% 1.03x (?)
PrefixAnyCollection 68 68 +0.0% 1.00x
PrefixAnyCollectionLazy 58673 58407 -0.5% 1.00x (?)
PrefixAnySeqCntRange 64 64 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 64 64 +0.0% 1.00x
PrefixAnySequence 3403 3509 +3.1% 0.97x
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 1267 +0.0% 1.00x
PrefixWhileAnyCollection 131 131 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 95 95 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 8401 8496 +1.1% 0.99x (?)
PrefixWhileAnySeqCRangeIterLazy 95 95 +0.0% 1.00x
PrefixWhileAnySeqCntRange 127 127 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 95 95 +0.0% 1.00x
PrefixWhileAnySequence 9346 9570 +2.4% 0.98x
PrefixWhileAnySequenceLazy 1248 1248 +0.0% 1.00x
PrefixWhileArray 94 94 +0.0% 1.00x
PrefixWhileArrayLazy 63 63 +0.0% 1.00x
PrefixWhileCountableRange 41 41 +0.0% 1.00x
PrefixWhileCountableRangeLazy 31 31 +0.0% 1.00x
PrefixWhileSequence 320 331 +3.4% 0.97x (?)
PrefixWhileSequenceLazy 47 47 +0.0% 1.00x
QueueConcrete 1172 1153 -1.6% 1.02x (?)
QueueGeneric 1036 1032 -0.4% 1.00x (?)
RC4 151 151 +0.0% 1.00x
RangeAssignment 315 316 +0.3% 1.00x (?)
RangeIterationSigned 154 154 +0.0% 1.00x
RangeIterationSigned64 179 179 +0.0% 1.00x
RangeIterationUnsigned 179 179 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 877 885 +0.9% 0.99x (?)
RecursiveOwnedParameter 2105 2104 -0.0% 1.00x (?)
ReversedArray 51 51 +0.0% 1.00x
ReversedBidirectional 13745 13800 +0.4% 1.00x (?)
RomanNumbers 105460 105809 +0.3% 1.00x (?)
SevenBoom 1369 1380 +0.8% 0.99x (?)
Sim2DArray 369 368 -0.3% 1.00x (?)
SortLargeExistentials 6319 6335 +0.3% 1.00x (?)
SortLettersInPlace 1034 1038 +0.4% 1.00x (?)
SortSortedStrings 1043 1068 +2.4% 0.98x
SortStrings 1819 1865 +2.5% 0.98x
SortStringsUnicode 13920 13956 +0.3% 1.00x (?)
StackPromo 20075 20110 +0.2% 1.00x (?)
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1404 1405 +0.1% 1.00x (?)
StrToInt 1880 1950 +3.7% 0.96x
StringAdder 3819 3829 +0.3% 1.00x (?)
StringBuilder 1288 1293 +0.4% 1.00x (?)
StringBuilderLong 973 973 +0.0% 1.00x
StringComparison_abnormal 772 775 +0.4% 1.00x (?)
StringComparison_ascii 848 876 +3.3% 0.97x
StringComparison_emoji 2285 2296 +0.5% 1.00x (?)
StringComparison_fastPrenormal 7795 7834 +0.5% 1.00x (?)
StringComparison_latin1 5380 5413 +0.6% 0.99x (?)
StringComparison_longSharedPrefix 10330 10338 +0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 4201 4195 -0.1% 1.00x (?)
StringComparison_slowerPrenormal 3722 3747 +0.7% 0.99x (?)
StringComparison_zalgo 1550 1553 +0.2% 1.00x (?)
StringEdits 108880 107482 -1.3% 1.01x (?)
StringEqualPointerComparison 256 256 +0.0% 1.00x
StringFromLongWholeSubstring 18 18 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 9 9 +0.0% 1.00x
StringHasPrefixUnicode 24955 25246 +1.2% 0.99x (?)
StringHasSuffixAscii 1490 1567 +5.2% 0.95x
StringHasSuffixUnicode 76280 76715 +0.6% 0.99x (?)
StringInterpolation 8276 8333 +0.7% 0.99x (?)
StringMatch 6701 6820 +1.8% 0.98x
StringRemoveDupes 1074 1102 +2.6% 0.97x
StringUTF16Builder 2141 2161 +0.9% 0.99x (?)
StringWalk 1277 1316 +3.1% 0.97x
StringWithCString 37965 37978 +0.0% 1.00x (?)
SubstringComparable 1860 1859 -0.1% 1.00x (?)
SubstringEqualString 1917 1907 -0.5% 1.01x (?)
SubstringEquatable 2836 2843 +0.2% 1.00x (?)
SubstringFromLongString 9 9 +0.0% 1.00x
SubstringFromLongStringGeneric 63 62 -1.6% 1.02x (?)
SuffixAnyCollection 25 25 +0.0% 1.00x
SuffixAnyCollectionLazy 19572 19373 -1.0% 1.01x (?)
SuffixAnySeqCRangeIter 3424 3505 +2.4% 0.98x
SuffixAnySeqCRangeIterLazy 3425 3468 +1.3% 0.99x
SuffixAnySeqCntRange 21 21 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 21 21 +0.0% 1.00x
SuffixAnySequence 4600 4712 +2.4% 0.98x
SuffixAnySequenceLazy 4680 4717 +0.8% 0.99x
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 3390 3475 +2.5% 0.98x (?)
SuffixSequenceLazy 3383 3432 +1.4% 0.99x (?)
SumUsingReduce 91 91 +0.0% 1.00x
SumUsingReduceInto 91 91 +0.0% 1.00x
SuperChars 36793 37507 +1.9% 0.98x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 281 286 +1.8% 0.98x
Walsh 376 375 -0.3% 1.00x (?)
WordCountHistogramASCII 7172 7121 -0.7% 1.01x (?)
WordCountHistogramUTF16 46757 47274 +1.1% 0.99x (?)
WordCountUniqueUTF16 19773 20208 +2.2% 0.98x (?)
XorLoop 335 335 +0.0% 1.00x

Unoptimized (Onone)

Regression (25)
TEST OLD NEW DELTA SPEEDUP
Dictionary4OfObjects 1633 1868 +14.4% 0.87x
SetUnion_OfObjects 26106 29603 +13.4% 0.88x
RangeAssignment 2389 2695 +12.8% 0.89x
SetIntersect_OfObjects 10800 12157 +12.6% 0.89x
ArrayOfPOD 675 757 +12.1% 0.89x
PrefixAnySeqCRangeIterLazy 14736 16283 +10.5% 0.90x
SetExclusiveOr_OfObjects 37594 41419 +10.2% 0.91x
DictionarySubscriptDefaultMutationOfObjects 5066 5568 +9.9% 0.91x (?)
SetIsSubsetOf_OfObjects 1396 1534 +9.9% 0.91x
TwoSum 3479 3818 +9.7% 0.91x
PrefixAnySeqCRangeIter 14798 16192 +9.4% 0.91x (?)
SetUnion 10656 11652 +9.3% 0.91x
StringEqualPointerComparison 2736 2974 +8.7% 0.92x
CharIndexing_utf16_unicodeScalars 270549 293844 +8.6% 0.92x (?)
DictionaryRemoveOfObjects 44641 48325 +8.3% 0.92x
Dictionary4 1067 1154 +8.2% 0.92x
DropWhileAnySeqCRangeIter 19886 21410 +7.7% 0.93x
Combos 1872 2013 +7.5% 0.93x
StringHasPrefixAscii 2646 2830 +7.0% 0.93x
SetExclusiveOr 15510 16490 +6.3% 0.94x
Calculator 1504 1594 +6.0% 0.94x
PrimsSplit 8607 9097 +5.7% 0.95x
ObjectiveCBridgeFromNSSetAnyObjectToString 66115 69790 +5.6% 0.95x (?)
HashTest 15082 15893 +5.4% 0.95x
DictionarySubscriptDefaultMutationArrayOfObjects 8138 8571 +5.3% 0.95x (?)
Improvement (15)
TEST OLD NEW DELTA SPEEDUP
WordSplitUTF16 24457 10257 -58.1% 2.38x
WordSplitASCII 23268 13800 -40.7% 1.69x (?)
ErrorHandling 6654 6066 -8.8% 1.10x (?)
WordCountHistogramASCII 43259 39807 -8.0% 1.09x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 6610 6092 -7.8% 1.09x
DropFirstArray 3613 3357 -7.1% 1.08x
DropLastAnyCollectionLazy 32766 30473 -7.0% 1.08x
DictionarySwapOfObjects 19919 18592 -6.7% 1.07x (?)
ObjectiveCBridgeFromNSSetAnyObject 56517 52801 -6.6% 1.07x (?)
PrefixArray 3579 3359 -6.1% 1.07x
ObjectiveCBridgeFromNSDictionaryAnyObject 114989 107985 -6.1% 1.06x (?)
SuffixAnyCollectionLazy 32257 30385 -5.8% 1.06x (?)
PrefixAnyCollectionLazy 97402 92262 -5.3% 1.06x (?)
BitCount 2028 1930 -4.8% 1.05x
CharacterLiteralsSmall 669 637 -4.8% 1.05x
No Changes (322)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4548 4570 +0.5% 1.00x (?)
AnyHashableWithAClass 77552 77447 -0.1% 1.00x (?)
Array2D 570680 570707 +0.0% 1.00x (?)
ArrayAppend 4175 4174 -0.0% 1.00x (?)
ArrayAppendArrayOfInt 727 727 +0.0% 1.00x
ArrayAppendAscii 35928 36040 +0.3% 1.00x
ArrayAppendFromGeneric 729 733 +0.5% 0.99x
ArrayAppendGenericStructs 1274 1274 +0.0% 1.00x
ArrayAppendLatin1 56607 56986 +0.7% 0.99x
ArrayAppendLazyMap 150918 150318 -0.4% 1.00x
ArrayAppendOptionals 1272 1275 +0.2% 1.00x (?)
ArrayAppendRepeatCol 154252 155394 +0.7% 0.99x
ArrayAppendReserved 3834 3836 +0.1% 1.00x (?)
ArrayAppendSequence 129294 129003 -0.2% 1.00x (?)
ArrayAppendStrings 13816 13854 +0.3% 1.00x (?)
ArrayAppendToFromGeneric 728 732 +0.5% 0.99x (?)
ArrayAppendToGeneric 732 735 +0.4% 1.00x (?)
ArrayAppendUTF16 56337 56888 +1.0% 0.99x
ArrayInClass 5558 5551 -0.1% 1.00x (?)
ArrayLiteral 1595 1596 +0.1% 1.00x (?)
ArrayOfGenericPOD2 1010 1011 +0.1% 1.00x (?)
ArrayOfGenericRef 9257 9444 +2.0% 0.98x (?)
ArrayOfRef 8390 8400 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 728 731 +0.4% 1.00x (?)
ArrayPlusEqualFiveElementCollection 208218 207960 -0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 205111 205541 +0.2% 1.00x (?)
ArrayPlusEqualThreeElements 8275 8262 -0.2% 1.00x (?)
ArraySubscript 73002 76508 +4.8% 0.95x
ArrayValueProp 3256 3252 -0.1% 1.00x (?)
ArrayValueProp2 14265 14525 +1.8% 0.98x
ArrayValueProp3 3692 3683 -0.2% 1.00x (?)
ArrayValueProp4 3637 3645 +0.2% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 5390 5339 -0.9% 1.01x (?)
ByteSwap 3528 3492 -1.0% 1.01x
COWTree 9774 10188 +4.2% 0.96x (?)
CSVParsing 2207656 2189402 -0.8% 1.01x (?)
CSVParsingAlt 1192882 1183753 -0.8% 1.01x (?)
CSVParsingAltIndices 2232084 2305766 +3.3% 0.97x (?)
CStringLongAscii 4128 4300 +4.2% 0.96x
CStringLongNonAscii 1927 1868 -3.1% 1.03x
CStringShortAscii 6805 6797 -0.1% 1.00x (?)
CaptureProp 232491 229540 -1.3% 1.01x
CharIndexing_ascii_unicodeScalars 320878 320528 -0.1% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 338570 343000 +1.3% 0.99x
CharIndexing_chinese_unicodeScalars 244928 243192 -0.7% 1.01x (?)
CharIndexing_chinese_unicodeScalars_Backwards 268658 258113 -3.9% 1.04x (?)
CharIndexing_japanese_unicodeScalars 382747 382019 -0.2% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 409231 415227 +1.5% 0.99x (?)
CharIndexing_korean_unicodeScalars 313458 308430 -1.6% 1.02x (?)
CharIndexing_korean_unicodeScalars_Backwards 347786 364237 +4.7% 0.95x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 56002 56520 +0.9% 0.99x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 59376 60025 +1.1% 0.99x (?)
CharIndexing_punctuated_unicodeScalars 71546 72443 +1.3% 0.99x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 75080 75537 +0.6% 0.99x (?)
CharIndexing_russian_unicodeScalars 265600 270746 +1.9% 0.98x (?)
CharIndexing_russian_unicodeScalars_Backwards 285315 293471 +2.9% 0.97x (?)
CharIndexing_tweet_unicodeScalars 632837 646117 +2.1% 0.98x (?)
CharIndexing_tweet_unicodeScalars_Backwards 678140 686784 +1.3% 0.99x (?)
CharIndexing_utf16_unicodeScalars_Backwards 285805 290256 +1.6% 0.98x (?)
CharIteration_ascii_unicodeScalars 138162 140466 +1.7% 0.98x (?)
CharIteration_ascii_unicodeScalars_Backwards 262040 260784 -0.5% 1.00x (?)
CharIteration_chinese_unicodeScalars 104596 106345 +1.7% 0.98x (?)
CharIteration_chinese_unicodeScalars_Backwards 197698 196297 -0.7% 1.01x (?)
CharIteration_japanese_unicodeScalars 165620 168084 +1.5% 0.99x (?)
CharIteration_japanese_unicodeScalars_Backwards 314164 314992 +0.3% 1.00x (?)
CharIteration_korean_unicodeScalars 134816 136861 +1.5% 0.99x (?)
CharIteration_korean_unicodeScalars_Backwards 253911 252490 -0.6% 1.01x (?)
CharIteration_punctuatedJapanese_unicodeScalars 24711 25253 +2.2% 0.98x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 45993 45533 -1.0% 1.01x (?)
CharIteration_punctuated_unicodeScalars 31029 31591 +1.8% 0.98x (?)
CharIteration_punctuated_unicodeScalars_Backwards 58142 57218 -1.6% 1.02x (?)
CharIteration_russian_unicodeScalars 115053 117120 +1.8% 0.98x (?)
CharIteration_russian_unicodeScalars_Backwards 216932 216346 -0.3% 1.00x (?)
CharIteration_tweet_unicodeScalars 272849 277062 +1.5% 0.98x (?)
CharIteration_tweet_unicodeScalars_Backwards 517403 513885 -0.7% 1.01x (?)
CharIteration_utf16_unicodeScalars 118075 117736 -0.3% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 224231 223343 -0.4% 1.00x (?)
CharacterLiteralsLarge 5390 5383 -0.1% 1.00x (?)
CharacterPropertiesFetch 4940 4894 -0.9% 1.01x (?)
CharacterPropertiesPrecomputed 3809 3937 +3.4% 0.97x (?)
CharacterPropertiesStashed 2049 2032 -0.8% 1.01x (?)
CharacterPropertiesStashedMemo 4505 4580 +1.7% 0.98x (?)
Chars 35575 36338 +2.1% 0.98x
ClassArrayGetter 879 883 +0.5% 1.00x
DictOfArraysToArrayOfDicts 3046 3107 +2.0% 0.98x (?)
Dictionary 2307 2328 +0.9% 0.99x (?)
Dictionary2 2627 2624 -0.1% 1.00x (?)
Dictionary2OfObjects 4967 5050 +1.7% 0.98x (?)
Dictionary3 1143 1199 +4.9% 0.95x
Dictionary3OfObjects 2010 2052 +2.1% 0.98x (?)
DictionaryBridge 1837 1913 +4.1% 0.96x (?)
DictionaryGroup 3780 3820 +1.1% 0.99x
DictionaryGroupOfObjects 6671 6693 +0.3% 1.00x (?)
DictionaryLiteral 7628 7922 +3.9% 0.96x (?)
DictionaryOfObjects 5431 5561 +2.4% 0.98x (?)
DictionaryRemove 16262 17025 +4.7% 0.96x
DictionarySubscriptDefaultMutation 1894 1976 +4.3% 0.96x
DictionarySubscriptDefaultMutationArray 2123 2195 +3.4% 0.97x
DictionarySwap 4703 4887 +3.9% 0.96x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 12196 12144 -0.4% 1.00x
DropFirstAnyCollectionLazy 94981 91749 -3.4% 1.04x (?)
DropFirstAnySeqCRangeIter 18356 18389 +0.2% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 18248 18516 +1.5% 0.99x
DropFirstAnySeqCntRange 12271 12159 -0.9% 1.01x (?)
DropFirstAnySeqCntRangeLazy 12295 12187 -0.9% 1.01x
DropFirstAnySequence 9649 9775 +1.3% 0.99x
DropFirstAnySequenceLazy 9639 9789 +1.6% 0.98x
DropFirstArrayLazy 22804 22823 +0.1% 1.00x (?)
DropFirstCountableRange 291 291 +0.0% 1.00x
DropFirstCountableRangeLazy 23441 23850 +1.7% 0.98x (?)
DropFirstSequence 9319 9399 +0.9% 0.99x
DropFirstSequenceLazy 9393 9403 +0.1% 1.00x (?)
DropLastAnyCollection 4109 4082 -0.7% 1.01x
DropLastAnySeqCRangeIter 33542 34104 +1.7% 0.98x
DropLastAnySeqCRangeIterLazy 33640 33854 +0.6% 0.99x
DropLastAnySeqCntRange 4077 4054 -0.6% 1.01x
DropLastAnySeqCntRangeLazy 4109 4082 -0.7% 1.01x (?)
DropLastAnySequence 25919 26142 +0.9% 0.99x
DropLastAnySequenceLazy 25883 26023 +0.5% 0.99x
DropLastCountableRange 100 100 +0.0% 1.00x
DropLastCountableRangeLazy 7815 7963 +1.9% 0.98x (?)
DropLastSequence 25803 25828 +0.1% 1.00x (?)
DropLastSequenceLazy 25838 25952 +0.4% 1.00x (?)
DropWhileAnyCollection 15681 15620 -0.4% 1.00x (?)
DropWhileAnyCollectionLazy 16939 17067 +0.8% 0.99x
DropWhileAnySeqCRangeIterLazy 16863 17310 +2.7% 0.97x
DropWhileAnySeqCntRange 15657 15803 +0.9% 0.99x
DropWhileAnySeqCntRangeLazy 16939 17117 +1.1% 0.99x (?)
DropWhileAnySequence 10967 11049 +0.7% 0.99x (?)
DropWhileAnySequenceLazy 8987 9082 +1.1% 0.99x
DropWhileArrayLazy 12308 12374 +0.5% 0.99x
DropWhileCountableRange 3722 3728 +0.2% 1.00x
DropWhileCountableRangeLazy 16489 16917 +2.6% 0.97x
DropWhileSequence 10747 10816 +0.6% 0.99x (?)
DropWhileSequenceLazy 8666 8821 +1.8% 0.98x
EqualStringSubstring 428 428 +0.0% 1.00x
EqualSubstringString 428 428 +0.0% 1.00x
EqualSubstringSubstring 428 430 +0.5% 1.00x
EqualSubstringSubstringGenericEquatable 435 436 +0.2% 1.00x (?)
ExclusivityGlobal 161 166 +3.1% 0.97x
ExclusivityIndependent 61 63 +3.3% 0.97x (?)
FilterEvenUsingReduce 3323 3328 +0.2% 1.00x (?)
FilterEvenUsingReduceInto 1777 1778 +0.1% 1.00x (?)
FrequenciesUsingReduce 9591 10026 +4.5% 0.96x (?)
FrequenciesUsingReduceInto 5231 5061 -3.2% 1.03x (?)
Hanoi 17642 18275 +3.6% 0.97x
Histogram 5893 6022 +2.2% 0.98x
Integrate 729 736 +1.0% 0.99x
IterateData 7022 6965 -0.8% 1.01x
Join 989 989 +0.0% 1.00x
LazilyFilteredArrayContains 693255 690950 -0.3% 1.00x (?)
LazilyFilteredArrays 1313196 1310961 -0.2% 1.00x (?)
LazilyFilteredRange 420769 422683 +0.5% 1.00x (?)
LessSubstringSubstring 428 430 +0.5% 1.00x (?)
LessSubstringSubstringGenericComparable 434 434 +0.0% 1.00x
LinkedList 28766 28818 +0.2% 1.00x (?)
LuhnAlgoEager 4527 4653 +2.8% 0.97x (?)
LuhnAlgoLazy 4600 4592 -0.2% 1.00x (?)
MapReduce 24406 24631 +0.9% 0.99x
MapReduceAnyCollection 24615 24389 -0.9% 1.01x (?)
MapReduceAnyCollectionShort 34903 35622 +2.1% 0.98x (?)
MapReduceClass 28706 28735 +0.1% 1.00x (?)
MapReduceClassShort 38485 38433 -0.1% 1.00x (?)
MapReduceLazyCollection 20796 21103 +1.5% 0.99x
MapReduceLazyCollectionShort 29933 30474 +1.8% 0.98x (?)
MapReduceLazySequence 16343 17068 +4.4% 0.96x
MapReduceSequence 27446 27989 +2.0% 0.98x
MapReduceShort 34347 34863 +1.5% 0.99x (?)
MapReduceShortString 217 211 -2.8% 1.03x (?)
MapReduceString 1720 1720 +0.0% 1.00x
Memset 40099 40126 +0.1% 1.00x (?)
MonteCarloE 808403 816800 +1.0% 0.99x
MonteCarloPi 3506702 3519131 +0.4% 1.00x
NSDictionaryCastToSwift 5967 5939 -0.5% 1.00x (?)
NSError 637 638 +0.2% 1.00x (?)
NSStringConversion 331 328 -0.9% 1.01x
NibbleSort 269543 274445 +1.8% 0.98x
NopDeinit 146710 151765 +3.4% 0.97x
ObjectAllocation 1213 1212 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 21087 21103 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7248 7474 +3.1% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 35962 37483 +4.2% 0.96x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 32641 31871 -2.4% 1.02x (?)
ObjectiveCBridgeFromNSString 2807 2947 +5.0% 0.95x (?)
ObjectiveCBridgeFromNSStringForced 2396 2450 +2.3% 0.98x (?)
ObjectiveCBridgeStubDataAppend 4048 3948 -2.5% 1.03x (?)
ObjectiveCBridgeStubDateMutation 540 539 -0.2% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 23175 23589 +1.8% 0.98x (?)
ObjectiveCBridgeStubFromNSDate 4068 4018 -1.2% 1.01x
ObjectiveCBridgeStubFromNSString 809 808 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 179 173 -3.4% 1.03x
ObjectiveCBridgeStubNSDataAppend 2775 2730 -1.6% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 14221 13954 -1.9% 1.02x (?)
ObjectiveCBridgeStubToArrayOfNSString 25513 26148 +2.5% 0.98x (?)
ObjectiveCBridgeStubToNSDate 14373 13966 -2.8% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3097 3115 +0.6% 0.99x (?)
ObjectiveCBridgeStubToNSString 1410 1413 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 142 140 -1.4% 1.01x (?)
ObjectiveCBridgeStubURLAppendPath 297730 295137 -0.9% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 304486 304736 +0.1% 1.00x (?)
ObjectiveCBridgeToNSArray 26214 26096 -0.5% 1.00x (?)
ObjectiveCBridgeToNSDictionary 50457 51431 +1.9% 0.98x (?)
ObjectiveCBridgeToNSSet 40984 41019 +0.1% 1.00x (?)
ObjectiveCBridgeToNSString 1208 1205 -0.2% 1.00x (?)
ObserverClosure 5709 5700 -0.2% 1.00x (?)
ObserverForwarderStruct 3880 3887 +0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 7020 7013 -0.1% 1.00x (?)
ObserverUnappliedMethod 7379 7377 -0.0% 1.00x (?)
OpenClose 503 516 +2.6% 0.97x
PartialApplyDynamicType 36930 37380 +1.2% 0.99x (?)
Phonebook 18160 18568 +2.2% 0.98x
PointerArithmetics 107912 107994 +0.1% 1.00x (?)
PolymorphicCalls 5306 5399 +1.8% 0.98x (?)
PopFrontArray 4035 4145 +2.7% 0.97x (?)
PopFrontArrayGeneric 5128 5162 +0.7% 0.99x
PopFrontUnsafePointer 10236 10209 -0.3% 1.00x (?)
PrefixAnyCollection 12235 12126 -0.9% 1.01x
PrefixAnySeqCntRange 12281 12180 -0.8% 1.01x
PrefixAnySeqCntRangeLazy 12250 12167 -0.7% 1.01x (?)
PrefixAnySequence 8021 8073 +0.6% 0.99x (?)
PrefixAnySequenceLazy 8050 8100 +0.6% 0.99x (?)
PrefixArrayLazy 22777 22816 +0.2% 1.00x (?)
PrefixCountableRange 291 291 +0.0% 1.00x
PrefixCountableRangeLazy 23448 23857 +1.7% 0.98x (?)
PrefixSequence 7771 7877 +1.4% 0.99x
PrefixSequenceLazy 7813 7853 +0.5% 0.99x (?)
PrefixWhileAnyCollection 22497 22416 -0.4% 1.00x
PrefixWhileAnyCollectionLazy 14231 14240 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIter 29742 29876 +0.5% 1.00x
PrefixWhileAnySeqCRangeIterLazy 14225 14283 +0.4% 1.00x (?)
PrefixWhileAnySeqCntRange 22527 22386 -0.6% 1.01x (?)
PrefixWhileAnySeqCntRangeLazy 14285 14196 -0.6% 1.01x (?)
PrefixWhileAnySequence 23702 23822 +0.5% 0.99x
PrefixWhileAnySequenceLazy 8133 8239 +1.3% 0.99x
PrefixWhileArray 10328 10371 +0.4% 1.00x
PrefixWhileArrayLazy 10754 10689 -0.6% 1.01x
PrefixWhileCountableRange 10521 10416 -1.0% 1.01x
PrefixWhileCountableRangeLazy 13975 13942 -0.2% 1.00x (?)
PrefixWhileSequence 23488 23555 +0.3% 1.00x (?)
PrefixWhileSequenceLazy 7980 8139 +2.0% 0.98x
Prims 8632 8868 +2.7% 0.97x
QueueConcrete 13535 13545 +0.1% 1.00x (?)
QueueGeneric 17053 17121 +0.4% 1.00x (?)
RC4 15108 14871 -1.6% 1.02x (?)
RGBHistogram 23990 25218 +5.1% 0.95x
RGBHistogramOfObjects 86654 89356 +3.1% 0.97x
RangeIterationSigned 14952 15087 +0.9% 0.99x (?)
RangeIterationSigned64 35211 35127 -0.2% 1.00x (?)
RangeIterationUnsigned 31188 31039 -0.5% 1.00x
RangeReplaceableCollectionPlusDefault 7220 7436 +3.0% 0.97x (?)
RecursiveOwnedParameter 7102 7131 +0.4% 1.00x
ReversedArray 11712 11753 +0.4% 1.00x (?)
ReversedBidirectional 37965 37796 -0.4% 1.00x (?)
ReversedDictionary 19902 20573 +3.4% 0.97x (?)
RomanNumbers 1046749 1087015 +3.8% 0.96x
SetIntersect 7364 7716 +4.8% 0.95x
SetIsSubsetOf 1201 1249 +4.0% 0.96x
SevenBoom 1500 1507 +0.5% 1.00x (?)
Sim2DArray 39124 39062 -0.2% 1.00x (?)
SortLargeExistentials 14094 14101 +0.0% 1.00x (?)
SortLettersInPlace 2524 2560 +1.4% 0.99x (?)
SortSortedStrings 1178 1200 +1.9% 0.98x
SortStrings 2165 2209 +2.0% 0.98x (?)
SortStringsUnicode 14646 14690 +0.3% 1.00x
StackPromo 80126 78502 -2.0% 1.02x (?)
StaticArray 2405 2379 -1.1% 1.01x
StrComplexWalk 5967 5978 +0.2% 1.00x (?)
StrToInt 51133 51346 +0.4% 1.00x (?)
StringAdder 4258 4270 +0.3% 1.00x (?)
StringBuilder 6269 6068 -3.2% 1.03x (?)
StringBuilderLong 2464 2440 -1.0% 1.01x (?)
StringComparison_abnormal 1287 1285 -0.2% 1.00x (?)
StringComparison_ascii 8659 8556 -1.2% 1.01x
StringComparison_emoji 3444 3452 +0.2% 1.00x
StringComparison_fastPrenormal 11826 11998 +1.5% 0.99x
StringComparison_latin1 8521 8561 +0.5% 1.00x (?)
StringComparison_longSharedPrefix 11741 11738 -0.0% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 6205 6205 +0.0% 1.00x
StringComparison_slowerPrenormal 6097 6123 +0.4% 1.00x (?)
StringComparison_zalgo 2569 2566 -0.1% 1.00x (?)
StringEdits 298856 305017 +2.1% 0.98x (?)
StringEnumRawValueInitialization 18703 19020 +1.7% 0.98x (?)
StringFromLongWholeSubstring 20 20 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 178 180 +1.1% 0.99x (?)
StringHasPrefixUnicode 27760 27990 +0.8% 0.99x
StringHasSuffixAscii 2753 2842 +3.2% 0.97x
StringHasSuffixUnicode 79152 79319 +0.2% 1.00x (?)
StringInterpolation 12616 12051 -4.5% 1.05x (?)
StringMatch 29933 30010 +0.3% 1.00x (?)
StringRemoveDupes 1255 1281 +2.1% 0.98x (?)
StringUTF16Builder 6907 6865 -0.6% 1.01x (?)
StringWalk 11644 11815 +1.5% 0.99x
StringWithCString 33710 35372 +4.9% 0.95x
StringWordBuilder 2212 2256 +2.0% 0.98x
StringWordBuilderReservingCapacity 1943 1984 +2.1% 0.98x
SubstringComparable 3707 3708 +0.0% 1.00x (?)
SubstringEqualString 3225 3126 -3.1% 1.03x (?)
SubstringEquatable 7137 7182 +0.6% 0.99x (?)
SubstringFromLongString 22 22 +0.0% 1.00x
SubstringFromLongStringGeneric 92 91 -1.1% 1.01x
SuffixAnyCollection 4111 4080 -0.8% 1.01x
SuffixAnySeqCRangeIter 30020 30480 +1.5% 0.98x
SuffixAnySeqCRangeIterLazy 30167 30135 -0.1% 1.00x (?)
SuffixAnySeqCntRange 4098 4067 -0.8% 1.01x
SuffixAnySeqCntRangeLazy 4094 4071 -0.6% 1.01x (?)
SuffixAnySequence 22352 22548 +0.9% 0.99x
SuffixAnySequenceLazy 22353 22818 +2.1% 0.98x
SuffixCountableRange 100 100 +0.0% 1.00x
SuffixCountableRangeLazy 7820 7964 +1.8% 0.98x
SuffixSequence 22223 22485 +1.2% 0.99x
SuffixSequenceLazy 22317 22674 +1.6% 0.98x (?)
SumUsingReduce 152880 152708 -0.1% 1.00x (?)
SumUsingReduceInto 152257 156768 +3.0% 0.97x (?)
SuperChars 196021 191904 -2.1% 1.02x (?)
TypeFlood 146 142 -2.7% 1.03x (?)
UTF8Decode 28673 27485 -4.1% 1.04x (?)
Walsh 10817 10944 +1.2% 0.99x (?)
WordCountHistogramUTF16 92070 94595 +2.7% 0.97x (?)
WordCountUniqueASCII 7137 7332 +2.7% 0.97x
WordCountUniqueUTF16 31534 31273 -0.8% 1.01x (?)
XorLoop 20962 20910 -0.2% 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

OK, this is way better than I expected. Dictionary4 demonstrates the cost of monadic chaining with a large state.

# Conflicts:
#	stdlib/public/core/Hashable.swift
@lorentey lorentey force-pushed the smashing-hashing.siphash13 branch from f5ce77f to 52ee818 Compare February 12, 2018 18:10
@lorentey
Copy link
Member Author

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Build failed before running benchmark.


@lorentey
Copy link
Member Author

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (42)
TEST OLD NEW DELTA SPEEDUP
SetIntersect 298 1858 +523.5% 0.16x
DictionarySwap 421 2518 +498.1% 0.17x
Histogram 289 1460 +405.2% 0.20x
DictionarySubscriptDefaultMutation 129 506 +292.2% 0.25x
Dictionary4OfObjects 179 672 +275.4% 0.27x
DictionaryGroup 118 385 +226.3% 0.31x
ReversedDictionary 97 313 +222.7% 0.31x
DictionaryRemove 2449 6946 +183.6% 0.35x
SetExclusiveOr 3124 8062 +158.1% 0.39x
SetIntersect_OfObjects 1586 4082 +157.4% 0.39x
Dictionary4 131 326 +148.9% 0.40x
Dictionary3 210 479 +128.1% 0.44x
TwoSum 890 1946 +118.7% 0.46x
SetUnion 2827 6105 +116.0% 0.46x
RGBHistogram 2673 5442 +103.6% 0.49x
SetExclusiveOr_OfObjects 7957 16159 +103.1% 0.49x
SetIsSubsetOf_OfObjects 328 660 +101.2% 0.50x
DictionarySubscriptDefaultMutationArray 441 846 +91.8% 0.52x
SetUnion_OfObjects 6502 12339 +89.8% 0.53x
SetIsSubsetOf 268 478 +78.4% 0.56x
DictionaryLiteral 1436 2397 +66.9% 0.60x
Prims 676 1096 +62.1% 0.62x
PrimsSplit 679 1096 +61.4% 0.62x
Dictionary 448 712 +58.9% 0.63x
WordCountUniqueASCII 1573 2460 +56.4% 0.64x
DictionarySwapOfObjects 6633 10368 +56.3% 0.64x
CharacterPropertiesPrecomputed 956 1482 +55.0% 0.65x
DictionarySubscriptDefaultMutationOfObjects 1246 1804 +44.8% 0.69x
CharacterPropertiesStashedMemo 1449 2057 +42.0% 0.70x
DictionaryGroupOfObjects 1727 2307 +33.6% 0.75x
Dictionary3OfObjects 602 804 +33.6% 0.75x
RGBHistogramOfObjects 21409 26950 +25.9% 0.79x
DictionaryRemoveOfObjects 21198 25987 +22.6% 0.82x
Dictionary2 1447 1715 +18.5% 0.84x
DictionarySubscriptDefaultMutationArrayOfObjects 3414 3973 +16.4% 0.86x
DictionaryOfObjects 1947 2258 +16.0% 0.86x
Chars 926 1030 +11.2% 0.90x
WordCountHistogramASCII 7124 7922 +11.2% 0.90x
WordCountUniqueUTF16 19359 21346 +10.3% 0.91x (?)
DictOfArraysToArrayOfDicts 703 774 +10.1% 0.91x
Dictionary2OfObjects 2662 2916 +9.5% 0.91x
ObjectiveCBridgeStubFromNSStringRef 139 148 +6.5% 0.94x (?)
Improvement (18)
TEST OLD NEW DELTA SPEEDUP
WordSplitASCII 19018 5461 -71.3% 3.48x (?)
WordSplitUTF16 19751 8439 -57.3% 2.34x
StringEnumRawValueInitialization 898 726 -19.2% 1.24x (?)
ObjectiveCBridgeFromNSSetAnyObject 51830 45226 -12.7% 1.15x (?)
CharIteration_utf16_unicodeScalars_Backwards 16089 14844 -7.7% 1.08x
Walsh 392 364 -7.1% 1.08x
CharIteration_tweet_unicodeScalars_Backwards 25236 23438 -7.1% 1.08x
CharIteration_japanese_unicodeScalars_Backwards 15312 14255 -6.9% 1.07x
CharIteration_korean_unicodeScalars_Backwards 12409 11553 -6.9% 1.07x
CharIteration_ascii_unicodeScalars_Backwards 12795 11922 -6.8% 1.07x
CharIteration_russian_unicodeScalars_Backwards 10666 9939 -6.8% 1.07x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2348 2190 -6.7% 1.07x
CharIteration_chinese_unicodeScalars_Backwards 9699 9052 -6.7% 1.07x
CharIteration_punctuated_unicodeScalars_Backwards 2930 2748 -6.2% 1.07x
ObjectiveCBridgeFromNSDictionaryAnyObject 108487 101835 -6.1% 1.07x (?)
ArrayAppendReserved 708 669 -5.5% 1.06x
ObjectiveCBridgeStubNSDateMutationRef 12151 11507 -5.3% 1.06x (?)
CharIndexing_tweet_unicodeScalars 28311 26820 -5.3% 1.06x
No Changes (302)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3263 3233 -0.9% 1.01x (?)
AnyHashableWithAClass 61484 62367 +1.4% 0.99x
Array2D 2281 2273 -0.4% 1.00x (?)
ArrayAppend 934 894 -4.3% 1.04x
ArrayAppendArrayOfInt 674 672 -0.3% 1.00x (?)
ArrayAppendAscii 12258 12288 +0.2% 1.00x (?)
ArrayAppendFromGeneric 674 674 +0.0% 1.00x
ArrayAppendGenericStructs 1212 1211 -0.1% 1.00x (?)
ArrayAppendLatin1 34476 34156 -0.9% 1.01x (?)
ArrayAppendLazyMap 1177 1177 +0.0% 1.00x
ArrayAppendOptionals 1211 1213 +0.2% 1.00x (?)
ArrayAppendRepeatCol 1175 1176 +0.1% 1.00x (?)
ArrayAppendSequence 991 993 +0.2% 1.00x (?)
ArrayAppendStrings 13646 13651 +0.0% 1.00x (?)
ArrayAppendToFromGeneric 674 673 -0.1% 1.00x (?)
ArrayAppendToGeneric 673 672 -0.1% 1.00x (?)
ArrayAppendUTF16 33543 33970 +1.3% 0.99x
ArrayInClass 77 77 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 129 129 +0.0% 1.00x
ArrayOfGenericRef 3928 3950 +0.6% 0.99x (?)
ArrayOfPOD 155 156 +0.6% 0.99x (?)
ArrayOfRef 3879 3900 +0.5% 0.99x (?)
ArrayPlusEqualArrayOfInt 673 670 -0.4% 1.00x (?)
ArrayPlusEqualFiveElementCollection 4971 4825 -2.9% 1.03x
ArrayPlusEqualSingleElementCollection 936 900 -3.8% 1.04x
ArrayPlusEqualThreeElements 1491 1485 -0.4% 1.00x (?)
ArraySubscript 1357 1367 +0.7% 0.99x (?)
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 33 34 +3.0% 0.97x
BitCount 189 189 +0.0% 1.00x
ByteSwap 88 87 -1.1% 1.01x (?)
COWTree 3317 3252 -2.0% 1.02x (?)
CSVParsing 677390 680641 +0.5% 1.00x (?)
CSVParsingAlt 654535 653345 -0.2% 1.00x (?)
CSVParsingAltIndices 324758 320169 -1.4% 1.01x (?)
CStringLongAscii 4280 4282 +0.0% 1.00x (?)
CStringLongNonAscii 1857 1874 +0.9% 0.99x (?)
CStringShortAscii 4221 4219 -0.0% 1.00x (?)
Calculator 396 392 -1.0% 1.01x (?)
CaptureProp 7963 8219 +3.2% 0.97x
CharIndexing_ascii_unicodeScalars 14188 13610 -4.1% 1.04x
CharIndexing_ascii_unicodeScalars_Backwards 12936 13296 +2.8% 0.97x
CharIndexing_chinese_unicodeScalars 10749 10307 -4.1% 1.04x
CharIndexing_chinese_unicodeScalars_Backwards 9803 10075 +2.8% 0.97x
CharIndexing_japanese_unicodeScalars 16985 16291 -4.1% 1.04x
CharIndexing_japanese_unicodeScalars_Backwards 15477 15913 +2.8% 0.97x
CharIndexing_korean_unicodeScalars 13755 13205 -4.0% 1.04x
CharIndexing_korean_unicodeScalars_Backwards 12538 12898 +2.9% 0.97x
CharIndexing_punctuatedJapanese_unicodeScalars 2576 2486 -3.5% 1.04x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2370 2429 +2.5% 0.98x
CharIndexing_punctuated_unicodeScalars 3224 3095 -4.0% 1.04x
CharIndexing_punctuated_unicodeScalars_Backwards 2957 3030 +2.5% 0.98x
CharIndexing_russian_unicodeScalars 11823 11344 -4.1% 1.04x
CharIndexing_russian_unicodeScalars_Backwards 10781 11089 +2.9% 0.97x
CharIndexing_tweet_unicodeScalars_Backwards 25594 26213 +2.4% 0.98x
CharIndexing_utf16_unicodeScalars 18721 18550 -0.9% 1.01x (?)
CharIndexing_utf16_unicodeScalars_Backwards 19163 19308 +0.8% 0.99x
CharIteration_ascii_unicodeScalars 18515 19236 +3.9% 0.96x
CharIteration_chinese_unicodeScalars 13939 14566 +4.5% 0.96x
CharIteration_japanese_unicodeScalars 22135 23035 +4.1% 0.96x
CharIteration_korean_unicodeScalars 17910 18650 +4.1% 0.96x
CharIteration_punctuatedJapanese_unicodeScalars 3298 3452 +4.7% 0.96x
CharIteration_punctuated_unicodeScalars 4146 4328 +4.4% 0.96x
CharIteration_russian_unicodeScalars 15390 16021 +4.1% 0.96x
CharIteration_tweet_unicodeScalars 36580 38249 +4.6% 0.96x
CharIteration_utf16_unicodeScalars 24630 24921 +1.2% 0.99x
CharacterLiteralsLarge 5469 5449 -0.4% 1.00x (?)
CharacterLiteralsSmall 367 370 +0.8% 0.99x (?)
CharacterPropertiesFetch 4162 4152 -0.2% 1.00x (?)
CharacterPropertiesStashed 1473 1445 -1.9% 1.02x (?)
ClassArrayGetter 13 13 +0.0% 1.00x
Combos 404 404 +0.0% 1.00x
DictionaryBridge 1781 1773 -0.4% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 68 68 +0.0% 1.00x
DropFirstAnyCollectionLazy 58321 58696 +0.6% 0.99x (?)
DropFirstAnySeqCRangeIter 146 146 +0.0% 1.00x
DropFirstAnySeqCRangeIterLazy 146 146 +0.0% 1.00x
DropFirstAnySeqCntRange 64 64 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 64 64 +0.0% 1.00x
DropFirstAnySequence 1652 1652 +0.0% 1.00x
DropFirstAnySequenceLazy 1652 1652 +0.0% 1.00x
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 2437 +0.7% 0.99x (?)
DropFirstSequenceLazy 2506 2511 +0.2% 1.00x (?)
DropLastAnyCollection 25 25 +0.0% 1.00x
DropLastAnyCollectionLazy 19558 19622 +0.3% 1.00x (?)
DropLastAnySeqCRangeIter 3156 3144 -0.4% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3165 3144 -0.7% 1.01x (?)
DropLastAnySeqCntRange 21 21 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 21 21 +0.0% 1.00x
DropLastAnySequence 4581 4557 -0.5% 1.01x (?)
DropLastAnySequenceLazy 4651 4645 -0.1% 1.00x (?)
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropLastSequence 574 564 -1.7% 1.02x
DropLastSequenceLazy 576 566 -1.7% 1.02x
DropWhileAnyCollection 89 89 +0.0% 1.00x
DropWhileAnyCollectionLazy 137 137 +0.0% 1.00x
DropWhileAnySeqCRangeIter 141 141 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 137 137 +0.0% 1.00x
DropWhileAnySeqCntRange 85 85 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 137 137 +0.0% 1.00x
DropWhileAnySequence 1668 1669 +0.1% 1.00x (?)
DropWhileAnySequenceLazy 1664 1664 +0.0% 1.00x
DropWhileArrayLazy 116 116 +0.0% 1.00x
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 387 387 +0.0% 1.00x
EqualSubstringString 387 386 -0.3% 1.00x (?)
EqualSubstringSubstring 386 386 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 388 387 -0.3% 1.00x (?)
ErrorHandling 2082 2095 +0.6% 0.99x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1170 1181 +0.9% 0.99x (?)
FilterEvenUsingReduceInto 133 133 +0.0% 1.00x
FrequenciesUsingReduce 6099 6203 +1.7% 0.98x (?)
FrequenciesUsingReduceInto 2836 2965 +4.5% 0.96x (?)
Hanoi 3133 3236 +3.3% 0.97x
HashTest 1584 1572 -0.8% 1.01x (?)
Integrate 195 195 +0.0% 1.00x
IterateData 1282 1238 -3.4% 1.04x
Join 331 341 +3.0% 0.97x (?)
LazilyFilteredArrayContains 32894 32890 -0.0% 1.00x (?)
LazilyFilteredArrays 59002 58995 -0.0% 1.00x (?)
LazilyFilteredRange 3419 3420 +0.0% 1.00x (?)
LessSubstringSubstring 386 386 +0.0% 1.00x
LessSubstringSubstringGenericComparable 387 386 -0.3% 1.00x (?)
LinkedList 6809 6781 -0.4% 1.00x (?)
LuhnAlgoEager 525 524 -0.2% 1.00x (?)
LuhnAlgoLazy 524 523 -0.2% 1.00x (?)
MapReduce 357 358 +0.3% 1.00x (?)
MapReduceAnyCollection 358 358 +0.0% 1.00x
MapReduceAnyCollectionShort 1825 1804 -1.2% 1.01x (?)
MapReduceClass 2721 2729 +0.3% 1.00x (?)
MapReduceClassShort 4113 4103 -0.2% 1.00x (?)
MapReduceLazyCollection 12 12 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 77 77 +0.0% 1.00x
MapReduceSequence 410 401 -2.2% 1.02x (?)
MapReduceShort 1816 1806 -0.6% 1.01x
MapReduceShortString 19 19 +0.0% 1.00x
MapReduceString 74 74 +0.0% 1.00x
Memset 191 193 +1.0% 0.99x (?)
MonteCarloE 9210 9325 +1.2% 0.99x
MonteCarloPi 38496 38476 -0.1% 1.00x (?)
NSDictionaryCastToSwift 4776 4764 -0.3% 1.00x (?)
NSError 273 271 -0.7% 1.01x (?)
NSStringConversion 283 290 +2.5% 0.98x
NibbleSort 3551 3553 +0.1% 1.00x (?)
NopDeinit 19348 19353 +0.0% 1.00x (?)
ObjectAllocation 164 164 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 17839 17091 -4.2% 1.04x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3514 3487 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 34112 34488 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 30722 29517 -3.9% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 3822 3725 -2.5% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 60871 63555 +4.4% 0.96x (?)
ObjectiveCBridgeFromNSString 1134 1163 +2.6% 0.98x (?)
ObjectiveCBridgeFromNSStringForced 2104 2097 -0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3474 3493 +0.5% 0.99x (?)
ObjectiveCBridgeStubDateMutation 231 231 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 23934 23071 -3.6% 1.04x (?)
ObjectiveCBridgeStubFromNSDate 3757 3765 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSString 778 758 -2.6% 1.03x (?)
ObjectiveCBridgeStubNSDataAppend 2195 2262 +3.1% 0.97x (?)
ObjectiveCBridgeStubToArrayOfNSString 25632 25744 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSDate 13366 13368 +0.0% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3027 3043 +0.5% 0.99x (?)
ObjectiveCBridgeStubToNSString 1383 1382 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 101 101 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 295601 290745 -1.6% 1.02x (?)
ObjectiveCBridgeStubURLAppendPathRef 300779 297358 -1.1% 1.01x (?)
ObjectiveCBridgeToNSArray 25876 25900 +0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 46407 48844 +5.3% 0.95x (?)
ObjectiveCBridgeToNSSet 39912 39746 -0.4% 1.00x (?)
ObjectiveCBridgeToNSString 1179 1178 -0.1% 1.00x (?)
ObserverClosure 1920 1924 +0.2% 1.00x (?)
ObserverForwarderStruct 845 838 -0.8% 1.01x (?)
ObserverPartiallyAppliedMethod 3369 3347 -0.7% 1.01x (?)
ObserverUnappliedMethod 2072 2065 -0.3% 1.00x (?)
OpenClose 228 236 +3.5% 0.97x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 3669 3689 +0.5% 0.99x (?)
PointerArithmetics 30821 30818 -0.0% 1.00x (?)
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1735 1690 -2.6% 1.03x (?)
PopFrontArrayGeneric 1755 1755 +0.0% 1.00x
PopFrontUnsafePointer 8426 8425 -0.0% 1.00x (?)
PrefixAnyCollection 68 68 +0.0% 1.00x
PrefixAnyCollectionLazy 58608 58696 +0.2% 1.00x (?)
PrefixAnySeqCRangeIter 114 114 +0.0% 1.00x
PrefixAnySeqCRangeIterLazy 114 114 +0.0% 1.00x
PrefixAnySeqCntRange 64 64 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 64 64 +0.0% 1.00x
PrefixAnySequence 1236 1236 +0.0% 1.00x
PrefixAnySequenceLazy 1236 1236 +0.0% 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 1192 1194 +0.2% 1.00x (?)
PrefixSequenceLazy 1286 1284 -0.2% 1.00x (?)
PrefixWhileAnyCollection 131 131 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 95 95 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 373 372 -0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 95 95 +0.0% 1.00x
PrefixWhileAnySeqCntRange 127 127 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 95 95 +0.0% 1.00x
PrefixWhileAnySequence 1381 1381 +0.0% 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
PrefixWhileSequence 322 320 -0.6% 1.01x (?)
PrefixWhileSequenceLazy 47 47 +0.0% 1.00x
QueueConcrete 1171 1171 +0.0% 1.00x
QueueGeneric 1036 1035 -0.1% 1.00x (?)
RC4 149 148 -0.7% 1.01x
RangeAssignment 315 315 +0.0% 1.00x
RangeIterationSigned 154 154 +0.0% 1.00x
RangeIterationSigned64 179 179 +0.0% 1.00x
RangeIterationUnsigned 179 179 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 877 876 -0.1% 1.00x (?)
RecursiveOwnedParameter 2130 2104 -1.2% 1.01x
ReversedArray 51 51 +0.0% 1.00x
ReversedBidirectional 13778 13725 -0.4% 1.00x
RomanNumbers 104018 106035 +1.9% 0.98x (?)
SevenBoom 1379 1385 +0.4% 1.00x (?)
Sim2DArray 370 370 +0.0% 1.00x
SortLargeExistentials 6305 6364 +0.9% 0.99x
SortLettersInPlace 1043 1039 -0.4% 1.00x (?)
SortSortedStrings 1052 1069 +1.6% 0.98x (?)
SortStrings 1839 1880 +2.2% 0.98x
SortStringsUnicode 13805 13836 +0.2% 1.00x (?)
StackPromo 19758 19711 -0.2% 1.00x (?)
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1404 1405 +0.1% 1.00x (?)
StrToInt 1894 1958 +3.4% 0.97x
StringAdder 3827 3794 -0.9% 1.01x (?)
StringBuilder 1299 1292 -0.5% 1.01x (?)
StringBuilderLong 968 970 +0.2% 1.00x (?)
StringComparison_abnormal 771 775 +0.5% 0.99x (?)
StringComparison_ascii 875 890 +1.7% 0.98x
StringComparison_emoji 2281 2301 +0.9% 0.99x (?)
StringComparison_fastPrenormal 7827 7865 +0.5% 1.00x (?)
StringComparison_latin1 5366 5398 +0.6% 0.99x (?)
StringComparison_longSharedPrefix 10315 10334 +0.2% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 4190 4193 +0.1% 1.00x (?)
StringComparison_slowerPrenormal 3728 3765 +1.0% 0.99x (?)
StringComparison_zalgo 1542 1553 +0.7% 0.99x (?)
StringEdits 108217 113150 +4.6% 0.96x (?)
StringEqualPointerComparison 256 256 +0.0% 1.00x
StringFromLongWholeSubstring 18 18 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 9 9 +0.0% 1.00x
StringHasPrefixAscii 1438 1413 -1.7% 1.02x
StringHasPrefixUnicode 25186 25106 -0.3% 1.00x (?)
StringHasSuffixAscii 1541 1541 +0.0% 1.00x
StringHasSuffixUnicode 76475 76379 -0.1% 1.00x (?)
StringInterpolation 9701 9653 -0.5% 1.00x (?)
StringMatch 6586 6634 +0.7% 0.99x (?)
StringRemoveDupes 1075 1111 +3.3% 0.97x
StringUTF16Builder 2153 2164 +0.5% 0.99x (?)
StringWalk 1308 1284 -1.8% 1.02x
StringWithCString 38100 38098 -0.0% 1.00x (?)
StringWordBuilder 1481 1491 +0.7% 0.99x (?)
StringWordBuilderReservingCapacity 1137 1150 +1.1% 0.99x
SubstringComparable 1845 1838 -0.4% 1.00x (?)
SubstringEqualString 1919 1917 -0.1% 1.00x (?)
SubstringEquatable 2830 2823 -0.2% 1.00x (?)
SubstringFromLongString 9 9 +0.0% 1.00x
SubstringFromLongStringGeneric 62 62 +0.0% 1.00x
SuffixAnyCollection 25 25 +0.0% 1.00x
SuffixAnyCollectionLazy 19560 19552 -0.0% 1.00x (?)
SuffixAnySeqCRangeIter 3412 3400 -0.4% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3414 3400 -0.4% 1.00x (?)
SuffixAnySeqCntRange 21 21 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 21 21 +0.0% 1.00x
SuffixAnySequence 4561 4575 +0.3% 1.00x (?)
SuffixAnySequenceLazy 4672 4677 +0.1% 1.00x (?)
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 3359 3352 -0.2% 1.00x (?)
SuffixSequenceLazy 3357 3353 -0.1% 1.00x (?)
SumUsingReduce 91 91 +0.0% 1.00x
SumUsingReduceInto 91 91 +0.0% 1.00x
SuperChars 37442 36962 -1.3% 1.01x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 306 305 -0.3% 1.00x
WordCountHistogramUTF16 46232 47011 +1.7% 0.98x (?)
XorLoop 335 335 +0.0% 1.00x

Unoptimized (Onone)

Regression (22)
TEST OLD NEW DELTA SPEEDUP
Dictionary4OfObjects 1641 1873 +14.1% 0.88x
ObjectiveCBridgeToNSDictionary 46849 51495 +9.9% 0.91x (?)
TwoSum 3515 3855 +9.7% 0.91x
SetUnion 10657 11679 +9.6% 0.91x
ObjectiveCBridgeFromNSSetAnyObjectForced 5915 6471 +9.4% 0.91x (?)
SetExclusiveOr 15447 16747 +8.4% 0.92x
Calculator 1432 1550 +8.2% 0.92x
PrefixAnyCollectionLazy 85621 92634 +8.2% 0.92x (?)
CharIndexing_japanese_unicodeScalars 380729 411364 +8.0% 0.93x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 65907 71039 +7.8% 0.93x
StringEqualPointerComparison 2794 3006 +7.6% 0.93x
SetIsSubsetOf_OfObjects 1414 1517 +7.3% 0.93x
SetExclusiveOr_OfObjects 37766 40260 +6.6% 0.94x (?)
SetIntersect_OfObjects 10983 11664 +6.2% 0.94x
SetIntersect 7435 7887 +6.1% 0.94x
DictionaryRemoveOfObjects 44384 47035 +6.0% 0.94x (?)
Dictionary4 1065 1127 +5.8% 0.94x
DictionaryRemove 16505 17463 +5.8% 0.95x
DictionarySubscriptDefaultMutationOfObjects 5085 5380 +5.8% 0.95x
CharIndexing_tweet_unicodeScalars 630850 666698 +5.7% 0.95x (?)
SetIsSubsetOf 1202 1269 +5.6% 0.95x
ObjectiveCBridgeStubDateMutation 540 569 +5.4% 0.95x
Improvement (30)
TEST OLD NEW DELTA SPEEDUP
WordSplitASCII 22308 9353 -58.1% 2.39x (?)
WordSplitUTF16 24103 14918 -38.1% 1.62x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 53656 45860 -14.5% 1.17x
CharIteration_tweet_unicodeScalars_Backwards 605976 519462 -14.3% 1.17x
CharIndexing_russian_unicodeScalars_Backwards 330869 284482 -14.0% 1.16x
CharIndexing_korean_unicodeScalars_Backwards 383835 331175 -13.7% 1.16x (?)
CharIteration_ascii_unicodeScalars_Backwards 302417 262295 -13.3% 1.15x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 68510 59462 -13.2% 1.15x (?)
CharIteration_chinese_unicodeScalars_Backwards 228498 198645 -13.1% 1.15x
CharIteration_russian_unicodeScalars_Backwards 253522 220418 -13.1% 1.15x
CharIteration_korean_unicodeScalars_Backwards 290987 254229 -12.6% 1.14x
CharIteration_punctuated_unicodeScalars_Backwards 66437 58143 -12.5% 1.14x
CharIteration_japanese_unicodeScalars_Backwards 359549 314716 -12.5% 1.14x (?)
CharIndexing_utf16_unicodeScalars_Backwards 323418 283725 -12.3% 1.14x
DropWhileAnySeqCRangeIter 22306 19783 -11.3% 1.13x
CharIndexing_punctuated_unicodeScalars_Backwards 86037 76307 -11.3% 1.13x (?)
DictionarySwapOfObjects 20275 18021 -11.1% 1.13x (?)
CharIndexing_chinese_unicodeScalars_Backwards 290415 259038 -10.8% 1.12x
CharIndexing_japanese_unicodeScalars_Backwards 461738 412105 -10.7% 1.12x (?)
CharIteration_utf16_unicodeScalars_Backwards 249764 224258 -10.2% 1.11x
PrefixAnySeqCRangeIterLazy 16391 14726 -10.2% 1.11x
ArrayOfPOD 751 676 -10.0% 1.11x
ObjectiveCBridgeFromNSSetAnyObject 56856 51386 -9.6% 1.11x (?)
CharIndexing_tweet_unicodeScalars_Backwards 755632 684657 -9.4% 1.10x (?)
PrefixAnySeqCRangeIter 16299 14842 -8.9% 1.10x
DropFirstAnySeqCRangeIterLazy 20162 18414 -8.7% 1.09x
CharIndexing_ascii_unicodeScalars_Backwards 378687 347503 -8.2% 1.09x (?)
SubstringFromLongStringGeneric 99 92 -7.1% 1.08x
DropFirstAnySeqCRangeIter 19923 18531 -7.0% 1.08x
CharIndexing_korean_unicodeScalars 324553 305708 -5.8% 1.06x (?)
No Changes (310)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4579 4588 +0.2% 1.00x (?)
AnyHashableWithAClass 76477 77410 +1.2% 0.99x (?)
Array2D 566887 566942 +0.0% 1.00x (?)
ArrayAppend 4071 4072 +0.0% 1.00x (?)
ArrayAppendArrayOfInt 728 724 -0.5% 1.01x (?)
ArrayAppendAscii 36260 35742 -1.4% 1.01x
ArrayAppendFromGeneric 732 730 -0.3% 1.00x (?)
ArrayAppendGenericStructs 1272 1269 -0.2% 1.00x (?)
ArrayAppendLatin1 57133 56625 -0.9% 1.01x
ArrayAppendLazyMap 151413 151291 -0.1% 1.00x (?)
ArrayAppendOptionals 1272 1273 +0.1% 1.00x (?)
ArrayAppendRepeatCol 154205 153053 -0.7% 1.01x
ArrayAppendReserved 3735 3735 +0.0% 1.00x
ArrayAppendSequence 125981 129925 +3.1% 0.97x
ArrayAppendStrings 13788 13785 -0.0% 1.00x (?)
ArrayAppendToFromGeneric 731 728 -0.4% 1.00x (?)
ArrayAppendToGeneric 733 732 -0.1% 1.00x (?)
ArrayAppendUTF16 57686 56959 -1.3% 1.01x
ArrayInClass 5580 5590 +0.2% 1.00x (?)
ArrayLiteral 1596 1599 +0.2% 1.00x (?)
ArrayOfGenericPOD2 1010 1012 +0.2% 1.00x (?)
ArrayOfGenericRef 9008 9185 +2.0% 0.98x (?)
ArrayOfRef 8306 8347 +0.5% 1.00x (?)
ArrayPlusEqualArrayOfInt 730 727 -0.4% 1.00x (?)
ArrayPlusEqualFiveElementCollection 216287 214201 -1.0% 1.01x (?)
ArrayPlusEqualSingleElementCollection 210404 209794 -0.3% 1.00x (?)
ArrayPlusEqualThreeElements 8312 8260 -0.6% 1.01x (?)
ArraySubscript 74389 73919 -0.6% 1.01x (?)
ArrayValueProp 3287 3294 +0.2% 1.00x (?)
ArrayValueProp2 14405 14260 -1.0% 1.01x (?)
ArrayValueProp3 3740 3729 -0.3% 1.00x (?)
ArrayValueProp4 3708 3718 +0.3% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 5584 5616 +0.6% 0.99x (?)
BitCount 1981 2029 +2.4% 0.98x
ByteSwap 3534 3552 +0.5% 0.99x
COWTree 10449 9997 -4.3% 1.05x (?)
CSVParsing 2210999 2243857 +1.5% 0.99x (?)
CSVParsingAlt 1222734 1188364 -2.8% 1.03x (?)
CSVParsingAltIndices 2271213 2322799 +2.3% 0.98x (?)
CStringLongAscii 4275 4278 +0.1% 1.00x (?)
CStringLongNonAscii 1862 1852 -0.5% 1.01x (?)
CStringShortAscii 6886 6871 -0.2% 1.00x (?)
CaptureProp 231684 230711 -0.4% 1.00x (?)
CharIndexing_ascii_unicodeScalars 314940 318372 +1.1% 0.99x (?)
CharIndexing_chinese_unicodeScalars 239932 240067 +0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 57572 57764 +0.3% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 70422 70282 -0.2% 1.00x (?)
CharIndexing_russian_unicodeScalars 264660 265455 +0.3% 1.00x (?)
CharIndexing_utf16_unicodeScalars 278763 267262 -4.1% 1.04x (?)
CharIteration_ascii_unicodeScalars 138502 138309 -0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 104877 104499 -0.4% 1.00x (?)
CharIteration_japanese_unicodeScalars 165858 165446 -0.2% 1.00x (?)
CharIteration_korean_unicodeScalars 134250 133928 -0.2% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 24733 24688 -0.2% 1.00x (?)
CharIteration_punctuated_unicodeScalars 31070 31044 -0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 115397 115118 -0.2% 1.00x (?)
CharIteration_tweet_unicodeScalars 275047 272671 -0.9% 1.01x
CharIteration_utf16_unicodeScalars 117136 117077 -0.1% 1.00x (?)
CharacterLiteralsLarge 5388 5400 +0.2% 1.00x (?)
CharacterLiteralsSmall 664 668 +0.6% 0.99x (?)
CharacterPropertiesFetch 4828 4787 -0.8% 1.01x (?)
CharacterPropertiesPrecomputed 3816 3915 +2.6% 0.97x (?)
CharacterPropertiesStashed 2029 2050 +1.0% 0.99x
CharacterPropertiesStashedMemo 4406 4485 +1.8% 0.98x (?)
Chars 35421 35560 +0.4% 1.00x
ClassArrayGetter 883 885 +0.2% 1.00x (?)
Combos 2013 1994 -0.9% 1.01x (?)
DictOfArraysToArrayOfDicts 3026 3077 +1.7% 0.98x (?)
Dictionary 2296 2360 +2.8% 0.97x
Dictionary2 2581 2651 +2.7% 0.97x (?)
Dictionary2OfObjects 5138 5107 -0.6% 1.01x (?)
Dictionary3 1150 1175 +2.2% 0.98x
Dictionary3OfObjects 1994 2037 +2.2% 0.98x (?)
DictionaryBridge 1890 1898 +0.4% 1.00x (?)
DictionaryGroup 3824 3813 -0.3% 1.00x (?)
DictionaryGroupOfObjects 6822 6828 +0.1% 1.00x (?)
DictionaryLiteral 7743 7841 +1.3% 0.99x (?)
DictionaryOfObjects 5438 5503 +1.2% 0.99x (?)
DictionarySubscriptDefaultMutation 1903 1978 +3.9% 0.96x
DictionarySubscriptDefaultMutationArray 2174 2222 +2.2% 0.98x
DictionarySubscriptDefaultMutationArrayOfObjects 8068 8354 +3.5% 0.97x
DictionarySwap 4759 4965 +4.3% 0.96x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 12202 12234 +0.3% 1.00x (?)
DropFirstAnyCollectionLazy 89749 92708 +3.3% 0.97x (?)
DropFirstAnySeqCntRange 12186 12210 +0.2% 1.00x (?)
DropFirstAnySeqCntRangeLazy 12257 12298 +0.3% 1.00x
DropFirstAnySequence 9714 9687 -0.3% 1.00x (?)
DropFirstAnySequenceLazy 9770 9745 -0.3% 1.00x (?)
DropFirstArray 3330 3369 +1.2% 0.99x
DropFirstArrayLazy 22532 23327 +3.5% 0.97x (?)
DropFirstCountableRange 291 291 +0.0% 1.00x
DropFirstCountableRangeLazy 23138 23228 +0.4% 1.00x (?)
DropFirstSequence 9398 9342 -0.6% 1.01x
DropFirstSequenceLazy 9437 9413 -0.3% 1.00x (?)
DropLastAnyCollection 4083 4100 +0.4% 1.00x (?)
DropLastAnyCollectionLazy 29857 29906 +0.2% 1.00x (?)
DropLastAnySeqCRangeIter 33996 33658 -1.0% 1.01x
DropLastAnySeqCRangeIterLazy 33707 33504 -0.6% 1.01x
DropLastAnySeqCntRange 4086 4092 +0.1% 1.00x (?)
DropLastAnySeqCntRangeLazy 4084 4110 +0.6% 0.99x
DropLastAnySequence 25926 25960 +0.1% 1.00x (?)
DropLastAnySequenceLazy 25990 25748 -0.9% 1.01x
DropLastCountableRange 100 100 +0.0% 1.00x
DropLastCountableRangeLazy 7720 7761 +0.5% 0.99x
DropLastSequence 25864 25736 -0.5% 1.00x (?)
DropLastSequenceLazy 25862 25793 -0.3% 1.00x
DropWhileAnyCollection 15675 15598 -0.5% 1.00x
DropWhileAnyCollectionLazy 17251 16911 -2.0% 1.02x
DropWhileAnySeqCRangeIterLazy 17237 16984 -1.5% 1.01x
DropWhileAnySeqCntRange 15698 15619 -0.5% 1.01x
DropWhileAnySeqCntRangeLazy 17274 16942 -1.9% 1.02x
DropWhileAnySequence 11128 10999 -1.2% 1.01x
DropWhileAnySequenceLazy 9016 9046 +0.3% 1.00x (?)
DropWhileArrayLazy 12304 12612 +2.5% 0.98x
DropWhileCountableRange 3735 3726 -0.2% 1.00x (?)
DropWhileCountableRangeLazy 16854 16677 -1.1% 1.01x
DropWhileSequence 10747 10772 +0.2% 1.00x
DropWhileSequenceLazy 8662 8730 +0.8% 0.99x
EqualStringSubstring 426 426 +0.0% 1.00x
EqualSubstringString 427 427 +0.0% 1.00x
EqualSubstringSubstring 429 430 +0.2% 1.00x (?)
EqualSubstringSubstringGenericEquatable 434 434 +0.0% 1.00x
ErrorHandling 6371 6139 -3.6% 1.04x (?)
ExclusivityGlobal 164 169 +3.0% 0.97x
ExclusivityIndependent 62 61 -1.6% 1.02x (?)
FilterEvenUsingReduce 3350 3357 +0.2% 1.00x (?)
FilterEvenUsingReduceInto 1777 1771 -0.3% 1.00x (?)
FrequenciesUsingReduce 9847 9934 +0.9% 0.99x (?)
FrequenciesUsingReduceInto 4915 5052 +2.8% 0.97x (?)
Hanoi 17928 17951 +0.1% 1.00x (?)
HashTest 14997 14936 -0.4% 1.00x (?)
Histogram 5811 5995 +3.2% 0.97x
Integrate 739 744 +0.7% 0.99x
IterateData 7065 6938 -1.8% 1.02x
Join 989 986 -0.3% 1.00x (?)
LazilyFilteredArrayContains 691996 700966 +1.3% 0.99x
LazilyFilteredArrays 1307893 1315840 +0.6% 0.99x (?)
LazilyFilteredRange 420727 418303 -0.6% 1.01x (?)
LessSubstringSubstring 429 430 +0.2% 1.00x (?)
LessSubstringSubstringGenericComparable 433 433 +0.0% 1.00x
LinkedList 28732 28871 +0.5% 1.00x
LuhnAlgoEager 4468 4491 +0.5% 0.99x (?)
LuhnAlgoLazy 4748 4762 +0.3% 1.00x (?)
MapReduce 24442 24774 +1.4% 0.99x
MapReduceAnyCollection 24362 25063 +2.9% 0.97x
MapReduceAnyCollectionShort 35612 35224 -1.1% 1.01x (?)
MapReduceClass 28682 28678 -0.0% 1.00x (?)
MapReduceClassShort 38785 38013 -2.0% 1.02x (?)
MapReduceLazyCollection 20744 20774 +0.1% 1.00x (?)
MapReduceLazyCollectionShort 29882 30089 +0.7% 0.99x (?)
MapReduceLazySequence 16281 16372 +0.6% 0.99x
MapReduceSequence 27367 27570 +0.7% 0.99x (?)
MapReduceShort 35063 34916 -0.4% 1.00x (?)
MapReduceShortString 223 216 -3.1% 1.03x (?)
MapReduceString 1732 1729 -0.2% 1.00x (?)
Memset 40123 40144 +0.1% 1.00x (?)
MonteCarloE 809719 804355 -0.7% 1.01x (?)
MonteCarloPi 3510447 3526672 +0.5% 1.00x
NSDictionaryCastToSwift 5901 6127 +3.8% 0.96x (?)
NSError 642 641 -0.2% 1.00x (?)
NSStringConversion 323 328 +1.5% 0.98x
NibbleSort 268963 274598 +2.1% 0.98x
NopDeinit 150500 150484 -0.0% 1.00x (?)
ObjectAllocation 1211 1211 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 20422 20608 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7579 7720 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 36757 35669 -3.0% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 32829 31740 -3.3% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 110251 110716 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSString 2820 2894 +2.6% 0.97x (?)
ObjectiveCBridgeFromNSStringForced 2435 2409 -1.1% 1.01x (?)
ObjectiveCBridgeStubDataAppend 3973 4055 +2.1% 0.98x (?)
ObjectiveCBridgeStubFromArrayOfNSString 24028 24046 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 4120 4024 -2.3% 1.02x (?)
ObjectiveCBridgeStubFromNSString 805 799 -0.7% 1.01x
ObjectiveCBridgeStubFromNSStringRef 178 173 -2.8% 1.03x
ObjectiveCBridgeStubNSDataAppend 2682 2607 -2.8% 1.03x (?)
ObjectiveCBridgeStubNSDateMutationRef 15116 14523 -3.9% 1.04x (?)
ObjectiveCBridgeStubToArrayOfNSString 25283 25814 +2.1% 0.98x (?)
ObjectiveCBridgeStubToNSDate 14627 14273 -2.4% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3112 3105 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSString 1444 1461 +1.2% 0.99x (?)
ObjectiveCBridgeStubToNSStringRef 142 137 -3.5% 1.04x
ObjectiveCBridgeStubURLAppendPath 302511 309123 +2.2% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 310734 305115 -1.8% 1.02x (?)
ObjectiveCBridgeToNSArray 26118 26397 +1.1% 0.99x (?)
ObjectiveCBridgeToNSSet 41341 42286 +2.3% 0.98x (?)
ObjectiveCBridgeToNSString 1211 1219 +0.7% 0.99x (?)
ObserverClosure 5748 5676 -1.3% 1.01x (?)
ObserverForwarderStruct 3930 3917 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 7093 6988 -1.5% 1.02x
ObserverUnappliedMethod 7538 7673 +1.8% 0.98x (?)
OpenClose 504 513 +1.8% 0.98x
PartialApplyDynamicType 36787 36725 -0.2% 1.00x (?)
Phonebook 18071 18559 +2.7% 0.97x
PointerArithmetics 106331 105358 -0.9% 1.01x
PolymorphicCalls 5464 5504 +0.7% 0.99x (?)
PopFrontArray 4143 4134 -0.2% 1.00x (?)
PopFrontArrayGeneric 5190 5144 -0.9% 1.01x
PopFrontUnsafePointer 10024 10189 +1.6% 0.98x
PrefixAnyCollection 12195 12234 +0.3% 1.00x (?)
PrefixAnySeqCntRange 12419 12204 -1.7% 1.02x
PrefixAnySeqCntRangeLazy 12266 12311 +0.4% 1.00x
PrefixAnySequence 8090 8094 +0.0% 1.00x (?)
PrefixAnySequenceLazy 8054 8090 +0.4% 1.00x (?)
PrefixArray 3326 3393 +2.0% 0.98x
PrefixArrayLazy 22507 23349 +3.7% 0.96x
PrefixCountableRange 291 292 +0.3% 1.00x
PrefixCountableRangeLazy 23141 23218 +0.3% 1.00x
PrefixSequence 7819 7841 +0.3% 1.00x (?)
PrefixSequenceLazy 7764 7882 +1.5% 0.99x (?)
PrefixWhileAnyCollection 22603 22435 -0.7% 1.01x
PrefixWhileAnyCollectionLazy 14504 14116 -2.7% 1.03x
PrefixWhileAnySeqCRangeIter 29627 29569 -0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 14333 14196 -1.0% 1.01x
PrefixWhileAnySeqCntRange 22580 22350 -1.0% 1.01x (?)
PrefixWhileAnySeqCntRangeLazy 14581 14137 -3.0% 1.03x
PrefixWhileAnySequence 23913 23895 -0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 8182 8231 +0.6% 0.99x
PrefixWhileArray 10284 10357 +0.7% 0.99x (?)
PrefixWhileArrayLazy 10655 10887 +2.2% 0.98x
PrefixWhileCountableRange 10557 10476 -0.8% 1.01x (?)
PrefixWhileCountableRangeLazy 13887 13960 +0.5% 0.99x
PrefixWhileSequence 23569 23441 -0.5% 1.01x
PrefixWhileSequenceLazy 8021 8013 -0.1% 1.00x (?)
Prims 8636 8744 +1.3% 0.99x (?)
PrimsSplit 8642 8786 +1.7% 0.98x
QueueConcrete 13568 13594 +0.2% 1.00x (?)
QueueGeneric 17123 17077 -0.3% 1.00x (?)
RC4 14844 14927 +0.6% 0.99x (?)
RGBHistogram 24056 25020 +4.0% 0.96x
RGBHistogramOfObjects 87105 90454 +3.8% 0.96x
RangeAssignment 2430 2387 -1.8% 1.02x
RangeIterationSigned 15140 15181 +0.3% 1.00x (?)
RangeIterationSigned64 35173 34988 -0.5% 1.01x
RangeIterationUnsigned 31147 31162 +0.0% 1.00x (?)
RangeReplaceableCollectionPlusDefault 7284 7290 +0.1% 1.00x (?)
RecursiveOwnedParameter 7094 7092 -0.0% 1.00x (?)
ReversedArray 12637 12231 -3.2% 1.03x
ReversedBidirectional 38021 38165 +0.4% 1.00x (?)
ReversedDictionary 19879 20334 +2.3% 0.98x (?)
RomanNumbers 1099869 1075557 -2.2% 1.02x
SetUnion_OfObjects 26084 27213 +4.3% 0.96x
SevenBoom 1519 1502 -1.1% 1.01x (?)
Sim2DArray 39200 39136 -0.2% 1.00x
SortLargeExistentials 14048 14133 +0.6% 0.99x
SortLettersInPlace 2528 2521 -0.3% 1.00x (?)
SortSortedStrings 1211 1249 +3.1% 0.97x
SortStrings 2226 2288 +2.8% 0.97x
SortStringsUnicode 14594 14576 -0.1% 1.00x (?)
StackPromo 81148 80484 -0.8% 1.01x (?)
StaticArray 2370 2349 -0.9% 1.01x (?)
StrComplexWalk 5777 5978 +3.5% 0.97x
StrToInt 50995 51850 +1.7% 0.98x
StringAdder 4323 4342 +0.4% 1.00x (?)
StringBuilder 6112 6077 -0.6% 1.01x (?)
StringBuilderLong 2437 2436 -0.0% 1.00x (?)
StringComparison_abnormal 1269 1276 +0.6% 0.99x (?)
StringComparison_ascii 8544 8564 +0.2% 1.00x (?)
StringComparison_emoji 3414 3450 +1.1% 0.99x (?)
StringComparison_fastPrenormal 11985 11857 -1.1% 1.01x (?)
StringComparison_latin1 8481 8509 +0.3% 1.00x (?)
StringComparison_longSharedPrefix 11727 11731 +0.0% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 6171 6224 +0.9% 0.99x (?)
StringComparison_slowerPrenormal 6089 6098 +0.1% 1.00x (?)
StringComparison_zalgo 2553 2563 +0.4% 1.00x (?)
StringEdits 307880 315137 +2.4% 0.98x (?)
StringEnumRawValueInitialization 18912 19092 +1.0% 0.99x
StringFromLongWholeSubstring 20 20 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 178 179 +0.6% 0.99x
StringHasPrefixAscii 2800 2793 -0.2% 1.00x
StringHasPrefixUnicode 27807 27583 -0.8% 1.01x (?)
StringHasSuffixAscii 2776 2834 +2.1% 0.98x
StringHasSuffixUnicode 79040 78905 -0.2% 1.00x (?)
StringInterpolation 12444 12306 -1.1% 1.01x (?)
StringMatch 29779 29994 +0.7% 0.99x
StringRemoveDupes 1259 1303 +3.5% 0.97x (?)
StringUTF16Builder 6865 6789 -1.1% 1.01x (?)
StringWalk 11495 11648 +1.3% 0.99x
StringWithCString 35215 35388 +0.5% 1.00x (?)
StringWordBuilder 2314 2331 +0.7% 0.99x
StringWordBuilderReservingCapacity 2067 2059 -0.4% 1.00x (?)
SubstringComparable 3693 3719 +0.7% 0.99x (?)
SubstringEqualString 3115 3125 +0.3% 1.00x (?)
SubstringEquatable 6973 7053 +1.1% 0.99x (?)
SubstringFromLongString 22 22 +0.0% 1.00x
SuffixAnyCollection 4096 4076 -0.5% 1.00x (?)
SuffixAnyCollectionLazy 30360 30692 +1.1% 0.99x (?)
SuffixAnySeqCRangeIter 30419 30076 -1.1% 1.01x
SuffixAnySeqCRangeIterLazy 30267 30022 -0.8% 1.01x
SuffixAnySeqCntRange 4092 4031 -1.5% 1.02x (?)
SuffixAnySeqCntRangeLazy 4095 4083 -0.3% 1.00x (?)
SuffixAnySequence 22627 22327 -1.3% 1.01x
SuffixAnySequenceLazy 22595 22385 -0.9% 1.01x
SuffixCountableRange 100 100 +0.0% 1.00x
SuffixCountableRangeLazy 7726 7746 +0.3% 1.00x (?)
SuffixSequence 22473 22222 -1.1% 1.01x
SuffixSequenceLazy 22446 22314 -0.6% 1.01x
SumUsingReduce 152738 153074 +0.2% 1.00x (?)
SumUsingReduceInto 150049 149733 -0.2% 1.00x
SuperChars 189265 190900 +0.9% 0.99x (?)
TypeFlood 145 144 -0.7% 1.01x (?)
UTF8Decode 27244 26921 -1.2% 1.01x
Walsh 10872 10850 -0.2% 1.00x (?)
WordCountHistogramASCII 42675 41527 -2.7% 1.03x (?)
WordCountHistogramUTF16 93636 92760 -0.9% 1.01x (?)
WordCountUniqueASCII 7121 7345 +3.1% 0.97x (?)
WordCountUniqueUTF16 29732 29823 +0.3% 1.00x (?)
XorLoop 21054 21013 -0.2% 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

SipHash is now enabled in the main PR

@lorentey lorentey closed this Feb 26, 2018
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.

2 participants