Skip to content

[string] ASCII/UTF-8 fast paths for String.init(decoding:as:) #17244

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 18, 2018

Conversation

milseman
Copy link
Member

@milseman milseman commented Jun 15, 2018

Add some fast paths to String.init(decoding:as:) for inputs of
contiguously stored UTF-8 code units. Dramatically speeds up creation
when the String happens to be ASCII and we can form more small
strings.

@milseman
Copy link
Member Author

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (21)
TEST OLD NEW DELTA SPEEDUP
SuperChars 15576 24278 +55.9% 0.64x
Sim2DArray 417 599 +43.6% 0.70x
WordSplitASCII 7398 8930 +20.7% 0.83x
WordSplitUTF16 9071 10914 +20.3% 0.83x
StringHasPrefixUnicode 99584 118491 +19.0% 0.84x
RangeIterationSigned 171 200 +17.0% 0.86x
UTF8Decode_InitDecoding 1175 1360 +15.7% 0.86x
StringHasSuffixUnicode 102048 115617 +13.3% 0.88x
ArrayAppendAscii 3875 4281 +10.5% 0.91x (?)
SuffixCountableRangeLazy 11 12 +9.1% 0.92x
DropLastCountableRangeLazy 11 12 +9.1% 0.92x
PopFrontUnsafePointer 8755 9515 +8.7% 0.92x (?)
StrToInt 3155 3428 +8.7% 0.92x
Combos 488 527 +8.0% 0.93x (?)
DropLastAnySeqCntRangeLazy 13 14 +7.7% 0.93x
Hanoi 2086 2240 +7.4% 0.93x
SortSortedStrings 835 896 +7.3% 0.93x
NopDeinit 30162 32143 +6.6% 0.94x
RomanNumbers 81064 86057 +6.2% 0.94x
StringMatch 12521 13271 +6.0% 0.94x
Phonebook 6633 7007 +5.6% 0.95x
Improvement (25)
TEST OLD NEW DELTA SPEEDUP
UTF8Decode_InitDecoding_ascii 2523 663 -73.7% 3.81x
StringBuilderWithLongSubstring 1843 1460 -20.8% 1.26x (?)
BinaryFloatingPointPropertiesBinade 31 25 -19.4% 1.24x
ObjectiveCBridgeFromNSArrayAnyObjectForced 5611 4615 -17.8% 1.22x
DictionaryKeysContainsCocoa 47 39 -17.0% 1.21x (?)
UTF8Decode_InitFromBytes_ascii 680 568 -16.5% 1.20x
ObjectiveCBridgeFromNSArrayAnyObjectToString 52730 46625 -11.6% 1.13x (?)
ObjectiveCBridgeFromNSArrayAnyObject 27273 24181 -11.3% 1.13x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 49969 44637 -10.7% 1.12x
PointerArithmetics 34394 31496 -8.4% 1.09x
SuffixCountableRange 12 11 -8.3% 1.09x
DataAppendDataMediumToMedium 7293 6699 -8.1% 1.09x
MapReduceLazyCollectionShort 37 34 -8.1% 1.09x
DataCount 37 34 -8.1% 1.09x
RC4 161 149 -7.5% 1.08x
MapReduce 398 369 -7.3% 1.08x
Chars 1045 970 -7.2% 1.08x
SubstringComparable 14 13 -7.1% 1.08x
RemoveWhereMoveInts 15 14 -6.7% 1.07x
DropFirstAnyCollectionLazy 69644 65007 -6.7% 1.07x (?)
MapReduceAnyCollection 429 402 -6.3% 1.07x
BinaryFloatingPointPropertiesUlp 37 35 -5.4% 1.06x
Walsh 445 421 -5.4% 1.06x
LazilyFilteredArrayContains 37445 35466 -5.3% 1.06x
DataAppendSequence 21459 20330 -5.3% 1.06x
No Changes (400)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3786 3815 +0.8% 0.99x (?)
AnyHashableWithAClass 86839 86791 -0.1% 1.00x (?)
Array2D 2855 2855 +0.0% 1.00x
ArrayAppend 1081 1077 -0.4% 1.00x
ArrayAppendArrayOfInt 817 801 -2.0% 1.02x
ArrayAppendAsciiSubstring 24172 24262 +0.4% 1.00x
ArrayAppendFromGeneric 799 786 -1.6% 1.02x (?)
ArrayAppendGenericStructs 1419 1429 +0.7% 0.99x (?)
ArrayAppendLatin1 42030 41459 -1.4% 1.01x
ArrayAppendLatin1Substring 142460 140825 -1.1% 1.01x (?)
ArrayAppendLazyMap 1343 1347 +0.3% 1.00x (?)
ArrayAppendOptionals 1410 1434 +1.7% 0.98x (?)
ArrayAppendRepeatCol 1341 1341 +0.0% 1.00x
ArrayAppendReserved 814 807 -0.9% 1.01x (?)
ArrayAppendSequence 1123 1123 +0.0% 1.00x
ArrayAppendStrings 6342 6227 -1.8% 1.02x
ArrayAppendToFromGeneric 799 800 +0.1% 1.00x (?)
ArrayAppendToGeneric 801 800 -0.1% 1.00x (?)
ArrayAppendUTF16 42334 40843 -3.5% 1.04x
ArrayAppendUTF16Substring 139779 138857 -0.7% 1.01x
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 151 +0.0% 1.00x
ArrayOfGenericRef 4401 4384 -0.4% 1.00x (?)
ArrayOfPOD 184 184 +0.0% 1.00x
ArrayOfRef 4356 4362 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 784 799 +1.9% 0.98x (?)
ArrayPlusEqualFiveElementCollection 5464 5541 +1.4% 0.99x
ArrayPlusEqualSingleElementCollection 1077 1077 +0.0% 1.00x
ArrayPlusEqualThreeElements 1662 1658 -0.2% 1.00x (?)
ArraySubscript 1541 1517 -1.6% 1.02x (?)
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
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BitCount 211 202 -4.3% 1.04x
ByteSwap 101 106 +5.0% 0.95x
COWArrayGuaranteedParameterOverhead 8628 8642 +0.2% 1.00x (?)
COWTree 5245 5348 +2.0% 0.98x (?)
CSVParsing 723235 722974 -0.0% 1.00x (?)
CSVParsingAlt 823704 816114 -0.9% 1.01x (?)
CSVParsingAltIndices 340573 342541 +0.6% 0.99x (?)
CStringLongAscii 4032 4034 +0.0% 1.00x (?)
CStringLongNonAscii 2350 2290 -2.6% 1.03x
CStringShortAscii 3321 3329 +0.2% 1.00x (?)
Calculator 206 206 +0.0% 1.00x
CaptureProp 4083 4079 -0.1% 1.00x (?)
ChainedFilterMap 1246 1248 +0.2% 1.00x (?)
CharIndexing_ascii_unicodeScalars 16279 16282 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 16042 16020 -0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars 12334 12345 +0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 12145 12147 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 19490 19503 +0.1% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 19205 19188 -0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars 15789 15791 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 15557 15566 +0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2958 2965 +0.2% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2914 2916 +0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3695 3700 +0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3644 3646 +0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars 13570 13582 +0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 13369 13362 -0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars 32100 32107 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 31624 31633 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 22848 22892 +0.2% 1.00x
CharIndexing_utf16_unicodeScalars_Backwards 23606 23644 +0.2% 1.00x
CharIteration_ascii_unicodeScalars 20474 20730 +1.3% 0.99x
CharIteration_ascii_unicodeScalars_Backwards 15098 15107 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 15477 15694 +1.4% 0.99x
CharIteration_chinese_unicodeScalars_Backwards 11439 11446 +0.1% 1.00x
CharIteration_japanese_unicodeScalars 24526 24857 +1.3% 0.99x
CharIteration_japanese_unicodeScalars_Backwards 18088 18080 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 19869 20126 +1.3% 0.99x
CharIteration_korean_unicodeScalars_Backwards 14638 14647 +0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3675 3699 +0.7% 0.99x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2732 2738 +0.2% 1.00x (?)
CharIteration_punctuated_unicodeScalars 4610 4661 +1.1% 0.99x
CharIteration_punctuated_unicodeScalars_Backwards 3418 3426 +0.2% 1.00x
CharIteration_russian_unicodeScalars 17042 17259 +1.3% 0.99x
CharIteration_russian_unicodeScalars_Backwards 12579 12587 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars 40714 40322 -1.0% 1.01x
CharIteration_tweet_unicodeScalars_Backwards 29851 29841 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 27720 27635 -0.3% 1.00x
CharIteration_utf16_unicodeScalars_Backwards 18612 18568 -0.2% 1.00x (?)
CharacterLiteralsLarge 5949 5920 -0.5% 1.00x
CharacterLiteralsSmall 220 220 +0.0% 1.00x
CharacterPropertiesFetch 4651 4744 +2.0% 0.98x
CharacterPropertiesPrecomputed 1040 1039 -0.1% 1.00x (?)
CharacterPropertiesStashed 1523 1476 -3.1% 1.03x
CharacterPropertiesStashedMemo 1619 1592 -1.7% 1.02x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
DataAccessBytes 1141 1146 +0.4% 1.00x (?)
DataAppendArray 5487 5483 -0.1% 1.00x (?)
DataAppendBytes 4975 4949 -0.5% 1.01x (?)
DataAppendDataLargeToLarge 68857 68425 -0.6% 1.01x (?)
DataAppendDataLargeToMedium 35651 35797 +0.4% 1.00x (?)
DataAppendDataLargeToSmall 35107 35038 -0.2% 1.00x (?)
DataAppendDataMediumToLarge 38714 37883 -2.1% 1.02x
DataAppendDataMediumToSmall 6072 6175 +1.7% 0.98x
DataAppendDataSmallToLarge 39547 38682 -2.2% 1.02x (?)
DataAppendDataSmallToMedium 6202 6383 +2.9% 0.97x
DataAppendDataSmallToSmall 6162 6081 -1.3% 1.01x (?)
DataCopyBytes 523 535 +2.3% 0.98x (?)
DataMutateBytes 3988 4035 +1.2% 0.99x (?)
DataReplaceLarge 36971 38295 +3.6% 0.97x (?)
DataReplaceLargeBuffer 57851 57924 +0.1% 1.00x (?)
DataReplaceMedium 7843 7852 +0.1% 1.00x (?)
DataReplaceMediumBuffer 12001 11513 -4.1% 1.04x (?)
DataReplaceSmall 5719 5642 -1.3% 1.01x (?)
DataReplaceSmallBuffer 9261 8965 -3.2% 1.03x (?)
DataReset 2895 2976 +2.8% 0.97x (?)
DataSetCount 549 543 -1.1% 1.01x (?)
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 799 785 -1.8% 1.02x (?)
Dictionary 512 517 +1.0% 0.99x
Dictionary2 641 626 -2.3% 1.02x
Dictionary2OfObjects 2096 2074 -1.0% 1.01x
Dictionary3 229 227 -0.9% 1.01x
Dictionary3OfObjects 744 733 -1.5% 1.02x
Dictionary4 335 343 +2.4% 0.98x
Dictionary4Legacy 742 748 +0.8% 0.99x
Dictionary4OfObjects 453 455 +0.4% 1.00x
Dictionary4OfObjectsLegacy 961 962 +0.1% 1.00x (?)
DictionaryBridge 1187 1195 +0.7% 0.99x (?)
DictionaryCopy 107265 107561 +0.3% 1.00x (?)
DictionaryFilter 106421 107485 +1.0% 0.99x
DictionaryGroup 217 217 +0.0% 1.00x
DictionaryGroupOfObjects 2125 2129 +0.2% 1.00x (?)
DictionaryKeysContainsNative 32 32 +0.0% 1.00x
DictionaryLiteral 1938 1933 -0.3% 1.00x (?)
DictionaryOfObjects 2390 2370 -0.8% 1.01x
DictionaryRemove 4510 4347 -3.6% 1.04x
DictionaryRemoveOfObjects 26058 26348 +1.1% 0.99x
DictionarySubscriptDefaultMutation 286 290 +1.4% 0.99x
DictionarySubscriptDefaultMutationArray 608 639 +5.1% 0.95x
DictionarySubscriptDefaultMutationArrayOfObjects 4033 4028 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1711 1719 +0.5% 1.00x (?)
DictionarySwap 1048 1092 +4.2% 0.96x
DictionarySwapAt 6961 6830 -1.9% 1.02x
DictionarySwapAtOfObjects 52412 52696 +0.5% 0.99x (?)
DictionarySwapOfObjects 8737 8856 +1.4% 0.99x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 84 84 +0.0% 1.00x
DropFirstAnySeqCRangeIter 21649 21928 +1.3% 0.99x
DropFirstAnySeqCRangeIterLazy 21725 21613 -0.5% 1.01x (?)
DropFirstAnySeqCntRange 41 41 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 41 41 +0.0% 1.00x
DropFirstAnySequence 5001 4984 -0.3% 1.00x (?)
DropFirstAnySequenceLazy 5010 5012 +0.0% 1.00x (?)
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 2680 2681 +0.0% 1.00x (?)
DropFirstSequenceLazy 2775 2767 -0.3% 1.00x (?)
DropLastAnyCollection 31 31 +0.0% 1.00x
DropLastAnyCollectionLazy 21787 21872 +0.4% 1.00x (?)
DropLastAnySeqCRangeIter 3527 3522 -0.1% 1.00x
DropLastAnySeqCRangeIterLazy 3516 3514 -0.1% 1.00x (?)
DropLastAnySeqCntRange 13 13 +0.0% 1.00x
DropLastAnySequence 4916 4908 -0.2% 1.00x
DropLastAnySequenceLazy 5002 5024 +0.4% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastSequence 635 658 +3.6% 0.97x
DropLastSequenceLazy 634 658 +3.8% 0.96x
DropWhileAnyCollection 107 107 +0.0% 1.00x
DropWhileAnyCollectionLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCRangeIter 17008 17381 +2.2% 0.98x
DropWhileAnySeqCRangeIterLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCntRange 51 51 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 125 126 +0.8% 0.99x
DropWhileAnySequence 4833 4863 +0.6% 0.99x
DropWhileAnySequenceLazy 1857 1857 +0.0% 1.00x
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 2215 2222 +0.3% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 48 49 +2.1% 0.98x
EqualSubstringString 48 48 +0.0% 1.00x
EqualSubstringSubstring 48 48 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 48 48 +0.0% 1.00x
ErrorHandling 1226 1217 -0.7% 1.01x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 199038 199437 +0.2% 1.00x
FilterEvenUsingReduce 1298 1298 +0.0% 1.00x
FilterEvenUsingReduceInto 148 148 +0.0% 1.00x
FloatingPointPrinting_Double_description_small 21849 21848 -0.0% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 21199 21146 -0.3% 1.00x (?)
FloatingPointPrinting_Double_interpolated 62130 62989 +1.4% 0.99x (?)
FloatingPointPrinting_Float80_description_small 29023 28487 -1.8% 1.02x
FloatingPointPrinting_Float80_description_uniform 27594 27551 -0.2% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 66588 65879 -1.1% 1.01x (?)
FloatingPointPrinting_Float_description_small 5534 5382 -2.7% 1.03x
FloatingPointPrinting_Float_description_uniform 5313 5267 -0.9% 1.01x
FloatingPointPrinting_Float_interpolated 39045 38888 -0.4% 1.00x (?)
FrequenciesUsingReduce 4881 4878 -0.1% 1.00x (?)
FrequenciesUsingReduceInto 1498 1544 +3.1% 0.97x
HashTest 952 928 -2.5% 1.03x
Histogram 719 716 -0.4% 1.00x (?)
Integrate 341 335 -1.8% 1.02x
IterateData 1547 1542 -0.3% 1.00x
Join 171 172 +0.6% 0.99x (?)
LazilyFilteredArrays 65001 65020 +0.0% 1.00x (?)
LazilyFilteredRange 3876 3885 +0.2% 1.00x
LessSubstringSubstring 48 48 +0.0% 1.00x
LessSubstringSubstringGenericComparable 48 48 +0.0% 1.00x
LinkedList 7601 7542 -0.8% 1.01x
LuhnAlgoEager 442 455 +2.9% 0.97x
LuhnAlgoLazy 434 451 +3.9% 0.96x
MapReduceAnyCollectionShort 2245 2282 +1.6% 0.98x
MapReduceClass 3000 3017 +0.6% 0.99x
MapReduceClassShort 4589 4577 -0.3% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 450 446 -0.9% 1.01x (?)
MapReduceShort 1993 2029 +1.8% 0.98x
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 48 48 +0.0% 1.00x
Memset 218 219 +0.5% 1.00x (?)
MonteCarloE 10329 10302 -0.3% 1.00x (?)
MonteCarloPi 42941 42630 -0.7% 1.01x
NSDictionaryCastToSwift 7374 7309 -0.9% 1.01x (?)
NSError 165 166 +0.6% 0.99x
NSStringConversion 680 701 +3.1% 0.97x
NibbleSort 3700 3667 -0.9% 1.01x
ObjectAllocation 131 134 +2.3% 0.98x
ObjectiveCBridgeFromNSDictionaryAnyObject 110595 116351 +5.2% 0.95x (?)
ObjectiveCBridgeFromNSSetAnyObject 51479 50442 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4965 4910 -1.1% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 65828 68380 +3.9% 0.96x (?)
ObjectiveCBridgeFromNSString 1223 1230 +0.6% 0.99x
ObjectiveCBridgeFromNSStringForced 2711 2707 -0.1% 1.00x (?)
ObjectiveCBridgeStubDataAppend 6413 6292 -1.9% 1.02x (?)
ObjectiveCBridgeStubDateMutation 401 401 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 34747 33173 -4.5% 1.05x (?)
ObjectiveCBridgeStubFromNSDate 6281 6221 -1.0% 1.01x (?)
ObjectiveCBridgeStubFromNSString 1022 1030 +0.8% 0.99x (?)
ObjectiveCBridgeStubFromNSStringRef 161 161 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2557 2549 -0.3% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 13414 13103 -2.3% 1.02x (?)
ObjectiveCBridgeStubToArrayOfNSString 40207 39057 -2.9% 1.03x
ObjectiveCBridgeStubToNSDate 15480 15011 -3.0% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3405 3393 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 2352 2356 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 115 112 -2.6% 1.03x
ObjectiveCBridgeStubURLAppendPath 282305 289480 +2.5% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 282120 278762 -1.2% 1.01x (?)
ObjectiveCBridgeToNSArray 15480 15567 +0.6% 0.99x (?)
ObjectiveCBridgeToNSDictionary 27933 27877 -0.2% 1.00x (?)
ObjectiveCBridgeToNSSet 18234 18502 +1.5% 0.99x (?)
ObjectiveCBridgeToNSString 453 453 +0.0% 1.00x
ObserverClosure 2156 2158 +0.1% 1.00x (?)
ObserverForwarderStruct 1217 1224 +0.6% 0.99x (?)
ObserverPartiallyAppliedMethod 3730 3725 -0.1% 1.00x (?)
ObserverUnappliedMethod 2471 2472 +0.0% 1.00x (?)
OpaqueConsumingUsers 4184 4180 -0.1% 1.00x
OpenClose 65 65 +0.0% 1.00x
PartialApplyDynamicType 0 0 +0.0% 1.00x
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1963 1960 -0.2% 1.00x (?)
PopFrontArrayGeneric 1975 1968 -0.4% 1.00x (?)
PrefixAnyCollection 84 83 -1.2% 1.01x
PrefixAnyCollectionLazy 65611 64880 -1.1% 1.01x (?)
PrefixAnySeqCRangeIter 16672 17149 +2.9% 0.97x
PrefixAnySeqCRangeIterLazy 16658 17129 +2.8% 0.97x
PrefixAnySeqCntRange 28 28 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 28 28 +0.0% 1.00x
PrefixAnySequence 4333 4329 -0.1% 1.00x (?)
PrefixAnySequenceLazy 4337 4333 -0.1% 1.00x (?)
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 2224 2222 -0.1% 1.00x (?)
PrefixSequenceLazy 2276 2275 -0.0% 1.00x (?)
PrefixWhileAnyCollection 154 154 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 8702 8659 -0.5% 1.00x
PrefixWhileAnySeqCRangeIterLazy 72 72 +0.0% 1.00x
PrefixWhileAnySeqCntRange 60 60 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 90 90 +0.0% 1.00x
PrefixWhileAnySequence 9824 9821 -0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 1393 1393 +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 361 361 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 909 898 -1.2% 1.01x (?)
PrimsSplit 910 907 -0.3% 1.00x (?)
QueueConcrete 1150 1150 +0.0% 1.00x
QueueGeneric 1149 1145 -0.3% 1.00x
RGBHistogram 3289 3299 +0.3% 1.00x (?)
RGBHistogramOfObjects 23860 23693 -0.7% 1.01x (?)
Radix2CooleyTukey 12449 12398 -0.4% 1.00x (?)
Radix2CooleyTukeyf 8947 8914 -0.4% 1.00x (?)
RandomDoubleDef 26731 26836 +0.4% 1.00x
RandomDoubleLCG 2923 2918 -0.2% 1.00x
RandomIntegersDef 24507 24507 +0.0% 1.00x
RandomIntegersLCG 994 994 +0.0% 1.00x
RandomShuffleDef 813039 810377 -0.3% 1.00x (?)
RandomShuffleLCG 120442 119381 -0.9% 1.01x (?)
RangeAssignment 350 337 -3.7% 1.04x
RangeReplaceableCollectionPlusDefault 1008 1006 -0.2% 1.00x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 46 46 +0.0% 1.00x
RemoveWhereFilterString 242 241 -0.4% 1.00x (?)
RemoveWhereFilterStrings 437 439 +0.5% 1.00x
RemoveWhereMoveStrings 708 710 +0.3% 1.00x (?)
RemoveWhereQuadraticInts 1298 1296 -0.2% 1.00x
RemoveWhereQuadraticString 375 369 -1.6% 1.02x (?)
RemoveWhereQuadraticStrings 2762 2763 +0.0% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 860 860 +0.0% 1.00x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 16679 16718 +0.2% 1.00x (?)
ReversedDictionary 270 275 +1.9% 0.98x (?)
SequenceAlgosAnySequence 11993 12256 +2.2% 0.98x
SequenceAlgosArray 1578 1578 +0.0% 1.00x
SequenceAlgosContiguousArray 1584 1582 -0.1% 1.00x (?)
SequenceAlgosList 1352 1350 -0.1% 1.00x
SequenceAlgosRange 2576 2576 +0.0% 1.00x
SequenceAlgosUnfoldSequence 1102 1102 +0.0% 1.00x
SetExclusiveOr 5005 4996 -0.2% 1.00x (?)
SetExclusiveOr_OfObjects 11618 11756 +1.2% 0.99x
SetIntersect 701 703 +0.3% 1.00x (?)
SetIntersect_OfObjects 1757 1809 +3.0% 0.97x
SetIsSubsetOf 345 344 -0.3% 1.00x
SetIsSubsetOf_OfObjects 441 440 -0.2% 1.00x
SetUnion 4397 4358 -0.9% 1.01x (?)
SetUnion_OfObjects 10017 10165 +1.5% 0.99x
SevenBoom 837 835 -0.2% 1.00x (?)
SortLargeExistentials 5473 5591 +2.2% 0.98x
SortLettersInPlace 991 993 +0.2% 1.00x (?)
SortStrings 1767 1820 +3.0% 0.97x
SortStringsUnicode 2533 2536 +0.1% 1.00x (?)
StackPromo 24379 24522 +0.6% 0.99x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1779 1775 -0.2% 1.00x
StringAdder 561 554 -1.2% 1.01x
StringBuilder 472 467 -1.1% 1.01x
StringBuilderLong 1281 1256 -2.0% 1.02x (?)
StringBuilderSmallReservingCapacity 492 488 -0.8% 1.01x
StringComparison_abnormal 804 776 -3.5% 1.04x (?)
StringComparison_ascii 1018 1050 +3.1% 0.97x
StringComparison_emoji 850 855 +0.6% 0.99x
StringComparison_fastPrenormal 821 856 +4.3% 0.96x
StringComparison_latin1 647 671 +3.7% 0.96x
StringComparison_longSharedPrefix 942 950 +0.8% 0.99x
StringComparison_nonBMPSlowestPrenormal 1654 1661 +0.4% 1.00x (?)
StringComparison_slowerPrenormal 1785 1802 +1.0% 0.99x
StringComparison_zalgo 120491 122003 +1.3% 0.99x
StringEdits 175070 180585 +3.2% 0.97x (?)
StringEnumRawValueInitialization 866 858 -0.9% 1.01x (?)
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 22 22 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2206 2234 +1.3% 0.99x
StringHasSuffixAscii 2369 2347 -0.9% 1.01x
StringInterpolation 9167 9116 -0.6% 1.01x (?)
StringInterpolationManySmallSegments 18172 18363 +1.1% 0.99x (?)
StringInterpolationSmall 4286 4303 +0.4% 1.00x (?)
StringRemoveDupes 491 493 +0.4% 1.00x
StringUTF16Builder 2692 2663 -1.1% 1.01x (?)
StringUTF16SubstringBuilder 6277 6244 -0.5% 1.01x (?)
StringWalk 1553 1568 +1.0% 0.99x
StringWithCString 43044 42931 -0.3% 1.00x (?)
StringWordBuilder 2304 2236 -3.0% 1.03x
StringWordBuilderReservingCapacity 1902 1857 -2.4% 1.02x
SubstringEqualString 626 620 -1.0% 1.01x
SubstringEquatable 1440 1447 +0.5% 1.00x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 31 31 +0.0% 1.00x
SuffixAnyCollectionLazy 22686 21729 -4.2% 1.04x (?)
SuffixAnySeqCRangeIter 3743 3739 -0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3747 3744 -0.1% 1.00x (?)
SuffixAnySeqCntRange 21 21 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 21 21 +0.0% 1.00x
SuffixAnySequence 4941 4908 -0.7% 1.01x
SuffixAnySequenceLazy 5042 5008 -0.7% 1.01x
SuffixSequence 3645 3619 -0.7% 1.01x (?)
SuffixSequenceLazy 3649 3618 -0.8% 1.01x
SumUsingReduce 97 102 +5.2% 0.95x
SumUsingReduceInto 97 102 +5.2% 0.95x
TwoSum 1458 1498 +2.7% 0.97x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 312 313 +0.3% 1.00x (?)
UTF8Decode_InitFromBytes 1190 1185 -0.4% 1.00x (?)
UTF8Decode_InitFromData 1255 1259 +0.3% 1.00x (?)
UTF8Decode_InitFromData_ascii 748 735 -1.7% 1.02x (?)
WordCountHistogramASCII 7881 8062 +2.3% 0.98x
WordCountHistogramUTF16 14106 14181 +0.5% 0.99x (?)
WordCountUniqueASCII 2050 2105 +2.7% 0.97x
WordCountUniqueUTF16 7312 7370 +0.8% 0.99x (?)
XorLoop 396 396 +0.0% 1.00x
Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

