Skip to content

[stdlib] String: Walk Chinese/Japanese faster: 2x/4x forwards/backwards #9575

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 2 commits into from
May 14, 2017

Conversation

milseman
Copy link
Member

This adds more fast path checks for grapheme breaks between BMP
scalars. Notably the rather vast range of 0x3400–0xA4CF which includes
unified common Han ideographs as well as the first extension to
unified Han ideographs. It also happens to pick up various Yijin and
Yi symbols/radicals. Additionally, the narrow hiragana/katakana ranges
0x3041-0x3096 and 0x30A1-0x30FA (including pre-composed semi-voiced
characters but excluding the combining semi-voice marks) have fast
paths.

The net effect is that the vast majority of modern Chinese and
Japanese text should be fast-pathed. This is especially important, as
adopting Unicode 9 might otherwise pessimize performance here relative
to the tries.

Gyb up StringWalk benchmark, to avoid the code explosion. Add in benchmarks for
walking Chinese, Japanese, and Korean text.

milseman added 2 commits May 12, 2017 13:13
This adds more fast path checks for grapheme breaks between BMP
scalars. Notably the rather vast range of 0x3400–0xA4CF which includes
unified common Han ideographs as well as the first extension to
unified Han ideographs. It also happens to pick up various Yijin and
Yi symbols/radicals. Additionally, the narrow hiragana/katakana ranges
0x3041-0x3096 and 0x30A1-0x30FA (including pre-composed semi-voiced
characters but excluding the combining semi-voice marks) have fast
paths.

The net effect is that the vast majority of modern Chinese and
Japanese text should be fast-pathed. This is especially important, as
adopting Unicode 9 might otherwise pessimize performance here relative
to the tries.
Gyb up StringWalk, to avoid the code explosion. Add in benchmarks for
walking Chinese, Japanese, and Korean text.
@milseman
Copy link
Member Author

@swift-ci please test

@milseman
Copy link
Member Author

@swift-ci please benchmark

@nkcsgexi
Copy link
Contributor

