Skip to content

Implement benchmark testing on Linux #16882

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

Conversation

gottesmm
Copy link
Contributor

Some notes:

  1. I had to disable the Data benchmarks and a Dictionary benchmark on Linux due to some sort of compilation error. But everything else seems to work.
  2. The linux build can only be done via the out of tree build. It was done to simplify the problem by just having the user specify all of the parameters.
  3. I added a small argparse based script in the benchmarks that should make it easy to do out of tree without needing to know the variable names.

rdar://40541972

@gottesmm gottesmm force-pushed the pr-efebf52c6733fcc2e617c2ef0b47012cde8c84ec branch from bbd108d to 5a258a7 Compare May 29, 2018 07:14
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci smoke benchmark

@gottesmm
Copy link
Contributor Author

@millenomi

@gottesmm
Copy link
Contributor Author

Found a mistake...

@gottesmm gottesmm force-pushed the pr-efebf52c6733fcc2e617c2ef0b47012cde8c84ec branch 5 times, most recently from 20239e1 to 7eba5f2 Compare May 29, 2018 07:55
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci smoke benchmark

@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Build failed before running benchmark.


@inline(__always)
func getRandomBuf(_ arg: UnsafeMutableBufferPointer<UInt8>) {
#if os(Linux)
fatalError("Unsupported platform")
Copy link
Contributor

@millenomi millenomi May 29, 2018

Choose a reason for hiding this comment

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

This can build if:

#if canImport(Glibc)
import Glibc
#endif

and:

#if canImport(Glibc)
getrandom(arg.baseAddress, arg.count, 0)
#elseif canImport(Darwin)
// arc4random_buf
#endif

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I can't do this exactly using canImport since this benchmark compiles in swift-3 mode. But I am going to do something similar.

]
#endif

private var dictionary: [NSString: NSString]!