Add some fast paths to String.init(decoding:as:) for inputs of
contiguously stored UTF-8 code units. Dramatically speeds up creation
when the String happens to be ASCII and we can form more small
strings.
@milseman milseman force-pushed the contiguous_stringage branch from 9866705 to fd1c861 Compare June 15, 2018 21:43
@milseman milseman changed the title [DO NOT MERGE] WIP: experiment with contiguously-stored protocol for use in String.i… [string] ASCII/UTF-8 fast paths for String.init(decoding:as:) Jun 15, 2018
@milseman
Copy link
Member Author

@swift-ci please test

@milseman
Copy link
Member Author

@swift-ci please smoke test compiler performance

@milseman
Copy link
Member Author

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 986670517fce999cfbb1475e45d13669f4b579e5

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 986670517fce999cfbb1475e45d13669f4b579e5

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master smoketest

Unexpected test results, excluded stats for ReactiveCocoa

Regressions found (see below)

Debug

debug brief

Regressed (0)
name old new delta delta_pct
Improved (1)
name old new delta delta_pct
time.swift-driver.wall 70.0s 69.1s -953.2ms -1.36% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (1)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 36,543,524 36,543,494 -30 -0.0%

debug detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 82,886 82,886 0 0.0%
AST.NumLoadedModules 12,485 12,485 0 0.0%
AST.NumTotalClangImportedEntities 253,783 253,783 0 0.0%
AST.NumUsedConformances 8,764 8,764 0 0.0%
IRModule.NumIRBasicBlocks 127,596 127,596 0 0.0%
IRModule.NumIRFunctions 75,854 75,854 0 0.0%
IRModule.NumIRGlobals 69,304 69,304 0 0.0%
IRModule.NumIRInsts 1,426,333 1,426,333 0 0.0%
IRModule.NumIRValueSymbols 129,870 129,870 0 0.0%
LLVM.NumLLVMBytesOutput 36,543,524 36,543,494 -30 -0.0%
SILModule.NumSILGenFunctions 44,348 44,348 0 0.0%
SILModule.NumSILOptFunctions 47,339 47,339 0 0.0%
Sema.NumConformancesDeserialized 351,086 351,426 340 0.1%
Sema.NumConstraintScopes 917,295 917,295 0 0.0%
Sema.NumDeclsDeserialized 2,062,616 2,065,116 2,500 0.12%
Sema.NumDeclsValidated 188,812 188,812 0 0.0%
Sema.NumFunctionsTypechecked 47,175 47,175 0 0.0%
Sema.NumGenericSignatureBuilders 80,092 80,092 0 0.0%
Sema.NumLazyGenericEnvironments 411,023 411,978 955 0.23%
Sema.NumLazyGenericEnvironmentsLoaded 38,122 38,122 0 0.0%
Sema.NumLazyIterableDeclContexts 327,919 328,642 723 0.22%
Sema.NumTypesDeserialized 2,278,675 2,281,849 3,174 0.14%
Sema.NumTypesValidated 204,408 204,408 0 0.0%