谢谢你!

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (11)
TEST OLD NEW DELTA SPEEDUP
StringHasPrefix 16 33 +106.2% 0.48x
StringHasSuffix 16 33 +106.2% 0.48x
ObjectiveCBridgeStubFromNSStringRef 174 244 +40.2% 0.71x
OpenClose 51 59 +15.7% 0.86x (?)
DictionaryRemove 3298 3705 +12.3% 0.89x
Chars 1714 1925 +12.3% 0.89x
StringMatch 8816 9723 +10.3% 0.91x
Calculator 31 34 +9.7% 0.91x
SortSortedStrings 840 902 +7.4% 0.93x
CaptureProp 4565 4850 +6.2% 0.94x
SortStrings 1629 1728 +6.1% 0.94x
Improvement (9)
TEST OLD NEW DELTA SPEEDUP
StringWalk 6334 1274 -79.9% 4.97x
ProtocolDispatch 3030 2424 -20.0% 1.25x
ObjectiveCBridgeStubNSDateRefAccess 346 316 -8.7% 1.09x
StrToInt 4720 4316 -8.6% 1.09x
DropLastSequenceLazy 580 547 -5.7% 1.06x
NopDeinit 29041 27462 -5.4% 1.06x
DropLastSequence 578 547 -5.4% 1.06x
HashQuadratic 6341318 6027305 -5.0% 1.05x
StringHasPrefixUnicode 14889 14155 -4.9% 1.05x (?)
No Changes (253)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2897 2906 +0.3% 1.00x (?)
AnyHashableWithAClass 66657 66871 +0.3% 1.00x (?)
Array2D 2046 2023 -1.1% 1.01x (?)
ArrayAppend 768 769 +0.1% 1.00x (?)
ArrayAppendArrayOfInt 597 597 +0.0% 1.00x
ArrayAppendAscii 22917 22323 -2.6% 1.03x (?)
ArrayAppendFromGeneric 597 596 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1222 1219 -0.2% 1.00x (?)
ArrayAppendLatin1 43350 43459 +0.3% 1.00x
ArrayAppendLazyMap 934 935 +0.1% 1.00x (?)
ArrayAppendOptionals 1225 1219 -0.5% 1.00x (?)
ArrayAppendRepeatCol 838 838 +0.0% 1.00x
ArrayAppendReserved 533 532 -0.2% 1.00x (?)
ArrayAppendSequence 941 944 +0.3% 1.00x (?)
ArrayAppendStrings 13567 13527 -0.3% 1.00x (?)
ArrayAppendToFromGeneric 596 596 +0.0% 1.00x
ArrayAppendToGeneric 596 597 +0.2% 1.00x (?)
ArrayAppendUTF16 40983 40590 -1.0% 1.01x
ArrayInClass 61 61 +0.0% 1.00x
ArrayLiteral 1215 1213 -0.2% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4007 4002 -0.1% 1.00x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3902 3890 -0.3% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4654 4670 +0.3% 1.00x (?)
ArrayPlusEqualSingleElementCollection 771 770 -0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1605 1602 -0.2% 1.00x (?)
ArraySubscript 1476 1473 -0.2% 1.00x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
BitCount 9 9 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 4991 5007 +0.3% 1.00x (?)
CStringLongNonAscii 2178 2127 -2.3% 1.02x
CStringShortAscii 5489 5505 +0.3% 1.00x (?)
CharacterLiteralsLarge 8472 8690 +2.6% 0.97x (?)
CharacterLiteralsSmall 311 311 +0.0% 1.00x
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 181 186 +2.8% 0.97x (?)
Dictionary 564 575 +2.0% 0.98x
Dictionary2 1809 1815 +0.3% 1.00x (?)
Dictionary2OfObjects 3339 3311 -0.8% 1.01x (?)
Dictionary3 454 454 +0.0% 1.00x
Dictionary3OfObjects 894 896 +0.2% 1.00x (?)
DictionaryBridge 2623 2615 -0.3% 1.00x (?)
DictionaryLiteral 1486 1475 -0.7% 1.01x (?)
DictionaryOfObjects 2337 2342 +0.2% 1.00x (?)
DictionaryRemoveOfObjects 23307 23326 +0.1% 1.00x (?)
DictionarySwap 375 375 +0.0% 1.00x
DictionarySwapOfObjects 6954 6930 -0.3% 1.00x (?)
DropFirstAnyCollection 56 56 +0.0% 1.00x
DropFirstAnyCollectionLazy 44860 44818 -0.1% 1.00x (?)
DropFirstAnySeqCRangeIter 27670 27772 +0.4% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 27664 27773 +0.4% 1.00x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 7111 7126 +0.2% 1.00x (?)
DropFirstAnySequenceLazy 7117 7136 +0.3% 1.00x
DropFirstArray 24 25 +4.2% 0.96x
DropFirstArrayLazy 25 24 -4.0% 1.04x
DropFirstCountableRange 32 32 +0.0% 1.00x
DropFirstCountableRangeLazy 32 32 +0.0% 1.00x
DropFirstSequence 3065 3065 +0.0% 1.00x
DropFirstSequenceLazy 3028 3029 +0.0% 1.00x (?)
DropLastAnyCollection 22 22 +0.0% 1.00x
DropLastAnyCollectionLazy 15019 14977 -0.3% 1.00x (?)
DropLastAnySeqCRangeIter 4606 4610 +0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 4638 4628 -0.2% 1.00x (?)
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6765 6899 +2.0% 0.98x (?)
DropLastAnySequenceLazy 6676 6675 -0.0% 1.00x (?)
DropLastArray 8 8 +0.0% 1.00x
DropLastArrayLazy 8 8 +0.0% 1.00x
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropWhileAnyCollection 69 70 +1.4% 0.99x
DropWhileAnyCollectionLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22053 22178 +0.6% 0.99x (?)
DropWhileAnySeqCRangeIterLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCntRange 64 64 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 103 103 +0.0% 1.00x
DropWhileAnySequence 7515 7602 +1.2% 0.99x
DropWhileAnySequenceLazy 2032 2032 +0.0% 1.00x
DropWhileArray 37 37 +0.0% 1.00x
DropWhileArrayLazy 77 78 +1.3% 0.99x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 68 68 +0.0% 1.00x
DropWhileSequence 3124 3123 -0.0% 1.00x (?)
DropWhileSequenceLazy 65 65 +0.0% 1.00x
ErrorHandling 2843 2829 -0.5% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3298 3458 +4.9% 0.95x
HashTest 1707 1701 -0.4% 1.00x (?)
Histogram 250 248 -0.8% 1.01x
Integrate 262 262 +0.0% 1.00x
IterateData 755 753 -0.3% 1.00x
Join 447 446 -0.2% 1.00x (?)
LazilyFilteredArrays 64816 64801 -0.0% 1.00x (?)
LazilyFilteredRange 3890 3887 -0.1% 1.00x (?)
LinkedList 7043 7058 +0.2% 1.00x (?)
MapReduce 304 306 +0.7% 0.99x (?)
MapReduceAnyCollection 301 305 +1.3% 0.99x (?)
MapReduceAnyCollectionShort 1992 1991 -0.1% 1.00x (?)
MapReduceClass 3069 3045 -0.8% 1.01x
MapReduceClassShort 4554 4534 -0.4% 1.00x
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 45 44 -2.2% 1.02x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 450 459 +2.0% 0.98x (?)
MapReduceShort 1904 1893 -0.6% 1.01x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 109 109 +0.0% 1.00x
Memset 234 233 -0.4% 1.00x (?)
MonteCarloE 10258 10374 +1.1% 0.99x
MonteCarloPi 44073 43900 -0.4% 1.00x
NSDictionaryCastToSwift 5353 5358 +0.1% 1.00x (?)
NSError 289 289 +0.0% 1.00x
NSStringConversion 776 763 -1.7% 1.02x (?)
ObjectAllocation 179 178 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23239 23179 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4488 4466 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43280 43405 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37827 37428 -1.1% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 117033 118450 +1.2% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5169 5140 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 95301 96067 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 89653 89182 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 63965 64532 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4132 4137 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 71483 71580 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 62481 62181 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSString 1406 1420 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2333 2325 -0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3691 3699 +0.2% 1.00x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28376 28495 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3643 3582 -1.7% 1.02x (?)
ObjectiveCBridgeStubFromNSDateRef 3611 3551 -1.7% 1.02x
ObjectiveCBridgeStubFromNSString 929 920 -1.0% 1.01x (?)
ObjectiveCBridgeStubNSDataAppend 2315 2259 -2.4% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 12536 12525 -0.1% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 28270 28743 +1.7% 0.98x (?)
ObjectiveCBridgeStubToNSDate 14663 14717 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3388 3374 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1509 1511 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 108 110 +1.9% 0.98x (?)
ObjectiveCBridgeStubURLAppendPath 211587 215209 +1.7% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 215056 215621 +0.3% 1.00x (?)
ObjectiveCBridgeToNSArray 28805 28942 +0.5% 1.00x (?)
ObjectiveCBridgeToNSDictionary 44951 45210 +0.6% 0.99x (?)
ObjectiveCBridgeToNSSet 39286 39236 -0.1% 1.00x (?)
ObjectiveCBridgeToNSString 1260 1266 +0.5% 1.00x
ObserverClosure 2290 2290 +0.0% 1.00x
ObserverForwarderStruct 1130 1132 +0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 3807 3788 -0.5% 1.01x (?)
ObserverUnappliedMethod 2663 2654 -0.3% 1.00x (?)
Phonebook 8134 8540 +5.0% 0.95x
PolymorphicCalls 22 21 -4.5% 1.05x
PopFrontArray 1072 1094 +2.1% 0.98x
PopFrontArrayGeneric 1073 1095 +2.1% 0.98x
PopFrontUnsafePointer 8830 8972 +1.6% 0.98x (?)
PrefixAnyCollection 56 56 +0.0% 1.00x
PrefixAnyCollectionLazy 45400 45035 -0.8% 1.01x
PrefixAnySeqCRangeIter 21579 21669 +0.4% 1.00x (?)
PrefixAnySeqCRangeIterLazy 21573 21667 +0.4% 1.00x
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 6152 6172 +0.3% 1.00x (?)
PrefixAnySequenceLazy 6167 6117 -0.8% 1.01x (?)
PrefixArray 25 24 -4.0% 1.04x
PrefixArrayLazy 24 24 +0.0% 1.00x
PrefixCountableRange 32 32 +0.0% 1.00x
PrefixCountableRangeLazy 32 32 +0.0% 1.00x
PrefixSequence 2657 2657 +0.0% 1.00x
PrefixSequenceLazy 2617 2617 +0.0% 1.00x
PrefixWhileAnyCollection 96 96 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12751 12726 -0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCntRange 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 75 75 +0.0% 1.00x
PrefixWhileAnySequence 14206 14624 +2.9% 0.97x (?)
PrefixWhileAnySequenceLazy 1491 1492 +0.1% 1.00x (?)
PrefixWhileArray 62 62 +0.0% 1.00x
PrefixWhileArrayLazy 49 49 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 32 32 +0.0% 1.00x
PrefixWhileSequence 295 297 +0.7% 0.99x (?)
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 758 782 +3.2% 0.97x (?)
ProtocolDispatch2 168 160 -4.8% 1.05x
RC4 159 159 +0.0% 1.00x
RGBHistogram 2244 2252 +0.4% 1.00x (?)
RGBHistogramOfObjects 24410 24363 -0.2% 1.00x (?)
RangeAssignment 300 307 +2.3% 0.98x (?)
RecursiveOwnedParameter 2310 2329 +0.8% 0.99x
ReversedArray 49 49 +0.0% 1.00x
ReversedBidirectional 29021 29031 +0.0% 1.00x (?)
ReversedDictionary 108 108 +0.0% 1.00x
SetExclusiveOr 2935 2952 +0.6% 0.99x (?)
SetExclusiveOr_OfObjects 9501 9551 +0.5% 0.99x (?)
SetIntersect 270 281 +4.1% 0.96x (?)
SetIntersect_OfObjects 1731 1721 -0.6% 1.01x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2657 2641 -0.6% 1.01x (?)
SetUnion_OfObjects 7976 7980 +0.1% 1.00x (?)
SevenBoom 1466 1467 +0.1% 1.00x (?)
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8089 8077 -0.1% 1.00x (?)
SortLettersInPlace 1154 1153 -0.1% 1.00x (?)
SortStringsUnicode 7785 7832 +0.6% 0.99x
StackPromo 22054 21985 -0.3% 1.00x (?)
StaticArray 21 21 +0.0% 1.00x
StrComplexWalk 720 719 -0.1% 1.00x (?)
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1314 1326 +0.9% 0.99x
StringBuilderLong 921 911 -1.1% 1.01x (?)
StringEdits 201738 203463 +0.9% 0.99x (?)
StringEqualPointerComparison 7333 7329 -0.1% 1.00x (?)
StringFromLongWholeSubstring 9237 9242 +0.1% 1.00x (?)
StringFromLongWholeSubstringGeneric 9735 9745 +0.1% 1.00x (?)
StringHasSuffixUnicode 61956 61734 -0.4% 1.00x (?)
StringInterpolation 8134 8085 -0.6% 1.01x (?)
StringUTF16Builder 2075 2094 +0.9% 0.99x (?)
StringWithCString 125726 125557 -0.1% 1.00x (?)
SubstringFromLongString 89 90 +1.1% 0.99x
SubstringFromLongStringGeneric 37595 37693 +0.3% 1.00x (?)
SuffixAnyCollection 22 22 +0.0% 1.00x
SuffixAnyCollectionLazy 15234 14957 -1.8% 1.02x
SuffixAnySeqCRangeIter 4942 4981 +0.8% 0.99x (?)
SuffixAnySeqCRangeIterLazy 5037 5048 +0.2% 1.00x (?)
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6911 6914 +0.0% 1.00x (?)
SuffixAnySequenceLazy 6610 6692 +1.2% 0.99x (?)
SuffixArray 8 8 +0.0% 1.00x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 4485 4419 -1.5% 1.01x (?)
SuffixSequenceLazy 4419 4439 +0.5% 1.00x (?)
SuperChars 297309 297380 +0.0% 1.00x (?)
TwoSum 858 859 +0.1% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 254 253 -0.4% 1.00x (?)
Walsh 351 351 +0.0% 1.00x
XorLoop 347 347 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (9)
TEST OLD NEW DELTA SPEEDUP
SubstringFromLongString 94 103 +9.6% 0.91x
TypeFlood 159 172 +8.2% 0.92x (?)
DropWhileCountableRangeLazy 26240 28353 +8.1% 0.93x
Calculator 1075 1153 +7.3% 0.93x
PrefixWhileAnyCollectionLazy 22387 23733 +6.0% 0.94x
PrefixWhileAnySeqCntRangeLazy 22406 23720 +5.9% 0.94x
PrefixAnySeqCRangeIterLazy 23948 25304 +5.7% 0.95x (?)
ObjectiveCBridgeStubDateMutation 517 546 +5.6% 0.95x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 98371 103673 +5.4% 0.95x (?)
Improvement (3)
TEST OLD NEW DELTA SPEEDUP
StringWalk 21127 4191 -80.2% 5.04x
NSError 740 699 -5.5% 1.06x (?)
ObjectiveCBridgeStubURLAppendPath 222112 210241 -5.3% 1.06x (?)
No Changes (261)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3116 3103 -0.4% 1.00x (?)
AnyHashableWithAClass 84108 84700 +0.7% 0.99x
Array2D 607491 608459 +0.2% 1.00x
ArrayAppend 3677 3681 +0.1% 1.00x (?)
ArrayAppendArrayOfInt 652 651 -0.2% 1.00x
ArrayAppendAscii 61166 61544 +0.6% 0.99x (?)
ArrayAppendFromGeneric 656 654 -0.3% 1.00x (?)
ArrayAppendGenericStructs 1300 1305 +0.4% 1.00x (?)
ArrayAppendLatin1 83327 84891 +1.9% 0.98x
ArrayAppendLazyMap 208280 208312 +0.0% 1.00x (?)
ArrayAppendOptionals 1287 1296 +0.7% 0.99x (?)
ArrayAppendRepeatCol 214160 210131 -1.9% 1.02x (?)
ArrayAppendReserved 3438 3436 -0.1% 1.00x (?)
ArrayAppendSequence 75417 75165 -0.3% 1.00x
ArrayAppendStrings 13686 13652 -0.2% 1.00x (?)
ArrayAppendToFromGeneric 654 654 +0.0% 1.00x
ArrayAppendToGeneric 655 655 +0.0% 1.00x
ArrayAppendUTF16 81944 84717 +3.4% 0.97x
ArrayInClass 4734 4734 +0.0% 1.00x
ArrayLiteral 1483 1480 -0.2% 1.00x
ArrayOfGenericPOD 3077 3077 +0.0% 1.00x
ArrayOfGenericRef 9589 9648 +0.6% 0.99x
ArrayOfPOD 1832 1832 +0.0% 1.00x
ArrayOfRef 8735 8761 +0.3% 1.00x (?)
ArrayPlusEqualArrayOfInt 652 651 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 285080 284761 -0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 279200 279722 +0.2% 1.00x (?)
ArrayPlusEqualThreeElements 10194 10104 -0.9% 1.01x (?)
ArraySubscript 4175 4216 +1.0% 0.99x
ArrayValueProp 3021 3017 -0.1% 1.00x
ArrayValueProp2 3660 3650 -0.3% 1.00x
ArrayValueProp3 3437 3446 +0.3% 1.00x
ArrayValueProp4 3330 3331 +0.0% 1.00x (?)
BitCount 892 901 +1.0% 0.99x
ByteSwap 273 268 -1.8% 1.02x (?)
CStringLongAscii 5344 5351 +0.1% 1.00x (?)
CStringLongNonAscii 2453 2423 -1.2% 1.01x
CStringShortAscii 8356 8244 -1.3% 1.01x (?)
CaptureProp 108117 108656 +0.5% 1.00x
CharacterLiteralsLarge 9982 10068 +0.9% 0.99x
CharacterLiteralsSmall 1003 1002 -0.1% 1.00x
Chars 7485 7508 +0.3% 1.00x (?)
ClassArrayGetter 931 930 -0.1% 1.00x
DeadArray 116757 117125 +0.3% 1.00x (?)
Dictionary 1691 1693 +0.1% 1.00x (?)
Dictionary2 3494 3482 -0.3% 1.00x (?)
Dictionary2OfObjects 5823 5824 +0.0% 1.00x (?)
Dictionary3 1329 1323 -0.5% 1.00x (?)
Dictionary3OfObjects 2201 2211 +0.5% 1.00x (?)
DictionaryBridge 2714 2732 +0.7% 0.99x (?)
DictionaryLiteral 8233 8246 +0.2% 1.00x (?)
DictionaryOfObjects 4585 4567 -0.4% 1.00x (?)
DictionaryRemove 21041 21034 -0.0% 1.00x (?)
DictionaryRemoveOfObjects 55190 54940 -0.5% 1.00x (?)
DictionarySwap 5441 5460 +0.3% 1.00x (?)
DictionarySwapOfObjects 19739 19858 +0.6% 0.99x (?)
DropFirstAnyCollection 19210 19203 -0.0% 1.00x (?)
DropFirstAnyCollectionLazy 136922 139902 +2.2% 0.98x (?)
DropFirstAnySeqCRangeIter 29897 30366 +1.6% 0.98x
DropFirstAnySeqCRangeIterLazy 29808 30298 +1.6% 0.98x
DropFirstAnySeqCntRange 19590 19351 -1.2% 1.01x
DropFirstAnySeqCntRangeLazy 19713 19519 -1.0% 1.01x
DropFirstAnySequence 14083 14045 -0.3% 1.00x (?)
DropFirstAnySequenceLazy 14044 14310 +1.9% 0.98x
DropFirstArray 6207 6178 -0.5% 1.00x
DropFirstArrayLazy 45207 45508 +0.7% 0.99x
DropFirstCountableRange 337 339 +0.6% 0.99x
DropFirstCountableRangeLazy 38181 38307 +0.3% 1.00x (?)
DropFirstSequence 13051 12838 -1.6% 1.02x
DropFirstSequenceLazy 12885 13061 +1.4% 0.99x
DropLastAnyCollection 6425 6421 -0.1% 1.00x
DropLastAnyCollectionLazy 46002 46595 +1.3% 0.99x (?)
DropLastAnySeqCRangeIter 43945 45568 +3.7% 0.96x
DropLastAnySeqCRangeIterLazy 45520 43873 -3.6% 1.04x
DropLastAnySeqCntRange 6457 6552 +1.5% 0.99x
DropLastAnySeqCntRangeLazy 6489 6539 +0.8% 0.99x (?)
DropLastAnySequence 29042 28990 -0.2% 1.00x
DropLastAnySequenceLazy 29033 29119 +0.3% 1.00x
DropLastArray 2075 2068 -0.3% 1.00x
DropLastArrayLazy 15061 15194 +0.9% 0.99x (?)
DropLastCountableRange 117 117 +0.0% 1.00x
DropLastCountableRangeLazy 12707 12789 +0.6% 0.99x (?)
DropLastSequence 28573 28616 +0.2% 1.00x
DropLastSequenceLazy 28635 28609 -0.1% 1.00x
DropWhileAnyCollection 24985 25074 +0.4% 1.00x
DropWhileAnyCollectionLazy 27104 27603 +1.8% 0.98x
DropWhileAnySeqCRangeIter 31722 32036 +1.0% 0.99x
DropWhileAnySeqCRangeIterLazy 27607 28084 +1.7% 0.98x
DropWhileAnySeqCntRange 25229 25279 +0.2% 1.00x
DropWhileAnySeqCntRangeLazy 27144 27619 +1.7% 0.98x
DropWhileAnySequence 16155 16182 +0.2% 1.00x (?)
DropWhileAnySequenceLazy 12457 12446 -0.1% 1.00x (?)
DropWhileArray 9783 9802 +0.2% 1.00x (?)
DropWhileArrayLazy 16889 17046 +0.9% 0.99x
DropWhileCountableRange 6221 6325 +1.7% 0.98x
DropWhileSequence 15056 15070 +0.1% 1.00x
DropWhileSequenceLazy 11196 11214 +0.2% 1.00x (?)
ErrorHandling 3755 3788 +0.9% 0.99x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17343 17625 +1.6% 0.98x
HashQuadratic 49291074 49115335 -0.4% 1.00x (?)
HashTest 18447 18386 -0.3% 1.00x (?)
Histogram 8699 8718 +0.2% 1.00x (?)
Integrate 397 395 -0.5% 1.01x
IterateData 12817 12816 -0.0% 1.00x (?)
Join 1335 1332 -0.2% 1.00x (?)
LazilyFilteredArrays 1681594 1680635 -0.1% 1.00x (?)
LazilyFilteredRange 717560 686318 -4.4% 1.05x
LinkedList 33175 33175 +0.0% 1.00x
MapReduce 37791 37942 +0.4% 1.00x
MapReduceAnyCollection 37778 37822 +0.1% 1.00x (?)
MapReduceAnyCollectionShort 50107 50171 +0.1% 1.00x (?)
MapReduceClass 42907 43155 +0.6% 0.99x (?)
MapReduceClassShort 54470 54496 +0.0% 1.00x (?)
MapReduceLazyCollection 32577 32740 +0.5% 1.00x (?)
MapReduceLazyCollectionShort 43937 43859 -0.2% 1.00x (?)
MapReduceLazySequence 26004 25630 -1.4% 1.01x
MapReduceSequence 41436 41291 -0.3% 1.00x
MapReduceShort 49836 50421 +1.2% 0.99x
MapReduceShortString 275 278 +1.1% 0.99x (?)
MapReduceString 2599 2590 -0.3% 1.00x (?)
Memset 43994 43973 -0.0% 1.00x
MonteCarloE 135889 135216 -0.5% 1.00x (?)
MonteCarloPi 52296 52318 +0.0% 1.00x (?)
NSDictionaryCastToSwift 6525 6516 -0.1% 1.00x (?)
NSStringConversion 1355 1386 +2.3% 0.98x
NopDeinit 51795 51803 +0.0% 1.00x (?)
ObjectAllocation 632 633 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 26090 25474 -2.4% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7794 7752 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44470 45549 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 39030 38392 -1.6% 1.02x
ObjectiveCBridgeFromNSDictionaryAnyObject 122084 122262 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7745 7716 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 92337 93925 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObject 67742 68078 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 6977 6925 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76795 77028 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 65888 66354 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSString 4057 4051 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2704 2719 +0.6% 0.99x
ObjectiveCBridgeStubDataAppend 3900 3959 +1.5% 0.99x (?)
ObjectiveCBridgeStubDateAccess 1015 1021 +0.6% 0.99x (?)
ObjectiveCBridgeStubFromArrayOfNSString 29352 28653 -2.4% 1.02x
ObjectiveCBridgeStubFromNSDate 4025 4026 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 4065 3976 -2.2% 1.02x
ObjectiveCBridgeStubFromNSString 943 940 -0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 211 211 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2692 2659 -1.2% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 15643 15229 -2.6% 1.03x (?)
ObjectiveCBridgeStubNSDateRefAccess 1208 1209 +0.1% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 29217 29684 +1.6% 0.98x (?)
ObjectiveCBridgeStubToNSDate 14915 15495 +3.9% 0.96x (?)
ObjectiveCBridgeStubToNSDateRef 3335 3374 +1.2% 0.99x (?)
ObjectiveCBridgeStubToNSString 1564 1561 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 149 149 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPathRef 218786 217665 -0.5% 1.01x (?)
ObjectiveCBridgeToNSArray 29384 29306 -0.3% 1.00x (?)
ObjectiveCBridgeToNSDictionary 46860 46196 -1.4% 1.01x (?)
ObjectiveCBridgeToNSSet 39871 41349 +3.7% 0.96x
ObjectiveCBridgeToNSString 1306 1349 +3.3% 0.97x
ObserverClosure 6637 6642 +0.1% 1.00x (?)
ObserverForwarderStruct 4680 4686 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 8127 8104 -0.3% 1.00x (?)
ObserverUnappliedMethod 8361 8485 +1.5% 0.99x
OpenClose 394 395 +0.3% 1.00x
Phonebook 24083 24509 +1.8% 0.98x
PolymorphicCalls 2903 2898 -0.2% 1.00x (?)
PopFrontArray 7403 7427 +0.3% 1.00x (?)
PopFrontArrayGeneric 6440 6429 -0.2% 1.00x (?)
PopFrontUnsafePointer 97238 99337 +2.2% 0.98x
PrefixAnyCollection 19208 19214 +0.0% 1.00x (?)
PrefixAnyCollectionLazy 137027 138028 +0.7% 0.99x (?)
PrefixAnySeqCRangeIter 24280 24209 -0.3% 1.00x (?)
PrefixAnySeqCntRange 19478 19383 -0.5% 1.00x (?)
PrefixAnySeqCntRangeLazy 19559 19594 +0.2% 1.00x (?)
PrefixAnySequence 11934 11767 -1.4% 1.01x (?)
PrefixAnySequenceLazy 11783 11794 +0.1% 1.00x (?)
PrefixArray 6202 6178 -0.4% 1.00x
PrefixArrayLazy 45225 45513 +0.6% 0.99x
PrefixCountableRange 337 337 +0.0% 1.00x
PrefixCountableRangeLazy 38176 38250 +0.2% 1.00x (?)
PrefixSequence 10955 10683 -2.5% 1.03x
PrefixSequenceLazy 10748 10721 -0.3% 1.00x
PrefixWhileAnyCollection 36824 36724 -0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIter 41914 40974 -2.2% 1.02x (?)
PrefixWhileAnySeqCRangeIterLazy 22755 23083 +1.4% 0.99x (?)
PrefixWhileAnySeqCntRange 37034 36952 -0.2% 1.00x (?)
PrefixWhileAnySequence 29587 29538 -0.2% 1.00x
PrefixWhileAnySequenceLazy 11503 11286 -1.9% 1.02x
PrefixWhileArray 16815 16752 -0.4% 1.00x (?)
PrefixWhileArrayLazy 14762 14649 -0.8% 1.01x
PrefixWhileCountableRange 17939 18132 +1.1% 0.99x (?)
PrefixWhileCountableRangeLazy 22137 22338 +0.9% 0.99x
PrefixWhileSequence 28343 28399 +0.2% 1.00x
PrefixWhileSequenceLazy 10356 10599 +2.3% 0.98x
Prims 9044 8952 -1.0% 1.01x (?)
ProtocolDispatch 6984 6998 +0.2% 1.00x (?)
ProtocolDispatch2 489 489 +0.0% 1.00x
RC4 19656 19745 +0.5% 1.00x
RGBHistogram 33812 34106 +0.9% 0.99x (?)
RGBHistogramOfObjects 99349 99527 +0.2% 1.00x (?)
RangeAssignment 5686 5702 +0.3% 1.00x (?)
RecursiveOwnedParameter 9662 9656 -0.1% 1.00x (?)
ReversedArray 588 590 +0.3% 1.00x (?)
ReversedBidirectional 75240 75958 +1.0% 0.99x
ReversedDictionary 26555 25860 -2.6% 1.03x
SetExclusiveOr 21037 20966 -0.3% 1.00x (?)
SetExclusiveOr_OfObjects 41331 41361 +0.1% 1.00x (?)
SetIntersect 10637 10526 -1.0% 1.01x
SetIntersect_OfObjects 11306 11208 -0.9% 1.01x
SetIsSubsetOf 1642 1618 -1.5% 1.01x (?)
SetIsSubsetOf_OfObjects 1530 1515 -1.0% 1.01x (?)
SetUnion 11982 12054 +0.6% 0.99x (?)
SetUnion_OfObjects 29467 29550 +0.3% 1.00x (?)
SevenBoom 1630 1614 -1.0% 1.01x
Sim2DArray 30037 30039 +0.0% 1.00x (?)
SortLargeExistentials 17777 17877 +0.6% 0.99x
SortLettersInPlace 2894 2897 +0.1% 1.00x (?)
SortSortedStrings 1409 1407 -0.1% 1.00x (?)
SortStrings 2469 2522 +2.1% 0.98x
SortStringsUnicode 8923 8931 +0.1% 1.00x (?)
StackPromo 103200 100643 -2.5% 1.03x (?)
StaticArray 4585 4565 -0.4% 1.00x (?)
StrComplexWalk 6872 7007 +2.0% 0.98x
StrToInt 5250 5261 +0.2% 1.00x (?)
StringAdder 45 45 +0.0% 1.00x
StringBuilder 2773 2758 -0.5% 1.01x
StringBuilderLong 1089 1090 +0.1% 1.00x (?)
StringEdits 486766 490252 +0.7% 0.99x (?)
StringEqualPointerComparison 9799 9673 -1.3% 1.01x (?)
StringFromLongWholeSubstring 9224 9587 +3.9% 0.96x
StringFromLongWholeSubstringGeneric 13309 13431 +0.9% 0.99x
StringHasPrefix 1670 1734 +3.8% 0.96x (?)
StringHasPrefixUnicode 16017 16258 +1.5% 0.99x
StringHasSuffix 1869 1916 +2.5% 0.98x
StringHasSuffixUnicode 63632 63588 -0.1% 1.00x (?)
StringInterpolation 12116 12170 +0.4% 1.00x (?)
StringMatch 30936 31655 +2.3% 0.98x
StringUTF16Builder 3542 3578 +1.0% 0.99x (?)
StringWithCString 135963 135957 -0.0% 1.00x (?)
SubstringFromLongStringGeneric 43907 44360 +1.0% 0.99x
SuffixAnyCollection 6420 6415 -0.1% 1.00x (?)
SuffixAnyCollectionLazy 46042 46863 +1.8% 0.98x (?)
SuffixAnySeqCRangeIter 41520 41547 +0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 41788 41565 -0.5% 1.01x
SuffixAnySeqCntRange 6465 6574 +1.7% 0.98x
SuffixAnySeqCntRangeLazy 6474 6580 +1.6% 0.98x
SuffixAnySequence 26864 26807 -0.2% 1.00x
SuffixAnySequenceLazy 26818 26873 +0.2% 1.00x (?)
SuffixArray 2072 2068 -0.2% 1.00x
SuffixArrayLazy 15068 15174 +0.7% 0.99x (?)
SuffixCountableRange 117 118 +0.9% 0.99x
SuffixCountableRangeLazy 12690 12855 +1.3% 0.99x
SuffixSequence 26383 26381 -0.0% 1.00x (?)
SuffixSequenceLazy 26405 26389 -0.1% 1.00x
SuperChars 316680 315890 -0.2% 1.00x (?)
TwoSum 4251 4254 +0.1% 1.00x (?)
UTF8Decode 36889 37270 +1.0% 0.99x
Walsh 11927 11875 -0.4% 1.00x (?)
XorLoop 23705 23706 +0.0% 1.00x (?)
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB

