Skip to content

[stdlib] Comparison benchmarks for String #13217

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
Dec 2, 2017
Merged

[stdlib] Comparison benchmarks for String #13217

merged 1 commit into from
Dec 2, 2017

Conversation

lancep
Copy link
Contributor

@lancep lancep commented Dec 2, 2017

Adds a few benchmarks for string comparisons. This is in preparation for the revamped string comparison and will give us a look at the before/after

# Conflicts:
#	benchmark/single-source/StringComparison.swift
@lancep
Copy link
Contributor Author

lancep commented Dec 2, 2017

@swift-ci please benchmark

@lancep lancep changed the title Added comparison benchmarks [stdlib] Comparison benchmarks for String Dec 2, 2017
@lancep lancep requested a review from milseman December 2, 2017 04:37
@swift-ci
Copy link
Contributor

swift-ci commented Dec 2, 2017

Build comment file:

Optimized (O)

Regression (8)
TEST OLD NEW DELTA SPEEDUP
SuffixArrayLazy 11 17 +54.5% 0.65x
SuffixArray 11 17 +54.5% 0.65x
DropWhileArray 55 70 +27.3% 0.79x
PrefixWhileArray 88 105 +19.3% 0.84x
StringEqualPointerComparison 415 458 +10.4% 0.91x
MapReduceLazyCollectionShort 34 37 +8.8% 0.92x
NopDeinit 21564 23201 +7.6% 0.93x
LazilyFilteredRange 3804 4033 +6.0% 0.94x
Improvement (30)
TEST OLD NEW DELTA SPEEDUP
DropLastArray 18 11 -38.9% 1.64x
DropLastArrayLazy 18 11 -38.9% 1.64x
Sim2DArray 597 409 -31.5% 1.46x
ExclusivityInMatSet 20 17 -15.0% 1.18x
RangeIterationSigned 200 171 -14.5% 1.17x
PrefixWhileCountableRange 53 46 -13.2% 1.15x
CharIteration_ascii_unicodeScalars_Backwards 24240 21632 -10.8% 1.12x
CharIteration_tweet_unicodeScalars_Backwards 47935 42778 -10.8% 1.12x
CharIteration_japanese_unicodeScalars_Backwards 29033 25930 -10.7% 1.12x
CharIteration_chinese_unicodeScalars_Backwards 18333 16376 -10.7% 1.12x
CharIteration_korean_unicodeScalars_Backwards 23489 20985 -10.7% 1.12x
CharIteration_russian_unicodeScalars_Backwards 20169 18019 -10.7% 1.12x
DictionaryRemove 3285 2943 -10.4% 1.12x
CharIteration_punctuated_unicodeScalars_Backwards 5408 4848 -10.4% 1.12x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 4304 3861 -10.3% 1.11x
DropLastCountableRange 12 11 -8.3% 1.09x
Array2D 2714 2520 -7.1% 1.08x
CharIndexing_tweet_unicodeScalars 41632 39104 -6.1% 1.06x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 137100 128783 -6.1% 1.06x (?)
CharIndexing_russian_unicodeScalars 17556 16491 -6.1% 1.06x
CharIndexing_korean_unicodeScalars 20446 19209 -6.1% 1.06x
CharIndexing_japanese_unicodeScalars 25249 23723 -6.0% 1.06x
CharIndexing_chinese_unicodeScalars 15955 14994 -6.0% 1.06x
CharIndexing_ascii_unicodeScalars 21082 19830 -5.9% 1.06x
CharIndexing_punctuatedJapanese_unicodeScalars 3770 3547 -5.9% 1.06x
CharIndexing_punctuated_unicodeScalars 4730 4451 -5.9% 1.06x
DropLastAnyCollectionLazy 23483 22122 -5.8% 1.06x (?)
ArraySubscript 1586 1496 -5.7% 1.06x
Histogram 373 353 -5.4% 1.06x
DictionaryRemoveOfObjects 23628 22375 -5.3% 1.06x
No Changes (296)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2975 2858 -3.9% 1.04x
AnyHashableWithAClass 73582 76293 +3.7% 0.96x
ArrayAppend 1009 976 -3.3% 1.03x
ArrayAppendArrayOfInt 767 740 -3.5% 1.04x
ArrayAppendAscii 24386 23451 -3.8% 1.04x
ArrayAppendFromGeneric 770 744 -3.4% 1.03x
ArrayAppendGenericStructs 1404 1359 -3.2% 1.03x
ArrayAppendLatin1 46253 44582 -3.6% 1.04x
ArrayAppendLazyMap 1332 1286 -3.5% 1.04x
ArrayAppendOptionals 1396 1352 -3.2% 1.03x
ArrayAppendRepeatCol 1326 1281 -3.4% 1.04x
ArrayAppendReserved 748 723 -3.3% 1.03x
ArrayAppendSequence 1116 1080 -3.2% 1.03x
ArrayAppendStrings 15570 15037 -3.4% 1.04x (?)
ArrayAppendToFromGeneric 766 730 -4.7% 1.05x
ArrayAppendToGeneric 771 744 -3.5% 1.04x
ArrayAppendUTF16 47751 45809 -4.1% 1.04x
ArrayInClass 88 85 -3.4% 1.04x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD 228 221 -3.1% 1.03x
ArrayOfGenericRef 4382 4233 -3.4% 1.04x
ArrayOfPOD 184 178 -3.3% 1.03x
ArrayOfRef 4351 4185 -3.8% 1.04x
ArrayPlusEqualArrayOfInt 772 742 -3.9% 1.04x
ArrayPlusEqualFiveElementCollection 5652 5492 -2.8% 1.03x
ArrayPlusEqualSingleElementCollection 1008 976 -3.2% 1.03x
ArrayPlusEqualThreeElements 1635 1579 -3.4% 1.04x (?)
ArraySetElement 531 515 -3.0% 1.03x
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
BitCount 217 211 -2.8% 1.03x
ByteSwap 100 98 -2.0% 1.02x (?)
CStringLongAscii 6278 6049 -3.6% 1.04x
CStringLongNonAscii 2647 2548 -3.7% 1.04x
CStringShortAscii 5014 4824 -3.8% 1.04x (?)
Calculator 41 40 -2.4% 1.02x
CaptureProp 7900 7680 -2.8% 1.03x
CharIndexing_ascii_unicodeScalars_Backwards 19317 19303 -0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 14615 14593 -0.2% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 23124 23122 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 18728 18701 -0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 3458 3441 -0.5% 1.00x
CharIndexing_punctuated_unicodeScalars_Backwards 4338 4319 -0.4% 1.00x
CharIndexing_russian_unicodeScalars_Backwards 16081 16065 -0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 37767 38138 +1.0% 0.99x
CharIndexing_utf16_unicodeScalars 78653 76103 -3.2% 1.03x
CharIndexing_utf16_unicodeScalars_Backwards 88773 85940 -3.2% 1.03x
CharIteration_ascii_unicodeScalars 22979 23824 +3.7% 0.96x
CharIteration_chinese_unicodeScalars 17381 18171 +4.5% 0.96x
CharIteration_japanese_unicodeScalars 27610 28542 +3.4% 0.97x
CharIteration_korean_unicodeScalars 22277 22958 +3.1% 0.97x
CharIteration_punctuatedJapanese_unicodeScalars 4087 4236 +3.6% 0.96x
CharIteration_punctuated_unicodeScalars 5140 5325 +3.6% 0.97x
CharIteration_russian_unicodeScalars 19116 19792 +3.5% 0.97x
CharIteration_tweet_unicodeScalars 45416 47417 +4.4% 0.96x
CharIteration_utf16_unicodeScalars 100150 97319 -2.8% 1.03x
CharIteration_utf16_unicodeScalars_Backwards 142548 136867 -4.0% 1.04x
CharacterLiteralsLarge 5967 5731 -4.0% 1.04x (?)
CharacterLiteralsSmall 527 510 -3.2% 1.03x
Chars 1066 1034 -3.0% 1.03x
ClassArrayGetter 15 15 +0.0% 1.00x
DeadArray 206 200 -2.9% 1.03x
Dictionary 677 650 -4.0% 1.04x (?)
Dictionary2 1934 1867 -3.5% 1.04x (?)
Dictionary2OfObjects 3359 3237 -3.6% 1.04x (?)
Dictionary3 571 549 -3.9% 1.04x
Dictionary3OfObjects 917 876 -4.5% 1.05x (?)
DictionaryBridge 3826 3695 -3.4% 1.04x (?)
DictionaryGroup 276 270 -2.2% 1.02x
DictionaryGroupOfObjects 2012 1964 -2.4% 1.02x (?)
DictionaryLiteral 1574 1525 -3.1% 1.03x (?)
DictionaryOfObjects 2362 2276 -3.6% 1.04x
DictionarySwap 525 509 -3.0% 1.03x
DictionarySwapOfObjects 7412 7126 -3.9% 1.04x
DropFirstAnyCollection 78 75 -3.8% 1.04x
DropFirstAnyCollectionLazy 69226 66336 -4.2% 1.04x (?)
DropFirstAnySeqCRangeIter 21324 20552 -3.6% 1.04x
DropFirstAnySeqCRangeIterLazy 21325 20542 -3.7% 1.04x
DropFirstAnySeqCntRange 73 71 -2.7% 1.03x
DropFirstAnySeqCntRangeLazy 73 71 -2.7% 1.03x
DropFirstAnySequence 4801 4639 -3.4% 1.03x
DropFirstAnySequenceLazy 4796 4632 -3.4% 1.04x
DropFirstArray 36 35 -2.8% 1.03x
DropFirstArrayLazy 36 35 -2.8% 1.03x
DropFirstCountableRange 36 35 -2.8% 1.03x
DropFirstCountableRangeLazy 36 35 -2.8% 1.03x
DropFirstSequence 2711 2621 -3.3% 1.03x
DropFirstSequenceLazy 2808 2713 -3.4% 1.04x
DropLastAnyCollection 28 27 -3.6% 1.04x
DropLastAnySeqCRangeIter 4514 4330 -4.1% 1.04x
DropLastAnySeqCRangeIterLazy 4516 4324 -4.3% 1.04x
DropLastAnySeqCntRange 24 23 -4.2% 1.04x
DropLastAnySeqCntRangeLazy 24 23 -4.2% 1.04x
DropLastAnySequence 6141 5877 -4.3% 1.04x
DropLastAnySequenceLazy 6218 6140 -1.3% 1.01x
DropLastCountableRangeLazy 12 12 +0.0% 1.00x
DropLastSequence 719 746 +3.8% 0.96x
DropLastSequenceLazy 719 746 +3.8% 0.96x
DropWhileAnyCollection 102 99 -2.9% 1.03x
DropWhileAnyCollectionLazy 152 147 -3.3% 1.03x
DropWhileAnySeqCRangeIter 17356 16683 -3.9% 1.04x
DropWhileAnySeqCRangeIterLazy 152 147 -3.3% 1.03x
DropWhileAnySeqCntRange 98 95 -3.1% 1.03x
DropWhileAnySeqCntRangeLazy 152 147 -3.3% 1.03x
DropWhileAnySequence 5452 5267 -3.4% 1.04x
DropWhileAnySequenceLazy 1890 1831 -3.1% 1.03x
DropWhileArrayLazy 133 129 -3.0% 1.03x
DropWhileCountableRange 37 36 -2.7% 1.03x
DropWhileCountableRangeLazy 115 111 -3.5% 1.04x
DropWhileSequence 1365 1322 -3.2% 1.03x
DropWhileSequenceLazy 90 88 -2.2% 1.02x
EqualStringSubstring 413 401 -2.9% 1.03x
EqualSubstringString 413 400 -3.1% 1.03x
EqualSubstringSubstring 414 400 -3.4% 1.03x
EqualSubstringSubstringGenericEquatable 414 400 -3.4% 1.03x
ErrorHandling 2055 1973 -4.0% 1.04x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1314 1308 -0.5% 1.00x (?)
FilterEvenUsingReduceInto 149 145 -2.7% 1.03x (?)
FrequenciesUsingReduce 8350 8103 -3.0% 1.03x (?)
FrequenciesUsingReduceInto 4476 4326 -3.4% 1.03x (?)
Hanoi 3864 3862 -0.1% 1.00x (?)
HashTest 1765 1704 -3.5% 1.04x
Integrate 224 217 -3.1% 1.03x
IterateData 1328 1297 -2.3% 1.02x (?)
Join 378 369 -2.4% 1.02x (?)
LazilyFilteredArrayContains 30686 31485 +2.6% 0.97x
LazilyFilteredArrays 65817 65889 +0.1% 1.00x (?)
LessSubstringSubstring 400 400 +0.0% 1.00x
LessSubstringSubstringGenericComparable 401 400 -0.2% 1.00x (?)
LinkedList 7157 7161 +0.1% 1.00x (?)
MapReduce 454 455 +0.2% 1.00x (?)
MapReduceAnyCollection 456 457 +0.2% 1.00x (?)
MapReduceAnyCollectionShort 2020 2006 -0.7% 1.01x (?)
MapReduceClass 2992 2987 -0.2% 1.00x (?)
MapReduceClassShort 4461 4469 +0.2% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 449 445 -0.9% 1.01x (?)
MapReduceShort 1988 1976 -0.6% 1.01x (?)
MapReduceShortString 22 22 +0.0% 1.00x
MapReduceString 106 106 +0.0% 1.00x
Memset 213 213 +0.0% 1.00x
MonteCarloE 10367 10246 -1.2% 1.01x
MonteCarloPi 42673 42906 +0.5% 0.99x
NSDictionaryCastToSwift 5400 5348 -1.0% 1.01x (?)
NSError 312 304 -2.6% 1.03x (?)
NSStringConversion 400 400 +0.0% 1.00x
ObjectAllocation 174 175 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 20927 20445 -2.3% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3703 3726 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 36887 36599 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 31900 32357 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 130700 130293 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 6058 6234 +2.9% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 100442 103846 +3.4% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObject 62996 63569 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4538 4581 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 62710 65091 +3.8% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 76360 74822 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSString 997 1010 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2104 2139 +1.7% 0.98x (?)
ObjectiveCBridgeStubDataAppend 3898 3948 +1.3% 0.99x (?)
ObjectiveCBridgeStubDateAccess 229 229 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 256 257 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromArrayOfNSString 25489 26513 +4.0% 0.96x (?)
ObjectiveCBridgeStubFromNSDate 4168 4158 -0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 4500 4486 -0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSString 623 609 -2.2% 1.02x (?)
ObjectiveCBridgeStubFromNSStringRef 172 172 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2651 2525 -4.8% 1.05x (?)
ObjectiveCBridgeStubNSDateMutationRef 12510 12618 +0.9% 0.99x (?)
ObjectiveCBridgeStubNSDateRefAccess 340 345 +1.5% 0.99x
ObjectiveCBridgeStubToArrayOfNSString 28415 27679 -2.6% 1.03x (?)
ObjectiveCBridgeStubToNSDate 14559 13939 -4.3% 1.04x (?)
ObjectiveCBridgeStubToNSDateRef 3333 3336 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSString 1407 1403 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 124 126 +1.6% 0.98x (?)
ObjectiveCBridgeStubURLAppendPath 335687 336218 +0.2% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 333137 343368 +3.1% 0.97x (?)
ObjectiveCBridgeToNSArray 28352 28317 -0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 55872 56227 +0.6% 0.99x (?)
ObjectiveCBridgeToNSSet 48586 48472 -0.2% 1.00x (?)
ObjectiveCBridgeToNSString 1189 1182 -0.6% 1.01x (?)
ObserverClosure 2004 2005 +0.0% 1.00x (?)
ObserverForwarderStruct 872 877 +0.6% 0.99x (?)
ObserverPartiallyAppliedMethod 3475 3454 -0.6% 1.01x (?)
ObserverUnappliedMethod 2145 2120 -1.2% 1.01x (?)
OpenClose 5 5 +0.0% 1.00x
Phonebook 6486 6459 -0.4% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1988 1980 -0.4% 1.00x (?)
PopFrontArrayGeneric 1979 1985 +0.3% 1.00x (?)
PopFrontUnsafePointer 9490 9506 +0.2% 1.00x (?)
PrefixAnyCollection 75 75 +0.0% 1.00x
PrefixAnyCollectionLazy 66480 66291 -0.3% 1.00x (?)
PrefixAnySeqCRangeIter 15918 15875 -0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 15936 15894 -0.3% 1.00x (?)
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 4098 4078 -0.5% 1.00x (?)
PrefixAnySequenceLazy 4031 4106 +1.9% 0.98x (?)
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 1307 1306 -0.1% 1.00x (?)
PrefixSequenceLazy 1377 1376 -0.1% 1.00x (?)
PrefixWhileAnyCollection 146 146 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 11802 11789 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCntRange 141 141 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 106 106 +0.0% 1.00x
PrefixWhileAnySequence 13036 13317 +2.2% 0.98x (?)
PrefixWhileAnySequenceLazy 1373 1373 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 390 389 -0.3% 1.00x (?)
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 760 759 -0.1% 1.00x (?)
PrimsSplit 759 756 -0.4% 1.00x (?)
ProtocolDispatch 3148 3149 +0.0% 1.00x (?)
ProtocolDispatch2 138 133 -3.6% 1.04x
RC4 165 164 -0.6% 1.01x
RGBHistogram 2806 2790 -0.6% 1.01x (?)
RGBHistogramOfObjects 22768 22734 -0.1% 1.00x (?)
RangeAssignment 377 375 -0.5% 1.01x (?)
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RecursiveOwnedParameter 2267 2295 +1.2% 0.99x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 27621 27598 -0.1% 1.00x (?)
ReversedDictionary 122 120 -1.6% 1.02x (?)
SetExclusiveOr 3264 3249 -0.5% 1.00x (?)
SetExclusiveOr_OfObjects 8371 8368 -0.0% 1.00x (?)
SetIntersect 327 330 +0.9% 0.99x (?)
SetIntersect_OfObjects 1760 1730 -1.7% 1.02x
SetIsSubsetOf 294 294 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 3151 3142 -0.3% 1.00x (?)
SetUnion_OfObjects 7013 7048 +0.5% 1.00x (?)
SevenBoom 1528 1465 -4.1% 1.04x (?)
SortLargeExistentials 7793 7687 -1.4% 1.01x (?)
SortLettersInPlace 1098 1112 +1.3% 0.99x (?)
SortSortedStrings 1074 1069 -0.5% 1.00x (?)
SortStrings 1917 1908 -0.5% 1.00x (?)
SortStringsUnicode 9048 9064 +0.2% 1.00x (?)
StackPromo 21857 22588 +3.3% 0.97x
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1986 1986 +0.0% 1.00x
StrToInt 2098 2134 +1.7% 0.98x
StringAdder 3378 3354 -0.7% 1.01x (?)
StringBuilder 987 982 -0.5% 1.01x (?)
StringBuilderLong 968 943 -2.6% 1.03x (?)
StringEdits 169221 170352 +0.7% 0.99x (?)
StringEnumRawValueInitialization 1099 1107 +0.7% 0.99x (?)
StringFromLongWholeSubstring 170 169 -0.6% 1.01x
StringFromLongWholeSubstringGeneric 71 72 +1.4% 0.99x (?)
StringHasPrefixAscii 1288 1288 +0.0% 1.00x
StringHasPrefixUnicode 18624 18757 +0.7% 0.99x (?)
StringHasSuffixAscii 1430 1402 -2.0% 1.02x
StringHasSuffixUnicode 78239 78783 +0.7% 0.99x (?)
StringInterpolation 10805 10813 +0.1% 1.00x (?)
StringMatch 8804 8978 +2.0% 0.98x
StringUTF16Builder 1841 1860 +1.0% 0.99x (?)
StringWalk 1541 1539 -0.1% 1.00x (?)
StringWithCString 76190 76204 +0.0% 1.00x (?)
SubstringComparable 1678 1679 +0.1% 1.00x (?)
SubstringEqualString 1476 1479 +0.2% 1.00x (?)
SubstringEquatable 3585 3585 +0.0% 1.00x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 72 72 +0.0% 1.00x
SuffixAnyCollection 27 27 +0.0% 1.00x
SuffixAnyCollectionLazy 22162 22360 +0.9% 0.99x (?)
SuffixAnySeqCRangeIter 4615 4575 -0.9% 1.01x (?)
SuffixAnySeqCRangeIterLazy 4611 4567 -1.0% 1.01x (?)
SuffixAnySeqCntRange 23 23 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 23 23 +0.0% 1.00x
SuffixAnySequence 5812 5846 +0.6% 0.99x (?)
SuffixAnySequenceLazy 5937 5948 +0.2% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 4548 4577 +0.6% 0.99x (?)
SuffixSequenceLazy 4549 4574 +0.5% 0.99x (?)
SumUsingReduce 97 102 +5.2% 0.95x
SumUsingReduceInto 97 101 +4.1% 0.96x
SuperChars 85751 85181 -0.7% 1.01x (?)
TwoSum 1020 1023 +0.3% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 314 324 +3.2% 0.97x
Walsh 434 427 -1.6% 1.02x
XorLoop 378 384 +1.6% 0.98x (?)
Added (8)
TEST MIN MAX MEAN MAX_RSS
StringComparison_abnormal 693 746 702 12027699
StringComparison_ascii 119 120 120 11351245
StringComparison_emoji 2032 2053 2038 12007219
StringComparison_fastPrenormal 6917 6996 6946 12010701
StringComparison_latin1 4709 5240 4758 12007219
StringComparison_nonBMPSlowestPrenormal 3680 3915 3697 11982029
StringComparison_slowerPrenormal 3166 3188 3171 11710464
StringComparison_zalgo 1304 1314 1307 11982029