private func setup_DictionaryKeysContainsNative() {
#if os(Linux)
Copy link
Contributor

Choose a reason for hiding this comment

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

These will be supported when #16736 lands.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I figured.

I was able to run Benchmark_QuickCheck with the out of tree Linux build with
just these tests disabled and everything seems to work.

rdar://40541972
@gottesmm gottesmm force-pushed the pr-efebf52c6733fcc2e617c2ef0b47012cde8c84ec branch from 7eba5f2 to ca330dd Compare May 29, 2018 17:54
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci python lint

2 similar comments
@gottesmm
Copy link
Contributor Author

@swift-ci python lint

@gottesmm
Copy link
Contributor Author

@swift-ci python lint

@gottesmm gottesmm force-pushed the pr-efebf52c6733fcc2e617c2ef0b47012cde8c84ec branch from ca330dd to a3229c4 Compare May 29, 2018 18:11
@gottesmm
Copy link
Contributor Author

@swift-ci python lint

2 similar comments
@gottesmm
Copy link
Contributor Author

@swift-ci python lint

@gottesmm
Copy link
Contributor Author

@swift-ci python lint

@gottesmm
Copy link
Contributor Author

@swift-ci smoke benchmark

1 similar comment
@gottesmm
Copy link
Contributor Author

@swift-ci smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Build failed before running benchmark.


@inline(__always)
func getRandomBuf(baseAddress: UnsafeMutablePointer<UInt8>, count: Int) {
#if os(Linux)
getrandom(arg.baseAddress, arg.count, 0)
Copy link
Contributor

Choose a reason for hiding this comment

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

Now that arg is gone, this will error on Linux.

… on Linux.

To use this, one needs to first build an installable root for swift (i.e. like
the smoke testbot does). Then use the tool ./benchmark/scripts/build_linux.py
with the appropriate locations of the build-directory, installable snapshot,
and it will build the benchmarks. (There are more arguments, just use --help).

rdar://40541972
@gottesmm gottesmm force-pushed the pr-efebf52c6733fcc2e617c2ef0b47012cde8c84ec branch from a3229c4 to 36e0e69 Compare May 29, 2018 21:25
@Azoy
Copy link
Contributor

Azoy commented May 30, 2018

Instead of defining your own logic for getting random, you can instead try using Random._fill(bytes:) which does all this work for you.

@gottesmm
Copy link
Contributor Author

@Azoy This benchmark is written in swift-3 mode so that isn't available. Otherwise I would use it. Changing our benchmarks in this way would be a big jump that should be done in a different PR.

@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci smoke benchmark

@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (8)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeFromNSArrayAnyObjectForced 4995 6015 +20.4% 0.83x (?)
ArrayAppendAscii 3941 4575 +16.1% 0.86x
DataSetCount 625 687 +9.9% 0.91x
SuffixCountableRangeLazy 11 12 +9.1% 0.92x
DropLastCountableRangeLazy 11 12 +9.1% 0.92x
DictionarySubscriptDefaultMutation 275 294 +6.9% 0.94x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 43587 46467 +6.6% 0.94x (?)
StringEdits 169367 178575 +5.4% 0.95x (?)
Improvement (10)
TEST OLD NEW DELTA SPEEDUP
DataAppendDataSmallToLarge 47794 41788 -12.6% 1.14x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 54378 48267 -11.2% 1.13x (?)
StringBuilderLong 1458 1300 -10.8% 1.12x (?)
StaticArray 10 9 -10.0% 1.11x
Sim2DArray 664 599 -9.8% 1.11x
DataCount 37 34 -8.1% 1.09x
ObjectiveCBridgeFromNSDictionaryAnyObject 120568 111515 -7.5% 1.08x (?)
DataAppendDataSmallToSmall 6106 5738 -6.0% 1.06x
DataAppendSequence 7544352 7108715 -5.8% 1.06x (?)
RemoveWhereSwapInts 20 19 -5.0% 1.05x
No Changes (420)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4128 4200 +1.7% 0.98x (?)
AnyHashableWithAClass 86304 85600 -0.8% 1.01x
Array2D 2853 2854 +0.0% 1.00x (?)
ArrayAppend 1077 1077 +0.0% 1.00x
ArrayAppendArrayOfInt 795 797 +0.3% 1.00x (?)
ArrayAppendAsciiSubstring 24264 24264 +0.0% 1.00x
ArrayAppendFromGeneric 791 797 +0.8% 0.99x (?)
ArrayAppendGenericStructs 1425 1431 +0.4% 1.00x
ArrayAppendLatin1 41493 41471 -0.1% 1.00x (?)
ArrayAppendLatin1Substring 141843 142052 +0.1% 1.00x (?)
ArrayAppendLazyMap 1340 1343 +0.2% 1.00x (?)
ArrayAppendOptionals 1425 1428 +0.2% 1.00x (?)
ArrayAppendRepeatCol 1338 1339 +0.1% 1.00x (?)
ArrayAppendReserved 814 809 -0.6% 1.01x
ArrayAppendSequence 1121 1123 +0.2% 1.00x (?)
ArrayAppendStrings 6222 6227 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 797 799 +0.3% 1.00x (?)
ArrayAppendToGeneric 797 795 -0.3% 1.00x
ArrayAppendUTF16 41334 41128 -0.5% 1.01x
ArrayAppendUTF16Substring 139653 139591 -0.0% 1.00x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 151 +0.0% 1.00x
ArrayOfGenericRef 4398 4394 -0.1% 1.00x (?)
ArrayOfPOD 184 184 +0.0% 1.00x
ArrayOfRef 4376 4379 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 797 798 +0.1% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5438 5489 +0.9% 0.99x
ArrayPlusEqualSingleElementCollection 1080 1078 -0.2% 1.00x (?)
ArrayPlusEqualThreeElements 1674 1652 -1.3% 1.01x (?)
ArraySubscript 1518 1525 +0.5% 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
BinaryFloatingPointPropertiesBinade 31 31 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 37 37 +0.0% 1.00x
BitCount 211 211 +0.0% 1.00x
ByteSwap 104 104 +0.0% 1.00x
COWArrayGuaranteedParameterOverhead 9798 9849 +0.5% 0.99x (?)
COWTree 5413 5263 -2.8% 1.03x (?)
CSVParsing 727992 728679 +0.1% 1.00x (?)
CSVParsingAlt 806151 803014 -0.4% 1.00x (?)
CSVParsingAltIndices 340397 341449 +0.3% 1.00x (?)
CStringLongAscii 4208 4206 -0.0% 1.00x (?)
CStringLongNonAscii 2439 2432 -0.3% 1.00x (?)
CStringShortAscii 3369 3343 -0.8% 1.01x
Calculator 317 317 +0.0% 1.00x
CaptureProp 4115 4119 +0.1% 1.00x (?)
ChainedFilterMap 1247 1247 +0.0% 1.00x
CharIndexing_ascii_unicodeScalars 17104 17274 +1.0% 0.99x
CharIndexing_ascii_unicodeScalars_Backwards 16378 16738 +2.2% 0.98x
CharIndexing_chinese_unicodeScalars 12849 13091 +1.9% 0.98x
CharIndexing_chinese_unicodeScalars_Backwards 12429 12652 +1.8% 0.98x
CharIndexing_japanese_unicodeScalars 20321 20676 +1.7% 0.98x
CharIndexing_japanese_unicodeScalars_Backwards 19593 19997 +2.1% 0.98x
CharIndexing_korean_unicodeScalars 16465 16726 +1.6% 0.98x
CharIndexing_korean_unicodeScalars_Backwards 15828 16197 +2.3% 0.98x
CharIndexing_punctuatedJapanese_unicodeScalars 3060 3113 +1.7% 0.98x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2971 3014 +1.4% 0.99x
CharIndexing_punctuated_unicodeScalars 3834 3901 +1.7% 0.98x
CharIndexing_punctuated_unicodeScalars_Backwards 3713 3773 +1.6% 0.98x
CharIndexing_russian_unicodeScalars 14124 14387 +1.9% 0.98x
CharIndexing_russian_unicodeScalars_Backwards 13619 13913 +2.2% 0.98x
CharIndexing_tweet_unicodeScalars 32758 33349 +1.8% 0.98x
CharIndexing_tweet_unicodeScalars_Backwards 32500 32900 +1.2% 0.99x
CharIndexing_utf16_unicodeScalars 23006 23086 +0.3% 1.00x
CharIndexing_utf16_unicodeScalars_Backwards 23697 23702 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 21464 21632 +0.8% 0.99x
CharIteration_ascii_unicodeScalars_Backwards 14986 15209 +1.5% 0.99x
CharIteration_chinese_unicodeScalars 16243 16357 +0.7% 0.99x (?)
CharIteration_chinese_unicodeScalars_Backwards 11355 11502 +1.3% 0.99x
CharIteration_japanese_unicodeScalars 25693 25911 +0.8% 0.99x
CharIteration_japanese_unicodeScalars_Backwards 17927 18201 +1.5% 0.98x
CharIteration_korean_unicodeScalars 20802 20992 +0.9% 0.99x
CharIteration_korean_unicodeScalars_Backwards 14524 14744 +1.5% 0.99x
CharIteration_punctuatedJapanese_unicodeScalars 3822 3855 +0.9% 0.99x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2721 2758 +1.4% 0.99x
CharIteration_punctuated_unicodeScalars 4804 4840 +0.7% 0.99x
CharIteration_punctuated_unicodeScalars_Backwards 3402 3449 +1.4% 0.99x
CharIteration_russian_unicodeScalars 17894 18006 +0.6% 0.99x
CharIteration_russian_unicodeScalars_Backwards 12486 12663 +1.4% 0.99x
CharIteration_tweet_unicodeScalars 42365 42773 +1.0% 0.99x
CharIteration_tweet_unicodeScalars_Backwards 29660 30080 +1.4% 0.99x
CharIteration_utf16_unicodeScalars 28007 27982 -0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 18709 18774 +0.3% 1.00x
CharacterLiteralsLarge 5878 5905 +0.5% 1.00x (?)
CharacterLiteralsSmall 217 217 +0.0% 1.00x
CharacterPropertiesFetch 4642 4583 -1.3% 1.01x
CharacterPropertiesPrecomputed 1116 1110 -0.5% 1.01x (?)
CharacterPropertiesStashed 1446 1470 +1.7% 0.98x
CharacterPropertiesStashedMemo 1558 1562 +0.3% 1.00x (?)
Chars 1217 1217 +0.0% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 491 495 +0.8% 0.99x
DataAccessBytes 1148 1177 +2.5% 0.98x
DataAppendArray 5288 5449 +3.0% 0.97x (?)
DataAppendBytes 5036 4949 -1.7% 1.02x
DataAppendDataLargeToLarge 68030 68718 +1.0% 0.99x (?)
DataAppendDataLargeToMedium 35907 35458 -1.3% 1.01x (?)
DataAppendDataLargeToSmall 34981 34629 -1.0% 1.01x (?)
DataAppendDataMediumToLarge 39683 37842 -4.6% 1.05x (?)
DataAppendDataMediumToMedium 7124 6855 -3.8% 1.04x (?)
DataAppendDataMediumToSmall 6388 6193 -3.1% 1.03x (?)
DataAppendDataSmallToMedium 6334 6375 +0.6% 0.99x (?)
DataCopyBytes 520 514 -1.2% 1.01x (?)
DataMutateBytes 3967 3901 -1.7% 1.02x (?)
DataReplaceLarge 37777 36645 -3.0% 1.03x (?)
DataReplaceLargeBuffer 57771 57311 -0.8% 1.01x (?)
DataReplaceMedium 7855 7670 -2.4% 1.02x (?)
DataReplaceMediumBuffer 11832 12157 +2.7% 0.97x (?)
DataReplaceSmall 5702 5683 -0.3% 1.00x (?)
DataReplaceSmallBuffer 8637 8764 +1.5% 0.99x (?)
DataReset 2882 2963 +2.8% 0.97x (?)
DataSubscript 222 222 +0.0% 1.00x
DictOfArraysToArrayOfDicts 794 800 +0.8% 0.99x (?)
Dictionary 529 525 -0.8% 1.01x (?)
Dictionary2 637 641 +0.6% 0.99x
Dictionary2OfObjects 2091 2068 -1.1% 1.01x (?)
Dictionary3 230 236 +2.6% 0.97x
Dictionary3OfObjects 736 733 -0.4% 1.00x (?)
Dictionary4 344 342 -0.6% 1.01x (?)
Dictionary4Legacy 725 730 +0.7% 0.99x (?)
Dictionary4OfObjects 457 457 +0.0% 1.00x
Dictionary4OfObjectsLegacy 939 939 +0.0% 1.00x
DictionaryBridge 1239 1197 -3.4% 1.04x (?)
DictionaryCopy 109481 107812 -1.5% 1.02x
DictionaryFilter 107947 107601 -0.3% 1.00x (?)
DictionaryGroup 216 216 +0.0% 1.00x
DictionaryGroupOfObjects 2128 2143 +0.7% 0.99x
DictionaryKeysContainsCocoa 39 38 -2.6% 1.03x (?)
DictionaryKeysContainsNative 32 32 +0.0% 1.00x
DictionaryLiteral 1915 1913 -0.1% 1.00x
DictionaryOfObjects 2380 2386 +0.3% 1.00x (?)
DictionaryRemove 4350 4426 +1.7% 0.98x
DictionaryRemoveOfObjects 26562 26307 -1.0% 1.01x (?)
DictionarySubscriptDefaultMutationArray 647 623 -3.7% 1.04x
DictionarySubscriptDefaultMutationArrayOfObjects 4113 4040 -1.8% 1.02x
DictionarySubscriptDefaultMutationOfObjects 1742 1722 -1.1% 1.01x
DictionarySwap 1060 1078 +1.7% 0.98x
DictionarySwapAt 6852 6666 -2.7% 1.03x (?)
DictionarySwapAtOfObjects 52636 52299 -0.6% 1.01x (?)
DictionarySwapOfObjects 8978 8864 -1.3% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 84 84 +0.0% 1.00x
DropFirstAnyCollectionLazy 69578 68877 -1.0% 1.01x (?)
DropFirstAnySeqCRangeIter 27048 26250 -3.0% 1.03x
DropFirstAnySeqCRangeIterLazy 27018 26224 -2.9% 1.03x
DropFirstAnySeqCntRange 41 41 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 41 41 +0.0% 1.00x
DropFirstAnySequence 5005 4979 -0.5% 1.01x (?)
DropFirstAnySequenceLazy 4992 4978 -0.3% 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 2682 2683 +0.0% 1.00x (?)
DropFirstSequenceLazy 2775 2776 +0.0% 1.00x (?)
DropLastAnyCollection 31 31 +0.0% 1.00x
DropLastAnyCollectionLazy 22798 22925 +0.6% 0.99x (?)
DropLastAnySeqCRangeIter 3523 3542 +0.5% 0.99x (?)
DropLastAnySeqCRangeIterLazy 3538 3528 -0.3% 1.00x (?)
DropLastAnySeqCntRange 13 13 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 13 13 +0.0% 1.00x
DropLastAnySequence 4928 4947 +0.4% 1.00x
DropLastAnySequenceLazy 5032 5046 +0.3% 1.00x
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastSequence 665 663 -0.3% 1.00x (?)
DropLastSequenceLazy 666 666 +0.0% 1.00x
DropWhileAnyCollection 107 107 +0.0% 1.00x
DropWhileAnyCollectionLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCRangeIter 21375 20533 -3.9% 1.04x
DropWhileAnySeqCRangeIterLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCntRange 51 51 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 125 125 +0.0% 1.00x
DropWhileAnySequence 4844 4842 -0.0% 1.00x (?)
DropWhileAnySequenceLazy 1857 1857 +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
DropWhileSequence 2215 2215 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 49 50 +2.0% 0.98x
EqualSubstringString 49 49 +0.0% 1.00x
EqualSubstringSubstring 49 49 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 49 49 +0.0% 1.00x
ErrorHandling 1182 1179 -0.3% 1.00x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 200913 200129 -0.4% 1.00x
FilterEvenUsingReduce 1326 1325 -0.1% 1.00x (?)
FilterEvenUsingReduceInto 149 147 -1.3% 1.01x (?)
FloatingPointPrinting_Double_description_small 23487 23595 +0.5% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 23175 23360 +0.8% 0.99x
FloatingPointPrinting_Double_interpolated 65335 64760 -0.9% 1.01x (?)
FloatingPointPrinting_Float80_description_small 30417 30484 +0.2% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 29641 29853 +0.7% 0.99x (?)
FloatingPointPrinting_Float80_interpolated 70946 68414 -3.6% 1.04x
FloatingPointPrinting_Float_description_small 5421 5435 +0.3% 1.00x
FloatingPointPrinting_Float_description_uniform 5366 5374 +0.1% 1.00x
FloatingPointPrinting_Float_interpolated 40283 40290 +0.0% 1.00x (?)
FrequenciesUsingReduce 5075 5194 +2.3% 0.98x
FrequenciesUsingReduceInto 1542 1534 -0.5% 1.01x (?)
Hanoi 2168 2177 +0.4% 1.00x
HashTest 969 963 -0.6% 1.01x
Histogram 725 698 -3.7% 1.04x
Integrate 335 335 +0.0% 1.00x
IterateData 1665 1651 -0.8% 1.01x
Join 169 169 +0.0% 1.00x
LazilyFilteredArrayContains 36266 36276 +0.0% 1.00x (?)
LazilyFilteredArrays 64896 64951 +0.1% 1.00x (?)
LazilyFilteredRange 3728 3747 +0.5% 0.99x (?)
LessSubstringSubstring 49 49 +0.0% 1.00x
LessSubstringSubstringGenericComparable 49 49 +0.0% 1.00x
LinkedList 7611 7608 -0.0% 1.00x (?)
LuhnAlgoEager 444 447 +0.7% 0.99x
LuhnAlgoLazy 441 446 +1.1% 0.99x (?)
MapReduce 399 398 -0.3% 1.00x (?)
MapReduceAnyCollection 429 430 +0.2% 1.00x (?)
MapReduceAnyCollectionShort 2268 2237 -1.4% 1.01x (?)
MapReduceClass 3018 3000 -0.6% 1.01x
MapReduceClassShort 4640 4626 -0.3% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 455 466 +2.4% 0.98x (?)
MapReduceShort 2007 1996 -0.5% 1.01x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 48 48 +0.0% 1.00x
Memset 215 217 +0.9% 0.99x (?)
MonteCarloE 10324 10308 -0.2% 1.00x
MonteCarloPi 42728 42777 +0.1% 1.00x (?)
NSDictionaryCastToSwift 6977 6797 -2.6% 1.03x (?)
NSError 172 173 +0.6% 0.99x
NSStringConversion 708 698 -1.4% 1.01x (?)
NibbleSort 3668 3693 +0.7% 0.99x (?)
NopDeinit 30166 30164 -0.0% 1.00x (?)
ObjectAllocation 135 132 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObject 27006 26503 -1.9% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObject 53033 51991 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4984 4948 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 66070 66231 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSString 1190 1212 +1.8% 0.98x
ObjectiveCBridgeFromNSStringForced 2726 2685 -1.5% 1.02x (?)
ObjectiveCBridgeStubDataAppend 6387 6503 +1.8% 0.98x (?)
ObjectiveCBridgeStubDateMutation 401 401 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 36014 37125 +3.1% 0.97x (?)
ObjectiveCBridgeStubFromNSDate 7160 7161 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1033 1046 +1.3% 0.99x
ObjectiveCBridgeStubFromNSStringRef 161 162 +0.6% 0.99x
ObjectiveCBridgeStubNSDataAppend 2678 2589 -3.3% 1.03x (?)
ObjectiveCBridgeStubNSDateMutationRef 13753 13728 -0.2% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 39746 38927 -2.1% 1.02x (?)
ObjectiveCBridgeStubToNSDate 15307 15799 +3.2% 0.97x
ObjectiveCBridgeStubToNSDateRef 3434 3476 +1.2% 0.99x (?)
ObjectiveCBridgeStubToNSString 2389 2378 -0.5% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 116 115 -0.9% 1.01x (?)
ObjectiveCBridgeStubURLAppendPath 297316 288150 -3.1% 1.03x (?)
ObjectiveCBridgeStubURLAppendPathRef 291633 297945 +2.2% 0.98x (?)
ObjectiveCBridgeToNSArray 15615 15440 -1.1% 1.01x (?)
ObjectiveCBridgeToNSDictionary 26914 27547 +2.4% 0.98x (?)
ObjectiveCBridgeToNSSet 17398 16698 -4.0% 1.04x (?)
ObjectiveCBridgeToNSString 484 486 +0.4% 1.00x
ObserverClosure 2185 2174 -0.5% 1.01x (?)
ObserverForwarderStruct 1265 1236 -2.3% 1.02x
ObserverPartiallyAppliedMethod 3739 3723 -0.4% 1.00x (?)
ObserverUnappliedMethod 2573 2515 -2.3% 1.02x (?)
OpaqueConsumingUsers 4182 4182 +0.0% 1.00x
OpenClose 65 65 +0.0% 1.00x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 6811 6814 +0.0% 1.00x (?)
PointerArithmetics 31695 31509 -0.6% 1.01x
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1972 1976 +0.2% 1.00x (?)
PopFrontArrayGeneric 1976 1979 +0.2% 1.00x (?)
PopFrontUnsafePointer 9510 9514 +0.0% 1.00x (?)
PrefixAnyCollection 84 84 +0.0% 1.00x
PrefixAnyCollectionLazy 67970 68529 +0.8% 0.99x (?)
PrefixAnySeqCRangeIter 20929 20199 -3.5% 1.04x
PrefixAnySeqCRangeIterLazy 20933 20266 -3.2% 1.03x (?)
PrefixAnySeqCntRange 28 28 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 28 28 +0.0% 1.00x
PrefixAnySequence 4332 4343 +0.3% 1.00x
PrefixAnySequenceLazy 4333 4342 +0.2% 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 2215 2213 -0.1% 1.00x (?)
PrefixSequenceLazy 2277 2275 -0.1% 1.00x (?)
PrefixWhileAnyCollection 154 154 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 8711 8706 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 72 72 +0.0% 1.00x
PrefixWhileAnySeqCntRange 59 60 +1.7% 0.98x
PrefixWhileAnySeqCntRangeLazy 90 90 +0.0% 1.00x
PrefixWhileAnySequence 9848 9839 -0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1393 1394 +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 362 364 +0.6% 0.99x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 902 911 +1.0% 0.99x (?)
PrimsSplit 934 926 -0.9% 1.01x (?)
QueueConcrete 1149 1149 +0.0% 1.00x
QueueGeneric 1150 1150 +0.0% 1.00x
RC4 166 166 +0.0% 1.00x
RGBHistogram 3304 3298 -0.2% 1.00x
RGBHistogramOfObjects 23932 23820 -0.5% 1.00x
RandomDoubleDef 28042 27834 -0.7% 1.01x
RandomDoubleLCG 4413 4413 +0.0% 1.00x
RandomIntegersDef 25684 25617 -0.3% 1.00x (?)
RandomIntegersLCG 2294 2294 +0.0% 1.00x
RandomShuffleDef 827102 825828 -0.2% 1.00x (?)
RandomShuffleLCG 153225 152977 -0.2% 1.00x (?)
RangeAssignment 337 336 -0.3% 1.00x (?)
RangeIterationSigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 1013 1022 +0.9% 0.99x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 46 47 +2.2% 0.98x
RemoveWhereFilterString 252 252 +0.0% 1.00x
RemoveWhereFilterStrings 438 438 +0.0% 1.00x
RemoveWhereMoveInts 15 15 +0.0% 1.00x
RemoveWhereMoveStrings 709 712 +0.4% 1.00x (?)
RemoveWhereQuadraticInts 1297 1299 +0.2% 1.00x
RemoveWhereQuadraticString 379 388 +2.4% 0.98x
RemoveWhereQuadraticStrings 2767 2764 -0.1% 1.00x
RemoveWhereSwapStrings 859 861 +0.2% 1.00x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 16817 16813 -0.0% 1.00x (?)
ReversedDictionary 271 276 +1.8% 0.98x (?)
RomanNumbers 82226 81738 -0.6% 1.01x
SequenceAlgosAnySequence 15544 14851 -4.5% 1.05x
SequenceAlgosArray 1579 1579 +0.0% 1.00x
SequenceAlgosContiguousArray 1582 1583 +0.1% 1.00x (?)
SequenceAlgosList 1358 1354 -0.3% 1.00x (?)
SequenceAlgosRange 2578 2577 -0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1103 1102 -0.1% 1.00x (?)
SetExclusiveOr 5194 5168 -0.5% 1.01x (?)
SetExclusiveOr_OfObjects 11863 11792 -0.6% 1.01x
SetIntersect 704 701 -0.4% 1.00x
SetIntersect_OfObjects 1739 1735 -0.2% 1.00x (?)
SetIsSubsetOf 354 354 +0.0% 1.00x
SetIsSubsetOf_OfObjects 453 453 +0.0% 1.00x
SetUnion 4388 4418 +0.7% 0.99x (?)
SetUnion_OfObjects 10091 10182 +0.9% 0.99x
SevenBoom 883 892 +1.0% 0.99x (?)
SortLargeExistentials 5484 5470 -0.3% 1.00x
SortLettersInPlace 1002 995 -0.7% 1.01x
SortSortedStrings 870 869 -0.1% 1.00x
SortStrings 1786 1786 +0.0% 1.00x
SortStringsUnicode 2613 2619 +0.2% 1.00x (?)
StackPromo 24329 24440 +0.5% 1.00x (?)
StrComplexWalk 1776 1775 -0.1% 1.00x (?)
StrToInt 3198 3202 +0.1% 1.00x
StringAdder 577 576 -0.2% 1.00x (?)
StringBuilder 559 559 +0.0% 1.00x
StringBuilderSmallReservingCapacity 579 578 -0.2% 1.00x
StringBuilderWithLongSubstring 1533 1538 +0.3% 1.00x (?)
StringComparison_abnormal 791 776 -1.9% 1.02x
StringComparison_ascii 1034 1033 -0.1% 1.00x
StringComparison_emoji 833 824 -1.1% 1.01x
StringComparison_fastPrenormal 876 883 +0.8% 0.99x
StringComparison_latin1 686 693 +1.0% 0.99x
StringComparison_longSharedPrefix 957 959 +0.2% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 1613 1618 +0.3% 1.00x (?)
StringComparison_slowerPrenormal 1749 1750 +0.1% 1.00x (?)
StringComparison_zalgo 127385 126551 -0.7% 1.01x (?)
StringEnumRawValueInitialization 852 856 +0.5% 1.00x
StringEqualPointerComparison 305 303 -0.7% 1.01x
StringFromLongWholeSubstring 22 22 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2234 2236 +0.1% 1.00x (?)
StringHasPrefixUnicode 100613 101000 +0.4% 1.00x (?)
StringHasSuffixAscii 2319 2320 +0.0% 1.00x (?)
StringHasSuffixUnicode 101641 102688 +1.0% 0.99x
StringInterpolation 9776 9761 -0.2% 1.00x (?)
StringInterpolationManySmallSegments 19279 19220 -0.3% 1.00x (?)
StringInterpolationSmall 4243 4242 -0.0% 1.00x (?)
StringMatch 12755 12736 -0.1% 1.00x (?)
StringRemoveDupes 507 507 +0.0% 1.00x
StringUTF16Builder 2708 2713 +0.2% 1.00x (?)
StringUTF16SubstringBuilder 5797 5898 +1.7% 0.98x (?)
StringWalk 1438 1439 +0.1% 1.00x
StringWithCString 44927 44894 -0.1% 1.00x (?)
StringWordBuilder 2249 2236 -0.6% 1.01x
StringWordBuilderReservingCapacity 1845 1848 +0.2% 1.00x (?)
SubstringComparable 13 13 +0.0% 1.00x
SubstringEqualString 611 615 +0.7% 0.99x (?)
SubstringEquatable 1403 1414 +0.8% 0.99x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 31 31 +0.0% 1.00x
SuffixAnyCollectionLazy 23027 22859 -0.7% 1.01x (?)
SuffixAnySeqCRangeIter 3755 3758 +0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3761 3753 -0.2% 1.00x
SuffixAnySeqCntRange 21 21 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 21 21 +0.0% 1.00x
SuffixAnySequence 4934 4934 +0.0% 1.00x
SuffixAnySequenceLazy 5028 5028 +0.0% 1.00x
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixSequence 3649 3654 +0.1% 1.00x (?)
SuffixSequenceLazy 3647 3632 -0.4% 1.00x (?)
SumUsingReduce 102 102 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 15535 15630 +0.6% 0.99x
TwoSum 1514 1473 -2.7% 1.03x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 298 298 +0.0% 1.00x
Walsh 434 433 -0.2% 1.00x
WordCountHistogramASCII 8181 8200 +0.2% 1.00x (?)
WordCountHistogramUTF16 15398 15377 -0.1% 1.00x (?)
WordCountUniqueASCII 2071 2076 +0.2% 1.00x (?)
WordCountUniqueUTF16 8188 8161 -0.3% 1.00x (?)
WordSplitASCII 6788 6867 +1.2% 0.99x (?)
WordSplitUTF16 8838 8739 -1.1% 1.01x (?)
XorLoop 402 402 +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

@gottesmm gottesmm merged commit 2bc32e1 into swiftlang:master May 30, 2018
@gottesmm gottesmm deleted the pr-efebf52c6733fcc2e617c2ef0b47012cde8c84ec branch May 30, 2018 23:33
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