Release

release brief

Regressed (1)
name old new delta delta_pct
time.swift-driver.wall 140.4s 143.4s 3.0s 2.13% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (1)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 26,817,708 26,904,260 86,552 0.32%

release detailed

Regressed (2)
name old new delta delta_pct
IRModule.NumIRBasicBlocks 148,892 151,572 2,680 1.8% ⛔
IRModule.NumIRInsts 1,221,777 1,239,602 17,825 1.46% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (21)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 8,857 8,857 0 0.0%
AST.NumLoadedModules 408 408 0 0.0%
AST.NumTotalClangImportedEntities 25,770 25,770 0 0.0%
AST.NumUsedConformances 8,770 8,770 0 0.0%
IRModule.NumIRFunctions 56,759 56,857 98 0.17%
IRModule.NumIRGlobals 54,109 54,176 67 0.12%
IRModule.NumIRValueSymbols 101,611 101,771 160 0.16%
LLVM.NumLLVMBytesOutput 26,817,708 26,904,260 86,552 0.32%
SILModule.NumSILGenFunctions 22,181 22,181 0 0.0%
SILModule.NumSILOptFunctions 35,880 35,950 70 0.2%
Sema.NumConformancesDeserialized 85,572 86,099 527 0.62%
Sema.NumConstraintScopes 815,756 815,756 0 0.0%
Sema.NumDeclsDeserialized 204,828 205,167 339 0.17%
Sema.NumDeclsValidated 59,864 59,864 0 0.0%
Sema.NumFunctionsTypechecked 10,716 10,716 0 0.0%
Sema.NumGenericSignatureBuilders 9,737 9,749 12 0.12%
Sema.NumLazyGenericEnvironments 32,225 32,298 73 0.23%
Sema.NumLazyGenericEnvironmentsLoaded 4,552 4,556 4 0.09%
Sema.NumLazyIterableDeclContexts 20,584 20,638 54 0.26%
Sema.NumTypesDeserialized 268,127 268,670 543 0.2%
Sema.NumTypesValidated 34,805 34,805 0 0.0%

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (14)
TEST OLD NEW DELTA SPEEDUP
SuperChars 15550 24997 +60.8% 0.62x
StringHasPrefixUnicode 100096 118541 +18.4% 0.84x
WordSplitASCII 6916 8118 +17.4% 0.85x
UTF8Decode_InitDecoding 1169 1370 +17.2% 0.85x
WordSplitUTF16 8708 10091 +15.9% 0.86x
ChainedFilterMap 1245 1407 +13.0% 0.88x
StringHasSuffixUnicode 100842 113749 +12.8% 0.89x
DataCopyBytes 435 482 +10.8% 0.90x (?)
DropLastCountableRangeLazy 11 12 +9.1% 0.92x
RomanNumbers 80551 87246 +8.3% 0.92x
StringComparison_abnormal 780 843 +8.1% 0.93x (?)
Combos 486 523 +7.6% 0.93x (?)
RemoveWhereMoveInts 14 15 +7.1% 0.93x
StringMatch 12575 13300 +5.8% 0.95x (?)
Improvement (21)
TEST OLD NEW DELTA SPEEDUP
UTF8Decode_InitDecoding_ascii 2515 654 -74.0% 3.85x
Chars 1045 912 -12.7% 1.15x
DataReplaceSmallBuffer 9239 8393 -9.2% 1.10x (?)
DataAppendDataSmallToMedium 6541 5956 -8.9% 1.10x
SuffixCountableRangeLazy 12 11 -8.3% 1.09x
DataCount 37 34 -8.1% 1.09x
DataAppendDataMediumToMedium 7174 6604 -7.9% 1.09x (?)
PopFrontUnsafePointer 9484 8739 -7.9% 1.09x (?)
ObjectiveCBridgeStubFromArrayOfNSString 34533 31971 -7.4% 1.08x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 5113 4734 -7.4% 1.08x (?)
DataAppendDataMediumToSmall 6299 5852 -7.1% 1.08x (?)
Calculator 207 193 -6.8% 1.07x
NSDictionaryCastToSwift 7097 6636 -6.5% 1.07x (?)
DataAppendDataSmallToSmall 6050 5671 -6.3% 1.07x (?)
DictionarySwapAt 7040 6602 -6.2% 1.07x
DataAppendBytes 5308 4994 -5.9% 1.06x (?)
StringComparison_fastPrenormal 897 847 -5.6% 1.06x
DataReplaceMediumBuffer 11693 11082 -5.2% 1.06x (?)
SortStringsUnicode 2661 2522 -5.2% 1.06x
ObjectiveCBridgeFromNSSetAnyObject 51590 48955 -5.1% 1.05x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 45739 43506 -4.9% 1.05x (?)
No Changes (411)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3600 3629 +0.8% 0.99x (?)
AnyHashableWithAClass 86701 86713 +0.0% 1.00x (?)
Array2D 2852 2852 +0.0% 1.00x
ArrayAppend 1070 1072 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 797 791 -0.8% 1.01x (?)
ArrayAppendAscii 3896 3897 +0.0% 1.00x (?)
ArrayAppendAsciiSubstring 24207 24298 +0.4% 1.00x (?)
ArrayAppendFromGeneric 790 785 -0.6% 1.01x (?)
ArrayAppendGenericStructs 1405 1403 -0.1% 1.00x (?)
ArrayAppendLatin1 40942 41628 +1.7% 0.98x
ArrayAppendLatin1Substring 142957 141113 -1.3% 1.01x (?)
ArrayAppendLazyMap 1335 1339 +0.3% 1.00x (?)
ArrayAppendOptionals 1421 1427 +0.4% 1.00x (?)
ArrayAppendRepeatCol 1339 1339 +0.0% 1.00x
ArrayAppendReserved 805 803 -0.2% 1.00x (?)
ArrayAppendSequence 1122 1120 -0.2% 1.00x (?)
ArrayAppendStrings 6208 6211 +0.0% 1.00x (?)
ArrayAppendToFromGeneric 798 784 -1.8% 1.02x (?)
ArrayAppendToGeneric 796 784 -1.5% 1.02x (?)
ArrayAppendUTF16 40220 41645 +3.5% 0.97x
ArrayAppendUTF16Substring 140037 139263 -0.6% 1.01x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 149 -1.3% 1.01x (?)
ArrayOfGenericRef 4392 4387 -0.1% 1.00x (?)
ArrayOfPOD 184 184 +0.0% 1.00x
ArrayOfRef 4375 4366 -0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 795 784 -1.4% 1.01x (?)
ArrayPlusEqualFiveElementCollection 5437 5501 +1.2% 0.99x (?)
ArrayPlusEqualSingleElementCollection 1073 1069 -0.4% 1.00x (?)
ArrayPlusEqualThreeElements 1650 1645 -0.3% 1.00x (?)
ArraySubscript 1534 1533 -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 31 31 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 37 37 +0.0% 1.00x
BitCount 211 211 +0.0% 1.00x
ByteSwap 100 101 +1.0% 0.99x (?)
COWArrayGuaranteedParameterOverhead 8504 8512 +0.1% 1.00x (?)
COWTree 5238 5226 -0.2% 1.00x (?)
CSVParsing 655402 655490 +0.0% 1.00x (?)
CSVParsingAlt 809654 808733 -0.1% 1.00x (?)
CSVParsingAltIndices 337419 334491 -0.9% 1.01x (?)
CStringLongAscii 4145 4197 +1.3% 0.99x (?)
CStringLongNonAscii 2359 2475 +4.9% 0.95x
CStringShortAscii 3309 3301 -0.2% 1.00x (?)
CaptureProp 4087 4108 +0.5% 0.99x (?)
CharIndexing_ascii_unicodeScalars 16275 16961 +4.2% 0.96x
CharIndexing_ascii_unicodeScalars_Backwards 16020 16011 -0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars 12328 12841 +4.2% 0.96x
CharIndexing_chinese_unicodeScalars_Backwards 12141 12120 -0.2% 1.00x (?)
CharIndexing_japanese_unicodeScalars 19483 20305 +4.2% 0.96x
CharIndexing_japanese_unicodeScalars_Backwards 19184 19154 -0.2% 1.00x (?)
CharIndexing_korean_unicodeScalars 15788 16445 +4.2% 0.96x
CharIndexing_korean_unicodeScalars_Backwards 15540 15518 -0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2957 3066 +3.7% 0.96x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2909 2906 -0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3694 3834 +3.8% 0.96x
CharIndexing_punctuated_unicodeScalars_Backwards 3640 3611 -0.8% 1.01x (?)
CharIndexing_russian_unicodeScalars 13564 14133 +4.2% 0.96x
CharIndexing_russian_unicodeScalars_Backwards 13351 13339 -0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars 32092 32717 +1.9% 0.98x
CharIndexing_tweet_unicodeScalars_Backwards 31629 31218 -1.3% 1.01x
CharIndexing_utf16_unicodeScalars 22908 23089 +0.8% 0.99x (?)
CharIndexing_utf16_unicodeScalars_Backwards 23307 23419 +0.5% 1.00x (?)
CharIteration_ascii_unicodeScalars 20601 21379 +3.8% 0.96x
CharIteration_ascii_unicodeScalars_Backwards 15100 15141 +0.3% 1.00x (?)
CharIteration_chinese_unicodeScalars 15586 16187 +3.9% 0.96x
CharIteration_chinese_unicodeScalars_Backwards 11439 11466 +0.2% 1.00x (?)
CharIteration_japanese_unicodeScalars 24701 25616 +3.7% 0.96x
CharIteration_japanese_unicodeScalars_Backwards 18076 18121 +0.2% 1.00x (?)
CharIteration_korean_unicodeScalars 19989 20731 +3.7% 0.96x
CharIteration_korean_unicodeScalars_Backwards 14645 14678 +0.2% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3695 3852 +4.2% 0.96x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2733 2747 +0.5% 0.99x
CharIteration_punctuated_unicodeScalars 4637 4826 +4.1% 0.96x
CharIteration_punctuated_unicodeScalars_Backwards 3420 3435 +0.4% 1.00x (?)
CharIteration_russian_unicodeScalars 17170 17810 +3.7% 0.96x
CharIteration_russian_unicodeScalars_Backwards 12579 12612 +0.3% 1.00x (?)
CharIteration_tweet_unicodeScalars 40094 42194 +5.2% 0.95x
CharIteration_tweet_unicodeScalars_Backwards 29830 29948 +0.4% 1.00x
CharIteration_utf16_unicodeScalars 27636 28114 +1.7% 0.98x
CharIteration_utf16_unicodeScalars_Backwards 18606 18783 +1.0% 0.99x
CharacterLiteralsLarge 5887 5869 -0.3% 1.00x (?)
CharacterLiteralsSmall 220 217 -1.4% 1.01x
CharacterPropertiesFetch 4577 4578 +0.0% 1.00x (?)
CharacterPropertiesPrecomputed 1036 1036 +0.0% 1.00x
CharacterPropertiesStashed 1536 1498 -2.5% 1.03x (?)
CharacterPropertiesStashedMemo 1606 1586 -1.2% 1.01x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
DataAccessBytes 1143 1143 +0.0% 1.00x
DataAppendArray 5473 5253 -4.0% 1.04x (?)
DataAppendDataLargeToLarge 69088 67587 -2.2% 1.02x (?)
DataAppendDataLargeToMedium 35711 35149 -1.6% 1.02x (?)
DataAppendDataLargeToSmall 34928 34106 -2.4% 1.02x (?)
DataAppendDataMediumToLarge 38740 37216 -3.9% 1.04x (?)
DataAppendDataSmallToLarge 38198 37353 -2.2% 1.02x (?)
DataAppendSequence 20815 20894 +0.4% 1.00x (?)
DataMutateBytes 3925 3874 -1.3% 1.01x (?)
DataReplaceLarge 36950 37145 +0.5% 0.99x (?)
DataReplaceLargeBuffer 58027 57088 -1.6% 1.02x (?)
DataReplaceMedium 7845 7789 -0.7% 1.01x (?)
DataReplaceSmall 5578 5635 +1.0% 0.99x (?)
DataReset 2805 2791 -0.5% 1.01x (?)
DataSetCount 549 568 +3.5% 0.97x (?)
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 791 775 -2.0% 1.02x (?)
Dictionary 513 513 +0.0% 1.00x
Dictionary2 638 638 +0.0% 1.00x
Dictionary2OfObjects 2075 2082 +0.3% 1.00x (?)
Dictionary3 222 221 -0.5% 1.00x (?)
Dictionary3OfObjects 737 738 +0.1% 1.00x (?)
Dictionary4 338 341 +0.9% 0.99x (?)
Dictionary4Legacy 740 741 +0.1% 1.00x (?)
Dictionary4OfObjects 455 455 +0.0% 1.00x
Dictionary4OfObjectsLegacy 959 958 -0.1% 1.00x (?)
DictionaryBridge 1181 1160 -1.8% 1.02x (?)
DictionaryCopy 104906 106180 +1.2% 0.99x (?)
DictionaryFilter 105794 106260 +0.4% 1.00x (?)
DictionaryGroup 217 214 -1.4% 1.01x (?)
DictionaryGroupOfObjects 2123 2117 -0.3% 1.00x (?)
DictionaryKeysContainsCocoa 39 39 +0.0% 1.00x
DictionaryKeysContainsNative 32 32 +0.0% 1.00x
DictionaryLiteral 1922 1905 -0.9% 1.01x (?)
DictionaryOfObjects 2373 2367 -0.3% 1.00x (?)
DictionaryRemove 4230 4192 -0.9% 1.01x (?)
DictionaryRemoveOfObjects 25649 25651 +0.0% 1.00x (?)
DictionarySubscriptDefaultMutation 264 271 +2.7% 0.97x
DictionarySubscriptDefaultMutationArray 603 605 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 4005 4014 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1715 1694 -1.2% 1.01x (?)
DictionarySwap 1041 1034 -0.7% 1.01x (?)
DictionarySwapAtOfObjects 52263 52394 +0.3% 1.00x (?)
DictionarySwapOfObjects 8835 8751 -1.0% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 83 84 +1.2% 0.99x (?)
DropFirstAnyCollectionLazy 65222 65110 -0.2% 1.00x (?)
DropFirstAnySeqCRangeIter 21661 21477 -0.8% 1.01x
DropFirstAnySeqCRangeIterLazy 21667 21479 -0.9% 1.01x (?)
DropFirstAnySeqCntRange 41 41 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 41 41 +0.0% 1.00x
DropFirstAnySequence 5022 5014 -0.2% 1.00x (?)
DropFirstAnySequenceLazy 5017 5012 -0.1% 1.00x (?)
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 2680 2680 +0.0% 1.00x
DropFirstSequenceLazy 2773 2768 -0.2% 1.00x (?)
DropLastAnyCollection 30 31 +3.3% 0.97x
DropLastAnyCollectionLazy 21650 21817 +0.8% 0.99x (?)
DropLastAnySeqCRangeIter 3508 3521 +0.4% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3501 3519 +0.5% 0.99x (?)
DropLastAnySeqCntRange 13 13 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 13 13 +0.0% 1.00x
DropLastAnySequence 4910 4903 -0.1% 1.00x (?)
DropLastAnySequenceLazy 5004 5012 +0.2% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastSequence 628 657 +4.6% 0.96x
DropLastSequenceLazy 627 657 +4.8% 0.95x
DropWhileAnyCollection 107 107 +0.0% 1.00x
DropWhileAnyCollectionLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCRangeIter 17057 16879 -1.0% 1.01x
DropWhileAnySeqCRangeIterLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCntRange 50 50 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 125 125 +0.0% 1.00x
DropWhileAnySequence 4866 4881 +0.3% 1.00x (?)
DropWhileAnySequenceLazy 1856 1856 +0.0% 1.00x
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 2213 2209 -0.2% 1.00x (?)
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 49 48 -2.0% 1.02x
EqualSubstringString 49 48 -2.0% 1.02x
EqualSubstringSubstring 49 48 -2.0% 1.02x
EqualSubstringSubstringGenericEquatable 49 48 -2.0% 1.02x
ErrorHandling 1210 1195 -1.2% 1.01x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 198035 198429 +0.2% 1.00x (?)
FilterEvenUsingReduce 1301 1300 -0.1% 1.00x (?)
FilterEvenUsingReduceInto 147 148 +0.7% 0.99x (?)
FloatingPointPrinting_Double_description_small 21515 21426 -0.4% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 21063 21068 +0.0% 1.00x (?)
FloatingPointPrinting_Double_interpolated 61522 61696 +0.3% 1.00x (?)
FloatingPointPrinting_Float80_description_small 28334 28194 -0.5% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 27392 27481 +0.3% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 64960 64887 -0.1% 1.00x (?)
FloatingPointPrinting_Float_description_small 5361 5391 +0.6% 0.99x (?)
FloatingPointPrinting_Float_description_uniform 5226 5298 +1.4% 0.99x
FloatingPointPrinting_Float_interpolated 38704 38399 -0.8% 1.01x (?)
FrequenciesUsingReduce 4906 4942 +0.7% 0.99x (?)
FrequenciesUsingReduceInto 1492 1536 +2.9% 0.97x (?)
Hanoi 2169 2231 +2.9% 0.97x
HashTest 936 936 +0.0% 1.00x
Histogram 694 698 +0.6% 0.99x
Integrate 334 334 +0.0% 1.00x
IterateData 1542 1544 +0.1% 1.00x (?)
Join 174 174 +0.0% 1.00x
LazilyFilteredArrayContains 36257 35460 -2.2% 1.02x
LazilyFilteredArrays 64718 64720 +0.0% 1.00x (?)
LazilyFilteredRange 3860 3878 +0.5% 1.00x (?)
LessSubstringSubstring 49 48 -2.0% 1.02x
LessSubstringSubstringGenericComparable 49 48 -2.0% 1.02x
LinkedList 7552 7540 -0.2% 1.00x (?)
LuhnAlgoEager 434 450 +3.7% 0.96x
LuhnAlgoLazy 440 451 +2.5% 0.98x
MapReduce 397 399 +0.5% 0.99x (?)
MapReduceAnyCollection 428 429 +0.2% 1.00x (?)
MapReduceAnyCollectionShort 2236 2240 +0.2% 1.00x (?)
MapReduceClass 3010 3006 -0.1% 1.00x (?)
MapReduceClassShort 4550 4533 -0.4% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 37 37 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 450 449 -0.2% 1.00x (?)
MapReduceShort 1981 1992 +0.6% 0.99x (?)
MapReduceShortString 20 20 +0.0% 1.00x
MapReduceString 48 47 -2.1% 1.02x
Memset 212 214 +0.9% 0.99x (?)
MonteCarloE 10367 10330 -0.4% 1.00x (?)
MonteCarloPi 42929 42918 -0.0% 1.00x (?)
NSError 163 164 +0.6% 0.99x (?)
NSStringConversion 707 719 +1.7% 0.98x
NibbleSort 3695 3696 +0.0% 1.00x (?)
NopDeinit 30142 30146 +0.0% 1.00x (?)
ObjectAllocation 132 132 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 25060 25954 +3.6% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45148 45738 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 111691 109102 -2.3% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4912 4932 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 67872 68474 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSString 1254 1257 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2700 2685 -0.6% 1.01x (?)
ObjectiveCBridgeStubDataAppend 6313 6263 -0.8% 1.01x (?)
ObjectiveCBridgeStubDateMutation 400 400 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDate 6248 6294 +0.7% 0.99x (?)
ObjectiveCBridgeStubFromNSString 1037 1031 -0.6% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 161 161 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2543 2553 +0.4% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 13083 12995 -0.7% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 39343 39291 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14963 14891 -0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3414 3382 -0.9% 1.01x (?)
ObjectiveCBridgeStubToNSString 2334 2339 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 115 115 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 271064 272898 +0.7% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 278529 274947 -1.3% 1.01x (?)
ObjectiveCBridgeToNSArray 14655 14530 -0.9% 1.01x (?)
ObjectiveCBridgeToNSDictionary 26755 26729 -0.1% 1.00x (?)
ObjectiveCBridgeToNSSet 17139 17688 +3.2% 0.97x (?)
ObjectiveCBridgeToNSString 457 447 -2.2% 1.02x
ObserverClosure 2129 2140 +0.5% 0.99x (?)
ObserverForwarderStruct 1208 1208 +0.0% 1.00x
ObserverPartiallyAppliedMethod 3712 3710 -0.1% 1.00x (?)
ObserverUnappliedMethod 2463 2453 -0.4% 1.00x (?)
OpaqueConsumingUsers 4178 4179 +0.0% 1.00x (?)
OpenClose 68 68 +0.0% 1.00x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 6837 6912 +1.1% 0.99x
PointerArithmetics 34352 34346 -0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1960 1933 -1.4% 1.01x (?)
PopFrontArrayGeneric 1905 1906 +0.1% 1.00x (?)
PrefixAnyCollection 84 83 -1.2% 1.01x
PrefixAnyCollectionLazy 64714 65116 +0.6% 0.99x (?)
PrefixAnySeqCRangeIter 16719 16674 -0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 16721 16684 -0.2% 1.00x (?)
PrefixAnySeqCntRange 28 28 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 28 28 +0.0% 1.00x
PrefixAnySequence 4315 4392 +1.8% 0.98x (?)
PrefixAnySequenceLazy 4321 4321 +0.0% 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 2213 2214 +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 8658 8665 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 72 72 +0.0% 1.00x
PrefixWhileAnySeqCntRange 59 59 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 90 90 +0.0% 1.00x
PrefixWhileAnySequence 9802 9802 +0.0% 1.00x
PrefixWhileAnySequenceLazy 1392 1393 +0.1% 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 361 361 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 892 902 +1.1% 0.99x (?)
PrimsSplit 897 897 +0.0% 1.00x
QueueConcrete 1150 1148 -0.2% 1.00x (?)
QueueGeneric 1145 1150 +0.4% 1.00x (?)
RC4 161 161 +0.0% 1.00x
RGBHistogram 3200 3201 +0.0% 1.00x (?)
RGBHistogramOfObjects 23734 23702 -0.1% 1.00x (?)
Radix2CooleyTukey 12432 12397 -0.3% 1.00x (?)
Radix2CooleyTukeyf 8922 8898 -0.3% 1.00x (?)
RandomDoubleDef 26889 26799 -0.3% 1.00x (?)
RandomDoubleLCG 2902 2895 -0.2% 1.00x
RandomIntegersDef 24280 24537 +1.1% 0.99x
RandomIntegersLCG 994 994 +0.0% 1.00x
RandomShuffleDef 807117 813103 +0.7% 0.99x (?)
RandomShuffleLCG 119109 117796 -1.1% 1.01x (?)
RangeAssignment 349 350 +0.3% 1.00x (?)
RangeIterationSigned 171 171 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 1008 1009 +0.1% 1.00x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 46 47 +2.2% 0.98x
RemoveWhereFilterString 258 248 -3.9% 1.04x
RemoveWhereFilterStrings 436 437 +0.2% 1.00x (?)
RemoveWhereMoveStrings 708 708 +0.0% 1.00x
RemoveWhereQuadraticInts 1293 1295 +0.2% 1.00x (?)
RemoveWhereQuadraticString 384 373 -2.9% 1.03x (?)
RemoveWhereQuadraticStrings 2760 2759 -0.0% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 859 861 +0.2% 1.00x (?)
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 16594 16692 +0.6% 0.99x (?)
ReversedDictionary 261 262 +0.4% 1.00x (?)
SequenceAlgosAnySequence 11955 11907 -0.4% 1.00x (?)
SequenceAlgosArray 1574 1568 -0.4% 1.00x (?)
SequenceAlgosContiguousArray 1578 1570 -0.5% 1.01x (?)
SequenceAlgosList 1357 1355 -0.1% 1.00x (?)
SequenceAlgosRange 2576 2576 +0.0% 1.00x
SequenceAlgosUnfoldSequence 1102 1102 +0.0% 1.00x
SetExclusiveOr 5052 4980 -1.4% 1.01x (?)
SetExclusiveOr_OfObjects 11635 11655 +0.2% 1.00x (?)
SetIntersect 696 702 +0.9% 0.99x (?)
SetIntersect_OfObjects 1754 1754 +0.0% 1.00x
SetIsSubsetOf 344 341 -0.9% 1.01x (?)
SetIsSubsetOf_OfObjects 441 440 -0.2% 1.00x (?)
SetUnion 4372 4376 +0.1% 1.00x (?)
SetUnion_OfObjects 10094 10119 +0.2% 1.00x (?)
SevenBoom 833 839 +0.7% 0.99x (?)
Sim2DArray 417 417 +0.0% 1.00x
SortLargeExistentials 5459 5477 +0.3% 1.00x (?)
SortLettersInPlace 995 993 -0.2% 1.00x (?)
SortSortedStrings 839 867 +3.3% 0.97x
SortStrings 1774 1805 +1.7% 0.98x
StackPromo 24533 24531 -0.0% 1.00x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1780 1781 +0.1% 1.00x (?)
StrToInt 3187 3214 +0.8% 0.99x
StringAdder 556 567 +2.0% 0.98x
StringBuilder 462 473 +2.4% 0.98x
StringBuilderLong 1244 1243 -0.1% 1.00x (?)
StringBuilderSmallReservingCapacity 480 493 +2.7% 0.97x
StringBuilderWithLongSubstring 1443 1443 +0.0% 1.00x
StringComparison_ascii 1028 1059 +3.0% 0.97x
StringComparison_emoji 850 844 -0.7% 1.01x (?)
StringComparison_latin1 689 665 -3.5% 1.04x
StringComparison_longSharedPrefix 963 953 -1.0% 1.01x (?)
StringComparison_nonBMPSlowestPrenormal 1660 1654 -0.4% 1.00x (?)
StringComparison_slowerPrenormal 1799 1819 +1.1% 0.99x (?)
StringComparison_zalgo 119995 120072 +0.1% 1.00x (?)
StringEdits 172869 171132 -1.0% 1.01x (?)
StringEnumRawValueInitialization 891 885 -0.7% 1.01x
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 22 22 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2232 2232 +0.0% 1.00x
StringHasSuffixAscii 2261 2347 +3.8% 0.96x
StringInterpolation 9178 9116 -0.7% 1.01x (?)
StringInterpolationManySmallSegments 17914 18221 +1.7% 0.98x (?)
StringInterpolationSmall 4270 4340 +1.6% 0.98x (?)
StringRemoveDupes 484 492 +1.7% 0.98x (?)
StringUTF16Builder 2638 2641 +0.1% 1.00x (?)
StringUTF16SubstringBuilder 5945 5784 -2.7% 1.03x (?)
StringWalk 1568 1554 -0.9% 1.01x
StringWithCString 44881 44811 -0.2% 1.00x (?)
StringWordBuilder 2243 2243 +0.0% 1.00x
StringWordBuilderReservingCapacity 1828 1871 +2.4% 0.98x
SubstringComparable 13 13 +0.0% 1.00x
SubstringEqualString 619 602 -2.7% 1.03x
SubstringEquatable 1433 1394 -2.7% 1.03x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 31 31 +0.0% 1.00x
SuffixAnyCollectionLazy 21330 21686 +1.7% 0.98x (?)
SuffixAnySeqCRangeIter 3723 3729 +0.2% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3721 3731 +0.3% 1.00x (?)
SuffixAnySeqCntRange 20 20 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 21 20 -4.8% 1.05x
SuffixAnySequence 4905 4906 +0.0% 1.00x (?)
SuffixAnySequenceLazy 5022 4986 -0.7% 1.01x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixSequence 3603 3565 -1.1% 1.01x (?)
SuffixSequenceLazy 3601 3576 -0.7% 1.01x
SumUsingReduce 97 97 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
TwoSum 1450 1469 +1.3% 0.99x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 311 311 +0.0% 1.00x
UTF8Decode_InitFromBytes 1179 1174 -0.4% 1.00x (?)
UTF8Decode_InitFromBytes_ascii 512 493 -3.7% 1.04x (?)
UTF8Decode_InitFromData 1242 1230 -1.0% 1.01x (?)
UTF8Decode_InitFromData_ascii 692 704 +1.7% 0.98x (?)
Walsh 431 424 -1.6% 1.02x
WordCountHistogramASCII 8125 8116 -0.1% 1.00x (?)
WordCountHistogramUTF16 14474 13990 -3.3% 1.03x (?)
WordCountUniqueASCII 2069 2118 +2.4% 0.98x (?)
WordCountUniqueUTF16 7374 7268 -1.4% 1.01x (?)
XorLoop 396 401 +1.3% 0.99x (?)

