Skip to content

IRGen, benchmarks: add an option -align-module-to-page-size for benchmarking #18318

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
Jul 28, 2018

Conversation

eeckstein
Copy link
Contributor

The option aligns all modules to the page size. This help giving more consistent results when doing performance testing with the swift benchmark suite.
It solves the problem that benchmarks which compile down to identical code give different runtime data because of different alignment of the code within a page.
Also compile the benchmarks with the new option, if supported by the compiler

The option aligns all modules to the page size. This help giving more consistent results when doing performance testing with the swift benchmark suite.
It solves the problem that benchmarks which compile down to identical code give different runtime data because of different alignment of the code within a page.
…f supported by the compiler

To stabilize the benchmark results.
@eeckstein
Copy link
Contributor Author

@swift-ci smoke benchmark

@eeckstein
Copy link
Contributor Author

@swift-ci smoke test

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (6)
TEST OLD NEW DELTA SPEEDUP
DataCopyBytes 461 541 +17.4% 0.85x (?)
StaticArray 9 10 +11.1% 0.90x
DictionaryBridgeToObjC_Access 906 998 +10.2% 0.91x (?)
StringBuilderLong 1234 1327 +7.5% 0.93x
ObjectiveCBridgeStubFromArrayOfNSString 32700 35030 +7.1% 0.93x (?)
ObjectiveCBridgeToNSSet 17326 18324 +5.8% 0.95x (?)
Improvement (6)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeFromNSArrayAnyObjectForced 5537 4675 -15.6% 1.18x (?)
SevenBoom 947 851 -10.1% 1.11x (?)
SuffixCountableRangeLazy 12 11 -8.3% 1.09x
UTF8Decode_InitFromBytes_ascii 548 507 -7.5% 1.08x
ObjectiveCBridgeFromNSArrayAnyObject 28324 26830 -5.3% 1.06x (?)
UTF8Decode_InitFromData_ascii 853 811 -4.9% 1.05x (?)
No Changes (447)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3834 4009 +4.6% 0.96x (?)
AnyHashableWithAClass 91302 91772 +0.5% 0.99x
Array2D 2718 2719 +0.0% 1.00x (?)
ArrayAppend 1111 1113 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 802 799 -0.4% 1.00x (?)
ArrayAppendAscii 3886 3924 +1.0% 0.99x (?)
ArrayAppendAsciiSubstring 24933 24935 +0.0% 1.00x (?)
ArrayAppendFromGeneric 804 802 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1450 1438 -0.8% 1.01x
ArrayAppendLatin1 41899 42169 +0.6% 0.99x (?)
ArrayAppendLatin1Substring 139388 139343 -0.0% 1.00x (?)
ArrayAppendLazyMap 1343 1344 +0.1% 1.00x (?)
ArrayAppendOptionals 1436 1408 -1.9% 1.02x (?)
ArrayAppendRepeatCol 1342 1337 -0.4% 1.00x (?)
ArrayAppendReserved 843 841 -0.2% 1.00x (?)
ArrayAppendSequence 1125 1123 -0.2% 1.00x (?)
ArrayAppendStrings 6216 6212 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 804 801 -0.4% 1.00x (?)
ArrayAppendToGeneric 801 801 +0.0% 1.00x
ArrayAppendUTF16 41246 41200 -0.1% 1.00x (?)
ArrayAppendUTF16Substring 137474 137469 -0.0% 1.00x (?)
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 152 152 +0.0% 1.00x
ArrayOfGenericRef 4360 4371 +0.3% 1.00x (?)
ArrayOfPOD 183 185 +1.1% 0.99x (?)
ArrayOfRef 4342 4374 +0.7% 0.99x (?)
ArrayPlusEqualArrayOfInt 806 803 -0.4% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5631 5664 +0.6% 0.99x
ArrayPlusEqualSingleElementCollection 1109 1114 +0.5% 1.00x
ArrayPlusEqualThreeElements 1702 1689 -0.8% 1.01x (?)
ArraySubscript 1566 1557 -0.6% 1.01x (?)
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 37 37 +0.0% 1.00x
BitCount 202 202 +0.0% 1.00x
ByteSwap 104 104 +0.0% 1.00x
COWArrayGuaranteedParameterOverhead 10123 10227 +1.0% 0.99x (?)
COWTree 3638 3636 -0.1% 1.00x (?)
CSVParsing2 1621 1622 +0.1% 1.00x (?)
CSVParsingAlt2 1775 1777 +0.1% 1.00x (?)
CSVParsingAltIndices2 782 778 -0.5% 1.01x (?)
CStringLongAscii 4035 4032 -0.1% 1.00x (?)
CStringLongNonAscii 2347 2348 +0.0% 1.00x (?)
CStringShortAscii 3332 3339 +0.2% 1.00x (?)
Calculator 206 206 +0.0% 1.00x
CaptureProp 4091 4093 +0.0% 1.00x (?)
ChainedFilterMap 1246 1247 +0.1% 1.00x (?)
CharIndexing_ascii_unicodeScalars 16080 16083 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 16468 16465 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 12190 12176 -0.1% 1.00x
CharIndexing_chinese_unicodeScalars_Backwards 12468 12476 +0.1% 1.00x (?)
CharIndexing_japanese_unicodeScalars 19253 19255 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 19724 19698 -0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars 15599 15599 +0.0% 1.00x
CharIndexing_korean_unicodeScalars_Backwards 15980 15969 -0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2928 2927 -0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2981 2979 -0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3658 3657 -0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3729 3732 +0.1% 1.00x
CharIndexing_russian_unicodeScalars 13406 13398 -0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 13723 13730 +0.1% 1.00x
CharIndexing_tweet_unicodeScalars 31117 31122 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 32304 32322 +0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars 22686 22691 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 23393 23407 +0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars 20424 20424 +0.0% 1.00x
CharIteration_ascii_unicodeScalars_Backwards 15598 15587 -0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 15439 15451 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 11811 11810 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 24419 24436 +0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 18680 18665 -0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 19810 19802 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 15125 15110 -0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3656 3656 +0.0% 1.00x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2826 2826 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars 4584 4582 -0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3534 3535 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars 16978 16998 +0.1% 1.00x
CharIteration_russian_unicodeScalars_Backwards 12993 12999 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 40065 40004 -0.2% 1.00x
CharIteration_tweet_unicodeScalars_Backwards 30781 30819 +0.1% 1.00x
CharIteration_utf16_unicodeScalars 27598 27603 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 19500 19516 +0.1% 1.00x (?)
CharacterLiteralsLarge 5826 5875 +0.8% 0.99x (?)
CharacterLiteralsSmall 217 217 +0.0% 1.00x
CharacterPropertiesFetch 4598 4545 -1.2% 1.01x
CharacterPropertiesPrecomputed 1007 1005 -0.2% 1.00x (?)
CharacterPropertiesStashed 1801 1797 -0.2% 1.00x (?)
CharacterPropertiesStashedMemo 1565 1564 -0.1% 1.00x (?)
Chars 917 917 +0.0% 1.00x
ClassArrayGetter2 125 125 +0.0% 1.00x
Combos 499 505 +1.2% 0.99x
DataAccessBytes 1145 1142 -0.3% 1.00x
DataAppendArray 5580 5635 +1.0% 0.99x (?)
DataAppendBytes 5403 5222 -3.3% 1.03x (?)
DataAppendDataLargeToLarge 67194 66622 -0.9% 1.01x (?)
DataAppendDataLargeToMedium 35950 35613 -0.9% 1.01x (?)
DataAppendDataLargeToSmall 34740 34913 +0.5% 1.00x (?)
DataAppendDataMediumToLarge 38155 37932 -0.6% 1.01x (?)
DataAppendDataMediumToMedium 6600 6625 +0.4% 1.00x (?)
DataAppendDataMediumToSmall 6066 6020 -0.8% 1.01x (?)
DataAppendDataSmallToLarge 37298 36813 -1.3% 1.01x (?)
DataAppendDataSmallToMedium 6305 6143 -2.6% 1.03x (?)
DataAppendDataSmallToSmall 5834 6117 +4.9% 0.95x (?)
DataAppendSequence 21042 21000 -0.2% 1.00x (?)
DataCount 37 37 +0.0% 1.00x
DataMutateBytes 3915 3961 +1.2% 0.99x (?)
DataReplaceLarge 37192 36724 -1.3% 1.01x
DataReplaceLargeBuffer 58281 59443 +2.0% 0.98x (?)
DataReplaceMedium 8292 8195 -1.2% 1.01x (?)
DataReplaceMediumBuffer 13344 12874 -3.5% 1.04x (?)
DataReplaceSmall 5814 5833 +0.3% 1.00x (?)
DataReplaceSmallBuffer 9047 9207 +1.8% 0.98x (?)
DataReset 2881 2929 +1.7% 0.98x (?)
DataSetCount 552 555 +0.5% 0.99x (?)
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 817 802 -1.8% 1.02x (?)
Dictionary 543 525 -3.3% 1.03x
Dictionary2 659 642 -2.6% 1.03x
Dictionary2OfObjects 2174 2089 -3.9% 1.04x
Dictionary3 227 227 +0.0% 1.00x
Dictionary3OfObjects 748 749 +0.1% 1.00x (?)
Dictionary4 319 320 +0.3% 1.00x
Dictionary4Legacy 690 689 -0.1% 1.00x (?)
Dictionary4OfObjects 438 438 +0.0% 1.00x
Dictionary4OfObjectsLegacy 909 907 -0.2% 1.00x (?)
DictionaryBridge 1250 1256 +0.5% 1.00x (?)
DictionaryBridgeToObjC_Bridge 19 19 +0.0% 1.00x
DictionaryBridgeToObjC_BulkAccess 164 163 -0.6% 1.01x (?)
DictionaryCompactMapValuesOfCastValue 14569 14535 -0.2% 1.00x (?)
DictionaryCompactMapValuesOfNilValue 7389 7411 +0.3% 1.00x (?)
DictionaryCopy 110725 110306 -0.4% 1.00x
DictionaryFilter 108449 108391 -0.1% 1.00x (?)
DictionaryGroup 216 216 +0.0% 1.00x
DictionaryGroupOfObjects 2136 2130 -0.3% 1.00x
DictionaryKeysContainsCocoa 40 41 +2.5% 0.98x (?)
DictionaryKeysContainsNative 30 30 +0.0% 1.00x
DictionaryLiteral 1928 1930 +0.1% 1.00x (?)
DictionaryOfObjects 2396 2402 +0.3% 1.00x (?)
DictionaryRemove 4364 4366 +0.0% 1.00x (?)
DictionaryRemoveOfObjects 26162 26061 -0.4% 1.00x (?)
DictionarySubscriptDefaultMutation 262 262 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 625 632 +1.1% 0.99x
DictionarySubscriptDefaultMutationArrayOfObjects 4061 4058 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1713 1714 +0.1% 1.00x (?)
DictionarySwap 1030 1031 +0.1% 1.00x
DictionarySwapAt 8050 7722 -4.1% 1.04x (?)
DictionarySwapAtOfObjects 52171 52109 -0.1% 1.00x (?)
DictionarySwapOfObjects 8771 8827 +0.6% 0.99x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 64898 65087 +0.3% 1.00x (?)
DropFirstAnySeqCRangeIter 93 93 +0.0% 1.00x
DropFirstAnySeqCRangeIterLazy 93 93 +0.0% 1.00x
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 1842 1843 +0.1% 1.00x
DropFirstAnySequenceLazy 1842 1843 +0.1% 1.00x (?)
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 35 35 +0.0% 1.00x
DropFirstCountableRangeLazy 35 35 +0.0% 1.00x
DropFirstSequence 2680 2684 +0.1% 1.00x (?)
DropFirstSequenceLazy 2768 2768 +0.0% 1.00x
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21738 21782 +0.2% 1.00x (?)
DropLastAnySeqCRangeIter 3311 3315 +0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3309 3315 +0.2% 1.00x (?)
DropLastAnySeqCntRange 11 11 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 11 11 +0.0% 1.00x
DropLastAnySequence 4957 4945 -0.2% 1.00x (?)
DropLastAnySequenceLazy 5053 5057 +0.1% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastCountableRangeLazy 12 12 +0.0% 1.00x
DropLastSequence 639 639 +0.0% 1.00x
DropLastSequenceLazy 638 639 +0.2% 1.00x (?)
DropWhileAnyCollection 100 100 +0.0% 1.00x
DropWhileAnyCollectionLazy 130 130 +0.0% 1.00x
DropWhileAnySeqCRangeIter 76 76 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 130 130 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 130 130 +0.0% 1.00x
DropWhileAnySequence 1860 1860 +0.0% 1.00x
DropWhileAnySequenceLazy 1854 1855 +0.1% 1.00x (?)
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 2205 2205 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 49 49 +0.0% 1.00x
EqualSubstringString 48 48 +0.0% 1.00x
EqualSubstringSubstring 48 48 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 48 48 +0.0% 1.00x
ErrorHandling 1207 1207 +0.0% 1.00x
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 1247 1244 -0.2% 1.00x (?)
FilterEvenUsingReduce 1337 1356 +1.4% 0.99x
FilterEvenUsingReduceInto 163 165 +1.2% 0.99x (?)
FloatingPointPrinting_Double_description_small 21793 21789 -0.0% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 21252 21218 -0.2% 1.00x
FloatingPointPrinting_Double_interpolated 61025 61335 +0.5% 0.99x
FloatingPointPrinting_Float80_description_small 28754 28753 -0.0% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 27511 27633 +0.4% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 64466 64403 -0.1% 1.00x (?)
FloatingPointPrinting_Float_description_small 5371 5377 +0.1% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 5270 5268 -0.0% 1.00x (?)
FloatingPointPrinting_Float_interpolated 37551 37545 -0.0% 1.00x (?)
FrequenciesUsingReduce 4958 4937 -0.4% 1.00x (?)
FrequenciesUsingReduceInto 1558 1561 +0.2% 1.00x (?)
Hanoi 2193 2183 -0.5% 1.00x (?)
HashTest 944 958 +1.5% 0.99x
Histogram 698 718 +2.9% 0.97x (?)
Integrate 335 335 +0.0% 1.00x
IterateData 1497 1498 +0.1% 1.00x (?)
Join 156 156 +0.0% 1.00x
LazilyFilteredArrayContains 35493 35474 -0.1% 1.00x (?)
LazilyFilteredArrays2 4626 4622 -0.1% 1.00x (?)
LazilyFilteredRange 3883 3884 +0.0% 1.00x (?)
LessSubstringSubstring 48 48 +0.0% 1.00x
LessSubstringSubstringGenericComparable 48 48 +0.0% 1.00x
LinkedList 7557 7559 +0.0% 1.00x (?)
LuhnAlgoEager 452 453 +0.2% 1.00x (?)
LuhnAlgoLazy 450 446 -0.9% 1.01x (?)
MapReduce 399 398 -0.3% 1.00x (?)
MapReduceAnyCollection 400 399 -0.2% 1.00x (?)
MapReduceAnyCollectionShort 2060 2057 -0.1% 1.00x (?)
MapReduceClass 3008 3004 -0.1% 1.00x
MapReduceClassShort 4583 4583 +0.0% 1.00x
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 456 462 +1.3% 0.99x (?)
MapReduceShort 2002 2003 +0.0% 1.00x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 48 48 +0.0% 1.00x
Memset 214 217 +1.4% 0.99x (?)
MonteCarloE 10221 10228 +0.1% 1.00x (?)
MonteCarloPi 42731 42718 -0.0% 1.00x (?)
NSDictionaryCastToSwift 7336 7203 -1.8% 1.02x (?)
NSError 164 166 +1.2% 0.99x
NSStringConversion 691 691 +0.0% 1.00x
NibbleSort 3464 3463 -0.0% 1.00x (?)
NopDeinit 32317 32308 -0.0% 1.00x
ObjectAllocation 133 134 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 47290 45718 -3.3% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 46630 45907 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 107408 108893 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 49737 49347 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 5046 5165 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 72175 75641 +4.8% 0.95x (?)
ObjectiveCBridgeFromNSString 1219 1221 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2725 2730 +0.2% 1.00x (?)
ObjectiveCBridgeStubDataAppend 6253 6303 +0.8% 0.99x (?)
ObjectiveCBridgeStubDateMutation 400 401 +0.2% 1.00x
ObjectiveCBridgeStubFromNSDate 6442 6424 -0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1040 1038 -0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 170 170 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2610 2632 +0.8% 0.99x (?)
ObjectiveCBridgeStubNSDateMutationRef 13474 13011 -3.4% 1.04x (?)
ObjectiveCBridgeStubToArrayOfNSString 40202 40175 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15296 15504 +1.4% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3435 3448 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 2341 2343 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 121 121 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 267628 276862 +3.5% 0.97x (?)
ObjectiveCBridgeStubURLAppendPathRef 274858 274546 -0.1% 1.00x (?)
ObjectiveCBridgeToNSArray 15294 15303 +0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 27942 26960 -3.5% 1.04x (?)
ObjectiveCBridgeToNSString 453 454 +0.2% 1.00x
ObserverClosure 2147 2151 +0.2% 1.00x (?)
ObserverForwarderStruct 1207 1197 -0.8% 1.01x (?)
ObserverPartiallyAppliedMethod 3701 3706 +0.1% 1.00x (?)
ObserverUnappliedMethod 2448 2457 +0.4% 1.00x (?)
OpaqueConsumingUsers 4182 4180 -0.0% 1.00x (?)
OpenClose 65 65 +0.0% 1.00x
Phonebook 7313 7303 -0.1% 1.00x
PointerArithmetics 31507 31501 -0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1825 1822 -0.2% 1.00x (?)
PopFrontArrayGeneric 1845 1835 -0.5% 1.01x (?)
PopFrontUnsafePointer 8705 8745 +0.5% 1.00x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 64937 64990 +0.1% 1.00x (?)
PrefixAnySeqCRangeIter 40 40 +0.0% 1.00x
PrefixAnySeqCRangeIterLazy 40 40 +0.0% 1.00x
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 1379 1378 -0.1% 1.00x (?)
PrefixAnySequenceLazy 1378 1379 +0.1% 1.00x (?)
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 2213 2212 -0.0% 1.00x (?)
PrefixSequenceLazy 2275 2275 +0.0% 1.00x
PrefixWhileAnyCollection 147 147 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 71 71 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 388 386 -0.5% 1.01x
PrefixWhileAnySeqCRangeIterLazy 89 89 +0.0% 1.00x
PrefixWhileAnySeqCntRange 142 142 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixWhileAnySequence 1546 1543 -0.2% 1.00x
PrefixWhileAnySequenceLazy 1391 1393 +0.1% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 364 364 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 926 924 -0.2% 1.00x (?)
PrimsSplit 937 932 -0.5% 1.01x (?)
QueueConcrete 1152 1152 +0.0% 1.00x
QueueGeneric 1138 1138 +0.0% 1.00x
RC4 160 161 +0.6% 0.99x (?)
RGBHistogram 2773 2781 +0.3% 1.00x (?)
RGBHistogramOfObjects 20430 20392 -0.2% 1.00x (?)
Radix2CooleyTukey 12418 12240 -1.4% 1.01x (?)
Radix2CooleyTukeyf 8996 8956 -0.4% 1.00x (?)
RandomDoubleDef 26829 26861 +0.1% 1.00x (?)
RandomDoubleLCG 2119 2118 -0.0% 1.00x (?)
RandomIntegersDef 24473 24489 +0.1% 1.00x
RandomIntegersLCG 173 173 +0.0% 1.00x
RandomShuffleDef2 2594 2591 -0.1% 1.00x (?)
RandomShuffleLCG2 1806 1808 +0.1% 1.00x
RangeAssignment 351 351 +0.0% 1.00x
RangeIterationSigned 171 171 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 1080 1079 -0.1% 1.00x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 47 47 +0.0% 1.00x
RemoveWhereFilterString 246 249 +1.2% 0.99x
RemoveWhereFilterStrings 437 437 +0.0% 1.00x
RemoveWhereMoveInts 15 15 +0.0% 1.00x
RemoveWhereMoveStrings 709 710 +0.1% 1.00x (?)
RemoveWhereQuadraticInts 1295 1295 +0.0% 1.00x
RemoveWhereQuadraticString 379 379 +0.0% 1.00x
RemoveWhereQuadraticStrings 2763 2762 -0.0% 1.00x (?)
RemoveWhereSwapInts 19 20 +5.3% 0.95x
RemoveWhereSwapStrings 862 862 +0.0% 1.00x
ReversedArray2 172 172 +0.0% 1.00x
ReversedBidirectional 13853 13867 +0.1% 1.00x (?)
ReversedDictionary2 317 317 +0.0% 1.00x
RomanNumbers 87889 87865 -0.0% 1.00x (?)
SequenceAlgosAnySequence 12380 12362 -0.1% 1.00x (?)
SequenceAlgosArray 1578 1579 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 1575 1578 +0.2% 1.00x (?)
SequenceAlgosList 1354 1356 +0.1% 1.00x
SequenceAlgosRange 2576 2577 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1101 1102 +0.1% 1.00x (?)
SetExclusiveOr 5175 5159 -0.3% 1.00x (?)
SetExclusiveOr_OfObjects 11611 11640 +0.2% 1.00x (?)
SetIntersect 700 699 -0.1% 1.00x (?)
SetIntersect_OfObjects 1730 1726 -0.2% 1.00x (?)
SetIsSubsetOf 329 328 -0.3% 1.00x
SetIsSubsetOf_OfObjects 443 443 +0.0% 1.00x
SetUnion 4467 4479 +0.3% 1.00x (?)
SetUnion_OfObjects 10027 10025 -0.0% 1.00x (?)
Sim2DArray 670 670 +0.0% 1.00x
SortLargeExistentials 5516 5521 +0.1% 1.00x (?)
SortLettersInPlace 981 986 +0.5% 0.99x
SortSortedStrings 702 701 -0.1% 1.00x (?)
SortStrings 1504 1506 +0.1% 1.00x (?)
SortStringsUnicode 2112 2109 -0.1% 1.00x (?)
StackPromo 24149 24413 +1.1% 0.99x (?)
StrComplexWalk 1780 1780 +0.0% 1.00x
StrToInt 3289 3356 +2.0% 0.98x (?)
StringAdder 553 553 +0.0% 1.00x
StringBuilder 497 496 -0.2% 1.00x
StringBuilderSmallReservingCapacity 507 506 -0.2% 1.00x
StringBuilderWithLongSubstring 1488 1440 -3.2% 1.03x (?)
StringComparison_abnormal 776 774 -0.3% 1.00x (?)
StringComparison_ascii 1017 1019 +0.2% 1.00x
StringComparison_emoji 865 864 -0.1% 1.00x (?)
StringComparison_fastPrenormal 842 843 +0.1% 1.00x (?)
StringComparison_latin1 658 658 +0.0% 1.00x
StringComparison_longSharedPrefix 955 954 -0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 1686 1688 +0.1% 1.00x
StringComparison_slowerPrenormal 1811 1808 -0.2% 1.00x (?)
StringComparison_zalgo 111263 111792 +0.5% 1.00x (?)
StringEdits 169599 169036 -0.3% 1.00x (?)
StringEnumRawValueInitialization 865 861 -0.5% 1.00x (?)
StringEqualPointerComparison 315 315 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2235 2233 -0.1% 1.00x
StringHasPrefixUnicode 99496 99149 -0.3% 1.00x
StringHasSuffixAscii 2262 2263 +0.0% 1.00x
StringHasSuffixUnicode 101409 100965 -0.4% 1.00x (?)
StringHashing_abnormal 1327 1328 +0.1% 1.00x (?)
StringHashing_ascii 35 35 +0.0% 1.00x
StringHashing_emoji 1859 1861 +0.1% 1.00x (?)
StringHashing_fastPrenormal 8330 8338 +0.1% 1.00x (?)
StringHashing_latin1 2550 2546 -0.2% 1.00x (?)
StringHashing_longSharedPrefix 7938 7979 +0.5% 0.99x
StringHashing_nonBMPSlowestPrenormal 2035 2038 +0.1% 1.00x (?)
StringHashing_slowerPrenormal 2713 2723 +0.4% 1.00x (?)
StringHashing_zalgo 3467 3463 -0.1% 1.00x (?)
StringInterpolation 8787 8906 +1.4% 0.99x (?)
StringInterpolationManySmallSegments 17858 17772 -0.5% 1.00x (?)
StringInterpolationSmall 4040 4045 +0.1% 1.00x (?)
StringMatch 12592 12621 +0.2% 1.00x (?)
StringRemoveDupes 489 489 +0.0% 1.00x
StringUTF16Builder 2569 2585 +0.6% 0.99x (?)
StringUTF16SubstringBuilder 5670 5864 +3.4% 0.97x (?)
StringWalk 1558 1558 +0.0% 1.00x
StringWithCString2 1981 2044 +3.2% 0.97x (?)
StringWordBuilder 2264 2271 +0.3% 1.00x (?)
StringWordBuilderReservingCapacity 1638 1650 +0.7% 0.99x (?)
SubstringComparable 13 13 +0.0% 1.00x
SubstringEqualString 619 620 +0.2% 1.00x (?)
SubstringEquatable 1429 1432 +0.2% 1.00x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21728 21716 -0.1% 1.00x (?)
SuffixAnySeqCRangeIter 3608 3604 -0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3601 3605 +0.1% 1.00x (?)
SuffixAnySeqCntRange 17 17 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 17 17 +0.0% 1.00x
SuffixAnySequence 4929 4932 +0.1% 1.00x (?)
SuffixAnySequenceLazy 5001 5013 +0.2% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixSequence 3598 3599 +0.0% 1.00x (?)
SuffixSequenceLazy 3606 3597 -0.2% 1.00x
SumUsingReduce 97 97 +0.0% 1.00x
SumUsingReduceInto 102 102 +0.0% 1.00x
SuperChars 19308 19363 +0.3% 1.00x (?)
TwoSum 1484 1483 -0.1% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 312 312 +0.0% 1.00x
UTF8Decode_InitDecoding 1363 1363 +0.0% 1.00x
UTF8Decode_InitDecoding_ascii 656 656 +0.0% 1.00x
UTF8Decode_InitFromBytes 1183 1175 -0.7% 1.01x (?)
UTF8Decode_InitFromData 1247 1246 -0.1% 1.00x (?)
Walsh 437 436 -0.2% 1.00x (?)
WordCountHistogramASCII 6957 6956 -0.0% 1.00x (?)
WordCountHistogramUTF16 10203 10289 +0.8% 0.99x (?)
WordCountUniqueASCII 2106 2097 -0.4% 1.00x (?)
WordCountUniqueUTF16 4614 4615 +0.0% 1.00x (?)
WordSplitASCII 9737 9908 +1.8% 0.98x (?)
WordSplitUTF16 11136 11222 +0.8% 0.99x (?)
XorLoop 404 406 +0.5% 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

@eeckstein eeckstein merged commit e0d9661 into swiftlang:master Jul 28, 2018
@eeckstein eeckstein deleted the add-bm-option branch July 28, 2018 17:02
@gottesmm
Copy link
Contributor

@eeckstein I have also seen weird alignment things with environment variables. I think it is b/c the os puts the env on the stack so all subsequent stack allocations can get their alignment changed if the env variables change... but my memory might be wrong You may want to look at that as well if you are working in this area.

@eeckstein
Copy link
Contributor Author

This shouldn't be a problem (and I didn't see this) as long as both benchmark runs have the same environment. And that's usually the case. But thanks, it's a good point.

@gottesmm
Copy link
Contributor

I am saying that it would be easy to write either a wrapper script that detects bad behavior or some sort of simulation script that standardizes the environment no matter where it runs. Then we can at least have a way of identifying (or eliminating) the cause of such a regression without needing to do anything.

That being said, I don't know how important it is in practice. I think I have seen it a couple of times before in other test suites. Seems simple enough that it may be worth defining away.

@palimondo
Copy link
Contributor

How did this issue manifest? Can you give me some pointers on how could I reproduce the problem?

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.

4 participants