@airspeedswift
Copy link
Member

I'm guessing the speedup in StringWalk was due to benchmark refactoring rather than that making Chinese faster happened to give ASCII a 5x speedup...

@airspeedswift
Copy link
Member

(I'm pretty sure the other benchmarks are noise, especially StringHasPrefix which seems to have gotten constant-folded recently so needs refactoring...)

@milseman
Copy link
Member Author

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (10)
TEST OLD NEW DELTA SPEEDUP
StringHasPrefix 16 33 +106.2% 0.48x
StringHasSuffix 16 33 +106.2% 0.48x
StrToInt 4904 5551 +13.2% 0.88x
DictionaryRemove 3305 3715 +12.4% 0.89x
Chars 1714 1924 +12.3% 0.89x
StackPromo 22178 23833 +7.5% 0.93x
Calculator 31 33 +6.5% 0.94x
StringMatch 10144 10779 +6.3% 0.94x
ReversedArray 49 52 +6.1% 0.94x (?)
Hanoi 3267 3453 +5.7% 0.95x
Improvement (6)
TEST OLD NEW DELTA SPEEDUP
StringWalk 6335 1281 -79.8% 4.95x
ProtocolDispatch 3030 2424 -20.0% 1.25x
ObjectiveCBridgeStubNSDateRefAccess 347 320 -7.8% 1.08x
NopDeinit 29935 27716 -7.4% 1.08x
ClassArrayGetter 14 13 -7.1% 1.08x
ProtocolDispatch2 169 160 -5.3% 1.06x
No Changes (257)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2905 2910 +0.2% 1.00x (?)
AnyHashableWithAClass 66936 66881 -0.1% 1.00x (?)
Array2D 2062 2026 -1.7% 1.02x (?)
ArrayAppend 773 773 +0.0% 1.00x
ArrayAppendArrayOfInt 597 597 +0.0% 1.00x
ArrayAppendAscii 22779 22613 -0.7% 1.01x (?)
ArrayAppendFromGeneric 597 597 +0.0% 1.00x
ArrayAppendGenericStructs 1243 1228 -1.2% 1.01x (?)
ArrayAppendLatin1 43029 43113 +0.2% 1.00x (?)
ArrayAppendLazyMap 958 940 -1.9% 1.02x (?)
ArrayAppendOptionals 1224 1248 +2.0% 0.98x (?)
ArrayAppendRepeatCol 838 838 +0.0% 1.00x
ArrayAppendReserved 534 534 +0.0% 1.00x
ArrayAppendSequence 946 945 -0.1% 1.00x (?)
ArrayAppendStrings 13700 13526 -1.3% 1.01x (?)
ArrayAppendToFromGeneric 597 597 +0.0% 1.00x
ArrayAppendToGeneric 597 597 +0.0% 1.00x
ArrayAppendUTF16 41138 40522 -1.5% 1.02x
ArrayInClass 61 64 +4.9% 0.95x (?)
ArrayLiteral 1218 1223 +0.4% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4005 4028 +0.6% 0.99x
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3928 3906 -0.6% 1.01x (?)
ArrayPlusEqualArrayOfInt 596 597 +0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 4665 4672 +0.2% 1.00x (?)
ArrayPlusEqualSingleElementCollection 773 772 -0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1595 1590 -0.3% 1.00x (?)
ArraySubscript 1478 1473 -0.3% 1.00x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
BitCount 9 9 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 4973 4957 -0.3% 1.00x
CStringLongNonAscii 2180 2142 -1.7% 1.02x
CStringShortAscii 5491 5514 +0.4% 1.00x (?)
CaptureProp 4633 4851 +4.7% 0.96x
CharacterLiteralsLarge 8769 8661 -1.2% 1.01x
CharacterLiteralsSmall 310 310 +0.0% 1.00x
DeadArray 183 187 +2.2% 0.98x
Dictionary 569 573 +0.7% 0.99x
Dictionary2 1825 1811 -0.8% 1.01x
Dictionary2OfObjects 3347 3354 +0.2% 1.00x
Dictionary3 454 450 -0.9% 1.01x
Dictionary3OfObjects 896 897 +0.1% 1.00x (?)
DictionaryBridge 2634 2694 +2.3% 0.98x (?)
DictionaryLiteral 1491 1487 -0.3% 1.00x (?)
DictionaryOfObjects 2356 2340 -0.7% 1.01x
DictionaryRemoveOfObjects 23448 23374 -0.3% 1.00x
DictionarySwap 375 376 +0.3% 1.00x
DictionarySwapOfObjects 6900 6888 -0.2% 1.00x (?)
DropFirstAnyCollection 57 56 -1.8% 1.02x
DropFirstAnyCollectionLazy 45046 44742 -0.7% 1.01x
DropFirstAnySeqCRangeIter 27191 27284 +0.3% 1.00x
DropFirstAnySeqCRangeIterLazy 27194 27290 +0.4% 1.00x
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 6796 6783 -0.2% 1.00x (?)
DropFirstAnySequenceLazy 6797 6741 -0.8% 1.01x
DropFirstArray 24 25 +4.2% 0.96x
DropFirstArrayLazy 25 24 -4.0% 1.04x
DropFirstCountableRange 32 32 +0.0% 1.00x
DropFirstCountableRangeLazy 32 32 +0.0% 1.00x
DropFirstSequence 3064 3066 +0.1% 1.00x (?)
DropFirstSequenceLazy 3027 3028 +0.0% 1.00x (?)
DropLastAnyCollection 23 22 -4.3% 1.05x
DropLastAnyCollectionLazy 14987 14930 -0.4% 1.00x (?)
DropLastAnySeqCRangeIter 4638 4703 +1.4% 0.99x (?)
DropLastAnySeqCRangeIterLazy 4644 4660 +0.3% 1.00x (?)
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6495 6830 +5.2% 0.95x (?)
DropLastAnySequenceLazy 6602 6543 -0.9% 1.01x
DropLastArray 8 8 +0.0% 1.00x
DropLastArrayLazy 8 8 +0.0% 1.00x
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropLastSequence 575 552 -4.0% 1.04x
DropLastSequenceLazy 573 553 -3.5% 1.04x
DropWhileAnyCollection 70 70 +0.0% 1.00x
DropWhileAnyCollectionLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22440 22493 +0.2% 1.00x
DropWhileAnySeqCRangeIterLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCntRange 64 64 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 103 103 +0.0% 1.00x
DropWhileAnySequence 7600 7603 +0.0% 1.00x
DropWhileAnySequenceLazy 2032 2032 +0.0% 1.00x
DropWhileArray 37 37 +0.0% 1.00x
DropWhileArrayLazy 77 78 +1.3% 0.99x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 68 68 +0.0% 1.00x
DropWhileSequence 3123 3124 +0.0% 1.00x (?)
DropWhileSequenceLazy 65 65 +0.0% 1.00x
ErrorHandling 2948 2907 -1.4% 1.01x (?)
GlobalClass 0 0 +0.0% 1.00x
HashQuadratic 6352736 6065982 -4.5% 1.05x
HashTest 1707 1701 -0.4% 1.00x
Histogram 248 245 -1.2% 1.01x
Integrate 262 262 +0.0% 1.00x
IterateData 755 760 +0.7% 0.99x
Join 447 455 +1.8% 0.98x
LazilyFilteredArrays 64834 64926 +0.1% 1.00x (?)
LazilyFilteredRange 3891 3892 +0.0% 1.00x (?)
LinkedList 7142 7095 -0.7% 1.01x
MapReduce 303 306 +1.0% 0.99x
MapReduceAnyCollection 303 306 +1.0% 0.99x (?)
MapReduceAnyCollectionShort 1988 1985 -0.2% 1.00x (?)
MapReduceClass 3067 3062 -0.2% 1.00x (?)
MapReduceClassShort 4557 4546 -0.2% 1.00x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 45 44 -2.2% 1.02x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 449 453 +0.9% 0.99x (?)
MapReduceShort 1899 1905 +0.3% 1.00x
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 110 109 -0.9% 1.01x (?)
Memset 235 235 +0.0% 1.00x
MonteCarloE 10262 10371 +1.1% 0.99x
MonteCarloPi 44075 43908 -0.4% 1.00x
NSDictionaryCastToSwift 5350 5436 +1.6% 0.98x (?)
NSError 289 291 +0.7% 0.99x
NSStringConversion 764 754 -1.3% 1.01x
ObjectAllocation 182 178 -2.2% 1.02x
ObjectiveCBridgeFromNSArrayAnyObject 24082 23731 -1.5% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4578 4504 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43846 44493 +1.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38413 38192 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 120161 120275 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5176 5155 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 97344 100508 +3.3% 0.97x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 90095 89610 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 64467 65090 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4093 4109 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 73923 73562 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 63255 63235 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSString 1482 1439 -2.9% 1.03x (?)
ObjectiveCBridgeFromNSStringForced 2341 2354 +0.6% 0.99x
ObjectiveCBridgeStubDataAppend 3825 3790 -0.9% 1.01x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28879 28988 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3521 3553 +0.9% 0.99x
ObjectiveCBridgeStubFromNSDateRef 3754 3577 -4.7% 1.05x
ObjectiveCBridgeStubFromNSString 950 944 -0.6% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 179 179 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2378 2419 +1.7% 0.98x
ObjectiveCBridgeStubNSDateMutationRef 13168 13029 -1.1% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 29210 28699 -1.7% 1.02x (?)
ObjectiveCBridgeStubToNSDate 15484 15698 +1.4% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3441 3342 -2.9% 1.03x
ObjectiveCBridgeStubToNSString 1595 1592 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 109 109 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 236119 234855 -0.5% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 236421 234785 -0.7% 1.01x (?)
ObjectiveCBridgeToNSArray 29015 29054 +0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 44634 44857 +0.5% 1.00x (?)
ObjectiveCBridgeToNSSet 39285 39715 +1.1% 0.99x (?)
ObjectiveCBridgeToNSString 1271 1269 -0.2% 1.00x
ObserverClosure 2299 2379 +3.5% 0.97x
ObserverForwarderStruct 1128 1132 +0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 3804 3816 +0.3% 1.00x (?)
ObserverUnappliedMethod 2663 2664 +0.0% 1.00x (?)
OpenClose 51 51 +0.0% 1.00x
Phonebook 7993 8395 +5.0% 0.95x
PolymorphicCalls 22 21 -4.5% 1.05x
PopFrontArray 1072 1098 +2.4% 0.98x
PopFrontArrayGeneric 1075 1093 +1.7% 0.98x
PopFrontUnsafePointer 8849 8980 +1.5% 0.99x
PrefixAnyCollection 56 56 +0.0% 1.00x
PrefixAnyCollectionLazy 44980 44728 -0.6% 1.01x
PrefixAnySeqCRangeIter 21432 21517 +0.4% 1.00x
PrefixAnySeqCRangeIterLazy 21431 21521 +0.4% 1.00x
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 6087 6053 -0.6% 1.01x
PrefixAnySequenceLazy 6078 6049 -0.5% 1.00x
PrefixArray 25 24 -4.0% 1.04x
PrefixArrayLazy 25 24 -4.0% 1.04x
PrefixCountableRange 32 32 +0.0% 1.00x
PrefixCountableRangeLazy 32 32 +0.0% 1.00x
PrefixSequence 2527 2656 +5.1% 0.95x
PrefixSequenceLazy 2617 2618 +0.0% 1.00x (?)
PrefixWhileAnyCollection 96 96 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12577 12534 -0.3% 1.00x
PrefixWhileAnySeqCRangeIterLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCntRange 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 75 75 +0.0% 1.00x
PrefixWhileAnySequence 14132 14061 -0.5% 1.01x
PrefixWhileAnySequenceLazy 1492 1492 +0.0% 1.00x
PrefixWhileArray 62 62 +0.0% 1.00x
PrefixWhileArrayLazy 49 49 +0.0% 1.00x
PrefixWhileCountableRange 36 37 +2.8% 0.97x
PrefixWhileCountableRangeLazy 32 32 +0.0% 1.00x
PrefixWhileSequence 296 297 +0.3% 1.00x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 758 782 +3.2% 0.97x
RC4 159 159 +0.0% 1.00x
RGBHistogram 2272 2283 +0.5% 1.00x (?)
RGBHistogramOfObjects 24825 24866 +0.2% 1.00x
RangeAssignment 295 296 +0.3% 1.00x
RecursiveOwnedParameter 2315 2329 +0.6% 0.99x
ReversedBidirectional 30065 29003 -3.5% 1.04x
ReversedDictionary 112 110 -1.8% 1.02x
SetExclusiveOr 2983 3008 +0.8% 0.99x (?)
SetExclusiveOr_OfObjects 9599 9605 +0.1% 1.00x (?)
SetIntersect 275 283 +2.9% 0.97x
SetIntersect_OfObjects 1725 1727 +0.1% 1.00x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2670 2673 +0.1% 1.00x (?)
SetUnion_OfObjects 8167 8083 -1.0% 1.01x
SevenBoom 1475 1472 -0.2% 1.00x (?)
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8054 8050 -0.0% 1.00x (?)
SortLettersInPlace 1146 1149 +0.3% 1.00x
SortSortedStrings 858 895 +4.3% 0.96x
SortStrings 1648 1720 +4.4% 0.96x
SortStringsUnicode 7732 7693 -0.5% 1.01x (?)
StaticArray 22 22 +0.0% 1.00x
StrComplexWalk 721 720 -0.1% 1.00x
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1343 1338 -0.4% 1.00x (?)
StringBuilderLong 912 902 -1.1% 1.01x
StringEdits 202909 204123 +0.6% 0.99x
StringEqualPointerComparison 7313 7365 +0.7% 0.99x (?)
StringFromLongWholeSubstring 9268 9245 -0.2% 1.00x (?)
StringFromLongWholeSubstringGeneric 9242 9273 +0.3% 1.00x (?)
StringHasPrefixUnicode 14560 14819 +1.8% 0.98x
StringHasSuffixUnicode 62121 62172 +0.1% 1.00x (?)
StringInterpolation 8469 8345 -1.5% 1.01x
StringUTF16Builder 2095 2060 -1.7% 1.02x
StringWithCString 125456 125181 -0.2% 1.00x
SubstringFromLongString 89 89 +0.0% 1.00x
SubstringFromLongStringGeneric 37553 37638 +0.2% 1.00x (?)
SuffixAnyCollection 22 22 +0.0% 1.00x
SuffixAnyCollectionLazy 14992 14944 -0.3% 1.00x
SuffixAnySeqCRangeIter 4962 5028 +1.3% 0.99x (?)
SuffixAnySeqCRangeIterLazy 4972 5048 +1.5% 0.98x
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6719 6714 -0.1% 1.00x (?)
SuffixAnySequenceLazy 6611 6578 -0.5% 1.01x
SuffixArray 8 8 +0.0% 1.00x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 4502 4647 +3.2% 0.97x (?)
SuffixSequenceLazy 4663 4502 -3.5% 1.04x (?)
SuperChars 298369 296036 -0.8% 1.01x (?)
TwoSum 862 856 -0.7% 1.01x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 254 255 +0.4% 1.00x
Walsh 352 356 +1.1% 0.99x
XorLoop 347 347 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (8)
TEST OLD NEW DELTA SPEEDUP
ArrayAppendReserved 3430 3903 +13.8% 0.88x
ArrayAppend 3703 4136 +11.7% 0.90x
Calculator 1086 1197 +10.2% 0.91x
ObjectiveCBridgeStubFromNSDate 3974 4279 +7.7% 0.93x
StringAdder 45 48 +6.7% 0.94x
NopDeinit 50300 53447 +6.3% 0.94x
ObjectiveCBridgeStubDateMutation 515 545 +5.8% 0.94x
TypeFlood 167 176 +5.4% 0.95x (?)
Improvement (2)
TEST OLD NEW DELTA SPEEDUP
StringWalk 20771 4442 -78.6% 4.68x
DropWhileSequenceLazy 12008 11214 -6.6% 1.07x
No Changes (263)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3119 3104 -0.5% 1.00x (?)
AnyHashableWithAClass 84143 84041 -0.1% 1.00x (?)
Array2D 608265 606473 -0.3% 1.00x (?)
ArrayAppendArrayOfInt 653 655 +0.3% 1.00x
ArrayAppendAscii 60539 60897 +0.6% 0.99x
ArrayAppendFromGeneric 659 655 -0.6% 1.01x
ArrayAppendGenericStructs 1316 1288 -2.1% 1.02x
ArrayAppendLatin1 83160 84275 +1.3% 0.99x
ArrayAppendLazyMap 211245 212011 +0.4% 1.00x
ArrayAppendOptionals 1280 1296 +1.2% 0.99x (?)
ArrayAppendRepeatCol 214227 218620 +2.1% 0.98x
ArrayAppendSequence 77921 77268 -0.8% 1.01x
ArrayAppendStrings 13635 13571 -0.5% 1.00x (?)
ArrayAppendToFromGeneric 655 654 -0.2% 1.00x (?)
ArrayAppendToGeneric 656 657 +0.2% 1.00x (?)
ArrayAppendUTF16 82261 82839 +0.7% 0.99x
ArrayInClass 4736 4734 -0.0% 1.00x (?)
ArrayLiteral 1485 1483 -0.1% 1.00x (?)
ArrayOfGenericPOD 3091 3078 -0.4% 1.00x
ArrayOfGenericRef 9586 9602 +0.2% 1.00x
ArrayOfPOD 1832 1892 +3.3% 0.97x
ArrayOfRef 8746 8797 +0.6% 0.99x
ArrayPlusEqualArrayOfInt 653 654 +0.2% 1.00x
ArrayPlusEqualFiveElementCollection 286114 287038 +0.3% 1.00x (?)
ArrayPlusEqualSingleElementCollection 283236 290659 +2.6% 0.97x
ArrayPlusEqualThreeElements 10234 10228 -0.1% 1.00x (?)
ArraySubscript 4173 4164 -0.2% 1.00x (?)
ArrayValueProp 3024 3017 -0.2% 1.00x
ArrayValueProp2 3623 3669 +1.3% 0.99x
ArrayValueProp3 3432 3435 +0.1% 1.00x (?)
ArrayValueProp4 3332 3340 +0.2% 1.00x (?)
BitCount 895 864 -3.5% 1.04x (?)
ByteSwap 266 275 +3.4% 0.97x
CStringLongAscii 5241 5326 +1.6% 0.98x
CStringLongNonAscii 2391 2407 +0.7% 0.99x (?)
CStringShortAscii 8440 8248 -2.3% 1.02x
CaptureProp 110344 110452 +0.1% 1.00x
CharacterLiteralsLarge 9918 10048 +1.3% 0.99x
CharacterLiteralsSmall 998 1002 +0.4% 1.00x
Chars 7490 7477 -0.2% 1.00x (?)
ClassArrayGetter 930 930 +0.0% 1.00x
DeadArray 117440 117071 -0.3% 1.00x (?)
Dictionary 1683 1687 +0.2% 1.00x (?)
Dictionary2 3501 3489 -0.3% 1.00x (?)
Dictionary2OfObjects 5824 5801 -0.4% 1.00x (?)
Dictionary3 1314 1316 +0.2% 1.00x (?)
Dictionary3OfObjects 2214 2204 -0.5% 1.00x (?)
DictionaryBridge 2756 2721 -1.3% 1.01x (?)
DictionaryLiteral 8243 8304 +0.7% 0.99x
DictionaryOfObjects 4607 4586 -0.5% 1.00x (?)
DictionaryRemove 21007 21021 +0.1% 1.00x (?)
DictionaryRemoveOfObjects 55175 54994 -0.3% 1.00x (?)
DictionarySwap 5413 5406 -0.1% 1.00x (?)
DictionarySwapOfObjects 19887 19927 +0.2% 1.00x
DropFirstAnyCollection 19064 19072 +0.0% 1.00x
DropFirstAnyCollectionLazy 141977 140273 -1.2% 1.01x (?)
DropFirstAnySeqCRangeIter 29530 29704 +0.6% 0.99x (?)
DropFirstAnySeqCRangeIterLazy 29546 29619 +0.2% 1.00x
DropFirstAnySeqCntRange 19372 19451 +0.4% 1.00x
DropFirstAnySeqCntRangeLazy 19110 19278 +0.9% 0.99x (?)
DropFirstAnySequence 14129 14045 -0.6% 1.01x
DropFirstAnySequenceLazy 13998 14169 +1.2% 0.99x
DropFirstArray 6199 6321 +2.0% 0.98x
DropFirstArrayLazy 45499 45899 +0.9% 0.99x
DropFirstCountableRange 339 332 -2.1% 1.02x
DropFirstCountableRangeLazy 37881 38290 +1.1% 0.99x
DropFirstSequence 13005 12992 -0.1% 1.00x (?)
DropFirstSequenceLazy 12948 12992 +0.3% 1.00x
DropLastAnyCollection 6369 6408 +0.6% 0.99x (?)
DropLastAnyCollectionLazy 46846 46746 -0.2% 1.00x (?)
DropLastAnySeqCRangeIter 43976 44117 +0.3% 1.00x
DropLastAnySeqCRangeIterLazy 43906 44090 +0.4% 1.00x
DropLastAnySeqCntRange 6466 6411 -0.9% 1.01x
DropLastAnySeqCntRangeLazy 6442 6396 -0.7% 1.01x
DropLastAnySequence 29070 29030 -0.1% 1.00x
DropLastAnySequenceLazy 29045 29293 +0.9% 0.99x
DropLastArray 2095 2070 -1.2% 1.01x
DropLastArrayLazy 15177 15318 +0.9% 0.99x (?)
DropLastCountableRange 118 116 -1.7% 1.02x
DropLastCountableRangeLazy 12619 13029 +3.2% 0.97x
DropLastSequence 28699 29142 +1.5% 0.98x
DropLastSequenceLazy 28655 28954 +1.0% 0.99x
DropWhileAnyCollection 25911 24748 -4.5% 1.05x
DropWhileAnyCollectionLazy 27048 27143 +0.4% 1.00x
DropWhileAnySeqCRangeIter 31608 31646 +0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 27083 27113 +0.1% 1.00x (?)
DropWhileAnySeqCntRange 26248 25186 -4.0% 1.04x
DropWhileAnySeqCntRangeLazy 26947 27151 +0.8% 0.99x (?)
DropWhileAnySequence 16127 16078 -0.3% 1.00x (?)
DropWhileAnySequenceLazy 12594 12514 -0.6% 1.01x
DropWhileArray 9838 9782 -0.6% 1.01x
DropWhileArrayLazy 17008 16973 -0.2% 1.00x
DropWhileCountableRange 6089 6068 -0.3% 1.00x
DropWhileCountableRangeLazy 25923 26077 +0.6% 0.99x (?)
DropWhileSequence 15076 15091 +0.1% 1.00x
ErrorHandling 3774 3770 -0.1% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17367 17633 +1.5% 0.98x
HashQuadratic 50470356 52506800 +4.0% 0.96x (?)
HashTest 18597 18480 -0.6% 1.01x (?)
Histogram 8731 8877 +1.7% 0.98x (?)
Integrate 395 395 +0.0% 1.00x
IterateData 12528 12928 +3.2% 0.97x
Join 1270 1268 -0.2% 1.00x (?)
LazilyFilteredArrays 1691419 1682428 -0.5% 1.01x (?)
LazilyFilteredRange 676100 672491 -0.5% 1.01x
LinkedList 33236 33011 -0.7% 1.01x
MapReduce 37829 37766 -0.2% 1.00x
MapReduceAnyCollection 37821 37762 -0.2% 1.00x
MapReduceAnyCollectionShort 50691 50665 -0.1% 1.00x (?)
MapReduceClass 43136 42968 -0.4% 1.00x
MapReduceClassShort 54933 54550 -0.7% 1.01x (?)
MapReduceLazyCollection 32877 32717 -0.5% 1.00x
MapReduceLazyCollectionShort 44568 43857 -1.6% 1.02x
MapReduceLazySequence 25435 25840 +1.6% 0.98x
MapReduceSequence 41341 41294 -0.1% 1.00x (?)
MapReduceShort 51060 50266 -1.6% 1.02x
MapReduceShortString 287 280 -2.4% 1.02x (?)
MapReduceString 2611 2590 -0.8% 1.01x (?)
Memset 44005 43968 -0.1% 1.00x (?)
MonteCarloE 134601 134900 +0.2% 1.00x (?)
MonteCarloPi 52474 52353 -0.2% 1.00x
NSDictionaryCastToSwift 6539 6445 -1.4% 1.01x (?)
NSError 716 702 -2.0% 1.02x (?)
NSStringConversion 1327 1325 -0.2% 1.00x (?)
ObjectAllocation 635 638 +0.5% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 26056 25278 -3.0% 1.03x
ObjectiveCBridgeFromNSArrayAnyObjectForced 7798 7846 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45285 45436 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38519 39254 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122388 122601 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7914 7708 -2.6% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 100696 102835 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 93358 93060 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 67930 69607 +2.5% 0.98x
ObjectiveCBridgeFromNSSetAnyObjectForced 7021 7201 +2.6% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 78699 77127 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 68062 68017 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSString 4084 4082 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2724 2717 -0.3% 1.00x
ObjectiveCBridgeStubDataAppend 3874 4039 +4.3% 0.96x
ObjectiveCBridgeStubDateAccess 1028 1002 -2.5% 1.03x
ObjectiveCBridgeStubFromArrayOfNSString 28977 29453 +1.6% 0.98x (?)
ObjectiveCBridgeStubFromNSDateRef 4001 4098 +2.4% 0.98x
ObjectiveCBridgeStubFromNSString 998 983 -1.5% 1.02x
ObjectiveCBridgeStubFromNSStringRef 214 216 +0.9% 0.99x
ObjectiveCBridgeStubNSDataAppend 2707 2831 +4.6% 0.96x
ObjectiveCBridgeStubNSDateMutationRef 15166 15213 +0.3% 1.00x (?)
ObjectiveCBridgeStubNSDateRefAccess 1217 1208 -0.7% 1.01x
ObjectiveCBridgeStubToArrayOfNSString 28857 29193 +1.2% 0.99x (?)
ObjectiveCBridgeStubToNSDate 15956 15599 -2.2% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3414 3385 -0.8% 1.01x (?)
ObjectiveCBridgeStubToNSString 1565 1568 +0.2% 1.00x
ObjectiveCBridgeStubToNSStringRef 148 148 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 239047 236327 -1.1% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 230736 237074 +2.7% 0.97x (?)
ObjectiveCBridgeToNSArray 29175 28920 -0.9% 1.01x (?)
ObjectiveCBridgeToNSDictionary 46415 46121 -0.6% 1.01x (?)
ObjectiveCBridgeToNSSet 40187 39972 -0.5% 1.01x (?)
ObjectiveCBridgeToNSString 1311 1324 +1.0% 0.99x
ObserverClosure 6620 6650 +0.5% 1.00x (?)
ObserverForwarderStruct 4754 4740 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 8066 8076 +0.1% 1.00x
ObserverUnappliedMethod 8497 8423 -0.9% 1.01x
OpenClose 394 394 +0.0% 1.00x
Phonebook 24132 24729 +2.5% 0.98x
PolymorphicCalls 2891 2888 -0.1% 1.00x (?)
PopFrontArray 7644 7536 -1.4% 1.01x (?)
PopFrontArrayGeneric 6469 6503 +0.5% 0.99x (?)
PopFrontUnsafePointer 97271 97084 -0.2% 1.00x
PrefixAnyCollection 19184 19052 -0.7% 1.01x
PrefixAnyCollectionLazy 142722 140297 -1.7% 1.02x (?)
PrefixAnySeqCRangeIter 23907 23965 +0.2% 1.00x
PrefixAnySeqCRangeIterLazy 23943 24050 +0.4% 1.00x
PrefixAnySeqCntRange 19334 19430 +0.5% 1.00x
PrefixAnySeqCntRangeLazy 19129 19311 +1.0% 0.99x
PrefixAnySequence 11851 11826 -0.2% 1.00x
PrefixAnySequenceLazy 11740 11863 +1.0% 0.99x
PrefixArray 6192 6322 +2.1% 0.98x
PrefixArrayLazy 45431 45913 +1.1% 0.99x
PrefixCountableRange 337 338 +0.3% 1.00x
PrefixCountableRangeLazy 37903 38774 +2.3% 0.98x
PrefixSequence 10937 10770 -1.5% 1.02x
PrefixSequenceLazy 10698 10802 +1.0% 0.99x
PrefixWhileAnyCollection 37384 36214 -3.1% 1.03x
PrefixWhileAnyCollectionLazy 22435 22385 -0.2% 1.00x
PrefixWhileAnySeqCRangeIter 41056 40635 -1.0% 1.01x
PrefixWhileAnySeqCRangeIterLazy 22341 22315 -0.1% 1.00x
PrefixWhileAnySeqCntRange 37813 36713 -2.9% 1.03x
PrefixWhileAnySeqCntRangeLazy 22345 22335 -0.0% 1.00x
PrefixWhileAnySequence 29589 29618 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 11456 11425 -0.3% 1.00x
PrefixWhileArray 16861 16834 -0.2% 1.00x (?)
PrefixWhileArrayLazy 14788 14748 -0.3% 1.00x
PrefixWhileCountableRange 17482 17446 -0.2% 1.00x
PrefixWhileCountableRangeLazy 21874 21584 -1.3% 1.01x
PrefixWhileSequence 28415 28324 -0.3% 1.00x
PrefixWhileSequenceLazy 10423 10498 +0.7% 0.99x
Prims 9007 9002 -0.1% 1.00x (?)
ProtocolDispatch 6973 7317 +4.9% 0.95x
ProtocolDispatch2 489 490 +0.2% 1.00x
RC4 19333 19413 +0.4% 1.00x
RGBHistogram 33942 33766 -0.5% 1.01x (?)
RGBHistogramOfObjects 99754 99307 -0.4% 1.00x
RangeAssignment 5689 5688 -0.0% 1.00x (?)
RecursiveOwnedParameter 9672 9664 -0.1% 1.00x
ReversedArray 591 591 +0.0% 1.00x
ReversedBidirectional 74553 74768 +0.3% 1.00x (?)
ReversedDictionary 26514 25873 -2.4% 1.02x
SetExclusiveOr 21164 21133 -0.1% 1.00x
SetExclusiveOr_OfObjects 41163 41339 +0.4% 1.00x (?)
SetIntersect 10538 10576 +0.4% 1.00x
SetIntersect_OfObjects 11121 11191 +0.6% 0.99x
SetIsSubsetOf 1627 1633 +0.4% 1.00x
SetIsSubsetOf_OfObjects 1521 1515 -0.4% 1.00x
SetUnion 12078 12032 -0.4% 1.00x (?)
SetUnion_OfObjects 29609 29705 +0.3% 1.00x
SevenBoom 1606 1601 -0.3% 1.00x (?)
Sim2DArray 30029 30056 +0.1% 1.00x
SortLargeExistentials 17755 17693 -0.3% 1.00x
SortLettersInPlace 2870 2856 -0.5% 1.00x
SortSortedStrings 1405 1412 +0.5% 1.00x
SortStrings 2458 2481 +0.9% 0.99x (?)
SortStringsUnicode 8902 8779 -1.4% 1.01x
StackPromo 102532 99400 -3.1% 1.03x
StaticArray 4566 4611 +1.0% 0.99x
StrComplexWalk 6870 6874 +0.1% 1.00x (?)
StrToInt 5773 5853 +1.4% 0.99x
StringBuilder 2752 2751 -0.0% 1.00x (?)
StringBuilderLong 1083 1107 +2.2% 0.98x
StringEdits 486827 490727 +0.8% 0.99x (?)
StringEqualPointerComparison 9696 9653 -0.4% 1.00x (?)
StringFromLongWholeSubstring 9225 9212 -0.1% 1.00x (?)
StringFromLongWholeSubstringGeneric 13255 13272 +0.1% 1.00x (?)
StringHasPrefix 1725 1718 -0.4% 1.00x
StringHasPrefixUnicode 16230 16238 +0.0% 1.00x (?)
StringHasSuffix 1913 1909 -0.2% 1.00x
StringHasSuffixUnicode 63968 64336 +0.6% 0.99x
StringInterpolation 12092 12033 -0.5% 1.00x
StringMatch 31186 30484 -2.3% 1.02x
StringUTF16Builder 3614 3557 -1.6% 1.02x (?)
StringWithCString 134049 134065 +0.0% 1.00x (?)
SubstringFromLongString 99 98 -1.0% 1.01x
SubstringFromLongStringGeneric 43950 44330 +0.9% 0.99x
SuffixAnyCollection 6432 6366 -1.0% 1.01x
SuffixAnyCollectionLazy 47288 46707 -1.2% 1.01x
SuffixAnySeqCRangeIter 41209 41155 -0.1% 1.00x
SuffixAnySeqCRangeIterLazy 41587 41585 -0.0% 1.00x (?)
SuffixAnySeqCntRange 6481 6397 -1.3% 1.01x (?)
SuffixAnySeqCntRangeLazy 6478 6396 -1.3% 1.01x
SuffixAnySequence 27058 26825 -0.9% 1.01x
SuffixAnySequenceLazy 26835 27087 +0.9% 0.99x
SuffixArray 2093 2072 -1.0% 1.01x
SuffixArrayLazy 15178 15316 +0.9% 0.99x
SuffixCountableRange 118 117 -0.8% 1.01x
SuffixCountableRangeLazy 12997 12974 -0.2% 1.00x (?)
SuffixSequence 26440 26444 +0.0% 1.00x (?)
SuffixSequenceLazy 26482 26617 +0.5% 0.99x
SuperChars 316918 317082 +0.1% 1.00x (?)
TwoSum 4304 4321 +0.4% 1.00x
UTF8Decode 36904 36978 +0.2% 1.00x
Walsh 11865 11939 +0.6% 0.99x
XorLoop 23707 23706 -0.0% 1.00x (?)
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB

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.

6 participants