Unoptimized (Onone)

Regression (20)
TEST OLD NEW DELTA SPEEDUP
StringBuilderWithLongSubstring 3189 3874 +21.5% 0.82x (?)
StringHasPrefixUnicode 100859 121466 +20.4% 0.83x (?)
ReversedBidirectional 44701 51519 +15.3% 0.87x
Combos 2055 2318 +12.8% 0.89x (?)
StringHasSuffixUnicode 101971 114644 +12.4% 0.89x
DictionaryKeysContainsCocoa 66 74 +12.1% 0.89x (?)
UTF8Decode_InitFromBytes_ascii 506 567 +12.1% 0.89x (?)
SuffixAnyCollectionLazy 34990 38287 +9.4% 0.91x (?)
DropLastAnyCollectionLazy 34999 38184 +9.1% 0.92x (?)
WordSplitASCII 10766 11693 +8.6% 0.92x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 56733 61573 +8.5% 0.92x
NSDictionaryCastToSwift 7916 8554 +8.1% 0.93x (?)
CharIndexing_russian_unicodeScalars 267596 288024 +7.6% 0.93x (?)
WordSplitUTF16 12747 13655 +7.1% 0.93x
SuperChars 83269 89099 +7.0% 0.93x
PrefixAnyCollectionLazy 108830 116033 +6.6% 0.94x (?)
CSVParsing 2729868 2900546 +6.3% 0.94x (?)
RomanNumbers 1248939 1324454 +6.0% 0.94x
Dictionary2OfObjects 4148 4394 +5.9% 0.94x (?)
StringInterpolation 11691 12361 +5.7% 0.95x (?)
Improvement (45)
TEST OLD NEW DELTA SPEEDUP
UTF8Decode_InitDecoding_ascii 192414 883 -99.5% 217.91x
UTF8Decode_InitDecoding 60251 1419 -97.6% 42.46x
CharIndexing_japanese_unicodeScalars_Backwards 536187 441488 -17.7% 1.21x
CharIteration_punctuated_unicodeScalars_Backwards 65937 56192 -14.8% 1.17x
ObjectiveCBridgeFromNSString 3361 2896 -13.8% 1.16x (?)
CharIteration_chinese_unicodeScalars_Backwards 220174 191806 -12.9% 1.15x (?)
ObjectiveCBridgeStubFromArrayOfNSString 36914 32243 -12.7% 1.14x
CharIteration_tweet_unicodeScalars_Backwards 576259 504260 -12.5% 1.14x (?)
CharIteration_japanese_unicodeScalars_Backwards 347623 304618 -12.4% 1.14x (?)
CharIteration_korean_unicodeScalars_Backwards 284075 249355 -12.2% 1.14x
CharIteration_ascii_unicodeScalars_Backwards 289815 254561 -12.2% 1.14x
CharIteration_utf16_unicodeScalars_Backwards 248041 218913 -11.7% 1.13x (?)
CharIteration_russian_unicodeScalars_Backwards 239769 211651 -11.7% 1.13x (?)
CharIndexing_ascii_unicodeScalars_Backwards 414043 365704 -11.7% 1.13x (?)
CharacterPropertiesStashedMemo 5254 4659 -11.3% 1.13x (?)
DropFirstArrayLazy 32973 29458 -10.7% 1.12x
WordCountUniqueUTF16 13942 12457 -10.7% 1.12x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 49919 44612 -10.6% 1.12x (?)
CharIndexing_chinese_unicodeScalars_Backwards 306035 274027 -10.5% 1.12x (?)
PrefixArrayLazy 32945 29509 -10.4% 1.12x
DataReplaceMediumBuffer 12726 11446 -10.1% 1.11x (?)
ArrayOfPOD 845 761 -9.9% 1.11x
QueueConcrete 15165 13744 -9.4% 1.10x
CharIndexing_korean_unicodeScalars_Backwards 383312 348702 -9.0% 1.10x (?)
DataAppendBytes 5351 4879 -8.8% 1.10x
CharIndexing_russian_unicodeScalars_Backwards 328661 301037 -8.4% 1.09x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 6642 6087 -8.4% 1.09x (?)
DataAppendArray 5630 5161 -8.3% 1.09x
CharIndexing_punctuated_unicodeScalars_Backwards 89776 82321 -8.3% 1.09x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 69879 64243 -8.1% 1.09x
DictionaryGroupOfObjects 7578 6972 -8.0% 1.09x (?)
DataAppendDataMediumToMedium 6928 6397 -7.7% 1.08x
ObjectiveCBridgeFromNSSetAnyObject 58356 53936 -7.6% 1.08x
ObjectiveCBridgeFromNSSetAnyObjectToString 79345 73680 -7.1% 1.08x (?)
DataAppendDataSmallToMedium 6542 6078 -7.1% 1.08x (?)
CharIndexing_tweet_unicodeScalars_Backwards 793034 739213 -6.8% 1.07x (?)
RandomDoubleLCG 63506 59332 -6.6% 1.07x (?)
CharIndexing_utf16_unicodeScalars_Backwards 334100 313659 -6.1% 1.07x (?)
FrequenciesUsingReduceInto 3299 3101 -6.0% 1.06x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9259 8725 -5.8% 1.06x (?)
WordCountHistogramUTF16 47772 45066 -5.7% 1.06x
Dictionary4OfObjects 1861 1762 -5.3% 1.06x (?)
Radix2CooleyTukeyf 37277 35371 -5.1% 1.05x
ArrayOfGenericPOD2 1185 1128 -4.8% 1.05x
DataMutateBytes 5453 5191 -4.8% 1.05x (?)
No Changes (381)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5370 5207 -3.0% 1.03x (?)
AnyHashableWithAClass 103321 102741 -0.6% 1.01x
Array2D 622381 623107 +0.1% 1.00x (?)
ArrayAppend 4432 4445 +0.3% 1.00x
ArrayAppendArrayOfInt 860 848 -1.4% 1.01x (?)
ArrayAppendAscii 25830 25676 -0.6% 1.01x (?)
ArrayAppendAsciiSubstring 70306 69712 -0.8% 1.01x (?)
ArrayAppendFromGeneric 868 865 -0.3% 1.00x (?)
ArrayAppendGenericStructs 1506 1487 -1.3% 1.01x
ArrayAppendLatin1 63604 64080 +0.7% 0.99x
ArrayAppendLatin1Substring 163641 158875 -2.9% 1.03x
ArrayAppendLazyMap 165216 165983 +0.5% 1.00x
ArrayAppendOptionals 1504 1498 -0.4% 1.00x (?)
ArrayAppendRepeatCol 188872 187240 -0.9% 1.01x
ArrayAppendReserved 4165 4162 -0.1% 1.00x (?)
ArrayAppendSequence 105426 103807 -1.5% 1.02x
ArrayAppendStrings 6359 6367 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 865 864 -0.1% 1.00x (?)
ArrayAppendToGeneric 873 872 -0.1% 1.00x (?)
ArrayAppendUTF16 63148 64129 +1.6% 0.98x
ArrayAppendUTF16Substring 162230 156867 -3.3% 1.03x
ArrayInClass 6273 6217 -0.9% 1.01x (?)
ArrayLiteral 1790 1786 -0.2% 1.00x (?)
ArrayOfGenericRef 10483 10478 -0.0% 1.00x (?)
ArrayOfRef 9665 9615 -0.5% 1.01x (?)
ArrayPlusEqualArrayOfInt 867 865 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 223015 220505 -1.1% 1.01x (?)
ArrayPlusEqualSingleElementCollection 217410 218795 +0.6% 0.99x (?)
ArrayPlusEqualThreeElements 8700 8711 +0.1% 1.00x (?)
ArraySubscript 106688 106181 -0.5% 1.00x (?)
ArrayValueProp 3622 3633 +0.3% 1.00x (?)
ArrayValueProp2 14834 14843 +0.1% 1.00x (?)
ArrayValueProp3 4148 4152 +0.1% 1.00x (?)
ArrayValueProp4 4110 4121 +0.3% 1.00x (?)
BinaryFloatingPointPropertiesBinade 85 85 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 132 132 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 134 134 +0.0% 1.00x
BitCount 8886 8885 -0.0% 1.00x (?)
ByteSwap 9781 9745 -0.4% 1.00x (?)
COWArrayGuaranteedParameterOverhead 13771 13797 +0.2% 1.00x (?)
COWTree 11810 11578 -2.0% 1.02x (?)
CSVParsingAlt 1442648 1423236 -1.3% 1.01x (?)
CSVParsingAltIndices 2325814 2294026 -1.4% 1.01x (?)
CStringLongAscii 4237 4363 +3.0% 0.97x (?)
CStringLongNonAscii 2519 2610 +3.6% 0.97x
CStringShortAscii 6089 6069 -0.3% 1.00x (?)
Calculator 1014 977 -3.6% 1.04x
CaptureProp 288348 285109 -1.1% 1.01x
ChainedFilterMap 229305 229882 +0.3% 1.00x (?)
CharIndexing_ascii_unicodeScalars 320000 318461 -0.5% 1.00x (?)
CharIndexing_chinese_unicodeScalars 245886 245120 -0.3% 1.00x (?)
CharIndexing_japanese_unicodeScalars 389647 395246 +1.4% 0.99x (?)
CharIndexing_korean_unicodeScalars 316142 308962 -2.3% 1.02x (?)
CharIndexing_punctuated_unicodeScalars 71386 70799 -0.8% 1.01x (?)
CharIndexing_tweet_unicodeScalars 630920 630635 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 282313 279158 -1.1% 1.01x (?)
CharIteration_ascii_unicodeScalars 146793 147488 +0.5% 1.00x (?)
CharIteration_chinese_unicodeScalars 110812 111553 +0.7% 0.99x (?)
CharIteration_japanese_unicodeScalars 176492 176066 -0.2% 1.00x (?)
CharIteration_korean_unicodeScalars 143375 142094 -0.9% 1.01x
CharIteration_punctuatedJapanese_unicodeScalars 26015 26264 +1.0% 0.99x (?)
CharIteration_punctuated_unicodeScalars 32917 33051 +0.4% 1.00x (?)
CharIteration_russian_unicodeScalars 121494 122797 +1.1% 0.99x
CharIteration_tweet_unicodeScalars 288580 291409 +1.0% 0.99x (?)
CharIteration_utf16_unicodeScalars 124891 125630 +0.6% 0.99x (?)
CharacterLiteralsLarge 5762 5764 +0.0% 1.00x (?)
CharacterLiteralsSmall 702 678 -3.4% 1.04x
CharacterPropertiesFetch 5715 5582 -2.3% 1.02x (?)
CharacterPropertiesPrecomputed 3595 3468 -3.5% 1.04x (?)
CharacterPropertiesStashed 2350 2340 -0.4% 1.00x (?)
Chars 34539 34577 +0.1% 1.00x (?)
ClassArrayGetter 965 965 +0.0% 1.00x
DataAccessBytes 2295 2339 +1.9% 0.98x (?)
DataAppendDataLargeToLarge 70040 67150 -4.1% 1.04x (?)
DataAppendDataLargeToMedium 35650 35399 -0.7% 1.01x (?)
DataAppendDataLargeToSmall 34694 34139 -1.6% 1.02x (?)
DataAppendDataMediumToLarge 38710 38666 -0.1% 1.00x (?)
DataAppendDataMediumToSmall 6155 6072 -1.3% 1.01x (?)
DataAppendDataSmallToLarge 38111 36696 -3.7% 1.04x (?)
DataAppendDataSmallToSmall 6304 6109 -3.1% 1.03x (?)
DataAppendSequence 1936108 1948349 +0.6% 0.99x
DataCopyBytes 453 448 -1.1% 1.01x (?)
DataCount 223 223 +0.0% 1.00x
DataReplaceLarge 37222 37739 +1.4% 0.99x
DataReplaceLargeBuffer 57727 58174 +0.8% 0.99x (?)
DataReplaceMedium 8102 8312 +2.6% 0.97x (?)
DataReplaceSmall 5712 5653 -1.0% 1.01x (?)
DataReplaceSmallBuffer 8661 8635 -0.3% 1.00x (?)
DataReset 2839 2838 -0.0% 1.00x (?)
DataSetCount 563 564 +0.2% 1.00x (?)
DataSubscript 449 443 -1.3% 1.01x
DictOfArraysToArrayOfDicts 3490 3415 -2.1% 1.02x (?)
Dictionary 2194 2133 -2.8% 1.03x
Dictionary2 1292 1294 +0.2% 1.00x (?)
Dictionary3 830 825 -0.6% 1.01x (?)
Dictionary3OfObjects 2120 2111 -0.4% 1.00x (?)
Dictionary4 1201 1203 +0.2% 1.00x (?)
Dictionary4Legacy 1500 1494 -0.4% 1.00x (?)
Dictionary4OfObjectsLegacy 2223 2122 -4.5% 1.05x (?)
DictionaryBridge 1300 1293 -0.5% 1.01x (?)
DictionaryCopy 311639 315414 +1.2% 0.99x (?)
DictionaryFilter 322636 324295 +0.5% 0.99x (?)
DictionaryGroup 4398 4392 -0.1% 1.00x (?)
DictionaryKeysContainsNative 54 55 +1.9% 0.98x (?)
DictionaryLiteral 8637 8773 +1.6% 0.98x (?)
DictionaryOfObjects 5868 5834 -0.6% 1.01x (?)
DictionaryRemove 16905 17045 +0.8% 0.99x
DictionaryRemoveOfObjects 55077 53005 -3.8% 1.04x
DictionarySubscriptDefaultMutation 1959 1960 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArray 2243 2258 +0.7% 0.99x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9420 9480 +0.6% 0.99x (?)
DictionarySubscriptDefaultMutationOfObjects 5294 5545 +4.7% 0.95x (?)
DictionarySwap 4910 4940 +0.6% 0.99x (?)
DictionarySwapAt 32853 32782 -0.2% 1.00x (?)
DictionarySwapAtOfObjects 113220 114545 +1.2% 0.99x (?)
DictionarySwapOfObjects 19019 19705 +3.6% 0.97x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 15509 15465 -0.3% 1.00x (?)
DropFirstAnyCollectionLazy 110866 115769 +4.4% 0.96x (?)
DropFirstAnySeqCRangeIter 24060 23987 -0.3% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 23985 24055 +0.3% 1.00x
DropFirstAnySeqCntRange 15515 15417 -0.6% 1.01x (?)
DropFirstAnySeqCntRangeLazy 15509 15463 -0.3% 1.00x (?)
DropFirstAnySequence 13213 13194 -0.1% 1.00x (?)
DropFirstAnySequenceLazy 12981 12855 -1.0% 1.01x (?)
DropFirstArray 3439 3433 -0.2% 1.00x (?)
DropFirstCountableRange 345 346 +0.3% 1.00x
DropFirstCountableRangeLazy 34976 34776 -0.6% 1.01x (?)
DropFirstSequence 12755 12791 +0.3% 1.00x (?)
DropFirstSequenceLazy 12807 12725 -0.6% 1.01x (?)
DropLastAnyCollection 5192 5172 -0.4% 1.00x (?)
DropLastAnySeqCRangeIter 39419 39447 +0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 39416 39351 -0.2% 1.00x (?)
DropLastAnySeqCntRange 5195 5158 -0.7% 1.01x (?)
DropLastAnySeqCntRangeLazy 5178 5156 -0.4% 1.00x (?)
DropLastAnySequence 29274 29137 -0.5% 1.00x (?)
DropLastAnySequenceLazy 29266 29170 -0.3% 1.00x (?)
DropLastCountableRange 119 119 +0.0% 1.00x
DropLastCountableRangeLazy 11656 11627 -0.2% 1.00x
DropLastSequence 29456 29209 -0.8% 1.01x
DropLastSequenceLazy 29208 29211 +0.0% 1.00x (?)
DropWhileAnyCollection 20020 19948 -0.4% 1.00x (?)
DropWhileAnyCollectionLazy 22591 22771 +0.8% 0.99x (?)
DropWhileAnySeqCRangeIter 24960 24824 -0.5% 1.01x
DropWhileAnySeqCRangeIterLazy 22638 22576 -0.3% 1.00x (?)
DropWhileAnySeqCntRange 20000 19959 -0.2% 1.00x (?)
DropWhileAnySeqCntRangeLazy 22638 22673 +0.2% 1.00x (?)
DropWhileAnySequence 13990 13877 -0.8% 1.01x
DropWhileAnySequenceLazy 12574 12532 -0.3% 1.00x (?)
DropWhileArrayLazy 13652 13630 -0.2% 1.00x (?)
DropWhileCountableRange 4959 4943 -0.3% 1.00x
DropWhileCountableRangeLazy 22186 22172 -0.1% 1.00x (?)
DropWhileSequence 13512 13430 -0.6% 1.01x (?)
DropWhileSequenceLazy 12073 12022 -0.4% 1.00x (?)
EqualStringSubstring 72 72 +0.0% 1.00x
EqualSubstringString 72 72 +0.0% 1.00x
EqualSubstringSubstring 73 72 -1.4% 1.01x
EqualSubstringSubstringGenericEquatable 58 58 +0.0% 1.00x
ErrorHandling 5646 5482 -2.9% 1.03x (?)
ExclusivityGlobal 183 183 +0.0% 1.00x
ExclusivityIndependent 73 74 +1.4% 0.99x (?)
FatCompactMap 287627 285290 -0.8% 1.01x (?)
FilterEvenUsingReduce 3580 3561 -0.5% 1.01x (?)
FilterEvenUsingReduceInto 1829 1830 +0.1% 1.00x (?)
FloatingPointPrinting_Double_description_small 22275 22338 +0.3% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 33937 33797 -0.4% 1.00x (?)
FloatingPointPrinting_Double_interpolated 98083 99922 +1.9% 0.98x (?)
FloatingPointPrinting_Float80_description_small 29283 29306 +0.1% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 62304 60155 -3.4% 1.04x
FloatingPointPrinting_Float80_interpolated 121298 121349 +0.0% 1.00x (?)
FloatingPointPrinting_Float_description_small 6655 6377 -4.2% 1.04x
FloatingPointPrinting_Float_description_uniform 17204 17206 +0.0% 1.00x (?)
FloatingPointPrinting_Float_interpolated 74096 71624 -3.3% 1.03x (?)
FrequenciesUsingReduce 10577 10637 +0.6% 0.99x (?)
Hanoi 19197 19122 -0.4% 1.00x (?)
HashTest 21331 20775 -2.6% 1.03x
Histogram 6138 6186 +0.8% 0.99x (?)
Integrate 586 586 +0.0% 1.00x
IterateData 5007 5051 +0.9% 0.99x (?)
Join 196 195 -0.5% 1.01x (?)
LazilyFilteredArrayContains 735066 735729 +0.1% 1.00x (?)
LazilyFilteredArrays 1404088 1402101 -0.1% 1.00x (?)
LazilyFilteredRange 536477 535845 -0.1% 1.00x (?)
LessSubstringSubstring 73 72 -1.4% 1.01x
LessSubstringSubstringGenericComparable 58 56 -3.4% 1.04x
LinkedList 32457 32459 +0.0% 1.00x (?)
LuhnAlgoEager 5706 5556 -2.6% 1.03x (?)
LuhnAlgoLazy 5900 5731 -2.9% 1.03x (?)
MapReduce 25229 25024 -0.8% 1.01x
MapReduceAnyCollection 24804 24929 +0.5% 0.99x (?)
MapReduceAnyCollectionShort 36219 36026 -0.5% 1.01x (?)
MapReduceClass 28824 28861 +0.1% 1.00x (?)
MapReduceClassShort 39569 39520 -0.1% 1.00x (?)
MapReduceLazyCollection 22106 21971 -0.6% 1.01x (?)
MapReduceLazyCollectionShort 32914 32792 -0.4% 1.00x (?)
MapReduceLazySequence 20540 20290 -1.2% 1.01x
MapReduceSequence 30115 30064 -0.2% 1.00x (?)
MapReduceShort 36339 36105 -0.6% 1.01x (?)
MapReduceShortString 215 221 +2.8% 0.97x (?)
MapReduceString 1704 1705 +0.1% 1.00x (?)
Memset 44790 44794 +0.0% 1.00x (?)
MonteCarloE 1128146 1122889 -0.5% 1.00x (?)
MonteCarloPi 5134826 5108469 -0.5% 1.01x
NSError 609 597 -2.0% 1.02x (?)
NSStringConversion 789 761 -3.5% 1.04x
NibbleSort 512192 512925 +0.1% 1.00x (?)
NopDeinit 191051 192108 +0.6% 0.99x (?)
ObjectAllocation 1243 1253 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 28724 28687 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 48706 49432 +1.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 46651 47355 +1.5% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 118207 116587 -1.4% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2819 2811 -0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 6712 6685 -0.4% 1.00x (?)
ObjectiveCBridgeStubDateMutation 775 776 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 6986 6900 -1.2% 1.01x
ObjectiveCBridgeStubFromNSString 1074 1064 -0.9% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 201 204 +1.5% 0.99x
ObjectiveCBridgeStubNSDataAppend 3060 3159 +3.2% 0.97x (?)
ObjectiveCBridgeStubNSDateMutationRef 15584 15680 +0.6% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 39653 39984 +0.8% 0.99x (?)
ObjectiveCBridgeStubToNSDate 15678 15820 +0.9% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3471 3495 +0.7% 0.99x (?)
ObjectiveCBridgeStubToNSString 2418 2424 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 153 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 287051 296981 +3.5% 0.97x (?)
ObjectiveCBridgeStubURLAppendPathRef 292144 304968 +4.4% 0.96x (?)
ObjectiveCBridgeToNSArray 14735 14589 -1.0% 1.01x (?)
ObjectiveCBridgeToNSDictionary 28814 27776 -3.6% 1.04x (?)
ObjectiveCBridgeToNSSet 18980 18792 -1.0% 1.01x (?)
ObjectiveCBridgeToNSString 542 538 -0.7% 1.01x
ObserverClosure 6347 6307 -0.6% 1.01x (?)
ObserverForwarderStruct 4157 4145 -0.3% 1.00x
ObserverPartiallyAppliedMethod 7860 7908 +0.6% 0.99x (?)
ObserverUnappliedMethod 7850 7868 +0.2% 1.00x (?)
OpaqueConsumingUsers 13422 13421 -0.0% 1.00x (?)
OpenClose 537 522 -2.8% 1.03x
PartialApplyDynamicType 40424 39587 -2.1% 1.02x (?)
Phonebook 15279 15130 -1.0% 1.01x
PointerArithmetics 131660 125974 -4.3% 1.05x
PolymorphicCalls 2419 2428 +0.4% 1.00x
PopFrontArray 4602 4627 +0.5% 0.99x (?)
PopFrontArrayGeneric 5128 5078 -1.0% 1.01x (?)
PopFrontUnsafePointer 11101 11098 -0.0% 1.00x (?)
PrefixAnyCollection 15522 15483 -0.3% 1.00x (?)
PrefixAnySeqCRangeIter 19077 19154 +0.4% 1.00x (?)
PrefixAnySeqCRangeIterLazy 19188 19259 +0.4% 1.00x (?)
PrefixAnySeqCntRange 15513 15421 -0.6% 1.01x (?)
PrefixAnySeqCntRangeLazy 15498 15415 -0.5% 1.01x
PrefixAnySequence 10727 10697 -0.3% 1.00x (?)
PrefixAnySequenceLazy 10713 10755 +0.4% 1.00x (?)
PrefixArray 3366 3374 +0.2% 1.00x (?)
PrefixCountableRange 345 345 +0.0% 1.00x
PrefixCountableRangeLazy 35015 34768 -0.7% 1.01x (?)
PrefixSequence 10176 10256 +0.8% 0.99x (?)
PrefixSequenceLazy 10210 10432 +2.2% 0.98x
PrefixWhileAnyCollection 29088 28986 -0.4% 1.00x (?)
PrefixWhileAnyCollectionLazy 18784 18933 +0.8% 0.99x (?)
PrefixWhileAnySeqCRangeIter 33280 33435 +0.5% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 18567 18732 +0.9% 0.99x (?)
PrefixWhileAnySeqCntRange 29008 29010 +0.0% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 18790 18910 +0.6% 0.99x
PrefixWhileAnySequence 25658 25659 +0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 11195 11190 -0.0% 1.00x (?)
PrefixWhileArray 10280 10125 -1.5% 1.02x
PrefixWhileArrayLazy 12028 12020 -0.1% 1.00x (?)
PrefixWhileCountableRange 14052 14025 -0.2% 1.00x (?)
PrefixWhileCountableRangeLazy 18401 18454 +0.3% 1.00x
PrefixWhileSequence 25449 25435 -0.1% 1.00x (?)
PrefixWhileSequenceLazy 10932 10855 -0.7% 1.01x
Prims 9261 9320 +0.6% 0.99x (?)
PrimsSplit 9308 9482 +1.9% 0.98x (?)
QueueGeneric 18936 18177 -4.0% 1.04x (?)
RC4 16003 15951 -0.3% 1.00x (?)
RGBHistogram 23116 23149 +0.1% 1.00x (?)
RGBHistogramOfObjects 79116 80506 +1.8% 0.98x (?)
Radix2CooleyTukey 42016 41781 -0.6% 1.01x
RandomDoubleDef 86269 89897 +4.2% 0.96x (?)
RandomIntegersDef 45307 44852 -1.0% 1.01x (?)
RandomIntegersLCG 22092 21934 -0.7% 1.01x (?)
RandomShuffleDef 2170528 2169127 -0.1% 1.00x (?)
RandomShuffleLCG 1490944 1503610 +0.8% 0.99x (?)
RangeAssignment 2694 2664 -1.1% 1.01x (?)
RangeIterationSigned 14888 14552 -2.3% 1.02x (?)
RangeReplaceableCollectionPlusDefault 11010 10978 -0.3% 1.00x (?)
RecursiveOwnedParameter 6289 6113 -2.8% 1.03x (?)
RemoveWhereFilterInts 2067 2058 -0.4% 1.00x (?)
RemoveWhereFilterString 1337 1322 -1.1% 1.01x (?)
RemoveWhereFilterStrings 2593 2573 -0.8% 1.01x (?)
RemoveWhereMoveInts 3326 3321 -0.2% 1.00x (?)
RemoveWhereMoveStrings 3872 3869 -0.1% 1.00x (?)
RemoveWhereQuadraticInts 8476 8439 -0.4% 1.00x (?)
RemoveWhereQuadraticString 2597 2557 -1.5% 1.02x (?)
RemoveWhereQuadraticStrings 10111 10015 -0.9% 1.01x (?)
RemoveWhereSwapInts 5983 6005 +0.4% 1.00x (?)
RemoveWhereSwapStrings 6712 6716 +0.1% 1.00x (?)
ReversedArray 12860 13124 +2.1% 0.98x
ReversedDictionary 23309 23446 +0.6% 0.99x (?)
SequenceAlgosAnySequence 13157 13066 -0.7% 1.01x
SequenceAlgosArray 726361 729276 +0.4% 1.00x
SequenceAlgosContiguousArray 285163 284111 -0.4% 1.00x (?)
SequenceAlgosList 8719 8726 +0.1% 1.00x (?)
SequenceAlgosRange 1292065 1281481 -0.8% 1.01x (?)
SequenceAlgosUnfoldSequence 6529 6433 -1.5% 1.01x
SetExclusiveOr 16293 16501 +1.3% 0.99x
SetExclusiveOr_OfObjects 41987 42026 +0.1% 1.00x (?)
SetIntersect 6876 6850 -0.4% 1.00x
SetIntersect_OfObjects 10537 10562 +0.2% 1.00x (?)
SetIsSubsetOf 1202 1189 -1.1% 1.01x (?)
SetIsSubsetOf_OfObjects 2266 2259 -0.3% 1.00x
SetUnion 11831 11950 +1.0% 0.99x
SetUnion_OfObjects 30407 30186 -0.7% 1.01x (?)
SevenBoom 1016 1012 -0.4% 1.00x (?)
Sim2DArray 43636 43641 +0.0% 1.00x (?)
SortLargeExistentials 9775 9745 -0.3% 1.00x (?)
SortLettersInPlace 1583 1581 -0.1% 1.00x (?)
SortSortedStrings 878 868 -1.1% 1.01x
SortStrings 1817 1811 -0.3% 1.00x
SortStringsUnicode 2834 2722 -4.0% 1.04x
StackPromo 96986 94930 -2.1% 1.02x (?)
StaticArray 2604 2597 -0.3% 1.00x (?)
StrComplexWalk 7268 7269 +0.0% 1.00x (?)
StrToInt 82119 83526 +1.7% 0.98x (?)
StringAdder 762 768 +0.8% 0.99x
StringBuilder 5018 5117 +2.0% 0.98x (?)
StringBuilderLong 1426 1449 +1.6% 0.98x (?)
StringBuilderSmallReservingCapacity 5013 5156 +2.9% 0.97x (?)
StringComparison_abnormal 1397 1349 -3.4% 1.04x (?)
StringComparison_ascii 8762 8847 +1.0% 0.99x
StringComparison_emoji 1990 1981 -0.5% 1.00x (?)
StringComparison_fastPrenormal 4933 4939 +0.1% 1.00x (?)
StringComparison_latin1 3879 3800 -2.0% 1.02x
StringComparison_longSharedPrefix 2376 2334 -1.8% 1.02x (?)
StringComparison_nonBMPSlowestPrenormal 3684 3659 -0.7% 1.01x
StringComparison_slowerPrenormal 4158 4117 -1.0% 1.01x (?)
StringComparison_zalgo 123484 122876 -0.5% 1.00x (?)
StringEdits 361513 377736 +4.5% 0.96x (?)
StringEnumRawValueInitialization 21156 21201 +0.2% 1.00x (?)
StringEqualPointerComparison 1747 1718 -1.7% 1.02x
StringFromLongWholeSubstring 22 22 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 195 195 +0.0% 1.00x
StringHasPrefixAscii 3213 3193 -0.6% 1.01x
StringHasSuffixAscii 3228 3285 +1.8% 0.98x (?)
StringInterpolationManySmallSegments 18748 19329 +3.1% 0.97x (?)
StringInterpolationSmall 6715 6863 +2.2% 0.98x (?)
StringMatch 38007 39897 +5.0% 0.95x (?)
StringRemoveDupes 718 725 +1.0% 0.99x
StringUTF16Builder 7803 8050 +3.2% 0.97x (?)
StringUTF16SubstringBuilder 21102 21520 +2.0% 0.98x (?)
StringWalk 12372 12396 +0.2% 1.00x (?)
StringWithCString 43804 43816 +0.0% 1.00x (?)
StringWordBuilder 2436 2383 -2.2% 1.02x
StringWordBuilderReservingCapacity 2005 1972 -1.6% 1.02x
SubstringComparable 1567 1568 +0.1% 1.00x (?)
SubstringEqualString 1698 1701 +0.2% 1.00x (?)
SubstringEquatable 5309 5270 -0.7% 1.01x (?)
SubstringFromLongString 15 15 +0.0% 1.00x
SubstringFromLongStringGeneric 103 103 +0.0% 1.00x
SuffixAnyCollection 5179 5164 -0.3% 1.00x
SuffixAnySeqCRangeIter 35436 35752 +0.9% 0.99x
SuffixAnySeqCRangeIterLazy 35372 35425 +0.1% 1.00x (?)
SuffixAnySeqCntRange 5177 5149 -0.5% 1.01x (?)
SuffixAnySeqCntRangeLazy 5177 5165 -0.2% 1.00x (?)
SuffixAnySequence 25596 25159 -1.7% 1.02x
SuffixAnySequenceLazy 25248 25195 -0.2% 1.00x
SuffixCountableRange 119 119 +0.0% 1.00x
SuffixCountableRangeLazy 11663 11622 -0.4% 1.00x
SuffixSequence 25502 25319 -0.7% 1.01x (?)
SuffixSequenceLazy 25171 25092 -0.3% 1.00x (?)
SumUsingReduce 155141 155258 +0.1% 1.00x (?)
SumUsingReduceInto 148637 148391 -0.2% 1.00x (?)
TwoSum 3455 3467 +0.3% 1.00x (?)
TypeFlood 197 198 +0.5% 0.99x (?)
UTF8Decode 28670 28678 +0.0% 1.00x (?)
UTF8Decode_InitFromBytes 1185 1188 +0.3% 1.00x (?)
UTF8Decode_InitFromData 1276 1250 -2.0% 1.02x (?)
UTF8Decode_InitFromData_ascii 767 761 -0.8% 1.01x (?)
Walsh 12047 12089 +0.3% 1.00x
WordCountHistogramASCII 38420 36712 -4.4% 1.05x
WordCountUniqueASCII 7242 6935 -4.2% 1.04x
XorLoop 23355 23362 +0.0% 1.00x (?)
Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@milseman milseman merged commit 5613701 into swiftlang:master Jun 18, 2018
@milseman milseman deleted the contiguous_stringage branch June 18, 2018 03:52
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