Unoptimized (Onone)

Regression (8)
TEST OLD NEW DELTA SPEEDUP
CharIteration_tweet_unicodeScalars 364583 409805 +12.4% 0.89x (?)
CharIteration_chinese_unicodeScalars_Backwards 269822 293350 +8.7% 0.92x
CharIndexing_chinese_unicodeScalars 327763 354254 +8.1% 0.93x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 106460 114750 +7.8% 0.93x (?)
CharIteration_utf16_unicodeScalars_Backwards 385356 415234 +7.8% 0.93x (?)
StackPromo 85589 90402 +5.6% 0.95x (?)
CharIndexing_japanese_unicodeScalars 523020 551590 +5.5% 0.95x (?)
ArrayPlusEqualThreeElements 9694 10219 +5.4% 0.95x (?)
Improvement (9)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeFromNSSetAnyObjectForced 8069 7052 -12.6% 1.14x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 11275 9885 -12.3% 1.14x (?)
ExclusivityInMatSet 352 323 -8.2% 1.09x
NSDictionaryCastToSwift 7298 6697 -8.2% 1.09x (?)
CharIndexing_russian_unicodeScalars_Backwards 456277 421390 -7.6% 1.08x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7660 7164 -6.5% 1.07x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 80377 75867 -5.6% 1.06x (?)
CharIndexing_tweet_unicodeScalars_Backwards 1046183 995620 -4.8% 1.05x (?)
CharIteration_russian_unicodeScalars_Backwards 310800 295998 -4.8% 1.05x (?)
No Changes (317)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4712 4736 +0.5% 0.99x (?)
AnyHashableWithAClass 90240 87428 -3.1% 1.03x (?)
Array2D 632570 632130 -0.1% 1.00x (?)
ArrayAppend 4746 4747 +0.0% 1.00x (?)
ArrayAppendArrayOfInt 799 796 -0.4% 1.00x (?)
ArrayAppendAscii 45380 45666 +0.6% 0.99x
ArrayAppendFromGeneric 798 801 +0.4% 1.00x (?)
ArrayAppendGenericStructs 1413 1412 -0.1% 1.00x (?)
ArrayAppendLatin1 67916 67845 -0.1% 1.00x (?)
ArrayAppendLazyMap 208488 208986 +0.2% 1.00x
ArrayAppendOptionals 1413 1413 +0.0% 1.00x
ArrayAppendRepeatCol 202954 202886 -0.0% 1.00x (?)
ArrayAppendReserved 4489 4488 -0.0% 1.00x (?)
ArrayAppendSequence 144426 144740 +0.2% 1.00x
ArrayAppendStrings 15243 15204 -0.3% 1.00x (?)
ArrayAppendToFromGeneric 802 799 -0.4% 1.00x (?)
ArrayAppendToGeneric 800 801 +0.1% 1.00x (?)
ArrayAppendUTF16 69772 70052 +0.4% 1.00x (?)
ArrayInClass 6250 6222 -0.4% 1.00x
ArrayLiteral 1742 1678 -3.7% 1.04x (?)
ArrayOfGenericPOD 1559 1574 +1.0% 0.99x (?)
ArrayOfGenericRef 9982 9926 -0.6% 1.01x (?)
ArrayOfPOD 775 776 +0.1% 1.00x (?)
ArrayOfRef 9163 9189 +0.3% 1.00x (?)
ArrayPlusEqualArrayOfInt 794 799 +0.6% 0.99x (?)
ArrayPlusEqualFiveElementCollection 259683 251057 -3.3% 1.03x (?)
ArrayPlusEqualSingleElementCollection 250112 246959 -1.3% 1.01x (?)
ArraySetElement 4617 4614 -0.1% 1.00x (?)
ArraySubscript 85486 84332 -1.3% 1.01x (?)
ArrayValueProp 3551 3406 -4.1% 1.04x (?)
ArrayValueProp2 18185 18148 -0.2% 1.00x (?)
ArrayValueProp3 3886 3902 +0.4% 1.00x (?)
ArrayValueProp4 3817 3891 +1.9% 0.98x (?)
BitCount 2211 2212 +0.0% 1.00x (?)
ByteSwap 3903 3915 +0.3% 1.00x (?)
CStringLongAscii 6149 5987 -2.6% 1.03x (?)
CStringLongNonAscii 2653 2655 +0.1% 1.00x (?)
CStringShortAscii 9162 8982 -2.0% 1.02x (?)
Calculator 1222 1276 +4.4% 0.96x
CaptureProp 388595 387598 -0.3% 1.00x (?)
CharIndexing_ascii_unicodeScalars 447358 441723 -1.3% 1.01x (?)
CharIndexing_ascii_unicodeScalars_Backwards 489069 493787 +1.0% 0.99x (?)
CharIndexing_chinese_unicodeScalars_Backwards 374248 379079 +1.3% 0.99x (?)
CharIndexing_japanese_unicodeScalars_Backwards 608235 590004 -3.0% 1.03x (?)
CharIndexing_korean_unicodeScalars 432802 424278 -2.0% 1.02x (?)
CharIndexing_korean_unicodeScalars_Backwards 496752 478306 -3.7% 1.04x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 87122 87435 +0.4% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 98907 99839 +0.9% 0.99x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 107970 109909 +1.8% 0.98x (?)
CharIndexing_russian_unicodeScalars 369179 383335 +3.8% 0.96x (?)
CharIndexing_tweet_unicodeScalars 867690 860990 -0.8% 1.01x (?)
CharIndexing_utf16_unicodeScalars 462429 445932 -3.6% 1.04x (?)
CharIndexing_utf16_unicodeScalars_Backwards 478600 479836 +0.3% 1.00x (?)
CharIteration_ascii_unicodeScalars 184838 186610 +1.0% 0.99x (?)
CharIteration_ascii_unicodeScalars_Backwards 361694 359602 -0.6% 1.01x (?)
CharIteration_chinese_unicodeScalars 139844 140099 +0.2% 1.00x (?)
CharIteration_japanese_unicodeScalars 221711 222134 +0.2% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 429241 432124 +0.7% 0.99x (?)
CharIteration_korean_unicodeScalars 179626 179069 -0.3% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 350358 344253 -1.7% 1.02x (?)
CharIteration_punctuatedJapanese_unicodeScalars 33721 32861 -2.6% 1.03x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 64011 62766 -1.9% 1.02x (?)
CharIteration_punctuated_unicodeScalars 41349 41199 -0.4% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 80137 78633 -1.9% 1.02x (?)
CharIteration_russian_unicodeScalars 154122 154318 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 712640 714081 +0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars 237180 245881 +3.7% 0.96x (?)
CharacterLiteralsLarge 5974 5930 -0.7% 1.01x (?)
CharacterLiteralsSmall 822 820 -0.2% 1.00x
Chars 48958 49217 +0.5% 0.99x
ClassArrayGetter 982 981 -0.1% 1.00x (?)
DeadArray 111935 115088 +2.8% 0.97x
Dictionary 2766 2712 -2.0% 1.02x (?)
Dictionary2 2864 2955 +3.2% 0.97x (?)
Dictionary2OfObjects 5601 5873 +4.9% 0.95x (?)
Dictionary3 1338 1344 +0.4% 1.00x (?)
Dictionary3OfObjects 2285 2256 -1.3% 1.01x (?)
DictionaryBridge 3915 3944 +0.7% 0.99x (?)
DictionaryGroup 4670 4654 -0.3% 1.00x (?)
DictionaryGroupOfObjects 7983 7885 -1.2% 1.01x
DictionaryLiteral 8016 7993 -0.3% 1.00x (?)
DictionaryOfObjects 6191 6295 +1.7% 0.98x (?)
DictionaryRemove 18328 18321 -0.0% 1.00x (?)
DictionaryRemoveOfObjects 49294 48599 -1.4% 1.01x (?)
DictionarySwap 5231 5233 +0.0% 1.00x (?)
DictionarySwapOfObjects 22434 22633 +0.9% 0.99x (?)
DropFirstAnyCollection 15615 15532 -0.5% 1.01x
DropFirstAnyCollectionLazy 121080 124965 +3.2% 0.97x (?)
DropFirstAnySeqCRangeIter 22515 22500 -0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 22579 22439 -0.6% 1.01x (?)
DropFirstAnySeqCntRange 15530 15478 -0.3% 1.00x (?)
DropFirstAnySeqCntRangeLazy 15846 15586 -1.6% 1.02x
DropFirstAnySequence 12190 12229 +0.3% 1.00x (?)
DropFirstAnySequenceLazy 12414 12411 -0.0% 1.00x (?)
DropFirstArray 5733 5759 +0.5% 1.00x
DropFirstArrayLazy 33066 32996 -0.2% 1.00x (?)
DropFirstCountableRange 329 328 -0.3% 1.00x (?)
DropFirstCountableRangeLazy 30391 30321 -0.2% 1.00x (?)
DropFirstSequence 12044 11991 -0.4% 1.00x (?)
DropFirstSequenceLazy 12158 12025 -1.1% 1.01x
DropLastAnyCollection 5192 5210 +0.3% 1.00x (?)
DropLastAnyCollectionLazy 41366 42080 +1.7% 0.98x (?)
DropLastAnySeqCRangeIter 41034 40997 -0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 40995 41088 +0.2% 1.00x (?)
DropLastAnySeqCntRange 5210 5212 +0.0% 1.00x (?)
DropLastAnySeqCntRangeLazy 5299 5180 -2.2% 1.02x
DropLastAnySequence 31341 31197 -0.5% 1.00x (?)
DropLastAnySequenceLazy 31180 31176 -0.0% 1.00x (?)
DropLastArray 1903 1929 +1.4% 0.99x
DropLastArrayLazy 11090 11100 +0.1% 1.00x (?)
DropLastCountableRange 114 114 +0.0% 1.00x
DropLastCountableRangeLazy 10163 10139 -0.2% 1.00x (?)
DropLastSequence 31265 31291 +0.1% 1.00x (?)
DropLastSequenceLazy 31013 31119 +0.3% 1.00x (?)
DropWhileAnyCollection 20347 20155 -0.9% 1.01x
DropWhileAnyCollectionLazy 21393 21400 +0.0% 1.00x (?)
DropWhileAnySeqCRangeIter 24506 24386 -0.5% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 21313 21307 -0.0% 1.00x (?)
DropWhileAnySeqCntRange 20273 20081 -0.9% 1.01x (?)
DropWhileAnySeqCntRangeLazy 21288 21387 +0.5% 1.00x (?)
DropWhileAnySequence 14156 14207 +0.4% 1.00x (?)
DropWhileAnySequenceLazy 11245 11031 -1.9% 1.02x
DropWhileArray 9085 9039 -0.5% 1.01x (?)
DropWhileArrayLazy 16828 16833 +0.0% 1.00x (?)
DropWhileCountableRange 4816 4830 +0.3% 1.00x
DropWhileCountableRangeLazy 20975 20925 -0.2% 1.00x (?)
DropWhileSequence 13874 13864 -0.1% 1.00x (?)
DropWhileSequenceLazy 10899 10742 -1.4% 1.01x
EqualStringSubstring 667 661 -0.9% 1.01x
EqualSubstringString 665 661 -0.6% 1.01x (?)
EqualSubstringSubstring 760 758 -0.3% 1.00x (?)
EqualSubstringSubstringGenericEquatable 463 461 -0.4% 1.00x
ErrorHandling 7033 7235 +2.9% 0.97x (?)
ExclusivityGlobal 194 197 +1.5% 0.98x
ExclusivityIndependent 73 75 +2.7% 0.97x
FilterEvenUsingReduce 4147 4139 -0.2% 1.00x (?)
FilterEvenUsingReduceInto 2406 2389 -0.7% 1.01x (?)
FrequenciesUsingReduce 15142 15156 +0.1% 1.00x (?)
FrequenciesUsingReduceInto 9492 9173 -3.4% 1.03x (?)
Hanoi 21086 21330 +1.2% 0.99x (?)
HashTest 17456 17880 +2.4% 0.98x (?)
Histogram 7113 7109 -0.1% 1.00x (?)
Integrate 818 822 +0.5% 1.00x
IterateData 7659 7623 -0.5% 1.00x
Join 1490 1480 -0.7% 1.01x (?)
LazilyFilteredArrayContains 927815 930648 +0.3% 1.00x
LazilyFilteredArrays 1607211 1598382 -0.5% 1.01x (?)
LazilyFilteredRange 526068 525955 -0.0% 1.00x (?)
LessSubstringSubstring 759 774 +2.0% 0.98x (?)
LessSubstringSubstringGenericComparable 462 459 -0.6% 1.01x
LinkedList 39447 39151 -0.8% 1.01x
MapReduce 33770 33784 +0.0% 1.00x (?)
MapReduceAnyCollection 33439 33461 +0.1% 1.00x (?)
MapReduceAnyCollectionShort 46663 48393 +3.7% 0.96x (?)
MapReduceClass 38741 38726 -0.0% 1.00x (?)
MapReduceClassShort 50716 52348 +3.2% 0.97x (?)
MapReduceLazyCollection 28933 28692 -0.8% 1.01x
MapReduceLazyCollectionShort 40423 39293 -2.8% 1.03x (?)
MapReduceLazySequence 20646 20609 -0.2% 1.00x (?)
MapReduceSequence 37106 36705 -1.1% 1.01x
MapReduceShort 45073 46806 +3.8% 0.96x
MapReduceShortString 291 284 -2.4% 1.02x (?)
MapReduceString 2408 2310 -4.1% 1.04x
Memset 44947 44962 +0.0% 1.00x (?)
MonteCarloE 959068 930010 -3.0% 1.03x
MonteCarloPi 4103633 4035726 -1.7% 1.02x (?)
NSError 703 704 +0.1% 1.00x (?)
NSStringConversion 443 446 +0.7% 0.99x
NopDeinit 179234 182103 +1.6% 0.98x
ObjectAllocation 1438 1438 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 23386 24130 +3.2% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 41744 41662 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 34610 35603 +2.9% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 140745 135685 -3.6% 1.04x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 140024 147189 +5.1% 0.95x (?)
ObjectiveCBridgeFromNSSetAnyObject 68257 71769 +5.1% 0.95x
ObjectiveCBridgeFromNSSetAnyObjectToString 71410 73102 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 78011 79204 +1.5% 0.98x (?)
ObjectiveCBridgeFromNSString 3019 2999 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2477 2487 +0.4% 1.00x (?)
ObjectiveCBridgeStubDataAppend 4486 4585 +2.2% 0.98x (?)
ObjectiveCBridgeStubDateAccess 1064 1058 -0.6% 1.01x
ObjectiveCBridgeStubDateMutation 602 602 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 27001 26081 -3.4% 1.04x (?)
ObjectiveCBridgeStubFromNSDate 4447 4329 -2.7% 1.03x (?)
ObjectiveCBridgeStubFromNSDateRef 4703 4644 -1.3% 1.01x
ObjectiveCBridgeStubFromNSString 647 659 +1.9% 0.98x (?)
ObjectiveCBridgeStubFromNSStringRef 205 213 +3.9% 0.96x
ObjectiveCBridgeStubNSDataAppend 3102 3096 -0.2% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 15096 15412 +2.1% 0.98x (?)
ObjectiveCBridgeStubNSDateRefAccess 1273 1260 -1.0% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 28689 27791 -3.1% 1.03x (?)
ObjectiveCBridgeStubToNSDate 15341 14849 -3.2% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3378 3392 +0.4% 1.00x
ObjectiveCBridgeStubToNSString 1458 1457 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 162 162 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 350609 355634 +1.4% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 338643 353495 +4.4% 0.96x (?)
ObjectiveCBridgeToNSArray 29027 28855 -0.6% 1.01x (?)
ObjectiveCBridgeToNSDictionary 57718 57672 -0.1% 1.00x (?)
ObjectiveCBridgeToNSSet 49958 50308 +0.7% 0.99x (?)
ObjectiveCBridgeToNSString 1236 1246 +0.8% 0.99x (?)
ObserverClosure 6463 6366 -1.5% 1.02x (?)
ObserverForwarderStruct 4738 4715 -0.5% 1.00x (?)
ObserverPartiallyAppliedMethod 7813 7785 -0.4% 1.00x (?)
ObserverUnappliedMethod 7921 7928 +0.1% 1.00x (?)
OpenClose 425 417 -1.9% 1.02x
Phonebook 23059 23296 +1.0% 0.99x
PolymorphicCalls 7041 6757 -4.0% 1.04x
PopFrontArray 8324 8318 -0.1% 1.00x (?)
PopFrontArrayGeneric 7266 7303 +0.5% 0.99x
PopFrontUnsafePointer 11094 11181 +0.8% 0.99x (?)
PrefixAnyCollection 15580 15567 -0.1% 1.00x (?)
PrefixAnyCollectionLazy 123093 125017 +1.6% 0.98x (?)
PrefixAnySeqCRangeIter 17846 17901 +0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 17861 17851 -0.1% 1.00x (?)
PrefixAnySeqCntRange 15604 15554 -0.3% 1.00x
PrefixAnySeqCntRangeLazy 15543 15603 +0.4% 1.00x (?)
PrefixAnySequence 10140 10127 -0.1% 1.00x (?)
PrefixAnySequenceLazy 10147 10170 +0.2% 1.00x (?)
PrefixArray 5750 5756 +0.1% 1.00x (?)
PrefixArrayLazy 33069 32998 -0.2% 1.00x (?)
PrefixCountableRange 329 327 -0.6% 1.01x
PrefixCountableRangeLazy 30326 30405 +0.3% 1.00x (?)
PrefixSequence 9843 9964 +1.2% 0.99x
PrefixSequenceLazy 9840 9911 +0.7% 0.99x
PrefixWhileAnyCollection 29174 28891 -1.0% 1.01x
PrefixWhileAnyCollectionLazy 17431 17530 +0.6% 0.99x
PrefixWhileAnySeqCRangeIter 37595 37548 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 17553 17440 -0.6% 1.01x
PrefixWhileAnySeqCntRange 28815 29139 +1.1% 0.99x (?)
PrefixWhileAnySeqCntRangeLazy 17543 17544 +0.0% 1.00x (?)
PrefixWhileAnySequence 29984 30024 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 10442 10145 -2.8% 1.03x
PrefixWhileArray 15731 15848 +0.7% 0.99x
PrefixWhileArrayLazy 14425 14463 +0.3% 1.00x (?)
PrefixWhileCountableRange 13657 13600 -0.4% 1.00x (?)
PrefixWhileCountableRangeLazy 17305 17281 -0.1% 1.00x (?)
PrefixWhileSequence 29789 31125 +4.5% 0.96x
PrefixWhileSequenceLazy 9910 9949 +0.4% 1.00x
Prims 10387 10227 -1.5% 1.02x
PrimsSplit 10117 10169 +0.5% 0.99x (?)
ProtocolDispatch 8875 8877 +0.0% 1.00x (?)
ProtocolDispatch2 504 504 +0.0% 1.00x
RC4 17930 17894 -0.2% 1.00x
RGBHistogram 28963 29265 +1.0% 0.99x (?)
RGBHistogramOfObjects 97142 96700 -0.5% 1.00x (?)
RangeAssignment 4426 4534 +2.4% 0.98x (?)
RangeIterationSigned 17378 17430 +0.3% 1.00x (?)
RangeIterationSigned64 45224 45208 -0.0% 1.00x (?)
RangeIterationUnsigned 38427 38650 +0.6% 0.99x (?)
RecursiveOwnedParameter 7770 8041 +3.5% 0.97x
ReversedArray 17230 17225 -0.0% 1.00x (?)
ReversedBidirectional 80916 79061 -2.3% 1.02x (?)
ReversedDictionary 27260 27329 +0.3% 1.00x (?)
SetExclusiveOr 15665 15686 +0.1% 1.00x (?)
SetExclusiveOr_OfObjects 39550 39640 +0.2% 1.00x (?)
SetIntersect 7003 7005 +0.0% 1.00x (?)
SetIntersect_OfObjects 10144 10156 +0.1% 1.00x (?)
SetIsSubsetOf 1179 1178 -0.1% 1.00x (?)
SetIsSubsetOf_OfObjects 1284 1282 -0.2% 1.00x (?)
SetUnion 10470 10445 -0.2% 1.00x (?)
SetUnion_OfObjects 27693 27769 +0.3% 1.00x (?)
SevenBoom 1731 1756 +1.4% 0.99x (?)
Sim2DArray 43789 43790 +0.0% 1.00x (?)
SortLargeExistentials 16619 16638 +0.1% 1.00x (?)
SortLettersInPlace 3051 3035 -0.5% 1.01x (?)
SortSortedStrings 1365 1361 -0.3% 1.00x (?)
SortStrings 2568 2564 -0.2% 1.00x (?)
SortStringsUnicode 9419 9462 +0.5% 1.00x (?)
StaticArray 2658 2639 -0.7% 1.01x (?)
StrComplexWalk 7093 7178 +1.2% 0.99x
StrToInt 71281 70861 -0.6% 1.01x (?)
StringAdder 3671 3644 -0.7% 1.01x (?)
StringBuilder 6940 6973 +0.5% 1.00x (?)
StringBuilderLong 1113 1117 +0.4% 1.00x (?)
StringEdits 415817 414856 -0.2% 1.00x (?)
StringEnumRawValueInitialization 13848 13829 -0.1% 1.00x (?)
StringEqualPointerComparison 3351 3326 -0.7% 1.01x
StringFromLongWholeSubstring 204 203 -0.5% 1.00x (?)
StringFromLongWholeSubstringGeneric 199 200 +0.5% 1.00x
StringHasPrefixAscii 2904 2845 -2.0% 1.02x
StringHasPrefixUnicode 20245 20202 -0.2% 1.00x (?)
StringHasSuffixAscii 3031 3077 +1.5% 0.99x
StringHasSuffixUnicode 80200 80172 -0.0% 1.00x (?)
StringInterpolation 14380 14433 +0.4% 1.00x (?)
StringMatch 34991 34953 -0.1% 1.00x (?)
StringUTF16Builder 7905 7925 +0.3% 1.00x (?)
StringWalk 13457 13664 +1.5% 0.98x
StringWithCString 72796 72666 -0.2% 1.00x (?)
SubstringComparable 4294 4349 +1.3% 0.99x
SubstringEqualString 6301 6270 -0.5% 1.00x (?)
SubstringEquatable 8968 9001 +0.4% 1.00x (?)
SubstringFromLongString 15 15 +0.0% 1.00x
SubstringFromLongStringGeneric 101 100 -1.0% 1.01x
SuffixAnyCollection 5222 5186 -0.7% 1.01x
SuffixAnyCollectionLazy 42152 42020 -0.3% 1.00x (?)
SuffixAnySeqCRangeIter 37335 37359 +0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 37312 37346 +0.1% 1.00x (?)
SuffixAnySeqCntRange 5228 5174 -1.0% 1.01x (?)
SuffixAnySeqCntRangeLazy 5223 5199 -0.5% 1.00x
SuffixAnySequence 27564 27502 -0.2% 1.00x
SuffixAnySequenceLazy 27446 27479 +0.1% 1.00x (?)
SuffixArray 1916 1929 +0.7% 0.99x
SuffixArrayLazy 11110 11114 +0.0% 1.00x (?)
SuffixCountableRange 114 114 +0.0% 1.00x
SuffixCountableRangeLazy 10156 10179 +0.2% 1.00x (?)
SuffixSequence 27607 27723 +0.4% 1.00x (?)
SuffixSequenceLazy 27378 27425 +0.2% 1.00x (?)
SumUsingReduce 213859 213471 -0.2% 1.00x
SumUsingReduceInto 209610 210012 +0.2% 1.00x (?)
SuperChars 194880 192536 -1.2% 1.01x (?)
TwoSum 3682 3680 -0.1% 1.00x (?)
TypeFlood 162 158 -2.5% 1.03x (?)
UTF8Decode 36825 36814 -0.0% 1.00x (?)
Walsh 12069 12079 +0.1% 1.00x (?)
XorLoop 23649 23694 +0.2% 1.00x
Added (8)
TEST MIN MAX MEAN MAX_RSS
StringComparison_abnormal 1370 1401 1377 12546048
StringComparison_ascii 13783 13949 13821 11888230
StringComparison_emoji 3608 4966 3884 12526387
StringComparison_fastPrenormal 12619 13112 12785 12533760
StringComparison_latin1 9164 9715 9345 12532941
StringComparison_nonBMPSlowestPrenormal 6522 6735 6598 12509184
StringComparison_slowerPrenormal 6446 6697 6561 12247040
StringComparison_zalgo 2703 2813 2727 12492800
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

@lancep
Copy link
Contributor Author

lancep commented Dec 2, 2017

@swift-ci please smoke test and merge

@swift-ci swift-ci merged commit 3effc96 into swiftlang:master Dec 2, 2017
@lancep lancep deleted the string_comparison_benchmark branch December 2, 2017 15:44
Copy link
Member

@milseman milseman left a comment

Choose a reason for hiding this comment

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

👍

Could you also have a workload or two that has shared long, common prefixes? E.g. comparison between two long URLs on the same domain, etc.

for s1 in payload {
for s2 in payload {
let cmp = s1 < s2
count += cmp ? 1 : 0
Copy link
Member

Choose a reason for hiding this comment

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

These days, the benchmark suite has a blackHole function (inline never in another module) that you can also feed results into. That's an additional guarantee that the entire benchmark won't be trivialized by a better optimizer. (This is why many benchmarks followed the pattern of an inline(never) helper that returned a result derived from the inner loop, though that wasn't always perfect and blackHole is better).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants