Skip to content

[Runtime] Fix swift_slowAlloc to respect its alignMask parameter. #14375

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
Feb 14, 2018

Conversation

mikeash
Copy link
Contributor

@mikeash mikeash commented Feb 2, 2018

Instead of calling malloc, call AlignedAlloc. That calls posix_memalign on platforms where it's available. The man page cautions to use it judiciously, but Apple OSes and Linux implement it to call through to malloc when the alignment is suitable. Presumably/hopefully other OSes do the same.

rdar://problem/22975669

Instead of calling malloc, call AlignedAlloc. That calls posix_memalign on platforms where it's available. The man page cautions to use it judiciously, but Apple OSes and Linux implement it to call through to malloc when the alignment is suitable. Presumably/hopefully other OSes do the same.

rdar://problem/22975669
@mikeash
Copy link
Contributor Author

mikeash commented Feb 2, 2018

@swift-ci please test

@mikeash
Copy link
Contributor Author

mikeash commented Feb 6, 2018

@swift-ci please benchmark

@@ -23,12 +23,11 @@
using namespace swift;

void *swift::swift_slowAlloc(size_t size, size_t alignMask) {
// FIXME: use posix_memalign if alignMask is larger than the system guarantee.
void *p = malloc(size);
void *p = AlignedAlloc(size, alignMask + 1);
Copy link
Contributor

Choose a reason for hiding this comment

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

Is alignMask guaranteed to be a power-of-two-minus-one?

Copy link
Contributor

@gparker42 gparker42 Feb 6, 2018

Choose a reason for hiding this comment

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

That should be fine. What is a problem is that posix_memalign requires that the alignment be no smaller than sizeof(void*). We have at least one place that calls swift_slowAlloc(size, 0) because it needs no alignment constraints.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

AlignedAlloc makes sure the alignment is sufficiently large before calling through to posix_memalign.

Copy link
Contributor

Choose a reason for hiding this comment

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

That is unfortunate for performance. It would be better if we could satisfy posix_memalign's constraints directly. That would be a much wider change.

@swift-ci
Copy link
Contributor

swift-ci commented Feb 7, 2018

Build comment file:

Optimized (O)

Regression (2)
TEST OLD NEW DELTA SPEEDUP
MapReduceString 81 91 +12.3% 0.89x
Hanoi 3463 3778 +9.1% 0.92x
Improvement (3)
TEST OLD NEW DELTA SPEEDUP
StringWalk 1619 1515 -6.4% 1.07x
ObjectiveCBridgeStubFromNSString 879 828 -5.8% 1.06x (?)
NSStringConversion 331 315 -4.8% 1.05x
No Changes (355)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3586 3690 +2.9% 0.97x (?)
AnyHashableWithAClass 69763 69282 -0.7% 1.01x (?)
Array2D 2552 2555 +0.1% 1.00x (?)
ArrayAppend 1026 1021 -0.5% 1.00x (?)
ArrayAppendArrayOfInt 794 790 -0.5% 1.01x (?)
ArrayAppendAscii 13664 13771 +0.8% 0.99x
ArrayAppendFromGeneric 793 799 +0.8% 0.99x (?)
ArrayAppendGenericStructs 1414 1425 +0.8% 0.99x (?)
ArrayAppendLatin1 38156 38533 +1.0% 0.99x
ArrayAppendLazyMap 1338 1341 +0.2% 1.00x (?)
ArrayAppendOptionals 1409 1430 +1.5% 0.99x (?)
ArrayAppendRepeatCol 1338 1336 -0.1% 1.00x (?)
ArrayAppendReserved 754 755 +0.1% 1.00x (?)
ArrayAppendSequence 1133 1130 -0.3% 1.00x (?)
ArrayAppendStrings 15153 15182 +0.2% 1.00x (?)
ArrayAppendToFromGeneric 798 799 +0.1% 1.00x (?)
ArrayAppendToGeneric 789 793 +0.5% 0.99x (?)
ArrayAppendUTF16 37442 37351 -0.2% 1.00x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 150 +0.0% 1.00x
ArrayOfGenericRef 4361 4424 +1.4% 0.99x (?)
ArrayOfPOD 183 183 +0.0% 1.00x
ArrayOfRef 4351 4416 +1.5% 0.99x (?)
ArrayPlusEqualArrayOfInt 792 798 +0.8% 0.99x (?)
ArrayPlusEqualFiveElementCollection 5544 5503 -0.7% 1.01x (?)
ArrayPlusEqualSingleElementCollection 1019 1012 -0.7% 1.01x (?)
ArrayPlusEqualThreeElements 1650 1683 +2.0% 0.98x
ArraySubscript 1532 1544 +0.8% 0.99x (?)
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
BinaryFloatingPointConversionFromBinaryInteger 45 45 +0.0% 1.00x
BitCount 202 200 -1.0% 1.01x (?)
ByteSwap 100 100 +0.0% 1.00x
COWTree 3604 3652 +1.3% 0.99x (?)
CSVParsing 761468 762153 +0.1% 1.00x (?)
CSVParsingAlt 731780 737114 +0.7% 0.99x (?)
CSVParsingAltIndices 362656 360369 -0.6% 1.01x (?)
CStringLongAscii 4768 4773 +0.1% 1.00x (?)
CStringLongNonAscii 2145 2093 -2.4% 1.02x
CStringShortAscii 4720 4803 +1.8% 0.98x (?)
Calculator 442 432 -2.3% 1.02x
CaptureProp 8893 8878 -0.2% 1.00x (?)
CharIndexing_ascii_unicodeScalars 15886 15885 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 14393 14385 -0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars 12037 12019 -0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 10910 10902 -0.1% 1.00x (?)
CharIndexing_japanese_unicodeScalars 18998 19015 +0.1% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 17229 17225 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 15407 15408 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 13954 13953 -0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2897 2894 -0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2635 2632 -0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3607 3604 -0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3292 3283 -0.3% 1.00x (?)
CharIndexing_russian_unicodeScalars 13237 13235 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 11999 11992 -0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars 31519 31527 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 28488 28482 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 20813 20815 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 21338 21329 -0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 20601 20715 +0.6% 0.99x
CharIteration_ascii_unicodeScalars_Backwards 14061 14065 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 15598 15686 +0.6% 0.99x (?)
CharIteration_chinese_unicodeScalars_Backwards 10665 10668 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 24725 24757 +0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 16826 16831 +0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 19973 20079 +0.5% 0.99x (?)
CharIteration_korean_unicodeScalars_Backwards 13636 13635 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3671 3680 +0.2% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2586 2583 -0.1% 1.00x (?)
CharIteration_punctuated_unicodeScalars 4610 4623 +0.3% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3224 3225 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars 17141 17228 +0.5% 0.99x (?)
CharIteration_russian_unicodeScalars_Backwards 11723 11730 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars 40653 40900 +0.6% 0.99x (?)
CharIteration_tweet_unicodeScalars_Backwards 27465 27454 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 27342 27216 -0.5% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 16968 17274 +1.8% 0.98x
CharacterLiteralsLarge 6069 6174 +1.7% 0.98x (?)
CharacterLiteralsSmall 412 411 -0.2% 1.00x (?)
CharacterPropertiesFetch 4588 4640 +1.1% 0.99x (?)
CharacterPropertiesPrecomputed 970 972 +0.2% 1.00x (?)
CharacterPropertiesStashed 1556 1529 -1.7% 1.02x (?)
CharacterPropertiesStashedMemo 1528 1521 -0.5% 1.00x (?)
Chars 970 967 -0.3% 1.00x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 452 461 +2.0% 0.98x (?)
DictOfArraysToArrayOfDicts 787 802 +1.9% 0.98x (?)
Dictionary 503 500 -0.6% 1.01x (?)
Dictionary2 1604 1633 +1.8% 0.98x (?)
Dictionary2OfObjects 2955 3012 +1.9% 0.98x (?)
Dictionary3 233 240 +3.0% 0.97x (?)
Dictionary3OfObjects 669 679 +1.5% 0.99x (?)
DictionaryBridge 1987 2004 +0.9% 0.99x (?)
DictionaryGroup 132 133 +0.8% 0.99x (?)
DictionaryGroupOfObjects 1905 1941 +1.9% 0.98x (?)
DictionaryLiteral 1601 1645 +2.7% 0.97x (?)
DictionaryOfObjects 2182 2220 +1.7% 0.98x (?)
DictionaryRemove 2772 2790 +0.6% 0.99x (?)
DictionaryRemoveOfObjects 23704 24033 +1.4% 0.99x (?)
DictionarySubscriptDefaultMutation 144 145 +0.7% 0.99x (?)
DictionarySubscriptDefaultMutationArray 489 493 +0.8% 0.99x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 3828 3909 +2.1% 0.98x (?)
DictionarySubscriptDefaultMutationOfObjects 1380 1417 +2.7% 0.97x
DictionarySwap 473 474 +0.2% 1.00x (?)
DictionarySwapOfObjects 7360 7504 +2.0% 0.98x (?)
DoubleWidthDivision 239 238 -0.4% 1.00x (?)
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 65115 64708 -0.6% 1.01x (?)
DropFirstAnySeqCRangeIter 18416 18446 +0.2% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 18425 18463 +0.2% 1.00x (?)
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 4623 4692 +1.5% 0.99x
DropFirstAnySequenceLazy 4638 4713 +1.6% 0.98x
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 2698 2699 +0.0% 1.00x (?)
DropFirstSequenceLazy 2791 2792 +0.0% 1.00x (?)
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21439 21531 +0.4% 1.00x (?)
DropLastAnySeqCRangeIter 3528 3544 +0.5% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3531 3550 +0.5% 0.99x (?)
DropLastAnySeqCntRange 23 23 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 23 23 +0.0% 1.00x
DropLastAnySequence 5127 5140 +0.3% 1.00x (?)
DropLastAnySequenceLazy 5226 5244 +0.3% 1.00x (?)
DropLastCountableRange 12 12 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 644 638 -0.9% 1.01x (?)
DropLastSequenceLazy 641 641 +0.0% 1.00x
DropWhileAnyCollection 100 100 +0.0% 1.00x
DropWhileAnyCollectionLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCRangeIter 14796 14910 +0.8% 0.99x (?)
DropWhileAnySeqCRangeIterLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 147 147 +0.0% 1.00x
DropWhileAnySequence 4899 4908 +0.2% 1.00x
DropWhileAnySequenceLazy 1854 1855 +0.1% 1.00x (?)
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1340 1340 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 432 431 -0.2% 1.00x (?)
EqualSubstringString 433 432 -0.2% 1.00x (?)
EqualSubstringSubstring 431 431 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 431 431 +0.0% 1.00x
ErrorHandling 2332 2360 +1.2% 0.99x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1312 1330 +1.4% 0.99x (?)
FilterEvenUsingReduceInto 147 151 +2.7% 0.97x (?)
FrequenciesUsingReduce 6652 6764 +1.7% 0.98x (?)
FrequenciesUsingReduceInto 3176 3230 +1.7% 0.98x (?)
HashTest 1793 1815 +1.2% 0.99x (?)
Histogram 325 324 -0.3% 1.00x
Integrate 217 217 +0.0% 1.00x
IterateData 1399 1408 +0.6% 0.99x (?)
Join 375 382 +1.9% 0.98x (?)
LazilyFilteredArrayContains 37463 36255 -3.2% 1.03x
LazilyFilteredArrays 65040 66077 +1.6% 0.98x (?)
LazilyFilteredRange 4003 4004 +0.0% 1.00x (?)
LessSubstringSubstring 432 432 +0.0% 1.00x
LessSubstringSubstringGenericComparable 432 431 -0.2% 1.00x (?)
LinkedList 7556 7557 +0.0% 1.00x (?)
LuhnAlgoEager 597 605 +1.3% 0.99x (?)
LuhnAlgoLazy 598 605 +1.2% 0.99x (?)
MapReduce 398 398 +0.0% 1.00x
MapReduceAnyCollection 371 371 +0.0% 1.00x
MapReduceAnyCollectionShort 2055 2096 +2.0% 0.98x (?)
MapReduceClass 3028 3028 +0.0% 1.00x
MapReduceClassShort 4588 4661 +1.6% 0.98x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 453 461 +1.8% 0.98x (?)
MapReduceShort 2011 2071 +3.0% 0.97x (?)
MapReduceShortString 21 22 +4.8% 0.95x
Memset 216 217 +0.5% 1.00x (?)
MonteCarloE 10363 10423 +0.6% 0.99x (?)
MonteCarloPi 42898 42804 -0.2% 1.00x (?)
NSDictionaryCastToSwift 5309 5422 +2.1% 0.98x (?)
NSError 301 307 +2.0% 0.98x (?)
NibbleSort 3959 3960 +0.0% 1.00x (?)
NopDeinit 21582 21569 -0.1% 1.00x (?)
ObjectAllocation 182 186 +2.2% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObject 19157 18979 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4029 3937 -2.3% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 37779 37031 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 32688 32532 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 121374 122426 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 58215 59584 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4166 4147 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 67306 66415 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSString 1329 1286 -3.2% 1.03x (?)
ObjectiveCBridgeFromNSStringForced 2350 2361 +0.5% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3946 3923 -0.6% 1.01x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 25570 25438 -0.5% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 4133 4132 -0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 158 158 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2467 2508 +1.7% 0.98x (?)
ObjectiveCBridgeStubNSDateMutationRef 13055 13004 -0.4% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 28335 29025 +2.4% 0.98x (?)
ObjectiveCBridgeStubToNSDate 15009 14731 -1.9% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3394 3374 -0.6% 1.01x (?)
ObjectiveCBridgeStubToNSString 1527 1578 +3.3% 0.97x (?)
ObjectiveCBridgeStubToNSStringRef 112 112 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 318219 321407 +1.0% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 318777 319955 +0.4% 1.00x (?)
ObjectiveCBridgeToNSArray 28616 29574 +3.3% 0.97x (?)
ObjectiveCBridgeToNSDictionary 52611 55158 +4.8% 0.95x (?)
ObjectiveCBridgeToNSSet 44929 45664 +1.6% 0.98x (?)
ObjectiveCBridgeToNSString 1316 1355 +3.0% 0.97x
ObserverClosure 2148 2186 +1.8% 0.98x
ObserverForwarderStruct 990 990 +0.0% 1.00x
ObserverPartiallyAppliedMethod 3690 3754 +1.7% 0.98x
ObserverUnappliedMethod 2379 2400 +0.9% 0.99x (?)
OpenClose 257 266 +3.5% 0.97x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 4106 4149 +1.0% 0.99x (?)
PointerArithmetics 34357 34353 -0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1880 1884 +0.2% 1.00x (?)
PopFrontArrayGeneric 1960 1963 +0.2% 1.00x (?)
PopFrontUnsafePointer 9020 8784 -2.6% 1.03x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 64464 64792 +0.5% 0.99x (?)
PrefixAnySeqCRangeIter 14191 14143 -0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 14192 14155 -0.3% 1.00x (?)
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 4351 4361 +0.2% 1.00x (?)
PrefixAnySequenceLazy 3938 3938 +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 1324 1325 +0.1% 1.00x (?)
PrefixSequenceLazy 1413 1413 +0.0% 1.00x
PrefixWhileAnyCollection 147 147 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9387 9396 +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 10404 10410 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1391 1392 +0.1% 1.00x (?)
PrefixWhileArray 105 105 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 46 46 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 356 358 +0.6% 0.99x (?)
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 758 758 +0.0% 1.00x
PrimsSplit 757 761 +0.5% 0.99x (?)
QueueConcrete 1309 1310 +0.1% 1.00x (?)
QueueGeneric 1158 1159 +0.1% 1.00x (?)
RC4 166 166 +0.0% 1.00x
RGBHistogram 3000 2975 -0.8% 1.01x (?)
RGBHistogramOfObjects 23912 24115 +0.8% 0.99x (?)
RangeAssignment 350 354 +1.1% 0.99x (?)
RangeIterationSigned 171 171 +0.0% 1.00x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 980 996 +1.6% 0.98x (?)
RecursiveOwnedParameter 2346 2346 +0.0% 1.00x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 15302 15335 +0.2% 1.00x (?)
ReversedDictionary 127 127 +0.0% 1.00x
RomanNumbers 112754 115135 +2.1% 0.98x (?)
SetExclusiveOr 3404 3355 -1.4% 1.01x (?)
SetExclusiveOr_OfObjects 8743 8789 +0.5% 0.99x (?)
SetIntersect 322 322 +0.0% 1.00x
SetIntersect_OfObjects 1776 1778 +0.1% 1.00x (?)
SetIsSubsetOf 299 298 -0.3% 1.00x (?)
SetIsSubsetOf_OfObjects 363 363 +0.0% 1.00x
SetUnion 3120 3127 +0.2% 1.00x (?)
SetUnion_OfObjects 7298 7316 +0.2% 1.00x (?)
SevenBoom 1508 1553 +3.0% 0.97x (?)
Sim2DArray 414 413 -0.2% 1.00x (?)
SortLargeExistentials 7058 7088 +0.4% 1.00x (?)
SortLettersInPlace 1163 1176 +1.1% 0.99x (?)
SortSortedStrings 1174 1202 +2.4% 0.98x
SortStrings 2059 2105 +2.2% 0.98x
SortStringsUnicode 15539 15506 -0.2% 1.00x (?)
StackPromo 21968 21998 +0.1% 1.00x (?)
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1565 1567 +0.1% 1.00x (?)
StrToInt 2109 2177 +3.2% 0.97x
StringAdder 4234 4300 +1.6% 0.98x (?)
StringBuilder 1434 1463 +2.0% 0.98x (?)
StringBuilderLong 1077 1101 +2.2% 0.98x (?)
StringComparison_abnormal 859 858 -0.1% 1.00x (?)
StringComparison_ascii 976 1009 +3.4% 0.97x
StringComparison_emoji 2550 2546 -0.2% 1.00x (?)
StringComparison_fastPrenormal 8688 8677 -0.1% 1.00x (?)
StringComparison_latin1 5982 5973 -0.2% 1.00x (?)
StringComparison_longSharedPrefix 11513 11506 -0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 4691 4669 -0.5% 1.00x (?)
StringComparison_slowerPrenormal 4168 4168 +0.0% 1.00x
StringComparison_zalgo 1725 1716 -0.5% 1.01x (?)
StringEdits 122228 121693 -0.4% 1.00x (?)
StringEnumRawValueInitialization 1006 985 -2.1% 1.02x (?)
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 10 10 +0.0% 1.00x
StringHasPrefixAscii 1603 1660 +3.6% 0.97x
StringHasPrefixUnicode 28174 28193 +0.1% 1.00x (?)
StringHasSuffixAscii 1718 1775 +3.3% 0.97x
StringHasSuffixUnicode 85317 85079 -0.3% 1.00x (?)
StringInterpolation 9296 9442 +1.6% 0.98x (?)
StringMatch 7316 7507 +2.6% 0.97x
StringRemoveDupes 1188 1205 +1.4% 0.99x (?)
StringUTF16Builder 2403 2455 +2.2% 0.98x (?)
StringWithCString 43172 42500 -1.6% 1.02x
StringWordBuilder 1735 1774 +2.2% 0.98x (?)
StringWordBuilderReservingCapacity 1298 1313 +1.2% 0.99x
SubstringComparable 2117 2115 -0.1% 1.00x (?)
SubstringEqualString 2130 2123 -0.3% 1.00x (?)
SubstringEquatable 3192 3185 -0.2% 1.00x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 69 70 +1.4% 0.99x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21770 21607 -0.7% 1.01x (?)
SuffixAnySeqCRangeIter 3822 3838 +0.4% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3823 3840 +0.4% 1.00x (?)
SuffixAnySeqCntRange 23 23 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 23 23 +0.0% 1.00x
SuffixAnySequence 5121 5138 +0.3% 1.00x (?)
SuffixAnySequenceLazy 5201 5222 +0.4% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3751 3762 +0.3% 1.00x (?)
SuffixSequenceLazy 3753 3757 +0.1% 1.00x (?)
SumUsingReduce 101 102 +1.0% 0.99x
SumUsingReduceInto 102 101 -1.0% 1.01x
SuperChars 41715 42368 +1.6% 0.98x (?)
TwoSum 991 998 +0.7% 0.99x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 318 318 +0.0% 1.00x
Walsh 441 429 -2.7% 1.03x
WordCountHistogramASCII 8041 8163 +1.5% 0.99x (?)
WordCountHistogramUTF16 53172 52798 -0.7% 1.01x (?)
WordCountUniqueASCII 1774 1788 +0.8% 0.99x (?)
WordCountUniqueUTF16 21603 22041 +2.0% 0.98x (?)
WordSplitASCII 21004 21466 +2.2% 0.98x (?)
WordSplitUTF16 21671 22313 +3.0% 0.97x (?)
XorLoop 394 394 +0.0% 1.00x

Unoptimized (Onone)

Regression (5)
TEST OLD NEW DELTA SPEEDUP
ErrorHandling 7053 7551 +7.1% 0.93x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 126823 135519 +6.9% 0.94x (?)
StringInterpolation 13843 14772 +6.7% 0.94x (?)
LuhnAlgoLazy 5034 5368 +6.6% 0.94x (?)
StringEqualPointerComparison 3133 3331 +6.3% 0.94x
Improvement (24)
TEST OLD NEW DELTA SPEEDUP
CharIndexing_chinese_unicodeScalars_Backwards 338749 295450 -12.8% 1.15x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 95814 85123 -11.2% 1.13x
ArrayOfPOD 844 757 -10.3% 1.11x
CharIndexing_tweet_unicodeScalars 793414 712040 -10.3% 1.11x (?)
CharIndexing_russian_unicodeScalars 326092 294626 -9.6% 1.11x (?)
ArrayOfGenericPOD2 1188 1075 -9.5% 1.11x
CharIndexing_ascii_unicodeScalars 390758 354013 -9.4% 1.10x (?)
CharIndexing_japanese_unicodeScalars 467894 424179 -9.3% 1.10x (?)
CharIndexing_korean_unicodeScalars 379887 345415 -9.1% 1.10x (?)
CharIndexing_chinese_unicodeScalars 296205 269673 -9.0% 1.10x (?)
CharIndexing_japanese_unicodeScalars_Backwards 512766 467438 -8.8% 1.10x (?)
CharIteration_tweet_unicodeScalars_Backwards 643624 586993 -8.8% 1.10x (?)
CharIndexing_tweet_unicodeScalars_Backwards 836509 763928 -8.7% 1.10x (?)
CharIteration_utf16_unicodeScalars_Backwards 280628 257758 -8.1% 1.09x (?)
CharIndexing_punctuated_unicodeScalars 86143 79326 -7.9% 1.09x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 69052 63604 -7.9% 1.09x
CharIndexing_utf16_unicodeScalars 324318 299672 -7.6% 1.08x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 73095 67615 -7.5% 1.08x (?)
ObjectiveCBridgeFromNSArrayAnyObject 22940 21584 -5.9% 1.06x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 40868 38646 -5.4% 1.06x (?)
CharIndexing_utf16_unicodeScalars_Backwards 344734 326289 -5.4% 1.06x (?)
DropFirstAnyCollectionLazy 111357 105535 -5.2% 1.06x
ObjectiveCBridgeStubFromNSString 920 875 -4.9% 1.05x (?)
PointerArithmetics 120275 114544 -4.8% 1.05x
No Changes (331)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5050 5216 +3.3% 0.97x (?)
AnyHashableWithAClass 86730 86688 -0.0% 1.00x (?)
Array2D 632547 633389 +0.1% 1.00x (?)
ArrayAppend 4662 4673 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 859 846 -1.5% 1.02x (?)
ArrayAppendAscii 39679 40311 +1.6% 0.98x
ArrayAppendFromGeneric 864 866 +0.2% 1.00x (?)
ArrayAppendGenericStructs 1494 1497 +0.2% 1.00x (?)
ArrayAppendLatin1 62947 63827 +1.4% 0.99x
ArrayAppendLazyMap 167537 168438 +0.5% 0.99x (?)
ArrayAppendOptionals 1501 1505 +0.3% 1.00x (?)
ArrayAppendRepeatCol 171122 170836 -0.2% 1.00x
ArrayAppendReserved 4282 4287 +0.1% 1.00x
ArrayAppendSequence 143264 143992 +0.5% 0.99x
ArrayAppendStrings 15366 15386 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 860 862 +0.2% 1.00x (?)
ArrayAppendToGeneric 866 866 +0.0% 1.00x
ArrayAppendUTF16 61645 64189 +4.1% 0.96x
ArrayInClass 6349 6316 -0.5% 1.01x (?)
ArrayLiteral 1776 1811 +2.0% 0.98x (?)
ArrayOfGenericRef 10041 10148 +1.1% 0.99x (?)
ArrayOfRef 9258 9378 +1.3% 0.99x
ArrayPlusEqualArrayOfInt 861 859 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 231980 233603 +0.7% 0.99x (?)
ArrayPlusEqualSingleElementCollection 231276 231080 -0.1% 1.00x (?)
ArrayPlusEqualThreeElements 9277 9337 +0.6% 0.99x (?)
ArraySubscript 83431 83432 +0.0% 1.00x (?)
ArrayValueProp 3618 3705 +2.4% 0.98x (?)
ArrayValueProp2 16033 16153 +0.7% 0.99x (?)
ArrayValueProp3 4122 4196 +1.8% 0.98x
ArrayValueProp4 4069 4151 +2.0% 0.98x (?)
BinaryFloatingPointConversionFromBinaryInteger 5933 5919 -0.2% 1.00x (?)
BitCount 2207 2206 -0.0% 1.00x (?)
ByteSwap 3924 3939 +0.4% 1.00x (?)
COWTree 11435 11100 -2.9% 1.03x (?)
CSVParsing 2429895 2423752 -0.3% 1.00x (?)
CSVParsingAlt 1348604 1342136 -0.5% 1.00x (?)
CSVParsingAltIndices 2569157 2572091 +0.1% 1.00x (?)
CStringLongAscii 4826 4617 -4.3% 1.05x
CStringLongNonAscii 2129 2118 -0.5% 1.01x (?)
CStringShortAscii 7677 7705 +0.4% 1.00x (?)
Calculator 1688 1676 -0.7% 1.01x (?)
CaptureProp 251653 255641 +1.6% 0.98x
CharIndexing_ascii_unicodeScalars_Backwards 423655 426661 +0.7% 0.99x (?)
CharIndexing_korean_unicodeScalars_Backwards 405880 414001 +2.0% 0.98x (?)
CharIndexing_russian_unicodeScalars_Backwards 359223 344437 -4.1% 1.04x (?)
CharIteration_ascii_unicodeScalars 154489 155537 +0.7% 0.99x (?)
CharIteration_ascii_unicodeScalars_Backwards 292334 293171 +0.3% 1.00x (?)
CharIteration_chinese_unicodeScalars 116983 117698 +0.6% 0.99x
CharIteration_chinese_unicodeScalars_Backwards 221895 224957 +1.4% 0.99x (?)
CharIteration_japanese_unicodeScalars 185117 186232 +0.6% 0.99x
CharIteration_japanese_unicodeScalars_Backwards 352965 354810 +0.5% 0.99x (?)
CharIteration_korean_unicodeScalars 149804 150699 +0.6% 0.99x (?)
CharIteration_korean_unicodeScalars_Backwards 284081 286745 +0.9% 0.99x (?)
CharIteration_punctuatedJapanese_unicodeScalars 27612 27817 +0.7% 0.99x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 50732 51485 +1.5% 0.99x (?)
CharIteration_punctuated_unicodeScalars 34720 34875 +0.4% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 65197 65582 +0.6% 0.99x (?)
CharIteration_russian_unicodeScalars 128718 129583 +0.7% 0.99x (?)
CharIteration_russian_unicodeScalars_Backwards 244758 244716 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 305144 306766 +0.5% 0.99x
CharIteration_utf16_unicodeScalars 130414 130523 +0.1% 1.00x (?)
CharacterLiteralsLarge 5979 6122 +2.4% 0.98x
CharacterLiteralsSmall 707 708 +0.1% 1.00x
CharacterPropertiesFetch 5457 5553 +1.8% 0.98x (?)
CharacterPropertiesPrecomputed 4239 4233 -0.1% 1.00x (?)
CharacterPropertiesStashed 2333 2330 -0.1% 1.00x (?)
CharacterPropertiesStashedMemo 4922 4929 +0.1% 1.00x (?)
Chars 40150 40125 -0.1% 1.00x (?)
ClassArrayGetter 985 985 +0.0% 1.00x
Combos 2059 2158 +4.8% 0.95x (?)
DictOfArraysToArrayOfDicts 3389 3425 +1.1% 0.99x (?)
Dictionary 2577 2594 +0.7% 0.99x (?)
Dictionary2 2831 2873 +1.5% 0.99x (?)
Dictionary2OfObjects 5460 5559 +1.8% 0.98x (?)
Dictionary3 1267 1264 -0.2% 1.00x (?)
Dictionary3OfObjects 2229 2256 +1.2% 0.99x (?)
DictionaryBridge 2158 2185 +1.3% 0.99x (?)
DictionaryGroup 4226 4237 +0.3% 1.00x (?)
DictionaryGroupOfObjects 7443 7536 +1.2% 0.99x (?)
DictionaryLiteral 8610 8700 +1.0% 0.99x (?)
DictionaryOfObjects 6120 6149 +0.5% 1.00x (?)
DictionaryRemove 18219 18158 -0.3% 1.00x (?)
DictionaryRemoveOfObjects 49831 50069 +0.5% 1.00x (?)
DictionarySubscriptDefaultMutation 2111 2136 +1.2% 0.99x
DictionarySubscriptDefaultMutationArray 2377 2409 +1.3% 0.99x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9161 9261 +1.1% 0.99x (?)
DictionarySubscriptDefaultMutationOfObjects 5604 5797 +3.4% 0.97x (?)
DictionarySwap 5228 5250 +0.4% 1.00x (?)
DictionarySwapOfObjects 22308 22654 +1.6% 0.98x (?)
DoubleWidthDivision 23860 23813 -0.2% 1.00x (?)
DropFirstAnyCollection 13636 13596 -0.3% 1.00x
DropFirstAnySeqCRangeIter 20548 20565 +0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 20399 20413 +0.1% 1.00x (?)
DropFirstAnySeqCntRange 13596 13706 +0.8% 0.99x (?)
DropFirstAnySeqCntRangeLazy 13670 13669 -0.0% 1.00x (?)
DropFirstAnySequence 10724 10802 +0.7% 0.99x
DropFirstAnySequenceLazy 10643 10773 +1.2% 0.99x
DropFirstArray 3874 4050 +4.5% 0.96x (?)
DropFirstArrayLazy 25070 25056 -0.1% 1.00x (?)
DropFirstCountableRange 324 325 +0.3% 1.00x (?)
DropFirstCountableRangeLazy 26771 26889 +0.4% 1.00x (?)
DropFirstSequence 10317 10488 +1.7% 0.98x
DropFirstSequenceLazy 10293 10541 +2.4% 0.98x
DropLastAnyCollection 4540 4551 +0.2% 1.00x (?)
DropLastAnyCollectionLazy 37067 35474 -4.3% 1.04x (?)
DropLastAnySeqCRangeIter 37550 37825 +0.7% 0.99x (?)
DropLastAnySeqCRangeIterLazy 37514 37818 +0.8% 0.99x (?)
DropLastAnySeqCntRange 4526 4542 +0.4% 1.00x (?)
DropLastAnySeqCntRangeLazy 4536 4582 +1.0% 0.99x
DropLastAnySequence 28596 28886 +1.0% 0.99x (?)
DropLastAnySequenceLazy 28674 28890 +0.8% 0.99x
DropLastCountableRange 111 112 +0.9% 0.99x
DropLastCountableRangeLazy 8996 9040 +0.5% 1.00x (?)
DropLastSequence 28476 28870 +1.4% 0.99x
DropLastSequenceLazy 28496 28923 +1.5% 0.99x
DropWhileAnyCollection 17364 17433 +0.4% 1.00x (?)
DropWhileAnyCollectionLazy 18814 18847 +0.2% 1.00x (?)
DropWhileAnySeqCRangeIter 21985 22058 +0.3% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 18859 18842 -0.1% 1.00x (?)
DropWhileAnySeqCntRange 17409 17405 -0.0% 1.00x (?)
DropWhileAnySeqCntRangeLazy 18869 18872 +0.0% 1.00x (?)
DropWhileAnySequence 12112 12326 +1.8% 0.98x
DropWhileAnySequenceLazy 9973 10072 +1.0% 0.99x
DropWhileArrayLazy 13637 13667 +0.2% 1.00x
DropWhileCountableRange 4158 4164 +0.1% 1.00x (?)
DropWhileCountableRangeLazy 18706 18594 -0.6% 1.01x (?)
DropWhileSequence 11916 12021 +0.9% 0.99x
DropWhileSequenceLazy 9766 9774 +0.1% 1.00x (?)
EqualStringSubstring 476 477 +0.2% 1.00x (?)
EqualSubstringString 477 477 +0.0% 1.00x
EqualSubstringSubstring 477 477 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 485 485 +0.0% 1.00x
ExclusivityGlobal 177 183 +3.4% 0.97x
ExclusivityIndependent 68 70 +2.9% 0.97x (?)
FilterEvenUsingReduce 3727 3743 +0.4% 1.00x (?)
FilterEvenUsingReduceInto 1971 1987 +0.8% 0.99x
FrequenciesUsingReduce 10489 10637 +1.4% 0.99x (?)
FrequenciesUsingReduceInto 5453 5513 +1.1% 0.99x (?)
Hanoi 19615 20132 +2.6% 0.97x
HashTest 16744 16826 +0.5% 1.00x (?)
Histogram 6482 6482 +0.0% 1.00x
Integrate 824 822 -0.2% 1.00x
IterateData 7759 7849 +1.2% 0.99x
Join 1106 1110 +0.4% 1.00x
LazilyFilteredArrayContains 770221 771422 +0.2% 1.00x (?)
LazilyFilteredArrays 1464333 1467192 +0.2% 1.00x (?)
LazilyFilteredRange 466356 465601 -0.2% 1.00x (?)
LessSubstringSubstring 477 477 +0.0% 1.00x
LessSubstringSubstringGenericComparable 483 484 +0.2% 1.00x
LinkedList 32160 32153 -0.0% 1.00x (?)
LuhnAlgoEager 5118 5095 -0.4% 1.00x (?)
MapReduce 27302 27452 +0.5% 0.99x (?)
MapReduceAnyCollection 27260 27311 +0.2% 1.00x (?)
MapReduceAnyCollectionShort 39119 39697 +1.5% 0.99x (?)
MapReduceClass 31949 31969 +0.1% 1.00x (?)
MapReduceClassShort 42508 43104 +1.4% 0.99x (?)
MapReduceLazyCollection 23248 23280 +0.1% 1.00x (?)
MapReduceLazyCollectionShort 35113 34243 -2.5% 1.03x (?)
MapReduceLazySequence 18192 18595 +2.2% 0.98x
MapReduceSequence 30273 30604 +1.1% 0.99x
MapReduceShort 38795 38644 -0.4% 1.00x (?)
MapReduceShortString 244 253 +3.7% 0.96x (?)
MapReduceString 1922 1917 -0.3% 1.00x (?)
Memset 48247 48251 +0.0% 1.00x (?)
MonteCarloE 901503 901500 -0.0% 1.00x (?)
MonteCarloPi 4018721 4022004 +0.1% 1.00x (?)
NSDictionaryCastToSwift 7475 7149 -4.4% 1.05x (?)
NSError 710 723 +1.8% 0.98x (?)
NSStringConversion 374 357 -4.5% 1.05x
NibbleSort 297957 300932 +1.0% 0.99x
NopDeinit 162191 167811 +3.5% 0.97x (?)
ObjectAllocation 1344 1369 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8426 8279 -1.7% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 36196 35467 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObject 64615 64068 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 6215 6455 +3.9% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 71724 71345 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSString 3145 3106 -1.2% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2693 2709 +0.6% 0.99x (?)
ObjectiveCBridgeStubDataAppend 4338 4414 +1.8% 0.98x (?)
ObjectiveCBridgeStubDateMutation 630 630 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 27179 26525 -2.4% 1.02x (?)
ObjectiveCBridgeStubFromNSDate 4912 4910 -0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 205 205 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2964 2953 -0.4% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 15562 16056 +3.2% 0.97x (?)
ObjectiveCBridgeStubToArrayOfNSString 28878 29710 +2.9% 0.97x
ObjectiveCBridgeStubToNSDate 16079 16215 +0.8% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3461 3471 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSString 1571 1611 +2.5% 0.98x
ObjectiveCBridgeStubToNSStringRef 162 162 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 330540 330565 +0.0% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 327572 332283 +1.4% 0.99x (?)
ObjectiveCBridgeToNSArray 29005 29756 +2.6% 0.97x (?)
ObjectiveCBridgeToNSDictionary 55046 57031 +3.6% 0.97x (?)
ObjectiveCBridgeToNSSet 46790 45957 -1.8% 1.02x (?)
ObjectiveCBridgeToNSString 1345 1381 +2.7% 0.97x
ObserverClosure 6363 6339 -0.4% 1.00x
ObserverForwarderStruct 4422 4425 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 7816 7922 +1.4% 0.99x (?)
ObserverUnappliedMethod 8014 8043 +0.4% 1.00x (?)
OpenClose 552 567 +2.7% 0.97x
PartialApplyDynamicType 40552 41334 +1.9% 0.98x (?)
Phonebook 20497 21062 +2.8% 0.97x
PolymorphicCalls 6139 6219 +1.3% 0.99x (?)
PopFrontArray 4942 4956 +0.3% 1.00x (?)
PopFrontArrayGeneric 5685 5778 +1.6% 0.98x
PopFrontUnsafePointer 10649 11200 +5.2% 0.95x (?)
PrefixAnyCollection 13620 13629 +0.1% 1.00x (?)
PrefixAnyCollectionLazy 109071 107273 -1.6% 1.02x (?)
PrefixAnySeqCRangeIter 16503 16559 +0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 16395 16424 +0.2% 1.00x (?)
PrefixAnySeqCntRange 13572 13621 +0.4% 1.00x (?)
PrefixAnySeqCntRangeLazy 13664 13714 +0.4% 1.00x (?)
PrefixAnySequence 8957 9042 +0.9% 0.99x
PrefixAnySequenceLazy 8967 9087 +1.3% 0.99x
PrefixArray 3946 3929 -0.4% 1.00x (?)
PrefixArrayLazy 25078 25031 -0.2% 1.00x (?)
PrefixCountableRange 325 325 +0.0% 1.00x
PrefixCountableRangeLazy 26567 26713 +0.5% 0.99x (?)
PrefixSequence 8724 8784 +0.7% 0.99x (?)
PrefixSequenceLazy 8789 8810 +0.2% 1.00x (?)
PrefixWhileAnyCollection 24856 24926 +0.3% 1.00x
PrefixWhileAnyCollectionLazy 15750 15740 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIter 33040 33467 +1.3% 0.99x (?)
PrefixWhileAnySeqCRangeIterLazy 15750 15703 -0.3% 1.00x (?)
PrefixWhileAnySeqCntRange 24827 25008 +0.7% 0.99x (?)
PrefixWhileAnySeqCntRangeLazy 15954 15987 +0.2% 1.00x (?)
PrefixWhileAnySequence 26442 26566 +0.5% 1.00x (?)
PrefixWhileAnySequenceLazy 9056 9145 +1.0% 0.99x
PrefixWhileArray 11757 11799 +0.4% 1.00x
PrefixWhileArrayLazy 11900 11933 +0.3% 1.00x (?)
PrefixWhileCountableRange 11741 11763 +0.2% 1.00x (?)
PrefixWhileCountableRangeLazy 15539 15491 -0.3% 1.00x
PrefixWhileSequence 26338 26567 +0.9% 0.99x (?)
PrefixWhileSequenceLazy 8840 8867 +0.3% 1.00x
Prims 9726 9719 -0.1% 1.00x (?)
PrimsSplit 9824 9596 -2.3% 1.02x (?)
QueueConcrete 15057 15166 +0.7% 0.99x
QueueGeneric 19061 19258 +1.0% 0.99x
RC4 17131 17325 +1.1% 0.99x (?)
RGBHistogram 26941 26657 -1.1% 1.01x (?)
RGBHistogramOfObjects 96704 96936 +0.2% 1.00x (?)
RangeAssignment 2701 2742 +1.5% 0.99x (?)
RangeIterationSigned 16735 16781 +0.3% 1.00x (?)
RangeIterationSigned64 39256 39516 +0.7% 0.99x
RangeIterationUnsigned 34883 35076 +0.6% 0.99x (?)
RangeReplaceableCollectionPlusDefault 8531 8759 +2.7% 0.97x (?)
RecursiveOwnedParameter 7879 7882 +0.0% 1.00x (?)
ReversedArray 13102 13130 +0.2% 1.00x (?)
ReversedBidirectional 47272 47085 -0.4% 1.00x (?)
ReversedDictionary 22958 23072 +0.5% 1.00x
RomanNumbers 1214585 1239661 +2.1% 0.98x (?)
SetExclusiveOr 17282 17293 +0.1% 1.00x (?)
SetExclusiveOr_OfObjects 41733 41592 -0.3% 1.00x
SetIntersect 8122 8178 +0.7% 0.99x
SetIntersect_OfObjects 12139 12168 +0.2% 1.00x (?)
SetIsSubsetOf 1336 1344 +0.6% 0.99x (?)
SetIsSubsetOf_OfObjects 1548 1546 -0.1% 1.00x (?)
SetUnion 11917 11809 -0.9% 1.01x
SetUnion_OfObjects 29079 28989 -0.3% 1.00x (?)
SevenBoom 1660 1677 +1.0% 0.99x (?)
Sim2DArray 43708 43620 -0.2% 1.00x
SortLargeExistentials 15729 15713 -0.1% 1.00x (?)
SortLettersInPlace 2827 2885 +2.1% 0.98x (?)
SortSortedStrings 1320 1377 +4.3% 0.96x
SortStrings 2532 2578 +1.8% 0.98x
SortStringsUnicode 16342 16386 +0.3% 1.00x (?)
StackPromo 91487 92590 +1.2% 0.99x (?)
StaticArray 2688 2636 -1.9% 1.02x (?)
StrComplexWalk 6656 6441 -3.2% 1.03x
StrToInt 59855 61139 +2.1% 0.98x
StringAdder 4726 4820 +2.0% 0.98x
StringBuilder 6730 6840 +1.6% 0.98x (?)
StringBuilderLong 2751 2739 -0.4% 1.00x (?)
StringComparison_abnormal 1461 1467 +0.4% 1.00x (?)
StringComparison_ascii 9502 9568 +0.7% 0.99x (?)
StringComparison_emoji 3811 3830 +0.5% 1.00x (?)
StringComparison_fastPrenormal 13229 13267 +0.3% 1.00x (?)
StringComparison_latin1 9492 9631 +1.5% 0.99x
StringComparison_longSharedPrefix 13103 13101 -0.0% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 6912 6950 +0.5% 0.99x (?)
StringComparison_slowerPrenormal 6815 6827 +0.2% 1.00x (?)
StringComparison_zalgo 2858 2870 +0.4% 1.00x (?)
StringEdits 322939 331252 +2.6% 0.97x (?)
StringEnumRawValueInitialization 20872 21271 +1.9% 0.98x (?)
StringFromLongWholeSubstring 22 22 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 199 203 +2.0% 0.98x
StringHasPrefixAscii 3118 3087 -1.0% 1.01x (?)
StringHasPrefixUnicode 30898 30822 -0.2% 1.00x (?)
StringHasSuffixAscii 3092 3181 +2.9% 0.97x
StringHasSuffixUnicode 88332 88008 -0.4% 1.00x (?)
StringMatch 32905 32928 +0.1% 1.00x (?)
StringRemoveDupes 1405 1422 +1.2% 0.99x (?)
StringUTF16Builder 7624 7708 +1.1% 0.99x (?)
StringWalk 13061 13205 +1.1% 0.99x
StringWithCString 39448 37691 -4.5% 1.05x
StringWordBuilder 2513 2530 +0.7% 0.99x (?)
StringWordBuilderReservingCapacity 2176 2184 +0.4% 1.00x
SubstringComparable 4169 4184 +0.4% 1.00x (?)
SubstringEqualString 3544 3465 -2.2% 1.02x (?)
SubstringEquatable 8311 8270 -0.5% 1.00x (?)
SubstringFromLongString 24 24 +0.0% 1.00x
SubstringFromLongStringGeneric 100 99 -1.0% 1.01x
SuffixAnyCollection 4558 4532 -0.6% 1.01x (?)
SuffixAnyCollectionLazy 35228 35197 -0.1% 1.00x (?)
SuffixAnySeqCRangeIter 33655 33748 +0.3% 1.00x (?)
SuffixAnySeqCRangeIterLazy 33759 33861 +0.3% 1.00x (?)
SuffixAnySeqCntRange 4556 4572 +0.4% 1.00x (?)
SuffixAnySeqCntRangeLazy 4578 4583 +0.1% 1.00x (?)
SuffixAnySequence 24959 25081 +0.5% 1.00x
SuffixAnySequenceLazy 25006 25219 +0.9% 0.99x
SuffixCountableRange 112 111 -0.9% 1.01x (?)
SuffixCountableRangeLazy 8919 8976 +0.6% 0.99x (?)
SuffixSequence 24885 25143 +1.0% 0.99x (?)
SuffixSequenceLazy 24873 25005 +0.5% 0.99x
SumUsingReduce 170190 170855 +0.4% 1.00x (?)
SumUsingReduceInto 166476 167120 +0.4% 1.00x
SuperChars 213144 216493 +1.6% 0.98x (?)
TwoSum 3903 3905 +0.1% 1.00x (?)
TypeFlood 162 165 +1.9% 0.98x (?)
UTF8Decode 29992 30048 +0.2% 1.00x (?)
Walsh 12046 12007 -0.3% 1.00x (?)
WordCountHistogramASCII 47951 48394 +0.9% 0.99x (?)
WordCountHistogramUTF16 100634 102531 +1.9% 0.98x (?)
WordCountUniqueASCII 7895 7955 +0.8% 0.99x (?)
WordCountUniqueUTF16 34184 33238 -2.8% 1.03x (?)
WordSplitASCII 24908 26090 +4.7% 0.95x (?)
WordSplitUTF16 26402 27280 +3.3% 0.97x (?)
XorLoop 23401 23383 -0.1% 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: 16 GB

@mikeash
Copy link
Contributor Author

mikeash commented Feb 7, 2018

Let's see how it does with a direct call to malloc for alignments where that's suitable.

@mikeash
Copy link
Contributor Author

mikeash commented Feb 7, 2018

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Feb 8, 2018

Build comment file:

Optimized (O)

Regression (1)
TEST OLD NEW DELTA SPEEDUP
Hanoi 3310 3611 +9.1% 0.92x
Improvement (1)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubURLAppendPath 331231 312636 -5.6% 1.06x (?)
No Changes (358)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3622 3632 +0.3% 1.00x (?)
AnyHashableWithAClass 69403 69927 +0.8% 0.99x (?)
Array2D 2555 2552 -0.1% 1.00x (?)
ArrayAppend 1025 1026 +0.1% 1.00x (?)
ArrayAppendArrayOfInt 789 796 +0.9% 0.99x (?)
ArrayAppendAscii 13651 13734 +0.6% 0.99x
ArrayAppendFromGeneric 799 787 -1.5% 1.02x (?)
ArrayAppendGenericStructs 1406 1410 +0.3% 1.00x (?)
ArrayAppendLatin1 38522 38579 +0.1% 1.00x (?)
ArrayAppendLazyMap 1334 1335 +0.1% 1.00x (?)
ArrayAppendOptionals 1430 1420 -0.7% 1.01x (?)
ArrayAppendRepeatCol 1341 1329 -0.9% 1.01x (?)
ArrayAppendReserved 758 760 +0.3% 1.00x (?)
ArrayAppendSequence 1128 1124 -0.4% 1.00x (?)
ArrayAppendStrings 15237 15231 -0.0% 1.00x (?)
ArrayAppendToFromGeneric 796 799 +0.4% 1.00x (?)
ArrayAppendToGeneric 799 787 -1.5% 1.02x (?)
ArrayAppendUTF16 38041 37320 -1.9% 1.02x
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 149 149 +0.0% 1.00x
ArrayOfGenericRef 4383 4387 +0.1% 1.00x (?)
ArrayOfPOD 180 183 +1.7% 0.98x (?)
ArrayOfRef 4368 4385 +0.4% 1.00x (?)
ArrayPlusEqualArrayOfInt 794 793 -0.1% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5466 5459 -0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 1013 1012 -0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1654 1655 +0.1% 1.00x (?)
ArraySubscript 1530 1531 +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
BinaryFloatingPointConversionFromBinaryInteger 45 45 +0.0% 1.00x
BitCount 202 202 +0.0% 1.00x
ByteSwap 100 100 +0.0% 1.00x
COWTree 3574 3621 +1.3% 0.99x (?)
CSVParsing 763855 762766 -0.1% 1.00x (?)
CSVParsingAlt 726041 728649 +0.4% 1.00x (?)
CSVParsingAltIndices 355391 356426 +0.3% 1.00x (?)
CStringLongAscii 4773 4773 +0.0% 1.00x
CStringLongNonAscii 2072 2084 +0.6% 0.99x (?)
CStringShortAscii 4706 4737 +0.7% 0.99x (?)
Calculator 432 436 +0.9% 0.99x
CaptureProp 9457 9172 -3.0% 1.03x
CharIndexing_ascii_unicodeScalars 15176 15184 +0.1% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 14829 14834 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 11496 11502 +0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 11237 11240 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 18164 18173 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 17752 17756 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 14721 14721 +0.0% 1.00x
CharIndexing_korean_unicodeScalars_Backwards 14383 14385 +0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2761 2769 +0.3% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2702 2707 +0.2% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3451 3456 +0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3375 3379 +0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars 12648 12657 +0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 12364 12367 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 29927 29912 -0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 28904 29238 +1.2% 0.99x
CharIndexing_utf16_unicodeScalars 20634 20672 +0.2% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 21503 21506 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 21167 21181 +0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 13356 13273 -0.6% 1.01x (?)
CharIteration_chinese_unicodeScalars 16019 16024 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 10141 10064 -0.8% 1.01x
CharIteration_japanese_unicodeScalars 25380 25358 -0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 15963 15906 -0.4% 1.00x (?)
CharIteration_korean_unicodeScalars 20504 20519 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 12952 12896 -0.4% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3777 3772 -0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2463 2441 -0.9% 1.01x
CharIteration_punctuated_unicodeScalars 4741 4743 +0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3093 3040 -1.7% 1.02x (?)
CharIteration_russian_unicodeScalars 17646 17630 -0.1% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 11169 11048 -1.1% 1.01x (?)
CharIteration_tweet_unicodeScalars 41804 41841 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 26239 26256 +0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars 27605 27658 +0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 16619 16690 +0.4% 1.00x (?)
CharacterLiteralsLarge 6099 6101 +0.0% 1.00x (?)
CharacterLiteralsSmall 416 416 +0.0% 1.00x
CharacterPropertiesFetch 4667 4693 +0.6% 0.99x (?)
CharacterPropertiesPrecomputed 1057 1050 -0.7% 1.01x (?)
CharacterPropertiesStashed 1586 1598 +0.8% 0.99x (?)
CharacterPropertiesStashedMemo 1597 1604 +0.4% 1.00x (?)
Chars 971 971 +0.0% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 452 456 +0.9% 0.99x (?)
DictOfArraysToArrayOfDicts 783 789 +0.8% 0.99x (?)
Dictionary 499 505 +1.2% 0.99x (?)
Dictionary2 1612 1622 +0.6% 0.99x (?)
Dictionary2OfObjects 2967 2987 +0.7% 0.99x (?)
Dictionary3 239 240 +0.4% 1.00x (?)
Dictionary3OfObjects 674 679 +0.7% 0.99x (?)
DictionaryBridge 1953 1991 +1.9% 0.98x (?)
DictionaryGroup 133 132 -0.8% 1.01x (?)
DictionaryGroupOfObjects 1926 1928 +0.1% 1.00x (?)
DictionaryLiteral 1601 1601 +0.0% 1.00x
DictionaryOfObjects 2172 2183 +0.5% 0.99x (?)
DictionaryRemove 2810 2788 -0.8% 1.01x (?)
DictionaryRemoveOfObjects 23770 23895 +0.5% 0.99x (?)
DictionarySubscriptDefaultMutation 152 151 -0.7% 1.01x (?)
DictionarySubscriptDefaultMutationArray 490 491 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 3807 3832 +0.7% 0.99x (?)
DictionarySubscriptDefaultMutationOfObjects 1385 1390 +0.4% 1.00x (?)
DictionarySwap 481 481 +0.0% 1.00x
DictionarySwapOfObjects 7360 7397 +0.5% 0.99x (?)
DoubleWidthDivision 237 238 +0.4% 1.00x (?)
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 65266 65596 +0.5% 0.99x (?)
DropFirstAnySeqCRangeIter 18320 18200 -0.7% 1.01x (?)
DropFirstAnySeqCRangeIterLazy 18320 18201 -0.6% 1.01x (?)
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 4413 4388 -0.6% 1.01x (?)
DropFirstAnySequenceLazy 4404 4397 -0.2% 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 2700 2700 +0.0% 1.00x
DropFirstSequenceLazy 2794 2794 +0.0% 1.00x
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21772 21764 -0.0% 1.00x (?)
DropLastAnySeqCRangeIter 3524 3565 +1.2% 0.99x (?)
DropLastAnySeqCRangeIterLazy 3560 3561 +0.0% 1.00x (?)
DropLastAnySeqCntRange 23 23 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 23 23 +0.0% 1.00x
DropLastAnySequence 5090 5101 +0.2% 1.00x (?)
DropLastAnySequenceLazy 5193 5202 +0.2% 1.00x (?)
DropLastCountableRange 12 12 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 637 635 -0.3% 1.00x (?)
DropLastSequenceLazy 637 637 +0.0% 1.00x
DropWhileAnyCollection 100 100 +0.0% 1.00x
DropWhileAnyCollectionLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCRangeIter 14852 14806 -0.3% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 147 147 +0.0% 1.00x
DropWhileAnySequence 4732 4757 +0.5% 0.99x
DropWhileAnySequenceLazy 1856 1856 +0.0% 1.00x
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1341 1341 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 431 432 +0.2% 1.00x (?)
EqualSubstringString 431 432 +0.2% 1.00x (?)
EqualSubstringSubstring 431 432 +0.2% 1.00x (?)
EqualSubstringSubstringGenericEquatable 430 431 +0.2% 1.00x (?)
ErrorHandling 2369 2364 -0.2% 1.00x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1306 1309 +0.2% 1.00x (?)
FilterEvenUsingReduceInto 149 151 +1.3% 0.99x (?)
FrequenciesUsingReduce 6679 6737 +0.9% 0.99x (?)
FrequenciesUsingReduceInto 3173 3192 +0.6% 0.99x (?)
HashTest 1769 1763 -0.3% 1.00x (?)
Histogram 327 325 -0.6% 1.01x (?)
Integrate 224 224 +0.0% 1.00x
IterateData 1414 1424 +0.7% 0.99x (?)
Join 370 372 +0.5% 0.99x (?)
LazilyFilteredArrayContains 37889 36694 -3.2% 1.03x (?)
LazilyFilteredArrays 65095 65191 +0.1% 1.00x (?)
LazilyFilteredRange 3825 3827 +0.1% 1.00x (?)
LessSubstringSubstring 432 432 +0.0% 1.00x
LessSubstringSubstringGenericComparable 432 432 +0.0% 1.00x
LinkedList 7547 7546 -0.0% 1.00x (?)
LuhnAlgoEager 595 590 -0.8% 1.01x (?)
LuhnAlgoLazy 597 597 +0.0% 1.00x
MapReduce 398 398 +0.0% 1.00x
MapReduceAnyCollection 400 400 +0.0% 1.00x
MapReduceAnyCollectionShort 2024 2033 +0.4% 1.00x (?)
MapReduceClass 3043 3043 +0.0% 1.00x
MapReduceClassShort 4603 4607 +0.1% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 37 38 +2.7% 0.97x (?)
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 451 451 +0.0% 1.00x
MapReduceShort 2016 2025 +0.4% 1.00x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 83 83 +0.0% 1.00x
Memset 216 216 +0.0% 1.00x
MonteCarloE 10338 10331 -0.1% 1.00x (?)
MonteCarloPi 42956 42969 +0.0% 1.00x (?)
NSDictionaryCastToSwift 5388 5396 +0.1% 1.00x (?)
NSError 297 303 +2.0% 0.98x (?)
NSStringConversion 321 323 +0.6% 0.99x
NibbleSort 3961 3961 +0.0% 1.00x
NopDeinit 21591 21589 -0.0% 1.00x (?)
ObjectAllocation 182 183 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 19478 19440 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3905 3932 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 37643 37092 -1.5% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 32296 32728 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122232 118896 -2.7% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObject 57932 59434 +2.6% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4152 4163 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 65643 68798 +4.8% 0.95x (?)
ObjectiveCBridgeFromNSString 1334 1337 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2332 2353 +0.9% 0.99x (?)
ObjectiveCBridgeStubDataAppend 3874 3893 +0.5% 1.00x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 26219 25929 -1.1% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 4147 4144 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 850 841 -1.1% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 156 155 -0.6% 1.01x (?)
ObjectiveCBridgeStubNSDataAppend 2468 2459 -0.4% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 13046 12890 -1.2% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 28628 28655 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14840 14346 -3.3% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3413 3423 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSString 1540 1560 +1.3% 0.99x (?)
ObjectiveCBridgeStubToNSStringRef 112 113 +0.9% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 332099 324852 -2.2% 1.02x (?)
ObjectiveCBridgeToNSArray 28240 28587 +1.2% 0.99x (?)
ObjectiveCBridgeToNSDictionary 52134 54799 +5.1% 0.95x (?)
ObjectiveCBridgeToNSSet 44514 44198 -0.7% 1.01x (?)
ObjectiveCBridgeToNSString 1316 1320 +0.3% 1.00x (?)
ObserverClosure 2160 2153 -0.3% 1.00x (?)
ObserverForwarderStruct 996 995 -0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 3739 3735 -0.1% 1.00x (?)
ObserverUnappliedMethod 2360 2363 +0.1% 1.00x (?)
OpenClose 252 260 +3.2% 0.97x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 4039 4122 +2.1% 0.98x
PointerArithmetics 34378 34381 +0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1938 1867 -3.7% 1.04x (?)
PopFrontArrayGeneric 1885 1881 -0.2% 1.00x (?)
PopFrontUnsafePointer 9011 8794 -2.4% 1.02x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 65309 65513 +0.3% 1.00x (?)
PrefixAnySeqCRangeIter 14149 14162 +0.1% 1.00x (?)
PrefixAnySeqCRangeIterLazy 14193 14162 -0.2% 1.00x (?)
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 3801 3820 +0.5% 1.00x (?)
PrefixAnySequenceLazy 3776 3815 +1.0% 0.99x
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 1326 1326 +0.0% 1.00x
PrefixSequenceLazy 1414 1414 +0.0% 1.00x
PrefixWhileAnyCollection 147 147 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9299 9287 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCntRange 142 142 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 106 106 +0.0% 1.00x
PrefixWhileAnySequence 10381 10395 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1392 1392 +0.0% 1.00x
PrefixWhileArray 105 105 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 46 46 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 359 357 -0.6% 1.01x (?)
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 751 749 -0.3% 1.00x (?)
PrimsSplit 756 752 -0.5% 1.01x (?)
QueueConcrete 1308 1308 +0.0% 1.00x
QueueGeneric 1157 1156 -0.1% 1.00x (?)
RC4 168 168 +0.0% 1.00x
RGBHistogram 3023 2995 -0.9% 1.01x (?)
RGBHistogramOfObjects 23886 23967 +0.3% 1.00x (?)
RangeAssignment 352 353 +0.3% 1.00x (?)
RangeIterationSigned 171 171 +0.0% 1.00x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 977 983 +0.6% 0.99x (?)
RecursiveOwnedParameter 2379 2382 +0.1% 1.00x (?)
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 15267 15296 +0.2% 1.00x (?)
ReversedDictionary 126 125 -0.8% 1.01x (?)
RomanNumbers 114212 116880 +2.3% 0.98x (?)
SetExclusiveOr 3362 3343 -0.6% 1.01x (?)
SetExclusiveOr_OfObjects 8789 8741 -0.5% 1.01x (?)
SetIntersect 332 332 +0.0% 1.00x
SetIntersect_OfObjects 1758 1756 -0.1% 1.00x (?)
SetIsSubsetOf 299 299 +0.0% 1.00x
SetIsSubsetOf_OfObjects 366 366 +0.0% 1.00x
SetUnion 3195 3187 -0.3% 1.00x (?)
SetUnion_OfObjects 7327 7289 -0.5% 1.01x (?)
SevenBoom 1523 1529 +0.4% 1.00x (?)
Sim2DArray 411 411 +0.0% 1.00x
SortLargeExistentials 7029 7063 +0.5% 1.00x (?)
SortLettersInPlace 1159 1164 +0.4% 1.00x (?)
SortSortedStrings 1164 1205 +3.5% 0.97x
SortStrings 2032 2093 +3.0% 0.97x
SortStringsUnicode 15303 15405 +0.7% 0.99x
StackPromo 22027 23093 +4.8% 0.95x (?)
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1566 1568 +0.1% 1.00x (?)
StrToInt 2078 2151 +3.5% 0.97x
StringAdder 4247 4254 +0.2% 1.00x (?)
StringBuilder 1438 1432 -0.4% 1.00x (?)
StringBuilderLong 1093 1100 +0.6% 0.99x (?)
StringComparison_abnormal 858 864 +0.7% 0.99x (?)
StringComparison_ascii 946 978 +3.4% 0.97x
StringComparison_emoji 2540 2549 +0.4% 1.00x (?)
StringComparison_fastPrenormal 8658 8686 +0.3% 1.00x (?)
StringComparison_latin1 5950 5968 +0.3% 1.00x (?)
StringComparison_longSharedPrefix 11510 11515 +0.0% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 4667 4686 +0.4% 1.00x (?)
StringComparison_slowerPrenormal 4143 4186 +1.0% 0.99x (?)
StringComparison_zalgo 1712 1720 +0.5% 1.00x (?)
StringEdits 118168 121685 +3.0% 0.97x (?)
StringEnumRawValueInitialization 1010 1000 -1.0% 1.01x (?)
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 10 10 +0.0% 1.00x
StringHasPrefixAscii 1518 1576 +3.8% 0.96x
StringHasPrefixUnicode 28062 28055 -0.0% 1.00x (?)
StringHasSuffixAscii 1661 1719 +3.5% 0.97x
StringHasSuffixUnicode 85157 85091 -0.1% 1.00x (?)
StringInterpolation 9207 9273 +0.7% 0.99x (?)
StringMatch 7294 7426 +1.8% 0.98x
StringRemoveDupes 1196 1202 +0.5% 1.00x (?)
StringUTF16Builder 2399 2406 +0.3% 1.00x (?)
StringWalk 1425 1433 +0.6% 0.99x
StringWithCString 43194 43051 -0.3% 1.00x (?)
StringWordBuilder 1726 1763 +2.1% 0.98x (?)
StringWordBuilderReservingCapacity 1284 1312 +2.2% 0.98x
SubstringComparable 2052 2061 +0.4% 1.00x (?)
SubstringEqualString 2127 2133 +0.3% 1.00x (?)
SubstringEquatable 3152 3172 +0.6% 0.99x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 70 69 -1.4% 1.01x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21697 21878 +0.8% 0.99x (?)
SuffixAnySeqCRangeIter 3851 3815 -0.9% 1.01x (?)
SuffixAnySeqCRangeIterLazy 3816 3855 +1.0% 0.99x (?)
SuffixAnySeqCntRange 23 23 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 23 23 +0.0% 1.00x
SuffixAnySequence 5128 5042 -1.7% 1.02x (?)
SuffixAnySequenceLazy 5258 5187 -1.4% 1.01x
SuffixCountableRange 12 12 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3756 3746 -0.3% 1.00x (?)
SuffixSequenceLazy 3762 3749 -0.3% 1.00x (?)
SumUsingReduce 102 102 +0.0% 1.00x
SumUsingReduceInto 102 102 +0.0% 1.00x
SuperChars 41772 41507 -0.6% 1.01x (?)
TwoSum 1001 999 -0.2% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 313 313 +0.0% 1.00x
Walsh 418 405 -3.1% 1.03x
WordCountHistogramASCII 8011 8226 +2.7% 0.97x
WordCountHistogramUTF16 51859 52168 +0.6% 0.99x (?)
WordCountUniqueASCII 1788 1814 +1.5% 0.99x (?)
WordCountUniqueUTF16 21946 21819 -0.6% 1.01x (?)
WordSplitASCII 20831 20879 +0.2% 1.00x (?)
WordSplitUTF16 21680 21815 +0.6% 0.99x (?)
XorLoop 387 393 +1.6% 0.98x (?)

Unoptimized (Onone)

Regression (6)
TEST OLD NEW DELTA SPEEDUP
FrequenciesUsingReduceInto 5502 5964 +8.4% 0.92x (?)
StringEqualPointerComparison 3297 3526 +6.9% 0.94x
PolymorphicCalls 5936 6331 +6.7% 0.94x
PopFrontUnsafePointer 10608 11228 +5.8% 0.94x (?)
Calculator 1631 1724 +5.7% 0.95x
ObjectiveCBridgeStubFromArrayOfNSString 27117 28632 +5.6% 0.95x (?)
Improvement (3)
TEST OLD NEW DELTA SPEEDUP
NSDictionaryCastToSwift 7162 6473 -9.6% 1.11x (?)
PopFrontArray 4947 4525 -8.5% 1.09x (?)
ArrayOfGenericPOD2 1186 1129 -4.8% 1.05x
No Changes (351)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5066 5086 +0.4% 1.00x (?)
AnyHashableWithAClass 86131 86362 +0.3% 1.00x (?)
Array2D 631802 631975 +0.0% 1.00x (?)
ArrayAppend 4664 4672 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 846 858 +1.4% 0.99x (?)
ArrayAppendAscii 39928 40008 +0.2% 1.00x (?)
ArrayAppendFromGeneric 870 871 +0.1% 1.00x (?)
ArrayAppendGenericStructs 1516 1501 -1.0% 1.01x (?)
ArrayAppendLatin1 63668 63870 +0.3% 1.00x (?)
ArrayAppendLazyMap 167666 167533 -0.1% 1.00x (?)
ArrayAppendOptionals 1512 1500 -0.8% 1.01x (?)
ArrayAppendRepeatCol 173685 173993 +0.2% 1.00x
ArrayAppendReserved 4400 4398 -0.0% 1.00x (?)
ArrayAppendSequence 139863 140872 +0.7% 0.99x
ArrayAppendStrings 15406 15465 +0.4% 1.00x (?)
ArrayAppendToFromGeneric 871 850 -2.4% 1.02x (?)
ArrayAppendToGeneric 878 868 -1.1% 1.01x
ArrayAppendUTF16 63907 64060 +0.2% 1.00x (?)
ArrayInClass 6387 6264 -1.9% 1.02x (?)
ArrayLiteral 1778 1781 +0.2% 1.00x (?)
ArrayOfGenericRef 10071 10061 -0.1% 1.00x (?)
ArrayOfPOD 848 846 -0.2% 1.00x (?)
ArrayOfRef 9289 9293 +0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 857 866 +1.1% 0.99x (?)
ArrayPlusEqualFiveElementCollection 234794 232804 -0.8% 1.01x (?)
ArrayPlusEqualSingleElementCollection 231723 230299 -0.6% 1.01x (?)
ArrayPlusEqualThreeElements 9198 9209 +0.1% 1.00x (?)
ArraySubscript 81413 81327 -0.1% 1.00x (?)
ArrayValueProp 3619 3639 +0.6% 0.99x (?)
ArrayValueProp2 15982 16081 +0.6% 0.99x
ArrayValueProp3 4121 4115 -0.1% 1.00x (?)
ArrayValueProp4 4072 4092 +0.5% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 5924 5807 -2.0% 1.02x (?)
BitCount 2210 2209 -0.0% 1.00x (?)
ByteSwap 3920 3909 -0.3% 1.00x (?)
COWTree 11258 11638 +3.4% 0.97x (?)
CSVParsing 2472220 2458585 -0.6% 1.01x (?)
CSVParsingAlt 1319959 1303306 -1.3% 1.01x (?)
CSVParsingAltIndices 2563821 2513946 -1.9% 1.02x (?)
CStringLongAscii 4757 4764 +0.1% 1.00x (?)
CStringLongNonAscii 2080 2073 -0.3% 1.00x (?)
CStringShortAscii 7594 7625 +0.4% 1.00x (?)
CaptureProp 256392 257856 +0.6% 0.99x
CharIndexing_ascii_unicodeScalars 358292 357453 -0.2% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 379032 380514 +0.4% 1.00x (?)
CharIndexing_chinese_unicodeScalars 269118 269968 +0.3% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 287460 289338 +0.7% 0.99x
CharIndexing_japanese_unicodeScalars 427150 428504 +0.3% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 454454 457039 +0.6% 0.99x (?)
CharIndexing_korean_unicodeScalars 344427 348062 +1.1% 0.99x (?)
CharIndexing_korean_unicodeScalars_Backwards 367875 371985 +1.1% 0.99x
CharIndexing_punctuatedJapanese_unicodeScalars 62530 62621 +0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 66146 66529 +0.6% 0.99x (?)
CharIndexing_punctuated_unicodeScalars 78773 79827 +1.3% 0.99x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 83442 83516 +0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars 296174 299362 +1.1% 0.99x (?)
CharIndexing_russian_unicodeScalars_Backwards 315403 319182 +1.2% 0.99x (?)
CharIndexing_tweet_unicodeScalars 711640 706648 -0.7% 1.01x (?)
CharIndexing_tweet_unicodeScalars_Backwards 763356 757644 -0.7% 1.01x (?)
CharIndexing_utf16_unicodeScalars 299477 300216 +0.2% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 317734 318350 +0.2% 1.00x (?)
CharIteration_ascii_unicodeScalars 155056 154855 -0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 296480 296683 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 117280 117207 -0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 222548 233836 +5.1% 0.95x (?)
CharIteration_japanese_unicodeScalars 185808 185478 -0.2% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 353018 354329 +0.4% 1.00x (?)
CharIteration_korean_unicodeScalars 150266 150602 +0.2% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 287925 286298 -0.6% 1.01x (?)
CharIteration_punctuatedJapanese_unicodeScalars 27795 27785 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 51195 51898 +1.4% 0.99x (?)
CharIteration_punctuated_unicodeScalars 34910 34839 -0.2% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 64744 64896 +0.2% 1.00x (?)
CharIteration_russian_unicodeScalars 129111 129283 +0.1% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 244668 244557 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 306195 306334 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 582637 582710 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 131011 131822 +0.6% 0.99x (?)
CharIteration_utf16_unicodeScalars_Backwards 249404 251212 +0.7% 0.99x (?)
CharacterLiteralsLarge 5976 5996 +0.3% 1.00x (?)
CharacterLiteralsSmall 736 736 +0.0% 1.00x
CharacterPropertiesFetch 5476 5485 +0.2% 1.00x (?)
CharacterPropertiesPrecomputed 4222 4234 +0.3% 1.00x (?)
CharacterPropertiesStashed 2260 2293 +1.5% 0.99x (?)
CharacterPropertiesStashedMemo 5132 5033 -1.9% 1.02x (?)
Chars 39672 39479 -0.5% 1.00x (?)
ClassArrayGetter 986 986 +0.0% 1.00x
Combos 2130 2079 -2.4% 1.02x (?)
DictOfArraysToArrayOfDicts 3364 3376 +0.4% 1.00x (?)
Dictionary 2560 2565 +0.2% 1.00x (?)
Dictionary2 2877 2883 +0.2% 1.00x (?)
Dictionary2OfObjects 5568 5567 -0.0% 1.00x (?)
Dictionary3 1272 1277 +0.4% 1.00x (?)
Dictionary3OfObjects 2272 2222 -2.2% 1.02x (?)
DictionaryBridge 2112 2196 +4.0% 0.96x (?)
DictionaryGroup 4221 4200 -0.5% 1.00x (?)
DictionaryGroupOfObjects 7424 7456 +0.4% 1.00x (?)
DictionaryLiteral 8510 8568 +0.7% 0.99x (?)
DictionaryOfObjects 6031 6211 +3.0% 0.97x (?)
DictionaryRemove 18219 18175 -0.2% 1.00x
DictionaryRemoveOfObjects 49457 50083 +1.3% 0.99x (?)
DictionarySubscriptDefaultMutation 2100 2125 +1.2% 0.99x
DictionarySubscriptDefaultMutationArray 2362 2379 +0.7% 0.99x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 8994 9196 +2.2% 0.98x (?)
DictionarySubscriptDefaultMutationOfObjects 5582 5706 +2.2% 0.98x (?)
DictionarySwap 5203 5240 +0.7% 0.99x (?)
DictionarySwapOfObjects 22159 22498 +1.5% 0.98x (?)
DoubleWidthDivision 23823 23833 +0.0% 1.00x (?)
DropFirstAnyCollection 13753 13706 -0.3% 1.00x (?)
DropFirstAnyCollectionLazy 107267 109084 +1.7% 0.98x (?)
DropFirstAnySeqCRangeIter 20617 20633 +0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 20441 20463 +0.1% 1.00x (?)
DropFirstAnySeqCntRange 13657 13736 +0.6% 0.99x (?)
DropFirstAnySeqCntRangeLazy 13817 13719 -0.7% 1.01x
DropFirstAnySequence 10878 10830 -0.4% 1.00x
DropFirstAnySequenceLazy 10936 10860 -0.7% 1.01x
DropFirstArray 4121 4147 +0.6% 0.99x (?)
DropFirstArrayLazy 25249 25344 +0.4% 1.00x (?)
DropFirstCountableRange 325 325 +0.0% 1.00x
DropFirstCountableRangeLazy 26126 26206 +0.3% 1.00x (?)
DropFirstSequence 10477 10465 -0.1% 1.00x (?)
DropFirstSequenceLazy 10558 10523 -0.3% 1.00x (?)
DropLastAnyCollection 4593 4568 -0.5% 1.01x (?)
DropLastAnyCollectionLazy 36505 35394 -3.0% 1.03x (?)
DropLastAnySeqCRangeIter 37371 37918 +1.5% 0.99x (?)
DropLastAnySeqCRangeIterLazy 37652 37835 +0.5% 1.00x (?)
DropLastAnySeqCntRange 4588 4572 -0.3% 1.00x (?)
DropLastAnySeqCntRangeLazy 4586 4578 -0.2% 1.00x (?)
DropLastAnySequence 29748 28865 -3.0% 1.03x (?)
DropLastAnySequenceLazy 29146 28892 -0.9% 1.01x (?)
DropLastCountableRange 112 112 +0.0% 1.00x
DropLastCountableRangeLazy 8687 8680 -0.1% 1.00x (?)
DropLastSequence 28839 28779 -0.2% 1.00x (?)
DropLastSequenceLazy 28740 28782 +0.1% 1.00x (?)
DropWhileAnyCollection 17787 17518 -1.5% 1.02x
DropWhileAnyCollectionLazy 18978 18880 -0.5% 1.01x
DropWhileAnySeqCRangeIter 22128 22115 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 19028 18839 -1.0% 1.01x
DropWhileAnySeqCntRange 17587 17485 -0.6% 1.01x
DropWhileAnySeqCntRangeLazy 19169 19161 -0.0% 1.00x (?)
DropWhileAnySequence 12346 12382 +0.3% 1.00x (?)
DropWhileAnySequenceLazy 10145 10157 +0.1% 1.00x (?)
DropWhileArrayLazy 13719 13728 +0.1% 1.00x (?)
DropWhileCountableRange 4211 4167 -1.0% 1.01x (?)
DropWhileCountableRangeLazy 18665 18719 +0.3% 1.00x (?)
DropWhileSequence 12008 12049 +0.3% 1.00x (?)
DropWhileSequenceLazy 9741 9717 -0.2% 1.00x
EqualStringSubstring 476 476 +0.0% 1.00x
EqualSubstringString 478 477 -0.2% 1.00x (?)
EqualSubstringSubstring 478 477 -0.2% 1.00x (?)
EqualSubstringSubstringGenericEquatable 484 485 +0.2% 1.00x (?)
ErrorHandling 7134 7148 +0.2% 1.00x (?)
ExclusivityGlobal 189 189 +0.0% 1.00x
ExclusivityIndependent 68 70 +2.9% 0.97x
FilterEvenUsingReduce 3755 3747 -0.2% 1.00x (?)
FilterEvenUsingReduceInto 1975 1976 +0.1% 1.00x (?)
FrequenciesUsingReduce 10967 10766 -1.8% 1.02x (?)
Hanoi 19744 20177 +2.2% 0.98x
HashTest 16310 16505 +1.2% 0.99x (?)
Histogram 6700 6654 -0.7% 1.01x (?)
Integrate 817 818 +0.1% 1.00x (?)
IterateData 7861 7800 -0.8% 1.01x (?)
Join 1100 1102 +0.2% 1.00x (?)
LazilyFilteredArrayContains 770066 772737 +0.3% 1.00x (?)
LazilyFilteredArrays 1456959 1463046 +0.4% 1.00x (?)
LazilyFilteredRange 476002 475363 -0.1% 1.00x (?)
LessSubstringSubstring 477 477 +0.0% 1.00x
LessSubstringSubstringGenericComparable 483 483 +0.0% 1.00x
LinkedList 32448 32384 -0.2% 1.00x (?)
LuhnAlgoEager 4939 5060 +2.4% 0.98x (?)
LuhnAlgoLazy 5089 5060 -0.6% 1.01x (?)
MapReduce 27201 27347 +0.5% 0.99x
MapReduceAnyCollection 27179 27315 +0.5% 1.00x
MapReduceAnyCollectionShort 39158 39574 +1.1% 0.99x (?)
MapReduceClass 31978 31970 -0.0% 1.00x (?)
MapReduceClassShort 43248 43142 -0.2% 1.00x (?)
MapReduceLazyCollection 23161 23095 -0.3% 1.00x (?)
MapReduceLazyCollectionShort 33665 34147 +1.4% 0.99x (?)
MapReduceLazySequence 18460 18592 +0.7% 0.99x (?)
MapReduceSequence 30750 30657 -0.3% 1.00x (?)
MapReduceShort 38911 39470 +1.4% 0.99x (?)
MapReduceShortString 244 236 -3.3% 1.03x (?)
MapReduceString 1913 1922 +0.5% 1.00x (?)
Memset 44760 44776 +0.0% 1.00x (?)
MonteCarloE 889942 889507 -0.0% 1.00x (?)
MonteCarloPi 3930818 3936182 +0.1% 1.00x (?)
NSError 710 715 +0.7% 0.99x (?)
NSStringConversion 367 369 +0.5% 0.99x (?)
NibbleSort 303407 306186 +0.9% 0.99x (?)
NopDeinit 166498 166510 +0.0% 1.00x (?)
ObjectAllocation 1355 1362 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23045 22673 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8055 7877 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 40336 41265 +2.3% 0.98x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 33785 35421 +4.8% 0.95x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 127534 123425 -3.2% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObject 64108 63824 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 6696 6485 -3.2% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 72727 74155 +2.0% 0.98x (?)
ObjectiveCBridgeFromNSString 3178 3137 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2694 2693 -0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 4396 4390 -0.1% 1.00x (?)
ObjectiveCBridgeStubDateMutation 630 631 +0.2% 1.00x
ObjectiveCBridgeStubFromNSDate 4397 4400 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 918 904 -1.5% 1.02x (?)
ObjectiveCBridgeStubFromNSStringRef 199 199 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2940 2926 -0.5% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 15916 16296 +2.4% 0.98x (?)
ObjectiveCBridgeStubToArrayOfNSString 28798 29199 +1.4% 0.99x (?)
ObjectiveCBridgeStubToNSDate 15362 15414 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3438 3486 +1.4% 0.99x (?)
ObjectiveCBridgeStubToNSString 1575 1600 +1.6% 0.98x (?)
ObjectiveCBridgeStubToNSStringRef 153 153 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 331087 340994 +3.0% 0.97x (?)
ObjectiveCBridgeStubURLAppendPathRef 335957 335380 -0.2% 1.00x (?)
ObjectiveCBridgeToNSArray 29177 29621 +1.5% 0.99x (?)
ObjectiveCBridgeToNSDictionary 54694 56126 +2.6% 0.97x (?)
ObjectiveCBridgeToNSSet 46488 47294 +1.7% 0.98x (?)
ObjectiveCBridgeToNSString 1347 1361 +1.0% 0.99x (?)
ObserverClosure 6251 6319 +1.1% 0.99x (?)
ObserverForwarderStruct 4391 4362 -0.7% 1.01x
ObserverPartiallyAppliedMethod 7805 7796 -0.1% 1.00x (?)
ObserverUnappliedMethod 7926 7928 +0.0% 1.00x (?)
OpenClose 559 572 +2.3% 0.98x
PartialApplyDynamicType 40155 40389 +0.6% 0.99x
Phonebook 20611 21277 +3.2% 0.97x
PointerArithmetics 120458 120336 -0.1% 1.00x (?)
PopFrontArrayGeneric 5706 5753 +0.8% 0.99x
PrefixAnyCollection 13700 13639 -0.4% 1.00x (?)
PrefixAnyCollectionLazy 107728 110101 +2.2% 0.98x (?)
PrefixAnySeqCRangeIter 16561 16428 -0.8% 1.01x
PrefixAnySeqCRangeIterLazy 16536 16465 -0.4% 1.00x (?)
PrefixAnySeqCntRange 13760 13763 +0.0% 1.00x (?)
PrefixAnySeqCntRangeLazy 13807 13765 -0.3% 1.00x (?)
PrefixAnySequence 9053 9133 +0.9% 0.99x (?)
PrefixAnySequenceLazy 9033 9113 +0.9% 0.99x (?)
PrefixArray 4119 4133 +0.3% 1.00x (?)
PrefixArrayLazy 25205 25324 +0.5% 1.00x (?)
PrefixCountableRange 325 325 +0.0% 1.00x
PrefixCountableRangeLazy 26169 26106 -0.2% 1.00x (?)
PrefixSequence 8760 8791 +0.4% 1.00x (?)
PrefixSequenceLazy 8850 8780 -0.8% 1.01x (?)
PrefixWhileAnyCollection 25131 25103 -0.1% 1.00x (?)
PrefixWhileAnyCollectionLazy 15831 15751 -0.5% 1.01x
PrefixWhileAnySeqCRangeIter 33069 33174 +0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 15835 15779 -0.4% 1.00x (?)
PrefixWhileAnySeqCntRange 25397 24962 -1.7% 1.02x (?)
PrefixWhileAnySeqCntRangeLazy 16163 15773 -2.4% 1.02x
PrefixWhileAnySequence 26505 26511 +0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 9210 9253 +0.5% 1.00x (?)
PrefixWhileArray 11830 11848 +0.2% 1.00x (?)
PrefixWhileArrayLazy 12019 12013 -0.0% 1.00x (?)
PrefixWhileCountableRange 11852 11755 -0.8% 1.01x
PrefixWhileCountableRangeLazy 15633 15712 +0.5% 0.99x (?)
PrefixWhileSequence 26210 26124 -0.3% 1.00x
PrefixWhileSequenceLazy 8913 8954 +0.5% 1.00x
Prims 9724 9863 +1.4% 0.99x (?)
PrimsSplit 9637 9650 +0.1% 1.00x (?)
QueueConcrete 15103 15188 +0.6% 0.99x (?)
QueueGeneric 19100 19273 +0.9% 0.99x (?)
RC4 16705 16757 +0.3% 1.00x
RGBHistogram 26755 26691 -0.2% 1.00x (?)
RGBHistogramOfObjects 97508 97057 -0.5% 1.00x (?)
RangeAssignment 2699 2696 -0.1% 1.00x (?)
RangeIterationSigned 16580 16610 +0.2% 1.00x (?)
RangeIterationSigned64 39001 39037 +0.1% 1.00x (?)
RangeIterationUnsigned 34748 34574 -0.5% 1.01x (?)
RangeReplaceableCollectionPlusDefault 7921 7946 +0.3% 1.00x (?)
RecursiveOwnedParameter 8146 7913 -2.9% 1.03x (?)
ReversedArray 13333 13328 -0.0% 1.00x (?)
ReversedBidirectional 42079 42185 +0.3% 1.00x (?)
ReversedDictionary 22894 23090 +0.9% 0.99x
RomanNumbers 1182980 1177993 -0.4% 1.00x (?)
SetExclusiveOr 17207 17287 +0.5% 1.00x (?)
SetExclusiveOr_OfObjects 41548 42087 +1.3% 0.99x (?)
SetIntersect 8181 8258 +0.9% 0.99x
SetIntersect_OfObjects 12133 12227 +0.8% 0.99x (?)
SetIsSubsetOf 1347 1346 -0.1% 1.00x (?)
SetIsSubsetOf_OfObjects 1557 1560 +0.2% 1.00x
SetUnion 11879 11823 -0.5% 1.00x (?)
SetUnion_OfObjects 29035 29226 +0.7% 0.99x (?)
SevenBoom 1658 1665 +0.4% 1.00x (?)
Sim2DArray 43644 43624 -0.0% 1.00x (?)
SortLargeExistentials 15809 15784 -0.2% 1.00x (?)
SortLettersInPlace 2817 2852 +1.2% 0.99x (?)
SortSortedStrings 1360 1409 +3.6% 0.97x (?)
SortStrings 2508 2583 +3.0% 0.97x (?)
SortStringsUnicode 16235 16276 +0.3% 1.00x (?)
StackPromo 91306 89767 -1.7% 1.02x (?)
StaticArray 2623 2618 -0.2% 1.00x (?)
StrComplexWalk 6444 6446 +0.0% 1.00x (?)
StrToInt 57071 57505 +0.8% 0.99x (?)
StringAdder 4746 4751 +0.1% 1.00x (?)
StringBuilder 6868 6921 +0.8% 0.99x (?)
StringBuilderLong 2708 2714 +0.2% 1.00x (?)
StringComparison_abnormal 1416 1421 +0.4% 1.00x (?)
StringComparison_ascii 9607 9639 +0.3% 1.00x
StringComparison_emoji 3802 3818 +0.4% 1.00x (?)
StringComparison_fastPrenormal 13200 13225 +0.2% 1.00x (?)
StringComparison_latin1 9444 9483 +0.4% 1.00x (?)
StringComparison_longSharedPrefix 13073 13090 +0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 6931 6965 +0.5% 1.00x (?)
StringComparison_slowerPrenormal 6770 6810 +0.6% 0.99x (?)
StringComparison_zalgo 2843 2861 +0.6% 0.99x
StringEdits 315332 314884 -0.1% 1.00x (?)
StringEnumRawValueInitialization 20721 21194 +2.3% 0.98x
StringFromLongWholeSubstring 23 23 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 199 199 +0.0% 1.00x
StringHasPrefixAscii 3079 3139 +1.9% 0.98x
StringHasPrefixUnicode 30698 30786 +0.3% 1.00x (?)
StringHasSuffixAscii 3133 3195 +2.0% 0.98x
StringHasSuffixUnicode 88055 88123 +0.1% 1.00x (?)
StringInterpolation 13912 14089 +1.3% 0.99x (?)
StringMatch 33145 33228 +0.3% 1.00x (?)
StringRemoveDupes 1426 1404 -1.5% 1.02x (?)
StringUTF16Builder 7709 7842 +1.7% 0.98x (?)
StringWalk 12445 12428 -0.1% 1.00x (?)
StringWithCString 39452 39479 +0.1% 1.00x (?)
StringWordBuilder 2526 2526 +0.0% 1.00x
StringWordBuilderReservingCapacity 2176 2180 +0.2% 1.00x (?)
SubstringComparable 4164 4212 +1.2% 0.99x (?)
SubstringEqualString 3553 3507 -1.3% 1.01x (?)
SubstringEquatable 7857 7800 -0.7% 1.01x (?)
SubstringFromLongString 24 24 +0.0% 1.00x
SubstringFromLongStringGeneric 103 104 +1.0% 0.99x
SuffixAnyCollection 4567 4549 -0.4% 1.00x (?)
SuffixAnyCollectionLazy 35836 35369 -1.3% 1.01x (?)
SuffixAnySeqCRangeIter 34023 33696 -1.0% 1.01x (?)
SuffixAnySeqCRangeIterLazy 33851 33896 +0.1% 1.00x (?)
SuffixAnySeqCntRange 4566 4584 +0.4% 1.00x (?)
SuffixAnySeqCntRangeLazy 4617 4595 -0.5% 1.00x
SuffixAnySequence 25098 25001 -0.4% 1.00x (?)
SuffixAnySequenceLazy 25121 25093 -0.1% 1.00x (?)
SuffixCountableRange 111 111 +0.0% 1.00x
SuffixCountableRangeLazy 8699 8706 +0.1% 1.00x (?)
SuffixSequence 25083 25009 -0.3% 1.00x
SuffixSequenceLazy 24982 24931 -0.2% 1.00x
SumUsingReduce 170121 170234 +0.1% 1.00x (?)
SumUsingReduceInto 166936 166868 -0.0% 1.00x (?)
SuperChars 214583 216264 +0.8% 0.99x (?)
TwoSum 3933 3931 -0.1% 1.00x (?)
TypeFlood 162 157 -3.1% 1.03x (?)
UTF8Decode 30099 30165 +0.2% 1.00x (?)
Walsh 12032 12012 -0.2% 1.00x (?)
WordCountHistogramASCII 48242 49183 +2.0% 0.98x (?)
WordCountHistogramUTF16 103241 105067 +1.8% 0.98x (?)
WordCountUniqueASCII 7947 7965 +0.2% 1.00x (?)
WordCountUniqueUTF16 34389 34661 +0.8% 0.99x (?)
WordSplitASCII 25329 25663 +1.3% 0.99x (?)
WordSplitUTF16 26733 26845 +0.4% 1.00x (?)
XorLoop 23391 23393 +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

@mikeash
Copy link
Contributor Author

mikeash commented Feb 14, 2018

@swift-ci please test

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