Skip to content

[stdlib] Uninline Existential Collections #17492

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

Closed

Conversation

airspeedswift
Copy link
Member

Similar to #17476 but for AnySequence and friends. Many of these should be unnecessary since they're internal types/methods. Removing them all might hurt performance but lets start with this and add some back in where appropriate.

@airspeedswift
Copy link
Member Author

@swift-ci please smoke benchmark

@@ -672,22 +570,19 @@ extension _ClosureBasedSequence: Sequence {
/// An instance of `AnySequence` forwards its operations to an underlying base
/// sequence having the same `Element` type, hiding the specifics of the
/// underlying sequence.
//@usableFromInline
//
@_fixed_layout
public struct AnySequence<Element> {
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd be curious about the benchmark results for un-fixed-layout'ing these, in a separate PR

@airspeedswift
Copy link
Member Author

@swift-ci please smoke test compiler performance

@airspeedswift
Copy link
Member Author

@swift-ci please test

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master smoketest

Unexpected test results, excluded stats for ReactiveCocoa

No regressions above thresholds

Debug

debug brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 36,216,164 36,216,284 120 0.0%
time.swift-driver.wall 70.6s 70.7s 81.1ms 0.11%

debug detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 82,886 82,886 0 0.0%
AST.NumLoadedModules 12,485 12,485 0 0.0%
AST.NumTotalClangImportedEntities 253,787 253,787 0 0.0%
AST.NumUsedConformances 8,754 8,754 0 0.0%
IRModule.NumIRBasicBlocks 127,546 127,546 0 0.0%
IRModule.NumIRFunctions 75,825 75,825 0 0.0%
IRModule.NumIRGlobals 69,290 69,290 0 0.0%
IRModule.NumIRInsts 1,426,155 1,426,155 0 0.0%
IRModule.NumIRValueSymbols 129,827 129,827 0 0.0%
LLVM.NumLLVMBytesOutput 36,216,164 36,216,284 120 0.0%
SILModule.NumSILGenFunctions 44,348 44,348 0 0.0%
SILModule.NumSILOptFunctions 47,339 47,339 0 0.0%
Sema.NumConformancesDeserialized 351,370 351,370 0 0.0%
Sema.NumConstraintScopes 893,629 893,629 0 0.0%
Sema.NumDeclsDeserialized 2,068,712 2,068,712 0 0.0%
Sema.NumDeclsValidated 188,816 188,816 0 0.0%
Sema.NumFunctionsTypechecked 47,175 47,175 0 0.0%
Sema.NumGenericSignatureBuilders 80,123 80,123 0 0.0%
Sema.NumLazyGenericEnvironments 415,196 415,196 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 37,995 37,995 0 0.0%
Sema.NumLazyIterableDeclContexts 330,717 330,717 0 0.0%
Sema.NumTypesDeserialized 2,285,785 2,285,785 0 0.0%
Sema.NumTypesValidated 160,444 160,444 0 0.0%

Release

release brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 26,664,564 26,663,580 -984 -0.0%
time.swift-driver.wall 140.3s 140.3s 16.5ms 0.01%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 8,857 8,857 0 0.0%
AST.NumLoadedModules 408 408 0 0.0%
AST.NumTotalClangImportedEntities 25,770 25,770 0 0.0%
AST.NumUsedConformances 8,760 8,760 0 0.0%
IRModule.NumIRBasicBlocks 148,649 148,636 -13 -0.01%
IRModule.NumIRFunctions 56,673 56,668 -5 -0.01%
IRModule.NumIRGlobals 54,037 54,033 -4 -0.01%
IRModule.NumIRInsts 1,220,647 1,220,568 -79 -0.01%
IRModule.NumIRValueSymbols 101,453 101,444 -9 -0.01%
LLVM.NumLLVMBytesOutput 26,664,564 26,663,580 -984 -0.0%
SILModule.NumSILGenFunctions 22,181 22,181 0 0.0%
SILModule.NumSILOptFunctions 35,901 35,617 -284 -0.79%
Sema.NumConformancesDeserialized 86,023 85,682 -341 -0.4%
Sema.NumConstraintScopes 793,754 793,754 0 0.0%
Sema.NumDeclsDeserialized 205,103 204,225 -878 -0.43%
Sema.NumDeclsValidated 59,866 59,866 0 0.0%
Sema.NumFunctionsTypechecked 10,716 10,716 0 0.0%
Sema.NumGenericSignatureBuilders 9,750 9,745 -5 -0.05%
Sema.NumLazyGenericEnvironments 32,279 32,156 -123 -0.38%
Sema.NumLazyGenericEnvironmentsLoaded 4,556 4,553 -3 -0.07%
Sema.NumLazyIterableDeclContexts 20,590 20,543 -47 -0.23%
Sema.NumTypesDeserialized 268,868 266,650 -2,218 -0.82%
Sema.NumTypesValidated 33,026 33,026 0 0.0%

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (72)
TEST OLD NEW DELTA SPEEDUP
PrefixAnySeqCRangeIter 40 18951 +47276.3% 0.00x
PrefixAnySeqCRangeIterLazy 40 18922 +47203.8% 0.00x
DropLastAnySeqCntRange 11 5203 +47195.7% 0.00x
DropLastAnySeqCntRangeLazy 11 5195 +47123.0% 0.00x
DropWhileAnySeqCRangeIter 76 24609 +32279.8% 0.00x
SuffixAnySeqCntRangeLazy 17 5204 +30510.0% 0.00x
SuffixAnySeqCntRange 17 5201 +30492.3% 0.00x
DropFirstAnySeqCRangeIter 93 23863 +25558.9% 0.00x
DropFirstAnySeqCRangeIterLazy 93 23831 +25524.5% 0.00x
DropFirstAnySeqCntRange 71 15568 +21826.5% 0.00x
PrefixAnySeqCntRange 71 15559 +21813.8% 0.00x
DropFirstAnySeqCntRangeLazy 71 15557 +21811.0% 0.00x
PrefixAnySeqCntRangeLazy 71 15550 +21801.1% 0.00x
DropWhileAnySeqCntRange 95 20050 +21005.0% 0.00x
PrefixWhileAnyCollectionLazy 71 14833 +20791.3% 0.00x
PrefixWhileAnySeqCntRangeLazy 71 14819 +20771.5% 0.00x
PrefixWhileAnySeqCntRange 142 28977 +20306.2% 0.00x
DropFirstAnyCollection 76 15508 +20305.0% 0.00x
PrefixAnyCollection 76 15499 +20293.2% 0.00x
DropWhileAnyCollection 100 19905 +19804.8% 0.01x
PrefixWhileAnyCollection 147 28772 +19472.7% 0.01x
DropLastAnyCollection 28 5192 +18442.2% 0.01x
SuffixAnyCollection 28 5183 +18410.1% 0.01x
PrefixWhileAnySeqCRangeIterLazy 89 14819 +16550.4% 0.01x
DropWhileAnySeqCntRangeLazy 130 19800 +15130.7% 0.01x
DropWhileAnyCollectionLazy 130 19762 +15101.4% 0.01x
DropWhileAnySeqCRangeIterLazy 130 19746 +15089.1% 0.01x
PrefixWhileAnySeqCRangeIter 397 33011 +8215.1% 0.01x
PrefixWhileSequence 373 9732 +2509.1% 0.04x
MapReduceAnyCollection 428 8119 +1797.0% 0.05x
PrefixWhileAnySequence 1535 20253 +1219.4% 0.08x
DropLastAnySeqCRangeIter 3307 39457 +1093.1% 0.08x
DropLastAnySeqCRangeIterLazy 3315 39506 +1091.7% 0.08x
SuffixAnySeqCRangeIter 3617 36047 +896.6% 0.10x
SuffixAnySeqCRangeIterLazy 3631 36018 +892.0% 0.10x
MapReduceAnyCollectionShort 2083 11659 +459.7% 0.18x
DropLastSequenceLazy 688 3753 +445.5% 0.18x
DropLastSequence 687 3747 +445.4% 0.18x
DropLastAnySequence 4980 22671 +355.2% 0.22x
DropLastAnySequenceLazy 5072 22780 +349.1% 0.22x
PrefixAnySequenceLazy 1378 5758 +317.9% 0.24x
PrefixAnySequence 1378 5719 +315.0% 0.24x
SuffixAnySequence 4921 19044 +287.0% 0.26x
DropWhileAnySequence 1862 7184 +285.8% 0.26x
SuffixAnySequenceLazy 5036 19102 +279.3% 0.26x
DropFirstAnySequenceLazy 1842 6527 +254.3% 0.28x
DropFirstAnySequence 1843 6530 +254.3% 0.28x
PrefixSequence 2220 5347 +140.9% 0.42x
PrefixSequenceLazy 2275 5396 +137.2% 0.42x
ReversedBidirectional 16932 39405 +132.7% 0.43x
DropWhileSequence 2472 5589 +126.1% 0.44x
DropFirstSequence 2683 6052 +125.6% 0.44x
DropFirstSequenceLazy 2774 6127 +120.9% 0.45x
DropWhileAnySequenceLazy 1854 3224 +73.9% 0.58x
PrefixWhileAnySequenceLazy 1391 2417 +73.8% 0.58x
DataAppendDataSmallToLarge 38392 65661 +71.0% 0.58x (?)
COWTree 3879 5212 +34.4% 0.74x
SuffixAnyCollectionLazy 21487 24293 +13.1% 0.88x
ObjectiveCBridgeFromNSDictionaryAnyObject 108740 121866 +12.1% 0.89x
MapReduceLazyCollectionShort 34 38 +11.8% 0.89x
PointerArithmetics 31490 34367 +9.1% 0.92x
Calculator 191 206 +7.9% 0.93x
SortStringsUnicode 2522 2716 +7.7% 0.93x
SubstringComparable 13 14 +7.7% 0.93x
PrefixAnyCollectionLazy 64669 69505 +7.5% 0.93x
DropLastAnyCollectionLazy 21682 23148 +6.8% 0.94x
Hanoi 2103 2243 +6.7% 0.94x
RomanNumbers 81144 86345 +6.4% 0.94x
StringWordBuilderReservingCapacity 1768 1869 +5.7% 0.95x
StringUTF16SubstringBuilder 5740 6066 +5.7% 0.95x
Join 169 178 +5.3% 0.95x
ObjectiveCBridgeToNSDictionary 27849 29315 +5.3% 0.95x (?)
Improvement (19)
TEST OLD NEW DELTA SPEEDUP
Sim2DArray 599 417 -30.4% 1.44x
LuhnAlgoLazy 452 330 -27.0% 1.37x
LuhnAlgoEager 450 332 -26.2% 1.36x
StringBuilderWithLongSubstring 1886 1450 -23.1% 1.30x (?)
MapReduce 427 370 -13.3% 1.15x
ChainedFilterMap 1409 1249 -11.4% 1.13x
ObjectiveCBridgeFromNSString 1272 1155 -9.2% 1.10x
DropLastCountableRange 12 11 -8.3% 1.09x
LazilyFilteredArrayContains 38663 35471 -8.3% 1.09x
DataCopyBytes 478 440 -7.9% 1.09x (?)
NopDeinit 32366 30164 -6.8% 1.07x
SetIsSubsetOf 388 363 -6.4% 1.07x
ObjectiveCBridgeFromNSSetAnyObjectForced 5262 4923 -6.4% 1.07x (?)
UTF8Decode_InitFromData_ascii 716 671 -6.3% 1.07x (?)
ObjectiveCBridgeStubURLAppendPathRef 294620 276965 -6.0% 1.06x
ObjectiveCBridgeStubFromArrayOfNSString 34732 32762 -5.7% 1.06x (?)
Integrate 354 334 -5.6% 1.06x
DataMutateBytes 4128 3919 -5.1% 1.05x
StringWithCString 45125 42966 -4.8% 1.05x
No Changes (355)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3623 3770 +4.1% 0.96x (?)
AnyHashableWithAClass 86205 87886 +2.0% 0.98x
Array2D 2854 2855 +0.0% 1.00x (?)
ArrayAppend 1109 1085 -2.2% 1.02x
ArrayAppendArrayOfInt 799 796 -0.4% 1.00x (?)
ArrayAppendAscii 3955 3989 +0.9% 0.99x (?)
ArrayAppendAsciiSubstring 24957 25120 +0.7% 0.99x
ArrayAppendFromGeneric 806 804 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1431 1432 +0.1% 1.00x (?)
ArrayAppendLatin1 41571 41674 +0.2% 1.00x
ArrayAppendLatin1Substring 142371 143951 +1.1% 0.99x
ArrayAppendLazyMap 1344 1342 -0.1% 1.00x (?)
ArrayAppendOptionals 1429 1421 -0.6% 1.01x (?)
ArrayAppendRepeatCol 1340 1341 +0.1% 1.00x (?)
ArrayAppendReserved 841 816 -3.0% 1.03x
ArrayAppendSequence 1124 1126 +0.2% 1.00x (?)
ArrayAppendStrings 6336 6212 -2.0% 1.02x
ArrayAppendToFromGeneric 797 802 +0.6% 0.99x (?)
ArrayAppendToGeneric 790 801 +1.4% 0.99x (?)
ArrayAppendUTF16 41197 41107 -0.2% 1.00x (?)
ArrayAppendUTF16Substring 140150 142247 +1.5% 0.99x (?)
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 151 +0.0% 1.00x
ArrayOfGenericRef 4414 4412 -0.0% 1.00x (?)
ArrayOfPOD 183 184 +0.5% 0.99x (?)
ArrayOfRef 4398 4377 -0.5% 1.00x (?)
ArrayPlusEqualArrayOfInt 806 785 -2.6% 1.03x
ArrayPlusEqualFiveElementCollection 5605 5446 -2.8% 1.03x
ArrayPlusEqualSingleElementCollection 1110 1081 -2.6% 1.03x
ArrayPlusEqualThreeElements 1663 1647 -1.0% 1.01x
ArraySubscript 1532 1542 +0.7% 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
BinaryFloatingPointPropertiesBinade 25 25 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 35 35 +0.0% 1.00x
BitCount 202 202 +0.0% 1.00x
ByteSwap 104 104 +0.0% 1.00x
COWArrayGuaranteedParameterOverhead 8724 8732 +0.1% 1.00x (?)
CSVParsing 656522 655056 -0.2% 1.00x (?)
CSVParsingAlt 807334 813221 +0.7% 0.99x (?)
CSVParsingAltIndices 334140 343527 +2.8% 0.97x
CStringLongAscii 4127 4037 -2.2% 1.02x
CStringLongNonAscii 2315 2371 +2.4% 0.98x
CStringShortAscii 3335 3328 -0.2% 1.00x (?)
CaptureProp 4114 4094 -0.5% 1.00x (?)
CharIndexing_ascii_unicodeScalars 16966 16301 -3.9% 1.04x
CharIndexing_ascii_unicodeScalars_Backwards 16021 15889 -0.8% 1.01x
CharIndexing_chinese_unicodeScalars 12858 12338 -4.0% 1.04x
CharIndexing_chinese_unicodeScalars_Backwards 12138 12109 -0.2% 1.00x
CharIndexing_japanese_unicodeScalars 20307 19502 -4.0% 1.04x
CharIndexing_japanese_unicodeScalars_Backwards 19165 19109 -0.3% 1.00x
CharIndexing_korean_unicodeScalars 16444 15802 -3.9% 1.04x
CharIndexing_korean_unicodeScalars_Backwards 15525 15405 -0.8% 1.01x
CharIndexing_punctuatedJapanese_unicodeScalars 3070 2962 -3.5% 1.04x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2912 2909 -0.1% 1.00x
CharIndexing_punctuated_unicodeScalars 3841 3699 -3.7% 1.04x
CharIndexing_punctuated_unicodeScalars_Backwards 3617 3633 +0.4% 1.00x
CharIndexing_russian_unicodeScalars 14135 13575 -4.0% 1.04x
CharIndexing_russian_unicodeScalars_Backwards 13359 13256 -0.8% 1.01x
CharIndexing_tweet_unicodeScalars 32743 32130 -1.9% 1.02x
CharIndexing_tweet_unicodeScalars_Backwards 31224 31689 +1.5% 0.99x
CharIndexing_utf16_unicodeScalars 22989 22887 -0.4% 1.00x
CharIndexing_utf16_unicodeScalars_Backwards 23283 23259 -0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars 21106 20468 -3.0% 1.03x
CharIteration_ascii_unicodeScalars_Backwards 15144 15102 -0.3% 1.00x (?)
CharIteration_chinese_unicodeScalars 15992 15483 -3.2% 1.03x
CharIteration_chinese_unicodeScalars_Backwards 11473 11437 -0.3% 1.00x
CharIteration_japanese_unicodeScalars 25299 24499 -3.2% 1.03x
CharIteration_japanese_unicodeScalars_Backwards 18138 18096 -0.2% 1.00x
CharIteration_korean_unicodeScalars 20461 19831 -3.1% 1.03x
CharIteration_korean_unicodeScalars_Backwards 14695 14656 -0.3% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3769 3651 -3.1% 1.03x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2747 2736 -0.4% 1.00x
CharIteration_punctuated_unicodeScalars 4734 4593 -3.0% 1.03x
CharIteration_punctuated_unicodeScalars_Backwards 3436 3422 -0.4% 1.00x
CharIteration_russian_unicodeScalars 17590 17025 -3.2% 1.03x
CharIteration_russian_unicodeScalars_Backwards 12622 12591 -0.2% 1.00x
CharIteration_tweet_unicodeScalars 42355 40391 -4.6% 1.05x
CharIteration_tweet_unicodeScalars_Backwards 29981 29835 -0.5% 1.00x
CharIteration_utf16_unicodeScalars 28001 27707 -1.0% 1.01x
CharIteration_utf16_unicodeScalars_Backwards 18304 18581 +1.5% 0.99x
CharacterLiteralsLarge 5964 5937 -0.5% 1.00x (?)
CharacterLiteralsSmall 217 220 +1.4% 0.99x
CharacterPropertiesFetch 4687 4661 -0.6% 1.01x (?)
CharacterPropertiesPrecomputed 1044 1040 -0.4% 1.00x (?)
CharacterPropertiesStashed 1520 1510 -0.7% 1.01x (?)
CharacterPropertiesStashedMemo 1606 1591 -0.9% 1.01x (?)
Chars 1022 1017 -0.5% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 495 489 -1.2% 1.01x
DataAccessBytes 1142 1141 -0.1% 1.00x (?)
DataAppendArray 5350 5466 +2.2% 0.98x
DataAppendBytes 4951 5001 +1.0% 0.99x (?)
DataAppendDataLargeToLarge 68176 68052 -0.2% 1.00x (?)
DataAppendDataLargeToMedium 35132 35385 +0.7% 0.99x (?)
DataAppendDataLargeToSmall 34546 34405 -0.4% 1.00x (?)
DataAppendDataMediumToLarge 37288 38217 +2.5% 0.98x (?)
DataAppendDataMediumToMedium 6717 6620 -1.4% 1.01x (?)
DataAppendDataMediumToSmall 5993 6015 +0.4% 1.00x (?)
DataAppendDataSmallToMedium 5950 6186 +4.0% 0.96x
DataAppendDataSmallToSmall 5802 6038 +4.1% 0.96x (?)
DataAppendSequence 21133 21513 +1.8% 0.98x (?)
DataCount 34 34 +0.0% 1.00x
DataReplaceLarge 37407 36692 -1.9% 1.02x (?)
DataReplaceLargeBuffer 56936 56580 -0.6% 1.01x (?)
DataReplaceMedium 7676 7958 +3.7% 0.96x (?)
DataReplaceMediumBuffer 11631 11121 -4.4% 1.05x (?)
DataReplaceSmall 5726 5511 -3.8% 1.04x (?)
DataReplaceSmallBuffer 8353 8643 +3.5% 0.97x (?)
DataReset 2887 2853 -1.2% 1.01x (?)
DataSetCount 563 560 -0.5% 1.01x (?)
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 776 775 -0.1% 1.00x (?)
Dictionary 510 515 +1.0% 0.99x
Dictionary2 638 638 +0.0% 1.00x
Dictionary2OfObjects 2083 2082 -0.0% 1.00x (?)
Dictionary3 226 221 -2.2% 1.02x
Dictionary3OfObjects 741 737 -0.5% 1.01x
Dictionary4 344 342 -0.6% 1.01x
Dictionary4Legacy 744 739 -0.7% 1.01x (?)
Dictionary4OfObjects 454 460 +1.3% 0.99x
Dictionary4OfObjectsLegacy 966 961 -0.5% 1.01x (?)
DictionaryBridge 1227 1190 -3.0% 1.03x (?)
DictionaryCopy 107156 107177 +0.0% 1.00x (?)
DictionaryFilter 106302 106739 +0.4% 1.00x (?)
DictionaryGroup 215 215 +0.0% 1.00x
DictionaryGroupOfObjects 2149 2123 -1.2% 1.01x
DictionaryKeysContainsCocoa 39 41 +5.1% 0.95x
DictionaryKeysContainsNative 32 32 +0.0% 1.00x
DictionaryLiteral 1917 1890 -1.4% 1.01x (?)
DictionaryOfObjects 2378 2372 -0.3% 1.00x (?)
DictionaryRemove 4190 4173 -0.4% 1.00x (?)
DictionaryRemoveOfObjects 26038 25916 -0.5% 1.00x
DictionarySubscriptDefaultMutation 267 266 -0.4% 1.00x (?)
DictionarySubscriptDefaultMutationArray 606 607 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 4025 4032 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1720 1703 -1.0% 1.01x
DictionarySwap 1083 1083 +0.0% 1.00x
DictionarySwapAt 7012 6754 -3.7% 1.04x
DictionarySwapAtOfObjects 54539 52434 -3.9% 1.04x
DictionarySwapOfObjects 8835 8840 +0.1% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollectionLazy 64947 67122 +3.3% 0.97x (?)
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
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 53 51 -3.8% 1.04x
EqualSubstringString 53 51 -3.8% 1.04x
EqualSubstringSubstring 52 50 -3.8% 1.04x
EqualSubstringSubstringGenericEquatable 52 50 -3.8% 1.04x
ErrorHandling 1197 1193 -0.3% 1.00x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 200372 199901 -0.2% 1.00x
FilterEvenUsingReduce 1310 1317 +0.5% 0.99x (?)
FilterEvenUsingReduceInto 148 149 +0.7% 0.99x (?)
FloatingPointPrinting_Double_description_small 21704 21597 -0.5% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 21090 21134 +0.2% 1.00x (?)
FloatingPointPrinting_Double_interpolated 62417 62170 -0.4% 1.00x (?)
FloatingPointPrinting_Float80_description_small 28599 28518 -0.3% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 27624 27667 +0.2% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 65079 64906 -0.3% 1.00x (?)
FloatingPointPrinting_Float_description_small 5570 5444 -2.3% 1.02x
FloatingPointPrinting_Float_description_uniform 5344 5437 +1.7% 0.98x
FloatingPointPrinting_Float_interpolated 38553 38859 +0.8% 0.99x
FrequenciesUsingReduce 4880 4965 +1.7% 0.98x
FrequenciesUsingReduceInto 1485 1494 +0.6% 0.99x (?)
HashTest 936 953 +1.8% 0.98x
Histogram 695 698 +0.4% 1.00x
IterateData 1552 1500 -3.4% 1.03x
LazilyFilteredArrays 67202 64819 -3.5% 1.04x (?)
LazilyFilteredRange 3685 3871 +5.0% 0.95x
LessSubstringSubstring 53 51 -3.8% 1.04x
LessSubstringSubstringGenericComparable 53 51 -3.8% 1.04x
LinkedList 7537 7521 -0.2% 1.00x
MapReduceClass 3008 3006 -0.1% 1.00x (?)
MapReduceClassShort 4567 4556 -0.2% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 457 462 +1.1% 0.99x (?)
MapReduceShort 2039 1996 -2.1% 1.02x
MapReduceShortString 20 20 +0.0% 1.00x
MapReduceString 50 48 -4.0% 1.04x
Memset 214 213 -0.5% 1.00x (?)
MonteCarloE 10254 10241 -0.1% 1.00x (?)
MonteCarloPi 42648 42688 +0.1% 1.00x (?)
NSDictionaryCastToSwift 7153 7045 -1.5% 1.02x (?)
NSError 164 163 -0.6% 1.01x
NSStringConversion 704 690 -2.0% 1.02x
NibbleSort 3665 3700 +1.0% 0.99x
ObjectAllocation 133 134 +0.8% 0.99x
ObjectiveCBridgeFromNSArrayAnyObject 25162 25545 +1.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 5212 5105 -2.1% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 46962 44876 -4.4% 1.05x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 44032 42881 -2.6% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObject 49768 50490 +1.5% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 68786 66642 -3.1% 1.03x (?)
ObjectiveCBridgeFromNSStringForced 2734 2675 -2.2% 1.02x (?)
ObjectiveCBridgeStubDataAppend 6474 6198 -4.3% 1.04x
ObjectiveCBridgeStubDateMutation 401 400 -0.2% 1.00x
ObjectiveCBridgeStubFromNSDate 6184 6306 +2.0% 0.98x (?)
ObjectiveCBridgeStubFromNSString 1039 1006 -3.2% 1.03x
ObjectiveCBridgeStubFromNSStringRef 156 158 +1.3% 0.99x
ObjectiveCBridgeStubNSDataAppend 2578 2664 +3.3% 0.97x (?)
ObjectiveCBridgeStubNSDateMutationRef 13243 13365 +0.9% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 39732 40096 +0.9% 0.99x (?)
ObjectiveCBridgeStubToNSDate 15846 15490 -2.2% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3420 3463 +1.3% 0.99x (?)
ObjectiveCBridgeStubToNSString 2352 2357 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 113 115 +1.8% 0.98x
ObjectiveCBridgeStubURLAppendPath 286917 280458 -2.3% 1.02x (?)
ObjectiveCBridgeToNSArray 15209 15175 -0.2% 1.00x (?)
ObjectiveCBridgeToNSSet 17999 17809 -1.1% 1.01x (?)
ObjectiveCBridgeToNSString 458 452 -1.3% 1.01x
ObserverClosure 2181 2172 -0.4% 1.00x
ObserverForwarderStruct 1217 1228 +0.9% 0.99x
ObserverPartiallyAppliedMethod 3720 3734 +0.4% 1.00x (?)
ObserverUnappliedMethod 2474 2481 +0.3% 1.00x (?)
OpaqueConsumingUsers 4178 4177 -0.0% 1.00x (?)
OpenClose 62 65 +4.8% 0.95x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 6627 6850 +3.4% 0.97x
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1961 1976 +0.8% 0.99x (?)
PopFrontArrayGeneric 1976 1904 -3.6% 1.04x (?)
PopFrontUnsafePointer 9544 9499 -0.5% 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
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 900 899 -0.1% 1.00x (?)
PrimsSplit 905 899 -0.7% 1.01x (?)
QueueConcrete 1148 1150 +0.2% 1.00x
QueueGeneric 1147 1150 +0.3% 1.00x
RC4 161 161 +0.0% 1.00x
RGBHistogram 3206 3210 +0.1% 1.00x (?)
RGBHistogramOfObjects 23693 23669 -0.1% 1.00x (?)
Radix2CooleyTukey 12414 12435 +0.2% 1.00x (?)
Radix2CooleyTukeyf 9208 8955 -2.7% 1.03x (?)
RandomDoubleDef 26781 26887 +0.4% 1.00x
RandomDoubleLCG 2907 2924 +0.6% 0.99x
RandomIntegersDef 24582 24340 -1.0% 1.01x
RandomIntegersLCG 994 994 +0.0% 1.00x
RandomShuffleDef 813556 813008 -0.1% 1.00x (?)
RandomShuffleLCG 120269 121551 +1.1% 0.99x (?)
RangeAssignment 363 351 -3.3% 1.03x
RangeIterationSigned 171 171 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 1011 1014 +0.3% 1.00x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 49 47 -4.1% 1.04x
RemoveWhereFilterString 253 242 -4.3% 1.05x
RemoveWhereFilterStrings 437 438 +0.2% 1.00x (?)
RemoveWhereMoveInts 15 15 +0.0% 1.00x
RemoveWhereMoveStrings 708 707 -0.1% 1.00x (?)
RemoveWhereQuadraticInts 1295 1299 +0.3% 1.00x (?)
RemoveWhereQuadraticString 370 375 +1.4% 0.99x (?)
RemoveWhereQuadraticStrings 2762 2767 +0.2% 1.00x
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 859 860 +0.1% 1.00x (?)
ReversedArray 57 57 +0.0% 1.00x
ReversedDictionary 263 263 +0.0% 1.00x
SequenceAlgosAnySequence 11946 12089 +1.2% 0.99x
SequenceAlgosArray 1577 1579 +0.1% 1.00x
SequenceAlgosContiguousArray 1584 1578 -0.4% 1.00x (?)
SequenceAlgosList 1355 1352 -0.2% 1.00x
SequenceAlgosRange 2576 2578 +0.1% 1.00x
SequenceAlgosUnfoldSequence 1102 1102 +0.0% 1.00x
SetExclusiveOr 5044 5049 +0.1% 1.00x (?)
SetExclusiveOr_OfObjects 11647 11645 -0.0% 1.00x (?)
SetIntersect 687 687 +0.0% 1.00x
SetIntersect_OfObjects 1773 1753 -1.1% 1.01x (?)
SetIsSubsetOf_OfObjects 492 486 -1.2% 1.01x
SetUnion 4493 4528 +0.8% 0.99x
SetUnion_OfObjects 10108 10089 -0.2% 1.00x (?)
SevenBoom 836 844 +1.0% 0.99x (?)
SortLargeExistentials 5584 5524 -1.1% 1.01x (?)
SortLettersInPlace 989 999 +1.0% 0.99x (?)
SortSortedStrings 856 843 -1.5% 1.02x
SortStrings 1759 1778 +1.1% 0.99x
StackPromo 24538 24573 +0.1% 1.00x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1775 1781 +0.3% 1.00x
StrToInt 3155 3235 +2.5% 0.98x
StringAdder 536 549 +2.4% 0.98x
StringBuilder 448 455 +1.6% 0.98x
StringBuilderLong 1246 1248 +0.2% 1.00x (?)
StringBuilderSmallReservingCapacity 462 469 +1.5% 0.99x
StringComparison_abnormal 774 786 +1.6% 0.98x (?)
StringComparison_ascii 1005 1024 +1.9% 0.98x
StringComparison_emoji 857 864 +0.8% 0.99x
StringComparison_fastPrenormal 834 847 +1.6% 0.98x (?)
StringComparison_latin1 655 669 +2.1% 0.98x
StringComparison_longSharedPrefix 949 955 +0.6% 0.99x
StringComparison_nonBMPSlowestPrenormal 1681 1687 +0.4% 1.00x (?)
StringComparison_slowerPrenormal 1820 1823 +0.2% 1.00x
StringComparison_zalgo 122177 121533 -0.5% 1.01x (?)
StringEdits 170182 177871 +4.5% 0.96x
StringEnumRawValueInitialization 852 864 +1.4% 0.99x
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2206 2232 +1.2% 0.99x
StringHasPrefixUnicode 100524 99128 -1.4% 1.01x
StringHasSuffixAscii 2233 2320 +3.9% 0.96x
StringHasSuffixUnicode 100926 101283 +0.4% 1.00x (?)
StringInterpolation 9043 9041 -0.0% 1.00x (?)
StringInterpolationManySmallSegments 18202 18065 -0.8% 1.01x (?)
StringInterpolationSmall 4181 4284 +2.5% 0.98x
StringMatch 12021 12374 +2.9% 0.97x
StringRemoveDupes 476 484 +1.7% 0.98x (?)
StringUTF16Builder 2593 2677 +3.2% 0.97x
StringWalk 1546 1568 +1.4% 0.99x
StringWordBuilder 2221 2221 +0.0% 1.00x
SubstringEqualString 636 636 +0.0% 1.00x
SubstringEquatable 1484 1470 -0.9% 1.01x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3619 3642 +0.6% 0.99x (?)
SuffixSequenceLazy 3620 3645 +0.7% 0.99x (?)
SumUsingReduce 97 97 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 20315 20248 -0.3% 1.00x (?)
TwoSum 1487 1466 -1.4% 1.01x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 312 312 +0.0% 1.00x
UTF8Decode_InitDecoding 1358 1351 -0.5% 1.01x
UTF8Decode_InitDecoding_ascii 659 652 -1.1% 1.01x
UTF8Decode_InitFromBytes 1197 1193 -0.3% 1.00x (?)
UTF8Decode_InitFromBytes_ascii 505 512 +1.4% 0.99x (?)
UTF8Decode_InitFromData 1237 1247 +0.8% 0.99x (?)
Walsh 431 435 +0.9% 0.99x
WordCountHistogramASCII 7907 8044 +1.7% 0.98x
WordCountHistogramUTF16 14731 15247 +3.5% 0.97x (?)
WordCountUniqueASCII 2063 2098 +1.7% 0.98x
WordCountUniqueUTF16 8011 8190 +2.2% 0.98x (?)
WordSplitASCII 7466 7390 -1.0% 1.01x (?)
WordSplitUTF16 9278 9618 +3.7% 0.96x
XorLoop 403 402 -0.2% 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

@airspeedswift
Copy link
Member Author

lol

@airspeedswift
Copy link
Member Author

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (76)
TEST OLD NEW DELTA SPEEDUP
PrefixAnySeqCRangeIter 40 18965 +47311.3% 0.00x
PrefixAnySeqCRangeIterLazy 40 18947 +47266.3% 0.00x
DropLastAnySeqCntRangeLazy 11 5189 +47068.4% 0.00x
DropLastAnySeqCntRange 11 5183 +47013.9% 0.00x
DropWhileAnySeqCRangeIter 75 24537 +32615.6% 0.00x
SuffixAnySeqCntRange 17 5180 +30368.8% 0.00x
SuffixAnySeqCntRangeLazy 17 5178 +30357.0% 0.00x
DropFirstAnySeqCRangeIterLazy 93 23765 +25453.5% 0.00x
DropFirstAnySeqCRangeIter 93 23726 +25411.6% 0.00x
PrefixAnySeqCntRangeLazy 71 15553 +21805.3% 0.00x
DropFirstAnySeqCntRange 71 15543 +21791.2% 0.00x
PrefixAnySeqCntRange 71 15539 +21785.6% 0.00x
DropFirstAnySeqCntRangeLazy 71 15509 +21743.4% 0.00x
DropWhileAnySeqCntRange 95 19987 +20938.7% 0.00x
PrefixWhileAnySeqCntRangeLazy 71 14898 +20882.8% 0.00x
PrefixWhileAnyCollectionLazy 71 14851 +20816.6% 0.00x
PrefixAnyCollection 76 15572 +20389.2% 0.00x
DropFirstAnyCollection 76 15560 +20373.4% 0.00x
PrefixWhileAnySeqCntRange 142 28864 +20226.6% 0.00x
DropWhileAnyCollection 100 19988 +19887.8% 0.01x
PrefixWhileAnyCollection 146 28825 +19643.0% 0.01x
SuffixAnyCollection 28 5195 +18452.9% 0.01x
DropLastAnyCollection 28 5189 +18431.5% 0.01x
PrefixWhileAnySeqCRangeIterLazy 89 14868 +16605.4% 0.01x
DropWhileAnySeqCntRangeLazy 130 19854 +15172.2% 0.01x
DropWhileAnyCollectionLazy 130 19826 +15150.7% 0.01x
DropWhileAnySeqCRangeIterLazy 130 19806 +15135.3% 0.01x
PrefixWhileAnySeqCRangeIter 380 32837 +8541.3% 0.01x
PrefixWhileSequence 357 9667 +2607.8% 0.04x
MapReduceAnyCollection 373 8097 +2070.8% 0.05x
PrefixWhileAnySequence 1535 20150 +1212.7% 0.08x
DropLastAnySeqCRangeIter 3278 39257 +1097.6% 0.08x
DropLastAnySeqCRangeIterLazy 3285 39322 +1097.0% 0.08x
SuffixAnySeqCRangeIterLazy 3590 35507 +889.1% 0.10x
SuffixAnySeqCRangeIter 3601 35478 +885.2% 0.10x
DropLastSequenceLazy 631 3850 +510.1% 0.16x
DropLastSequence 631 3756 +495.2% 0.17x
MapReduceAnyCollectionShort 2041 11621 +469.4% 0.18x
DropLastAnySequence 4978 22655 +355.1% 0.22x
DropLastAnySequenceLazy 5062 22723 +348.9% 0.22x
PrefixAnySequenceLazy 1378 5671 +311.5% 0.24x
PrefixAnySequence 1379 5669 +311.1% 0.24x
SuffixAnySequence 4896 19050 +289.1% 0.26x
DropWhileAnySequence 1861 7151 +284.3% 0.26x
SuffixAnySequenceLazy 5007 19213 +283.7% 0.26x
DropFirstAnySequence 1842 6483 +252.0% 0.28x
DropFirstAnySequenceLazy 1842 6483 +252.0% 0.28x
DropWhileSequence 2220 5525 +148.9% 0.40x
PrefixSequence 2224 5276 +137.2% 0.42x
PrefixSequenceLazy 2276 5279 +131.9% 0.43x
ReversedBidirectional 17024 39398 +131.4% 0.43x
DropFirstSequence 2681 5788 +115.9% 0.46x
DropFirstSequenceLazy 2768 5861 +111.7% 0.47x
PrefixWhileAnySequenceLazy 1391 2359 +69.6% 0.59x
DropWhileAnySequenceLazy 1855 3145 +69.5% 0.59x
COWTree 3721 5337 +43.4% 0.70x
StaticArray 9 11 +22.2% 0.82x
SuffixAnyCollectionLazy 21693 25831 +19.1% 0.84x
UTF8Decode_InitFromBytes_ascii 483 560 +15.9% 0.86x (?)
UTF8Decode_InitFromData_ascii 680 748 +10.0% 0.91x (?)
SuffixCountableRange 11 12 +9.1% 0.92x
DropLastCountableRange 11 12 +9.1% 0.92x
SuffixCountableRangeLazy 11 12 +9.1% 0.92x
DropLastCountableRangeLazy 11 12 +9.1% 0.92x
RC4 149 161 +8.1% 0.93x
ObjectiveCBridgeFromNSArrayAnyObjectForced 4736 5113 +8.0% 0.93x (?)
SubstringComparable 13 14 +7.7% 0.93x
RemoveWhereMoveInts 14 15 +7.1% 0.93x
CStringLongNonAscii 2291 2443 +6.6% 0.94x
DictionaryCopy 106224 113030 +6.4% 0.94x
DictionaryFilter 105506 112231 +6.4% 0.94x
UTF8Decode_InitFromBytes 1179 1249 +5.9% 0.94x
DropFirstAnyCollectionLazy 68443 72349 +5.7% 0.95x
SetIsSubsetOf_OfObjects 435 459 +5.5% 0.95x
CharIteration_tweet_unicodeScalars 40144 42274 +5.3% 0.95x
DataSetCount 549 578 +5.3% 0.95x (?)
Improvement (20)
TEST OLD NEW DELTA SPEEDUP
LuhnAlgoEager 446 328 -26.5% 1.36x
LuhnAlgoLazy 442 332 -24.9% 1.33x
BinaryFloatingPointPropertiesBinade 31 25 -19.4% 1.24x
RangeIterationSigned 200 171 -14.5% 1.17x
ObjectiveCBridgeStubFromArrayOfNSString 40951 35194 -14.1% 1.16x
DataCopyBytes 506 453 -10.5% 1.12x (?)
Sim2DArray 668 599 -10.3% 1.12x
DataAppendDataSmallToLarge 40998 37297 -9.0% 1.10x (?)
ObjectiveCBridgeStubFromNSString 1095 1001 -8.6% 1.09x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 47509 44099 -7.2% 1.08x (?)
ObjectiveCBridgeStubFromNSDate 6638 6183 -6.9% 1.07x (?)
ObjectiveCBridgeToNSSet 18736 17514 -6.5% 1.07x
ObjectiveCBridgeFromNSStringForced 2848 2677 -6.0% 1.06x (?)
ObjectiveCBridgeStubToNSDate 15686 14785 -5.7% 1.06x (?)
ObjectiveCBridgeStubToArrayOfNSString 43033 40602 -5.6% 1.06x (?)
ObjectiveCBridgeFromNSArrayAnyObject 26213 24775 -5.5% 1.06x (?)
BinaryFloatingPointPropertiesUlp 37 35 -5.4% 1.06x
ObjectiveCBridgeStubURLAppendPath 295780 280065 -5.3% 1.06x
SumUsingReduce 102 97 -4.9% 1.05x
ObjectiveCBridgeToNSDictionary 27874 26511 -4.9% 1.05x (?)
No Changes (350)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3788 3849 +1.6% 0.98x (?)
AnyHashableWithAClass 86538 86861 +0.4% 1.00x
Array2D 2856 2859 +0.1% 1.00x (?)
ArrayAppend 1107 1083 -2.2% 1.02x
ArrayAppendArrayOfInt 797 797 +0.0% 1.00x
ArrayAppendAscii 3982 4049 +1.7% 0.98x (?)
ArrayAppendAsciiSubstring 25161 25055 -0.4% 1.00x
ArrayAppendFromGeneric 799 799 +0.0% 1.00x
ArrayAppendGenericStructs 1432 1430 -0.1% 1.00x (?)
ArrayAppendLatin1 41194 41475 +0.7% 0.99x (?)
ArrayAppendLatin1Substring 143404 143201 -0.1% 1.00x (?)
ArrayAppendLazyMap 1340 1348 +0.6% 0.99x (?)
ArrayAppendOptionals 1435 1428 -0.5% 1.00x (?)
ArrayAppendRepeatCol 1333 1339 +0.5% 1.00x (?)
ArrayAppendReserved 846 817 -3.4% 1.04x
ArrayAppendSequence 1123 1123 +0.0% 1.00x
ArrayAppendStrings 6208 6226 +0.3% 1.00x
ArrayAppendToFromGeneric 797 801 +0.5% 1.00x (?)
ArrayAppendToGeneric 801 800 -0.1% 1.00x (?)
ArrayAppendUTF16 40901 41164 +0.6% 0.99x
ArrayAppendUTF16Substring 140967 140277 -0.5% 1.00x
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 151 +0.0% 1.00x
ArrayOfGenericRef 4386 4385 -0.0% 1.00x (?)
ArrayOfPOD 184 184 +0.0% 1.00x
ArrayOfRef 4370 4358 -0.3% 1.00x
ArrayPlusEqualArrayOfInt 785 798 +1.7% 0.98x (?)
ArrayPlusEqualFiveElementCollection 5598 5466 -2.4% 1.02x
ArrayPlusEqualSingleElementCollection 1111 1076 -3.2% 1.03x
ArrayPlusEqualThreeElements 1682 1645 -2.2% 1.02x
ArraySubscript 1556 1513 -2.8% 1.03x
ArrayValueProp 8 8 +0.0% 1.00x
ArrayValueProp2 8 8 +0.0% 1.00x
ArrayValueProp3 8 8 +0.0% 1.00x
ArrayValueProp4 8 8 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BitCount 211 202 -4.3% 1.04x
ByteSwap 101 106 +5.0% 0.95x
COWArrayGuaranteedParameterOverhead 8793 8735 -0.7% 1.01x (?)
CSVParsing 654902 654444 -0.1% 1.00x (?)
CSVParsingAlt 809311 808657 -0.1% 1.00x (?)
CSVParsingAltIndices 345794 342860 -0.8% 1.01x
CStringLongAscii 4162 4153 -0.2% 1.00x (?)
CStringShortAscii 3338 3365 +0.8% 0.99x
Calculator 207 207 +0.0% 1.00x
CaptureProp 4061 4081 +0.5% 1.00x (?)
ChainedFilterMap 1247 1249 +0.2% 1.00x (?)
CharIndexing_ascii_unicodeScalars 16283 16284 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 16033 16040 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 12339 12344 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 12165 12170 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 19488 19518 +0.2% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 19182 19226 +0.2% 1.00x
CharIndexing_korean_unicodeScalars 15796 15803 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 15543 15560 +0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2963 2963 +0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2917 2932 +0.5% 0.99x
CharIndexing_punctuated_unicodeScalars 3695 3703 +0.2% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3640 3658 +0.5% 1.00x
CharIndexing_russian_unicodeScalars 13573 13575 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 13368 13369 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 32095 32115 +0.1% 1.00x
CharIndexing_tweet_unicodeScalars_Backwards 31613 31744 +0.4% 1.00x
CharIndexing_utf16_unicodeScalars 22902 22898 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 23329 23306 -0.1% 1.00x
CharIteration_ascii_unicodeScalars 20629 20846 +1.1% 0.99x
CharIteration_ascii_unicodeScalars_Backwards 15115 15112 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 15624 15773 +1.0% 0.99x
CharIteration_chinese_unicodeScalars_Backwards 11440 11436 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 24732 24914 +0.7% 0.99x (?)
CharIteration_japanese_unicodeScalars_Backwards 18087 18084 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 20007 20234 +1.1% 0.99x
CharIteration_korean_unicodeScalars_Backwards 14653 14642 -0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3719 3758 +1.0% 0.99x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2733 2737 +0.1% 1.00x
CharIteration_punctuated_unicodeScalars 4656 4699 +0.9% 0.99x
CharIteration_punctuated_unicodeScalars_Backwards 3421 3426 +0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 17173 17364 +1.1% 0.99x
CharIteration_russian_unicodeScalars_Backwards 12586 12590 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 29831 29843 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 27674 27923 +0.9% 0.99x
CharIteration_utf16_unicodeScalars_Backwards 18539 18535 -0.0% 1.00x (?)
CharacterLiteralsLarge 5928 5911 -0.3% 1.00x
CharacterLiteralsSmall 220 220 +0.0% 1.00x
CharacterPropertiesFetch 4646 4674 +0.6% 0.99x (?)
CharacterPropertiesPrecomputed 1032 1038 +0.6% 0.99x
CharacterPropertiesStashed 1493 1532 +2.6% 0.97x
CharacterPropertiesStashedMemo 1596 1610 +0.9% 0.99x
Chars 1018 1018 +0.0% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 489 489 +0.0% 1.00x
DataAccessBytes 1145 1142 -0.3% 1.00x
DataAppendArray 5250 5272 +0.4% 1.00x (?)
DataAppendBytes 4842 4930 +1.8% 0.98x
DataAppendDataLargeToLarge 68452 66397 -3.0% 1.03x
DataAppendDataLargeToMedium 35882 35531 -1.0% 1.01x (?)
DataAppendDataLargeToSmall 34667 34592 -0.2% 1.00x (?)
DataAppendDataMediumToLarge 38202 38330 +0.3% 1.00x (?)
DataAppendDataMediumToMedium 6677 6767 +1.3% 0.99x (?)
DataAppendDataMediumToSmall 5934 5946 +0.2% 1.00x (?)
DataAppendDataSmallToMedium 5865 6047 +3.1% 0.97x (?)
DataAppendDataSmallToSmall 6025 6005 -0.3% 1.00x (?)
DataAppendSequence 20650 20655 +0.0% 1.00x (?)
DataCount 37 37 +0.0% 1.00x
DataMutateBytes 3920 3922 +0.1% 1.00x (?)
DataReplaceLarge 36582 37163 +1.6% 0.98x
DataReplaceLargeBuffer 56320 57557 +2.2% 0.98x
DataReplaceMedium 7499 7717 +2.9% 0.97x (?)
DataReplaceMediumBuffer 11248 10830 -3.7% 1.04x (?)
DataReplaceSmall 5478 5598 +2.2% 0.98x (?)
DataReplaceSmallBuffer 8590 8708 +1.4% 0.99x (?)
DataReset 2826 2837 +0.4% 1.00x (?)
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 779 784 +0.6% 0.99x (?)
Dictionary 509 511 +0.4% 1.00x (?)
Dictionary2 638 637 -0.2% 1.00x (?)
Dictionary2OfObjects 2087 2083 -0.2% 1.00x (?)
Dictionary3 226 222 -1.8% 1.02x (?)
Dictionary3OfObjects 736 737 +0.1% 1.00x (?)
Dictionary4 325 326 +0.3% 1.00x
Dictionary4Legacy 740 737 -0.4% 1.00x
Dictionary4OfObjects 446 448 +0.4% 1.00x
Dictionary4OfObjectsLegacy 961 980 +2.0% 0.98x
DictionaryBridge 1179 1172 -0.6% 1.01x (?)
DictionaryGroup 216 216 +0.0% 1.00x
DictionaryGroupOfObjects 2125 2121 -0.2% 1.00x (?)
DictionaryKeysContainsCocoa 39 40 +2.6% 0.98x (?)
DictionaryKeysContainsNative 32 32 +0.0% 1.00x
DictionaryLiteral 1952 1914 -1.9% 1.02x
DictionaryOfObjects 2382 2362 -0.8% 1.01x
DictionaryRemove 4240 4231 -0.2% 1.00x (?)
DictionaryRemoveOfObjects 25863 25848 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutation 265 263 -0.8% 1.01x (?)
DictionarySubscriptDefaultMutationArray 607 605 -0.3% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 4065 4001 -1.6% 1.02x (?)
DictionarySubscriptDefaultMutationOfObjects 1707 1706 -0.1% 1.00x (?)
DictionarySwap 1073 1077 +0.4% 1.00x
DictionarySwapAt 6997 6999 +0.0% 1.00x (?)
DictionarySwapAtOfObjects 52209 52369 +0.3% 1.00x (?)
DictionarySwapOfObjects 8738 8837 +1.1% 0.99x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 35 35 +0.0% 1.00x
DropFirstCountableRangeLazy 35 35 +0.0% 1.00x
DropLastAnyCollectionLazy 22941 22990 +0.2% 1.00x (?)
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 52 52 +0.0% 1.00x
EqualSubstringString 51 52 +2.0% 0.98x
EqualSubstringSubstring 51 52 +2.0% 0.98x
EqualSubstringSubstringGenericEquatable 51 52 +2.0% 0.98x
ErrorHandling 1181 1210 +2.5% 0.98x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 199711 200562 +0.4% 1.00x
FilterEvenUsingReduce 1313 1318 +0.4% 1.00x (?)
FilterEvenUsingReduceInto 148 148 +0.0% 1.00x
FloatingPointPrinting_Double_description_small 21546 21494 -0.2% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 21106 21005 -0.5% 1.00x (?)
FloatingPointPrinting_Double_interpolated 61742 62301 +0.9% 0.99x (?)
FloatingPointPrinting_Float80_description_small 28607 28249 -1.3% 1.01x (?)
FloatingPointPrinting_Float80_description_uniform 27528 27445 -0.3% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 65830 65423 -0.6% 1.01x (?)
FloatingPointPrinting_Float_description_small 5376 5436 +1.1% 0.99x
FloatingPointPrinting_Float_description_uniform 5405 5417 +0.2% 1.00x (?)
FloatingPointPrinting_Float_interpolated 38606 39367 +2.0% 0.98x (?)
FrequenciesUsingReduce 4852 4933 +1.7% 0.98x
FrequenciesUsingReduceInto 1501 1519 +1.2% 0.99x (?)
Hanoi 2239 2297 +2.6% 0.97x
HashTest 934 946 +1.3% 0.99x
Histogram 706 710 +0.6% 0.99x
Integrate 334 335 +0.3% 1.00x
IterateData 1445 1497 +3.6% 0.97x
Join 174 170 -2.3% 1.02x
LazilyFilteredArrayContains 35466 35532 +0.2% 1.00x
LazilyFilteredArrays 66272 66712 +0.7% 0.99x (?)
LazilyFilteredRange 3876 3874 -0.1% 1.00x
LessSubstringSubstring 51 52 +2.0% 0.98x
LessSubstringSubstringGenericComparable 51 52 +2.0% 0.98x
LinkedList 7528 7520 -0.1% 1.00x (?)
MapReduce 373 370 -0.8% 1.01x
MapReduceClass 3004 3002 -0.1% 1.00x (?)
MapReduceClassShort 4571 4556 -0.3% 1.00x
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 37 36 -2.7% 1.03x (?)
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 458 461 +0.7% 0.99x (?)
MapReduceShort 2010 1988 -1.1% 1.01x (?)
MapReduceShortString 21 20 -4.8% 1.05x
MapReduceString 47 47 +0.0% 1.00x
Memset 215 223 +3.7% 0.96x (?)
MonteCarloE 10303 10195 -1.0% 1.01x
MonteCarloPi 42950 42776 -0.4% 1.00x
NSDictionaryCastToSwift 7022 6935 -1.2% 1.01x (?)
NSError 164 163 -0.6% 1.01x (?)
NSStringConversion 713 698 -2.1% 1.02x
NibbleSort 3696 3696 +0.0% 1.00x
NopDeinit 31580 31585 +0.0% 1.00x (?)
ObjectAllocation 135 133 -1.5% 1.02x
ObjectiveCBridgeFromNSArrayAnyObjectToString 47412 46195 -2.6% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 108218 106773 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 48311 48900 +1.2% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4984 5033 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 68432 69936 +2.2% 0.98x (?)
ObjectiveCBridgeFromNSString 1254 1229 -2.0% 1.02x (?)
ObjectiveCBridgeStubDataAppend 6330 6449 +1.9% 0.98x (?)
ObjectiveCBridgeStubDateMutation 400 401 +0.2% 1.00x
ObjectiveCBridgeStubFromNSStringRef 165 158 -4.2% 1.04x
ObjectiveCBridgeStubNSDataAppend 2707 2717 +0.4% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 13639 13705 +0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3426 3438 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 2350 2344 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 115 116 +0.9% 0.99x
ObjectiveCBridgeStubURLAppendPathRef 288429 283123 -1.8% 1.02x
ObjectiveCBridgeToNSArray 14927 14496 -2.9% 1.03x (?)
ObjectiveCBridgeToNSString 447 450 +0.7% 0.99x
ObserverClosure 2168 2174 +0.3% 1.00x (?)
ObserverForwarderStruct 1217 1211 -0.5% 1.00x (?)
ObserverPartiallyAppliedMethod 3692 3757 +1.8% 0.98x
ObserverUnappliedMethod 2486 2467 -0.8% 1.01x (?)
OpaqueConsumingUsers 4180 4182 +0.0% 1.00x
OpenClose 68 68 +0.0% 1.00x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 6846 6974 +1.9% 0.98x
PointerArithmetics 34353 34370 +0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1961 1969 +0.4% 1.00x (?)
PopFrontArrayGeneric 1993 2002 +0.5% 1.00x (?)
PopFrontUnsafePointer 9506 9555 +0.5% 0.99x (?)
PrefixAnyCollectionLazy 67317 67360 +0.1% 1.00x (?)
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 897 903 +0.7% 0.99x
PrimsSplit 897 904 +0.8% 0.99x (?)
QueueConcrete 1151 1149 -0.2% 1.00x
QueueGeneric 1149 1149 +0.0% 1.00x
RGBHistogram 3218 3214 -0.1% 1.00x (?)
RGBHistogramOfObjects 23590 23753 +0.7% 0.99x (?)
Radix2CooleyTukey 12449 12290 -1.3% 1.01x (?)
Radix2CooleyTukeyf 9084 8917 -1.8% 1.02x
RandomDoubleDef 26670 26714 +0.2% 1.00x
RandomDoubleLCG 2916 2916 +0.0% 1.00x
RandomIntegersDef 24488 24475 -0.1% 1.00x (?)
RandomIntegersLCG 994 995 +0.1% 1.00x
RandomShuffleDef 813980 806606 -0.9% 1.01x (?)
RandomShuffleLCG 120761 120990 +0.2% 1.00x (?)
RangeAssignment 337 351 +4.2% 0.96x
RangeReplaceableCollectionPlusDefault 1018 1012 -0.6% 1.01x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 47 47 +0.0% 1.00x
RemoveWhereFilterString 242 249 +2.9% 0.97x
RemoveWhereFilterStrings 437 440 +0.7% 0.99x
RemoveWhereMoveStrings 707 708 +0.1% 1.00x (?)
RemoveWhereQuadraticInts 1298 1296 -0.2% 1.00x (?)
RemoveWhereQuadraticString 380 383 +0.8% 0.99x (?)
RemoveWhereQuadraticStrings 2761 2764 +0.1% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 860 858 -0.2% 1.00x
ReversedArray 57 58 +1.8% 0.98x
ReversedDictionary 268 267 -0.4% 1.00x (?)
RomanNumbers 84975 86241 +1.5% 0.99x
SequenceAlgosAnySequence 11990 12083 +0.8% 0.99x
SequenceAlgosArray 1578 1578 +0.0% 1.00x
SequenceAlgosContiguousArray 1577 1589 +0.8% 0.99x
SequenceAlgosList 1352 1354 +0.1% 1.00x
SequenceAlgosRange 2577 2587 +0.4% 1.00x
SequenceAlgosUnfoldSequence 1102 1102 +0.0% 1.00x
SetExclusiveOr 4938 5008 +1.4% 0.99x
SetExclusiveOr_OfObjects 11757 11632 -1.1% 1.01x
SetIntersect 681 685 +0.6% 0.99x (?)
SetIntersect_OfObjects 1776 1777 +0.1% 1.00x (?)
SetIsSubsetOf 359 361 +0.6% 0.99x
SetUnion 4444 4438 -0.1% 1.00x (?)
SetUnion_OfObjects 10134 10056 -0.8% 1.01x
SevenBoom 840 841 +0.1% 1.00x (?)
SortLargeExistentials 5563 5593 +0.5% 0.99x
SortLettersInPlace 1003 996 -0.7% 1.01x (?)
SortSortedStrings 874 881 +0.8% 0.99x (?)
SortStrings 1806 1808 +0.1% 1.00x
SortStringsUnicode 2636 2567 -2.6% 1.03x
StackPromo 24546 24530 -0.1% 1.00x
StrComplexWalk 1776 1777 +0.1% 1.00x (?)
StrToInt 3224 3204 -0.6% 1.01x
StringAdder 548 562 +2.6% 0.98x
StringBuilder 454 462 +1.8% 0.98x
StringBuilderLong 1248 1261 +1.0% 0.99x (?)
StringBuilderSmallReservingCapacity 468 478 +2.1% 0.98x
StringBuilderWithLongSubstring 1474 1453 -1.4% 1.01x (?)
StringComparison_abnormal 786 777 -1.1% 1.01x
StringComparison_ascii 1022 1035 +1.3% 0.99x
StringComparison_emoji 861 866 +0.6% 0.99x
StringComparison_fastPrenormal 858 873 +1.7% 0.98x
StringComparison_latin1 706 682 -3.4% 1.04x
StringComparison_longSharedPrefix 952 963 +1.2% 0.99x
StringComparison_nonBMPSlowestPrenormal 1663 1696 +2.0% 0.98x
StringComparison_slowerPrenormal 1801 1826 +1.4% 0.99x
StringComparison_zalgo 120440 121146 +0.6% 0.99x (?)
StringEdits 166504 167478 +0.6% 0.99x (?)
StringEnumRawValueInitialization 866 860 -0.7% 1.01x
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2262 2290 +1.2% 0.99x
StringHasPrefixUnicode 99944 99618 -0.3% 1.00x (?)
StringHasSuffixAscii 2318 2348 +1.3% 0.99x
StringHasSuffixUnicode 101797 101716 -0.1% 1.00x (?)
StringInterpolation 9177 9223 +0.5% 1.00x (?)
StringInterpolationManySmallSegments 18422 18105 -1.7% 1.02x
StringInterpolationSmall 4279 4297 +0.4% 1.00x
StringMatch 12224 12476 +2.1% 0.98x
StringRemoveDupes 486 485 -0.2% 1.00x (?)
StringUTF16Builder 2667 2665 -0.1% 1.00x (?)
StringUTF16SubstringBuilder 5867 5799 -1.2% 1.01x (?)
StringWalk 1569 1563 -0.4% 1.00x
StringWithCString 42975 43067 +0.2% 1.00x
StringWordBuilder 2222 2216 -0.3% 1.00x
StringWordBuilderReservingCapacity 1850 1793 -3.1% 1.03x
SubstringEqualString 639 644 +0.8% 0.99x
SubstringEquatable 1546 1477 -4.5% 1.05x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixSequence 3625 3658 +0.9% 0.99x
SuffixSequenceLazy 3625 3658 +0.9% 0.99x
SumUsingReduceInto 101 97 -4.0% 1.04x
SuperChars 20067 20124 +0.3% 1.00x (?)
TwoSum 1453 1461 +0.6% 0.99x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 298 298 +0.0% 1.00x
UTF8Decode_InitDecoding 1357 1359 +0.1% 1.00x (?)
UTF8Decode_InitDecoding_ascii 656 651 -0.8% 1.01x (?)
UTF8Decode_InitFromData 1255 1267 +1.0% 0.99x (?)
Walsh 434 444 +2.3% 0.98x
WordCountHistogramASCII 8038 8152 +1.4% 0.99x (?)
WordCountHistogramUTF16 14742 14068 -4.6% 1.05x
WordCountUniqueASCII 2106 2073 -1.6% 1.02x
WordCountUniqueUTF16 7586 7244 -4.5% 1.05x (?)
WordSplitASCII 7489 7731 +3.2% 0.97x (?)
WordSplitUTF16 9716 9956 +2.5% 0.98x (?)
XorLoop 403 402 -0.2% 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

@slavapestov
Copy link
Contributor

Ooof

@slavapestov
Copy link
Contributor

On the other hand, how representative are those benchmarks of real uses of the existential collections?

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

Successfully merging this pull request may close these issues.

3 participants