Skip to content

Remove interpolated strings from benchmark CheckResults #9298

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 1 commit into from
May 5, 2017

Conversation

dabrahams
Copy link
Contributor

This call was in many cases skewing the benchmark results.

Note: Intentionally staging this in without removing the old overload initially.

@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke benchmark

@palimondo
Copy link
Contributor

BTW, this looks more like "Remove interpolated static strings from benchmark CheckResults".

@dabrahams
Copy link
Contributor Author

@palimondo I don't understand why you say that. The signature of the old function was

CheckResults(_ resultsMatch: Bool, _ message: @autoclosure () -> String)

@palimondo
Copy link
Contributor

I was joking about the fact that almost half of the changed tests didn't use interpolated strings in the error message, but a static string. Never mind. The benchmark is sure taking its sweet time…

@swift-ci
Copy link
Contributor

swift-ci commented May 5, 2017

Build comment file:

Optimized (O)

Regression (16)
TEST OLD NEW DELTA SPEEDUP
BitCount 0 8 +800000.0% 0.00x
ArrayValueProp 5 6 +20.0% 0.83x
DropLastCountableRange 8 9 +12.5% 0.89x
SuffixArrayLazy 10 11 +10.0% 0.91x
DropLastArrayLazy 10 11 +10.0% 0.91x
SuffixArray 10 11 +10.0% 0.91x (?)
ArrayOfGenericPOD 207 226 +9.2% 0.92x
NSError 279 303 +8.6% 0.92x
ArrayInClass 61 66 +8.2% 0.92x (?)
ObjectiveCBridgeToNSDictionary 44571 47957 +7.6% 0.93x (?)
Calculator 46 49 +6.5% 0.94x
ArrayOfGenericRef 3901 4148 +6.3% 0.94x
ArrayOfPOD 161 171 +6.2% 0.94x
ObjectiveCBridgeStubFromNSStringRef 177 187 +5.6% 0.95x
Phonebook 9494 10026 +5.6% 0.95x
StrToInt 4256 4487 +5.4% 0.95x
Improvement (15)
TEST OLD NEW DELTA SPEEDUP
StringHasPrefix 695 15 -97.8% 46.33x
StringHasSuffix 677 31 -95.4% 21.84x
StrComplexWalk 982 795 -19.0% 1.24x
DropFirstArrayLazy 33 29 -12.1% 1.14x
DropWhileArrayLazy 89 80 -10.1% 1.11x
ProtocolDispatch 3031 2727 -10.0% 1.11x
DropWhileSequenceLazy 72 65 -9.7% 1.11x
LazilyFilteredRange 4041 3661 -9.4% 1.10x
RC4 173 158 -8.7% 1.09x
DropWhileArray 46 43 -6.5% 1.07x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 104288 97645 -6.4% 1.07x
MapReduceLazyCollection 16 15 -6.2% 1.07x
StringInterpolation 8531 8056 -5.6% 1.06x
DictionaryBridge 2763 2624 -5.0% 1.05x
MapReduceAnyCollection 302 287 -5.0% 1.05x (?)
No Changes (238)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2857 2880 +0.8% 0.99x (?)
AnyHashableWithAClass 67809 68512 +1.0% 0.99x (?)
Array2D 2119 2053 -3.1% 1.03x (?)
ArrayAppend 757 732 -3.3% 1.03x
ArrayAppendArrayOfInt 580 578 -0.3% 1.00x (?)
ArrayAppendAscii 23020 22698 -1.4% 1.01x (?)
ArrayAppendFromGeneric 596 595 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1204 1203 -0.1% 1.00x (?)
ArrayAppendLatin1 43611 43804 +0.4% 1.00x (?)
ArrayAppendLazyMap 951 963 +1.3% 0.99x (?)
ArrayAppendOptionals 1204 1242 +3.2% 0.97x
ArrayAppendRepeatCol 838 838 +0.0% 1.00x
ArrayAppendReserved 533 534 +0.2% 1.00x (?)
ArrayAppendSequence 948 947 -0.1% 1.00x (?)
ArrayAppendStrings 13430 13443 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 578 596 +3.1% 0.97x
ArrayAppendToGeneric 578 591 +2.2% 0.98x
ArrayAppendUTF16 39918 39467 -1.1% 1.01x (?)
ArrayLiteral 1175 1200 +2.1% 0.98x (?)
ArrayOfRef 3940 3926 -0.4% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4474 4420 -1.2% 1.01x (?)
ArrayPlusEqualSingleElementCollection 774 773 -0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1569 1567 -0.1% 1.00x (?)
ArraySubscript 1462 1467 +0.3% 1.00x (?)
ArrayValueProp2 5 5 +0.0% 1.00x
ArrayValueProp3 5 5 +0.0% 1.00x
ArrayValueProp4 5 5 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 5050 4866 -3.6% 1.04x (?)
CStringLongNonAscii 2210 2149 -2.8% 1.03x
CStringShortAscii 5452 5276 -3.2% 1.03x
CaptureProp 4721 4574 -3.1% 1.03x (?)
CharacterLiteralsLarge 8685 8736 +0.6% 0.99x (?)
CharacterLiteralsSmall 311 315 +1.3% 0.99x (?)
Chars 1840 1905 +3.5% 0.97x
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 182 184 +1.1% 0.99x (?)
Dictionary 576 569 -1.2% 1.01x
Dictionary2 1803 1809 +0.3% 1.00x
Dictionary2OfObjects 3320 3313 -0.2% 1.00x (?)
Dictionary3 443 450 +1.6% 0.98x
Dictionary3OfObjects 876 870 -0.7% 1.01x (?)
DictionaryLiteral 1480 1443 -2.5% 1.03x (?)
DictionaryOfObjects 2297 2322 +1.1% 0.99x (?)
DictionaryRemove 3275 3338 +1.9% 0.98x
DictionaryRemoveOfObjects 23370 22740 -2.7% 1.03x
DictionarySwap 376 365 -2.9% 1.03x (?)
DictionarySwapOfObjects 6960 7009 +0.7% 0.99x (?)
DropFirstAnyCollection 123 127 +3.3% 0.97x
DropFirstAnyCollectionLazy 44030 43888 -0.3% 1.00x (?)
DropFirstAnySeqCRangeIter 27822 27745 -0.3% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 29315 28573 -2.5% 1.03x
DropFirstAnySeqCntRange 115 115 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 109 112 +2.8% 0.97x
DropFirstAnySequence 6662 6657 -0.1% 1.00x (?)
DropFirstAnySequenceLazy 6582 6778 +3.0% 0.97x
DropFirstArray 29 28 -3.4% 1.04x (?)
DropFirstCountableRange 23 23 +0.0% 1.00x
DropFirstCountableRangeLazy 22 22 +0.0% 1.00x
DropFirstSequence 2897 2939 +1.4% 0.99x (?)
DropFirstSequenceLazy 2861 2869 +0.3% 1.00x (?)
DropLastAnyCollection 49 50 +2.0% 0.98x (?)
DropLastAnyCollectionLazy 14568 14578 +0.1% 1.00x (?)
DropLastAnySeqCRangeIter 4526 4480 -1.0% 1.01x
DropLastAnySeqCRangeIterLazy 4474 4469 -0.1% 1.00x (?)
DropLastAnySeqCntRange 39 39 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 38 39 +2.6% 0.97x
DropLastAnySequence 6414 6624 +3.3% 0.97x (?)
DropLastAnySequenceLazy 6405 6380 -0.4% 1.00x (?)
DropLastArray 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 8 8 +0.0% 1.00x
DropLastSequence 506 508 +0.4% 1.00x (?)
DropLastSequenceLazy 524 515 -1.7% 1.02x (?)
DropWhileAnyCollection 134 133 -0.7% 1.01x (?)
DropWhileAnyCollectionLazy 93 94 +1.1% 0.99x (?)
DropWhileAnySeqCRangeIter 21686 21749 +0.3% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCntRange 124 124 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 92 91 -1.1% 1.01x (?)
DropWhileAnySequence 7459 7367 -1.2% 1.01x (?)
DropWhileAnySequenceLazy 2108 2110 +0.1% 1.00x (?)
DropWhileCountableRange 35 35 +0.0% 1.00x
DropWhileCountableRangeLazy 76 75 -1.3% 1.01x (?)
DropWhileSequence 2922 2951 +1.0% 0.99x
ErrorHandling 2844 2812 -1.1% 1.01x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3342 3470 +3.8% 0.96x
HashQuadratic 6099586 6382589 +4.6% 0.96x
HashTest 1714 1712 -0.1% 1.00x (?)
Histogram 246 243 -1.2% 1.01x (?)
Integrate 263 257 -2.3% 1.02x (?)
IterateData 767 756 -1.4% 1.01x
Join 440 422 -4.1% 1.04x
LazilyFilteredArrays 63361 62162 -1.9% 1.02x
LinkedList 6685 6685 +0.0% 1.00x
MapReduce 302 299 -1.0% 1.01x (?)
MapReduceAnyCollectionShort 1893 1892 -0.1% 1.00x (?)
MapReduceClass 2904 2901 -0.1% 1.00x (?)
MapReduceClassShort 4338 4306 -0.7% 1.01x (?)
MapReduceLazyCollectionShort 44 43 -2.3% 1.02x (?)
MapReduceLazySequence 85 85 +0.0% 1.00x
MapReduceSequence 461 452 -2.0% 1.02x
MapReduceShort 1886 1894 +0.4% 1.00x
MapReduceShortString 22 21 -4.5% 1.05x
MapReduceString 112 114 +1.8% 0.98x
Memset 228 233 +2.2% 0.98x (?)
MonteCarloE 9799 9716 -0.8% 1.01x (?)
MonteCarloPi 41625 41525 -0.2% 1.00x
NSDictionaryCastToSwift 5210 5102 -2.1% 1.02x (?)
NSStringConversion 735 754 +2.6% 0.97x (?)
NopDeinit 28959 27654 -4.5% 1.05x
ObjectAllocation 183 179 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23775 23532 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4470 4550 +1.8% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43824 44205 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38362 38465 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 119907 120912 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5158 5277 +2.3% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 97466 94651 -2.9% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObject 66030 66565 +0.8% 0.99x
ObjectiveCBridgeFromNSSetAnyObjectForced 4225 4300 +1.8% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 71172 73081 +2.7% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 64305 63282 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSString 1431 1448 +1.2% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2421 2369 -2.1% 1.02x (?)
ObjectiveCBridgeStubDataAppend 3797 3761 -0.9% 1.01x (?)
ObjectiveCBridgeStubDateAccess 177 176 -0.6% 1.01x (?)
ObjectiveCBridgeStubDateMutation 265 266 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromArrayOfNSString 28854 29136 +1.0% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 3778 3751 -0.7% 1.01x
ObjectiveCBridgeStubFromNSDateRef 3759 3729 -0.8% 1.01x
ObjectiveCBridgeStubFromNSString 928 962 +3.7% 0.96x
ObjectiveCBridgeStubNSDataAppend 2338 2319 -0.8% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 12735 13014 +2.2% 0.98x (?)
ObjectiveCBridgeStubNSDateRefAccess 354 348 -1.7% 1.02x
ObjectiveCBridgeStubToArrayOfNSString 29438 29337 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15162 14914 -1.6% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3328 3337 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSString 1473 1472 -0.1% 1.00x
ObjectiveCBridgeStubToNSStringRef 106 106 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 245305 245264 -0.0% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 255937 253345 -1.0% 1.01x (?)
ObjectiveCBridgeToNSArray 29501 29854 +1.2% 0.99x (?)
ObjectiveCBridgeToNSSet 41838 41500 -0.8% 1.01x (?)
ObjectiveCBridgeToNSString 1271 1237 -2.7% 1.03x
ObserverClosure 2213 2244 +1.4% 0.99x (?)
ObserverForwarderStruct 1058 1077 +1.8% 0.98x (?)
ObserverPartiallyAppliedMethod 3620 3689 +1.9% 0.98x (?)
ObserverUnappliedMethod 2579 2532 -1.8% 1.02x (?)
OpenClose 49 47 -4.1% 1.04x
PolymorphicCalls 22 21 -4.5% 1.05x
PopFrontArray 1079 1063 -1.5% 1.02x
PopFrontArrayGeneric 1099 1064 -3.2% 1.03x
PopFrontUnsafePointer 9131 8841 -3.2% 1.03x
PrefixAnyCollection 127 123 -3.1% 1.03x
PrefixAnyCollectionLazy 43455 42799 -1.5% 1.02x (?)
PrefixAnySeqCRangeIter 21825 21707 -0.5% 1.01x (?)
PrefixAnySeqCRangeIterLazy 21701 22281 +2.7% 0.97x (?)
PrefixAnySeqCntRange 115 117 +1.7% 0.98x
PrefixAnySeqCntRangeLazy 112 110 -1.8% 1.02x (?)
PrefixAnySequence 5811 5906 +1.6% 0.98x (?)
PrefixAnySequenceLazy 6076 6075 -0.0% 1.00x (?)
PrefixArray 29 29 +0.0% 1.00x
PrefixArrayLazy 29 29 +0.0% 1.00x
PrefixCountableRange 22 22 +0.0% 1.00x
PrefixCountableRangeLazy 22 22 +0.0% 1.00x
PrefixSequence 2489 2490 +0.0% 1.00x
PrefixSequenceLazy 2456 2460 +0.2% 1.00x (?)
PrefixWhileAnyCollection 155 155 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 74 73 -1.4% 1.01x
PrefixWhileAnySeqCRangeIter 11857 12068 +1.8% 0.98x (?)
PrefixWhileAnySeqCRangeIterLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCntRange 150 147 -2.0% 1.02x (?)
PrefixWhileAnySeqCntRangeLazy 73 73 +0.0% 1.00x
PrefixWhileAnySequence 13516 13438 -0.6% 1.01x (?)
PrefixWhileAnySequenceLazy 1587 1554 -2.1% 1.02x
PrefixWhileArray 66 64 -3.0% 1.03x (?)
PrefixWhileArrayLazy 56 56 +0.0% 1.00x
PrefixWhileCountableRange 35 34 -2.9% 1.03x
PrefixWhileCountableRangeLazy 22 22 +0.0% 1.00x
PrefixWhileSequence 372 378 +1.6% 0.98x (?)
PrefixWhileSequenceLazy 38 37 -2.6% 1.03x (?)
Prims 777 767 -1.3% 1.01x (?)
ProtocolDispatch2 170 171 +0.6% 0.99x (?)
RGBHistogram 2317 2271 -2.0% 1.02x
RGBHistogramOfObjects 23843 23665 -0.7% 1.01x (?)
RangeAssignment 299 301 +0.7% 0.99x (?)
RecursiveOwnedParameter 2259 2352 +4.1% 0.96x
ReversedArray 47 49 +4.3% 0.96x (?)
ReversedBidirectional 28284 28291 +0.0% 1.00x (?)
ReversedDictionary 105 105 +0.0% 1.00x
SetExclusiveOr 2980 2958 -0.7% 1.01x (?)
SetExclusiveOr_OfObjects 9332 9293 -0.4% 1.00x (?)
SetIntersect 268 281 +4.9% 0.95x
SetIntersect_OfObjects 1673 1723 +3.0% 0.97x (?)
SetIsSubsetOf 270 270 +0.0% 1.00x
SetIsSubsetOf_OfObjects 338 339 +0.3% 1.00x
SetUnion 2583 2616 +1.3% 0.99x (?)
SetUnion_OfObjects 8045 7932 -1.4% 1.01x (?)
SevenBoom 1438 1480 +2.9% 0.97x
Sim2DArray 278 276 -0.7% 1.01x (?)
SortLargeExistentials 8344 8335 -0.1% 1.00x (?)
SortLettersInPlace 1116 1112 -0.4% 1.00x (?)
SortSortedStrings 838 823 -1.8% 1.02x (?)
SortStrings 1616 1645 +1.8% 0.98x
SortStringsUnicode 8080 7964 -1.4% 1.01x
StackPromo 22178 22179 +0.0% 1.00x (?)
StaticArray 21 21 +0.0% 1.00x
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1287 1285 -0.2% 1.00x (?)
StringBuilderLong 946 946 +0.0% 1.00x
StringEdits 441685 443860 +0.5% 1.00x
StringEqualPointerComparison 7634 7550 -1.1% 1.01x
StringHasPrefixUnicode 14894 14321 -3.8% 1.04x
StringHasSuffixUnicode 61820 61124 -1.1% 1.01x
StringMatch 9285 9580 +3.2% 0.97x
StringUTF16Builder 2053 2098 +2.2% 0.98x (?)
StringWalk 5989 6225 +3.9% 0.96x
StringWithCString 114211 118546 +3.8% 0.96x
SuffixAnyCollection 49 51 +4.1% 0.96x
SuffixAnyCollectionLazy 14344 14720 +2.6% 0.97x
SuffixAnySeqCRangeIter 4683 4789 +2.3% 0.98x
SuffixAnySeqCRangeIterLazy 4686 4667 -0.4% 1.00x (?)
SuffixAnySeqCntRange 38 38 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 38 38 +0.0% 1.00x
SuffixAnySequence 6339 6493 +2.4% 0.98x
SuffixAnySequenceLazy 6230 6398 +2.7% 0.97x
SuffixCountableRange 8 8 +0.0% 1.00x
SuffixCountableRangeLazy 8 8 +0.0% 1.00x
SuffixSequence 4231 4256 +0.6% 0.99x (?)
SuffixSequenceLazy 4419 4312 -2.4% 1.02x
SuperChars 306107 300516 -1.8% 1.02x (?)
TwoSum 916 915 -0.1% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 251 246 -2.0% 1.02x
Walsh 351 351 +0.0% 1.00x
XorLoop 344 328 -4.7% 1.05x
**Unoptimized (Onone)**
Regression (3)
TEST OLD NEW DELTA SPEEDUP
StringAdder 45 55 +22.2% 0.82x
ArrayOfGenericPOD 3320 3716 +11.9% 0.89x
Dictionary2 3391 3572 +5.3% 0.95x
Improvement (7)
TEST OLD NEW DELTA SPEEDUP
TypeFlood 179 165 -7.8% 1.08x (?)
Array2D 643758 594498 -7.7% 1.08x
ObjectiveCBridgeStubToNSDate 15024 14048 -6.5% 1.07x (?)
ReversedDictionary 27305 25830 -5.4% 1.06x
ArrayAppendReserved 3904 3701 -5.2% 1.05x
ObjectiveCBridgeFromNSArrayAnyObjectForced 8258 7848 -5.0% 1.05x (?)
ArrayAppend 3792 3604 -5.0% 1.05x
No Changes (259)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2961 3016 +1.9% 0.98x (?)
AnyHashableWithAClass 80807 83751 +3.6% 0.96x (?)
ArrayAppendArrayOfInt 681 653 -4.1% 1.04x
ArrayAppendAscii 62003 63136 +1.8% 0.98x (?)
ArrayAppendFromGeneric 640 657 +2.7% 0.97x (?)
ArrayAppendGenericStructs 1227 1268 +3.3% 0.97x
ArrayAppendLatin1 82263 84084 +2.2% 0.98x (?)
ArrayAppendLazyMap 204411 202370 -1.0% 1.01x (?)
ArrayAppendOptionals 1265 1253 -0.9% 1.01x (?)
ArrayAppendRepeatCol 217153 213543 -1.7% 1.02x (?)
ArrayAppendSequence 78215 79530 +1.7% 0.98x
ArrayAppendStrings 13488 13661 +1.3% 0.99x (?)
ArrayAppendToFromGeneric 635 636 +0.2% 1.00x (?)
ArrayAppendToGeneric 636 636 +0.0% 1.00x
ArrayAppendUTF16 82638 81245 -1.7% 1.02x (?)
ArrayInClass 4532 4516 -0.4% 1.00x (?)
ArrayLiteral 1442 1423 -1.3% 1.01x (?)
ArrayOfGenericRef 9375 9131 -2.6% 1.03x (?)
ArrayOfPOD 1892 1864 -1.5% 1.02x (?)
ArrayOfRef 8764 8591 -2.0% 1.02x
ArrayPlusEqualArrayOfInt 634 635 +0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 280795 286970 +2.2% 0.98x
ArrayPlusEqualSingleElementCollection 277865 285843 +2.9% 0.97x (?)
ArrayPlusEqualThreeElements 10237 10321 +0.8% 0.99x (?)
ArraySubscript 4071 4114 +1.1% 0.99x (?)
ArrayValueProp 2875 2935 +2.1% 0.98x (?)
ArrayValueProp2 3496 3556 +1.7% 0.98x (?)
ArrayValueProp3 3349 3443 +2.8% 0.97x (?)
ArrayValueProp4 3236 3305 +2.1% 0.98x
BitCount 853 875 +2.6% 0.97x
ByteSwap 257 259 +0.8% 0.99x (?)
CStringLongAscii 5460 5303 -2.9% 1.03x (?)
CStringLongNonAscii 2394 2469 +3.1% 0.97x
CStringShortAscii 8579 8865 +3.3% 0.97x
Calculator 1024 1073 +4.8% 0.95x
CaptureProp 110393 110379 -0.0% 1.00x (?)
CharacterLiteralsLarge 9773 9832 +0.6% 0.99x
CharacterLiteralsSmall 977 1000 +2.4% 0.98x (?)
Chars 7275 7438 +2.2% 0.98x (?)
ClassArrayGetter 903 931 +3.1% 0.97x
DeadArray 114800 117764 +2.6% 0.97x (?)
Dictionary 1726 1707 -1.1% 1.01x (?)
Dictionary2OfObjects 5768 5793 +0.4% 1.00x (?)
Dictionary3 1321 1324 +0.2% 1.00x (?)
Dictionary3OfObjects 2221 2174 -2.1% 1.02x
DictionaryBridge 2864 2769 -3.3% 1.03x (?)
DictionaryLiteral 8121 8191 +0.9% 0.99x (?)
DictionaryOfObjects 4561 4575 +0.3% 1.00x
DictionaryRemove 21329 21303 -0.1% 1.00x
DictionaryRemoveOfObjects 54079 55115 +1.9% 0.98x (?)
DictionarySwap 5300 5335 +0.7% 0.99x (?)
DictionarySwapOfObjects 19291 19283 -0.0% 1.00x (?)
DropFirstAnyCollection 19192 19201 +0.0% 1.00x (?)
DropFirstAnyCollectionLazy 139156 138501 -0.5% 1.00x (?)
DropFirstAnySeqCRangeIter 30087 30228 +0.5% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 30002 30912 +3.0% 0.97x
DropFirstAnySeqCntRange 19756 19373 -1.9% 1.02x (?)
DropFirstAnySeqCntRangeLazy 19754 19374 -1.9% 1.02x (?)
DropFirstAnySequence 14354 13994 -2.5% 1.03x (?)
DropFirstAnySequenceLazy 13991 14062 +0.5% 0.99x
DropFirstArray 6257 6267 +0.2% 1.00x (?)
DropFirstArrayLazy 46566 45148 -3.0% 1.03x
DropFirstCountableRange 350 351 +0.3% 1.00x
DropFirstCountableRangeLazy 39348 40703 +3.4% 0.97x
DropFirstSequence 13268 12901 -2.8% 1.03x (?)
DropFirstSequenceLazy 12925 12796 -1.0% 1.01x
DropLastAnyCollection 6439 6450 +0.2% 1.00x (?)
DropLastAnyCollectionLazy 46181 47269 +2.4% 0.98x (?)
DropLastAnySeqCRangeIter 43771 44985 +2.8% 0.97x (?)
DropLastAnySeqCRangeIterLazy 45093 43724 -3.0% 1.03x
DropLastAnySeqCntRange 6612 6456 -2.4% 1.02x (?)
DropLastAnySeqCntRangeLazy 6640 6765 +1.9% 0.98x (?)
DropLastAnySequence 29168 29170 +0.0% 1.00x (?)
DropLastAnySequenceLazy 29020 28951 -0.2% 1.00x (?)
DropLastArray 2054 2099 +2.2% 0.98x (?)
DropLastArrayLazy 14851 15020 +1.1% 0.99x (?)
DropLastCountableRange 120 118 -1.7% 1.02x
DropLastCountableRangeLazy 12794 13051 +2.0% 0.98x (?)
DropLastSequence 28571 29495 +3.2% 0.97x
DropLastSequenceLazy 28591 28589 -0.0% 1.00x (?)
DropWhileAnyCollection 24985 24401 -2.3% 1.02x (?)
DropWhileAnyCollectionLazy 27817 27336 -1.7% 1.02x (?)
DropWhileAnySeqCRangeIter 32194 31580 -1.9% 1.02x (?)
DropWhileAnySeqCRangeIterLazy 27062 27241 +0.7% 0.99x (?)
DropWhileAnySeqCntRange 25145 24956 -0.8% 1.01x (?)
DropWhileAnySeqCntRangeLazy 27569 28133 +2.0% 0.98x (?)
DropWhileAnySequence 16441 16144 -1.8% 1.02x
DropWhileAnySequenceLazy 12382 12777 +3.2% 0.97x
DropWhileArray 9845 9848 +0.0% 1.00x (?)
DropWhileArrayLazy 16667 16620 -0.3% 1.00x (?)
DropWhileCountableRange 5950 6222 +4.6% 0.96x (?)
DropWhileCountableRangeLazy 26440 26353 -0.3% 1.00x (?)
DropWhileSequence 15521 15490 -0.2% 1.00x
DropWhileSequenceLazy 11328 11621 +2.6% 0.97x
ErrorHandling 3804 3969 +4.3% 0.96x
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17802 17502 -1.7% 1.02x
HashQuadratic 53520659 52411065 -2.1% 1.02x (?)
HashTest 18481 18555 +0.4% 1.00x (?)
Histogram 8768 8653 -1.3% 1.01x
Integrate 401 398 -0.7% 1.01x
IterateData 12994 12700 -2.3% 1.02x (?)
Join 1220 1218 -0.2% 1.00x (?)
LazilyFilteredArrays 1668802 1680010 +0.7% 0.99x (?)
LazilyFilteredRange 673609 673448 -0.0% 1.00x (?)
LinkedList 31425 32140 +2.3% 0.98x (?)
MapReduce 35921 35700 -0.6% 1.01x (?)
MapReduceAnyCollection 37274 37395 +0.3% 1.00x
MapReduceAnyCollectionShort 49252 50316 +2.2% 0.98x (?)
MapReduceClass 41984 41898 -0.2% 1.00x (?)
MapReduceClassShort 53940 52965 -1.8% 1.02x (?)
MapReduceLazyCollection 32718 32798 +0.2% 1.00x (?)
MapReduceLazyCollectionShort 44275 43167 -2.5% 1.03x
MapReduceLazySequence 25426 25282 -0.6% 1.01x (?)
MapReduceSequence 41037 41522 +1.2% 0.99x
MapReduceShort 49153 50452 +2.6% 0.97x
MapReduceShortString 275 284 +3.3% 0.97x (?)
MapReduceString 2561 2630 +2.7% 0.97x (?)
Memset 41545 41568 +0.1% 1.00x (?)
MonteCarloE 128816 133700 +3.8% 0.96x
MonteCarloPi 49895 50963 +2.1% 0.98x (?)
NSDictionaryCastToSwift 6472 6409 -1.0% 1.01x (?)
NSError 729 735 +0.8% 0.99x (?)
NSStringConversion 1352 1324 -2.1% 1.02x
NopDeinit 51874 53444 +3.0% 0.97x
ObjectAllocation 648 635 -2.0% 1.02x
ObjectiveCBridgeFromNSArrayAnyObject 24860 24780 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44685 45081 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 39527 40231 +1.8% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122316 122467 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 8281 8316 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 101873 99345 -2.5% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 94416 98687 +4.5% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObject 68111 68940 +1.2% 0.99x
ObjectiveCBridgeFromNSSetAnyObjectForced 7417 7450 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 75953 78716 +3.6% 0.96x
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 68007 68185 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSString 4133 4064 -1.7% 1.02x
ObjectiveCBridgeFromNSStringForced 2840 2822 -0.6% 1.01x
ObjectiveCBridgeStubDataAppend 4064 3896 -4.1% 1.04x (?)
ObjectiveCBridgeStubDateAccess 1056 1042 -1.3% 1.01x (?)
ObjectiveCBridgeStubDateMutation 531 544 +2.4% 0.98x
ObjectiveCBridgeStubFromArrayOfNSString 30706 29981 -2.4% 1.02x
ObjectiveCBridgeStubFromNSDate 4194 4112 -2.0% 1.02x
ObjectiveCBridgeStubFromNSDateRef 3949 4098 +3.8% 0.96x
ObjectiveCBridgeStubFromNSString 983 964 -1.9% 1.02x
ObjectiveCBridgeStubFromNSStringRef 218 208 -4.6% 1.05x
ObjectiveCBridgeStubNSDataAppend 2643 2660 +0.6% 0.99x (?)
ObjectiveCBridgeStubNSDateMutationRef 15579 15870 +1.9% 0.98x
ObjectiveCBridgeStubNSDateRefAccess 1228 1243 +1.2% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 29927 30071 +0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3309 3275 -1.0% 1.01x (?)
ObjectiveCBridgeStubToNSString 1567 1568 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 152 145 -4.6% 1.05x
ObjectiveCBridgeStubURLAppendPath 247242 248386 +0.5% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 252587 247371 -2.1% 1.02x (?)
ObjectiveCBridgeToNSArray 29890 29497 -1.3% 1.01x (?)
ObjectiveCBridgeToNSDictionary 48795 49023 +0.5% 1.00x (?)
ObjectiveCBridgeToNSSet 41699 42121 +1.0% 0.99x (?)
ObjectiveCBridgeToNSString 1325 1318 -0.5% 1.01x (?)
ObserverClosure 6451 6433 -0.3% 1.00x (?)
ObserverForwarderStruct 4436 4423 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 7859 7675 -2.3% 1.02x (?)
ObserverUnappliedMethod 8284 8047 -2.9% 1.03x
OpenClose 406 409 +0.7% 0.99x (?)
Phonebook 25075 25946 +3.5% 0.97x
PolymorphicCalls 2971 3039 +2.3% 0.98x
PopFrontArray 10056 10108 +0.5% 0.99x
PopFrontArrayGeneric 8778 8797 +0.2% 1.00x
PopFrontUnsafePointer 99817 99046 -0.8% 1.01x (?)
PrefixAnyCollection 19679 19836 +0.8% 0.99x (?)
PrefixAnyCollectionLazy 142140 143190 +0.7% 0.99x (?)
PrefixAnySeqCRangeIter 24215 24076 -0.6% 1.01x
PrefixAnySeqCRangeIterLazy 24480 24570 +0.4% 1.00x (?)
PrefixAnySeqCntRange 19201 19795 +3.1% 0.97x
PrefixAnySeqCntRangeLazy 19758 19459 -1.5% 1.02x (?)
PrefixAnySequence 11764 12123 +3.1% 0.97x
PrefixAnySequenceLazy 11808 11729 -0.7% 1.01x (?)
PrefixArray 6279 6261 -0.3% 1.00x
PrefixArrayLazy 45358 45162 -0.4% 1.00x
PrefixCountableRange 348 341 -2.0% 1.02x
PrefixCountableRangeLazy 39631 38777 -2.2% 1.02x
PrefixSequence 11070 10789 -2.5% 1.03x
PrefixSequenceLazy 10758 10777 +0.2% 1.00x (?)
PrefixWhileAnyCollection 37466 37633 +0.4% 1.00x (?)
PrefixWhileAnyCollectionLazy 23120 22921 -0.9% 1.01x (?)
PrefixWhileAnySeqCRangeIter 41947 40642 -3.1% 1.03x
PrefixWhileAnySeqCRangeIterLazy 22509 23158 +2.9% 0.97x
PrefixWhileAnySeqCntRange 37697 36581 -3.0% 1.03x (?)
PrefixWhileAnySeqCntRangeLazy 23373 22921 -1.9% 1.02x
PrefixWhileAnySequence 29577 30480 +3.1% 0.97x
PrefixWhileAnySequenceLazy 11223 11320 +0.9% 0.99x (?)
PrefixWhileArray 16960 16893 -0.4% 1.00x
PrefixWhileArrayLazy 14344 14671 +2.3% 0.98x (?)
PrefixWhileCountableRange 17705 17661 -0.2% 1.00x (?)
PrefixWhileCountableRangeLazy 22381 22473 +0.4% 1.00x (?)
PrefixWhileSequence 28366 28367 +0.0% 1.00x (?)
PrefixWhileSequenceLazy 10477 10478 +0.0% 1.00x (?)
Prims 8729 8983 +2.9% 0.97x (?)
ProtocolDispatch 7003 7295 +4.2% 0.96x (?)
ProtocolDispatch2 492 505 +2.6% 0.97x
RC4 19241 19531 +1.5% 0.99x (?)
RGBHistogram 33979 34042 +0.2% 1.00x (?)
RGBHistogramOfObjects 97120 95403 -1.8% 1.02x
RangeAssignment 5665 5542 -2.2% 1.02x (?)
RecursiveOwnedParameter 9355 9122 -2.5% 1.03x
ReversedArray 578 589 +1.9% 0.98x
ReversedBidirectional 74971 71869 -4.1% 1.04x (?)
SetExclusiveOr 21357 21389 +0.1% 1.00x (?)
SetExclusiveOr_OfObjects 41258 41260 +0.0% 1.00x (?)
SetIntersect 10852 10861 +0.1% 1.00x
SetIntersect_OfObjects 11175 11164 -0.1% 1.00x (?)
SetIsSubsetOf 1709 1658 -3.0% 1.03x
SetIsSubsetOf_OfObjects 1531 1531 +0.0% 1.00x
SetUnion 12184 12550 +3.0% 0.97x
SetUnion_OfObjects 29446 28844 -2.0% 1.02x (?)
SevenBoom 1565 1557 -0.5% 1.01x (?)
Sim2DArray 28605 29151 +1.9% 0.98x (?)
SortLargeExistentials 17268 17306 +0.2% 1.00x (?)
SortLettersInPlace 2876 2824 -1.8% 1.02x
SortSortedStrings 1411 1416 +0.4% 1.00x
SortStrings 2560 2487 -2.9% 1.03x
SortStringsUnicode 9255 9051 -2.2% 1.02x
StackPromo 103068 105801 +2.7% 0.97x (?)
StaticArray 4564 4571 +0.2% 1.00x (?)
StrComplexWalk 5965 5977 +0.2% 1.00x (?)
StrToInt 5293 5409 +2.2% 0.98x (?)
StringBuilder 2828 2753 -2.7% 1.03x
StringBuilderLong 1109 1109 +0.0% 1.00x
StringEdits 732573 731585 -0.1% 1.00x (?)
StringEqualPointerComparison 10243 9861 -3.7% 1.04x
StringHasPrefix 1735 1692 -2.5% 1.03x
StringHasPrefixUnicode 17027 16812 -1.3% 1.01x (?)
StringHasSuffix 1871 1889 +1.0% 0.99x
StringHasSuffixUnicode 65437 64118 -2.0% 1.02x (?)
StringInterpolation 12262 11838 -3.5% 1.04x
StringMatch 30564 31169 +2.0% 0.98x (?)
StringUTF16Builder 3652 3725 +2.0% 0.98x
StringWalk 22490 23614 +5.0% 0.95x
StringWithCString 126083 126175 +0.1% 1.00x (?)
SuffixAnyCollection 6360 6430 +1.1% 0.99x (?)
SuffixAnyCollectionLazy 47050 45837 -2.6% 1.03x (?)
SuffixAnySeqCRangeIter 41500 41657 +0.4% 1.00x (?)
SuffixAnySeqCRangeIterLazy 41709 43176 +3.5% 0.97x
SuffixAnySeqCntRange 6464 6610 +2.3% 0.98x
SuffixAnySeqCntRangeLazy 6639 6555 -1.3% 1.01x (?)
SuffixAnySequence 27366 27056 -1.1% 1.01x (?)
SuffixAnySequenceLazy 26043 26021 -0.1% 1.00x (?)
SuffixArray 2041 2069 +1.4% 0.99x (?)
SuffixArrayLazy 15007 15036 +0.2% 1.00x (?)
SuffixCountableRange 119 118 -0.8% 1.01x (?)
SuffixCountableRangeLazy 12888 13102 +1.7% 0.98x
SuffixSequence 26620 26384 -0.9% 1.01x (?)
SuffixSequenceLazy 25763 26008 +1.0% 0.99x (?)
SuperChars 342490 350106 +2.2% 0.98x (?)
TwoSum 4395 4363 -0.7% 1.01x
UTF8Decode 36886 35936 -2.6% 1.03x (?)
Walsh 11597 11494 -0.9% 1.01x (?)
XorLoop 22386 22392 +0.0% 1.00x (?)
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i7 Processor Speed: 3 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB

@palimondo
Copy link
Contributor

There were reported improvements from 6%-12% (O build) in DropFirstArrayLazy, DropWhileArrayLazy, DropWhileSequenceLazy and DropWhileArray -- tests that you did not change with this commit. IMO this points to the need to improve how we detect changes to better use measured statistics: SR-4600 Performance comparison should use MEAN and SD for analysis.

These are test with very low runtimes per iteration and are more susceptible to noise during testing. See also SR-4669 Add a Benchmark_Driver --rerun N option.

@palimondo
Copy link
Contributor

@dabrahams, @eeckstein - How about we try this?

public func CheckResults(
    _ resultsMatch: Bool,
    file: String = #file,
    function: String = #function,
    line: Int = #line
    ) {
    guard _fastPath(resultsMatch) else {
        print("Incorrect result in \(function), \(file):\(line)")
        abort()
    }
}

@eeckstein
Copy link
Contributor

@palimondo Still, passing strings will probably generate some retain/release traffic. We could just pass the line number. IMO this is more than sufficient to locate the source of a fail. Most benchmarks (if not all) only have a single CheckResult anyway.

@palimondo
Copy link
Contributor

palimondo commented May 5, 2017

Those should be StaticStrings, if I understand that correctly. Do they also retain/release???

We could be more specific here:

public func CheckResults(
    _ resultsMatch: Bool,
    file: StaticString = #file,
    function: StaticString = #function,
    line: Int = #line
    ) {
    guard _fastPath(resultsMatch) else {
        print("Incorrect result in \(function), \(file):\(line)")
        abort()
    }
}

@palimondo
Copy link
Contributor

palimondo commented May 5, 2017

Here's another benchmark run, that tested no changes in performance tests, only modifications to test harness generation. It also has improvements and regressions.

StringHasSuffix and StringHasPrefix also appear in regressions there. I'm not disputing the changes in this commit are not showing these test need reevaluation -- just say they were spuriously showing as false positives / false negatives before.

@palimondo
Copy link
Contributor

palimondo commented May 5, 2017

This is another benchmark result -- again, no change in performance tests. This one probably had a quiet machine during test and has no false changes reported (OK, just 1 😉). We definitely have an issue of false changes reported the whole time. See the two SR's above for suggested solutions.

@dabrahams
Copy link
Contributor Author

@palimondo wrote:

There were reported improvements from 6%-12% (O build) in DropFirstArrayLazy, DropWhileArrayLazy, DropWhileSequenceLazy and DropWhileArray -- tests that you did not change with this commit.

Whoa, that's unexpected. I didn't realize I had overlooked some. Let me go back and fix that.

IMO this points to the need to improve how we detect changes to better use measured statistics

No argument there. There is so much we need to improve about the way we benchmark, and we've known it for a long time...

@dabrahams dabrahams force-pushed the only-benchmark-interpolation-when-you-mean-to branch from a4da270 to e839525 Compare May 5, 2017 17:17
@dabrahams
Copy link
Contributor Author

@palimondo We have such a problem with reliable benchmarking that I want to start by stripping out everything that could possibly interfere with getting meaningful results. Ideally that means we should not do any work that we're not trying to measure, and adding strings of any kind is really not needed here. If it becomes useful, we can find a way to bring them back.

As a concession to the people who work on the optimizer, we're keeping some result checking code because they say it sometimes finds optimizer bugs, but that code itself needs to be carefully reviewed to ensure it's not doing any significant work compared to what gets measured.

Let me also say, thank you very much for your interest in improving this part of Swift. It's critical that we get it right, but the reality is that we have never been able to give it the attention it needs, so your participation is very much appreciated!

This call was in many cases skewing the benchmark results.

Note: Intentionally staging this in without removing the old overload initially.
@dabrahams dabrahams force-pushed the only-benchmark-interpolation-when-you-mean-to branch from e839525 to e32fb8b Compare May 5, 2017 17:25
@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke benchmark

@palimondo
Copy link
Contributor

@dabrahams Please have a look at #9330. I think I've done what you wanted while you were sleeping… 😉

@swift-ci
Copy link
Contributor

swift-ci commented May 5, 2017

Build comment file:

Optimized (O)

Regression (19)
TEST OLD NEW DELTA SPEEDUP
BitCount 0 9 +900000.0% 0.00x
DropFirstCountableRangeLazy 23 32 +39.1% 0.72x
PrefixWhileCountableRangeLazy 23 32 +39.1% 0.72x
DropFirstCountableRange 23 32 +39.1% 0.72x
PrefixCountableRangeLazy 23 32 +39.1% 0.72x
PrefixCountableRange 23 32 +39.1% 0.72x
SuffixCountableRangeLazy 8 10 +25.0% 0.80x
DropLastCountableRange 8 10 +25.0% 0.80x
SuffixCountableRange 9 11 +22.2% 0.82x
ProtocolDispatch 2727 3030 +11.1% 0.90x
DropLastCountableRangeLazy 9 10 +11.1% 0.90x
Integrate 262 284 +8.4% 0.92x
ObjectiveCBridgeStubToNSDate 14233 15424 +8.4% 0.92x (?)
DropLastSequence 517 556 +7.5% 0.93x
DropLastSequenceLazy 517 555 +7.4% 0.93x
DropWhileAnyCollectionLazy 96 103 +7.3% 0.93x
DropWhileAnySeqCntRangeLazy 96 103 +7.3% 0.93x
DropWhileAnySeqCRangeIterLazy 96 103 +7.3% 0.93x
StrToInt 4366 4632 +6.1% 0.94x
Improvement (55)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffix 681 16 -97.7% 42.56x
StringHasPrefix 608 33 -94.6% 18.42x
DropLastAnySeqCntRange 41 16 -61.0% 2.56x
DropLastAnySeqCntRangeLazy 41 16 -61.0% 2.56x
SuffixAnySeqCntRangeLazy 40 16 -60.0% 2.50x
SuffixAnySeqCntRange 40 16 -60.0% 2.50x
SuffixAnyCollection 52 22 -57.7% 2.36x
DropLastAnyCollection 52 22 -57.7% 2.36x
PrefixAnySeqCntRangeLazy 117 50 -57.3% 2.34x
PrefixAnySeqCntRange 117 50 -57.3% 2.34x
DropFirstAnySeqCntRangeLazy 115 50 -56.5% 2.30x
DropFirstAnySeqCntRange 115 50 -56.5% 2.30x
PrefixAnyCollection 131 57 -56.5% 2.30x
DropFirstAnyCollection 127 56 -55.9% 2.27x
DropWhileAnySeqCntRange 128 64 -50.0% 2.00x
DropWhileAnyCollection 134 70 -47.8% 1.91x
PrefixWhileAnySeqCntRange 154 90 -41.6% 1.71x
PrefixWhileAnyCollection 162 96 -40.7% 1.69x
PrefixWhileSequenceLazy 39 28 -28.2% 1.39x
DropFirstArrayLazy 33 24 -27.3% 1.37x
StrComplexWalk 979 720 -26.5% 1.36x
PrefixWhileSequence 385 300 -22.1% 1.28x
DropLastArray 10 8 -20.0% 1.25x
SuffixArrayLazy 10 8 -20.0% 1.25x
DropLastArrayLazy 10 8 -20.0% 1.25x
SuffixArray 10 8 -20.0% 1.25x
DropWhileArray 46 37 -19.6% 1.24x
DropFirstArray 29 24 -17.2% 1.21x
PrefixArrayLazy 29 24 -17.2% 1.21x
PrefixWhileArrayLazy 58 49 -15.5% 1.18x
DropWhileSequenceLazy 76 65 -14.5% 1.17x
ArraySubscript 1749 1497 -14.4% 1.17x
DropWhileCountableRangeLazy 79 68 -13.9% 1.16x
PrefixArray 29 25 -13.8% 1.16x
AngryPhonebook 3328 2893 -13.1% 1.15x
ArrayPlusEqualFiveElementCollection 5271 4691 -11.0% 1.12x
TwoSum 977 876 -10.3% 1.12x
Array2D 2296 2081 -9.4% 1.10x (?)
ArrayAppendGenericStructs 1334 1225 -8.2% 1.09x
ArrayOfGenericPOD 237 219 -7.6% 1.08x
MapReduce 330 305 -7.6% 1.08x
ArrayAppendOptionals 1326 1226 -7.5% 1.08x
ArrayAppend 836 773 -7.5% 1.08x
AnyHashableWithAClass 71829 66562 -7.3% 1.08x
ArrayOfPOD 179 166 -7.3% 1.08x
ArrayAppendLatin1 46086 42978 -6.7% 1.07x
ArrayOfGenericRef 4278 3993 -6.7% 1.07x
ArrayPlusEqualThreeElements 1695 1584 -6.5% 1.07x
RC4 171 160 -6.4% 1.07x
PrefixWhileArray 66 62 -6.1% 1.06x
PrefixWhileAnySequenceLazy 1587 1492 -6.0% 1.06x
CaptureProp 4853 4575 -5.7% 1.06x
ArrayAppendLazyMap 1009 956 -5.3% 1.06x
ArrayAppendFromGeneric 628 596 -5.1% 1.05x
ArrayAppendArrayOfInt 629 597 -5.1% 1.05x
No Changes (195)
TEST OLD NEW DELTA SPEEDUP
ArrayAppendAscii 23686 22641 -4.4% 1.05x
ArrayAppendRepeatCol 861 836 -2.9% 1.03x
ArrayAppendReserved 546 534 -2.2% 1.02x
ArrayAppendSequence 953 948 -0.5% 1.01x
ArrayAppendStrings 13683 13585 -0.7% 1.01x (?)
ArrayAppendToFromGeneric 598 596 -0.3% 1.00x
ArrayAppendToGeneric 599 596 -0.5% 1.01x
ArrayAppendUTF16 40822 41166 +0.8% 0.99x
ArrayInClass 61 61 +0.0% 1.00x
ArrayLiteral 1237 1226 -0.9% 1.01x
ArrayOfRef 4020 3898 -3.0% 1.03x (?)
ArrayPlusEqualArrayOfInt 607 598 -1.5% 1.02x
ArrayPlusEqualSingleElementCollection 785 776 -1.1% 1.01x
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 5061 5009 -1.0% 1.01x
CStringLongNonAscii 2112 2165 +2.5% 0.98x
CStringShortAscii 5276 5244 -0.6% 1.01x (?)
Calculator 48 46 -4.2% 1.04x
CharacterLiteralsLarge 8643 8655 +0.1% 1.00x
CharacterLiteralsSmall 310 311 +0.3% 1.00x
Chars 1840 1776 -3.5% 1.04x
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 183 184 +0.5% 0.99x (?)
Dictionary 574 575 +0.2% 1.00x
Dictionary2 1808 1805 -0.2% 1.00x (?)
Dictionary2OfObjects 3312 3326 +0.4% 1.00x (?)
Dictionary3 455 457 +0.4% 1.00x
Dictionary3OfObjects 901 896 -0.6% 1.01x
DictionaryBridge 2605 2602 -0.1% 1.00x (?)
DictionaryLiteral 1480 1480 +0.0% 1.00x
DictionaryOfObjects 2328 2330 +0.1% 1.00x (?)
DictionaryRemove 3288 3339 +1.6% 0.98x
DictionaryRemoveOfObjects 23432 23344 -0.4% 1.00x
DictionarySwap 370 375 +1.4% 0.99x
DictionarySwapOfObjects 6923 7023 +1.4% 0.99x (?)
DropFirstAnyCollectionLazy 45307 45075 -0.5% 1.01x (?)
DropFirstAnySeqCRangeIter 27874 27616 -0.9% 1.01x (?)
DropFirstAnySeqCRangeIterLazy 27874 27617 -0.9% 1.01x
DropFirstAnySequence 6796 6781 -0.2% 1.00x
DropFirstAnySequenceLazy 6841 6786 -0.8% 1.01x
DropFirstSequence 3067 3065 -0.1% 1.00x
DropFirstSequenceLazy 3029 3026 -0.1% 1.00x
DropLastAnyCollectionLazy 15088 15029 -0.4% 1.00x (?)
DropLastAnySeqCRangeIter 4611 4612 +0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 4612 4611 -0.0% 1.00x (?)
DropLastAnySequence 6854 6860 +0.1% 1.00x (?)
DropLastAnySequenceLazy 6534 6526 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIter 22217 22294 +0.3% 1.00x (?)
DropWhileAnySequence 7647 7602 -0.6% 1.01x (?)
DropWhileAnySequenceLazy 2108 2032 -3.6% 1.04x
DropWhileArrayLazy 80 78 -2.5% 1.03x
DropWhileCountableRange 35 35 +0.0% 1.00x
DropWhileSequence 3125 3124 -0.0% 1.00x
ErrorHandling 2868 2856 -0.4% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3396 3293 -3.0% 1.03x
HashQuadratic 6025878 6042110 +0.3% 1.00x (?)
HashTest 1697 1699 +0.1% 1.00x
Histogram 247 248 +0.4% 1.00x
IterateData 765 768 +0.4% 1.00x (?)
Join 444 436 -1.8% 1.02x
LazilyFilteredArrays 64891 64897 +0.0% 1.00x (?)
LazilyFilteredRange 4013 3898 -2.9% 1.03x
LinkedList 7044 7044 +0.0% 1.00x
MapReduceAnyCollection 303 301 -0.7% 1.01x (?)
MapReduceAnyCollectionShort 1999 1998 -0.1% 1.00x (?)
MapReduceClass 3066 3064 -0.1% 1.00x (?)
MapReduceClassShort 4600 4553 -1.0% 1.01x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 45 45 +0.0% 1.00x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 462 463 +0.2% 1.00x (?)
MapReduceShort 1917 1911 -0.3% 1.00x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 110 109 -0.9% 1.01x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10321 10364 +0.4% 1.00x
MonteCarloPi 44068 44001 -0.2% 1.00x
NSDictionaryCastToSwift 5324 5261 -1.2% 1.01x (?)
NSError 293 293 +0.0% 1.00x
NSStringConversion 745 742 -0.4% 1.00x (?)
NopDeinit 30423 30375 -0.2% 1.00x (?)
ObjectAllocation 184 186 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 24094 23487 -2.5% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4475 4473 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43711 43435 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38032 37802 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 118207 118158 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5188 5190 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 99691 95134 -4.6% 1.05x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 94747 93256 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObject 64813 64729 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4186 4173 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 72044 72180 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 64101 62669 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSString 1459 1404 -3.8% 1.04x
ObjectiveCBridgeFromNSStringForced 2364 2370 +0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3838 3709 -3.4% 1.03x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28347 28678 +1.2% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 3697 3703 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 3568 3584 +0.4% 1.00x
ObjectiveCBridgeStubFromNSString 957 952 -0.5% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 174 177 +1.7% 0.98x
ObjectiveCBridgeStubNSDataAppend 2358 2344 -0.6% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 12707 12729 +0.2% 1.00x (?)
ObjectiveCBridgeStubNSDateRefAccess 348 348 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29042 29179 +0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3425 3439 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1519 1519 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 108 109 +0.9% 0.99x
ObjectiveCBridgeStubURLAppendPath 229158 236540 +3.2% 0.97x (?)
ObjectiveCBridgeStubURLAppendPathRef 232794 234686 +0.8% 0.99x (?)
ObjectiveCBridgeToNSArray 29467 29980 +1.7% 0.98x
ObjectiveCBridgeToNSDictionary 44751 45238 +1.1% 0.99x (?)
ObjectiveCBridgeToNSSet 39379 39124 -0.6% 1.01x (?)
ObjectiveCBridgeToNSString 1269 1266 -0.2% 1.00x
ObserverClosure 2289 2279 -0.4% 1.00x (?)
ObserverForwarderStruct 1128 1133 +0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 3824 3783 -1.1% 1.01x
ObserverUnappliedMethod 2694 2705 +0.4% 1.00x (?)
OpenClose 54 54 +0.0% 1.00x
Phonebook 9301 9503 +2.2% 0.98x
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1067 1062 -0.5% 1.00x
PopFrontArrayGeneric 1066 1061 -0.5% 1.00x
PopFrontUnsafePointer 8869 8859 -0.1% 1.00x
PrefixAnyCollectionLazy 45359 45533 +0.4% 1.00x
PrefixAnySeqCRangeIter 21829 21769 -0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 21844 21743 -0.5% 1.00x
PrefixAnySequence 6091 6102 +0.2% 1.00x
PrefixAnySequenceLazy 6094 6087 -0.1% 1.00x
PrefixSequence 2526 2657 +5.2% 0.95x
PrefixSequenceLazy 2600 2617 +0.7% 0.99x
PrefixWhileAnyCollectionLazy 77 75 -2.6% 1.03x
PrefixWhileAnySeqCRangeIter 12518 12498 -0.2% 1.00x
PrefixWhileAnySeqCRangeIterLazy 77 75 -2.6% 1.03x
PrefixWhileAnySeqCntRangeLazy 77 75 -2.6% 1.03x
PrefixWhileAnySequence 14069 14038 -0.2% 1.00x
PrefixWhileCountableRange 35 36 +2.9% 0.97x
Prims 787 769 -2.3% 1.02x
ProtocolDispatch2 167 168 +0.6% 0.99x
RGBHistogram 2288 2264 -1.0% 1.01x (?)
RGBHistogramOfObjects 24578 24434 -0.6% 1.01x
RangeAssignment 295 294 -0.3% 1.00x (?)
RecursiveOwnedParameter 2327 2329 +0.1% 1.00x (?)
ReversedArray 50 50 +0.0% 1.00x
ReversedBidirectional 29132 29167 +0.1% 1.00x (?)
ReversedDictionary 112 108 -3.6% 1.04x (?)
SetExclusiveOr 3119 2976 -4.6% 1.05x (?)
SetExclusiveOr_OfObjects 9590 9573 -0.2% 1.00x (?)
SetIntersect 282 282 +0.0% 1.00x
SetIntersect_OfObjects 1724 1724 +0.0% 1.00x
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2677 2774 +3.6% 0.97x (?)
SetUnion_OfObjects 8082 8124 +0.5% 0.99x (?)
SevenBoom 1483 1476 -0.5% 1.00x
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8313 8294 -0.2% 1.00x
SortLettersInPlace 1148 1152 +0.3% 1.00x
SortSortedStrings 856 860 +0.5% 1.00x
SortStrings 1667 1659 -0.5% 1.00x
SortStringsUnicode 7830 7789 -0.5% 1.01x (?)
StackPromo 22160 22104 -0.3% 1.00x
StaticArray 21 21 +0.0% 1.00x
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1281 1284 +0.2% 1.00x (?)
StringBuilderLong 942 920 -2.3% 1.02x
StringEdits 442388 441530 -0.2% 1.00x (?)
StringEqualPointerComparison 7316 7430 +1.6% 0.98x (?)
StringHasPrefixUnicode 14455 14372 -0.6% 1.01x (?)
StringHasSuffixUnicode 61194 61609 +0.7% 0.99x
StringInterpolation 8292 8256 -0.4% 1.00x
StringMatch 9044 9053 +0.1% 1.00x (?)
StringUTF16Builder 2078 2085 +0.3% 1.00x (?)
StringWalk 6319 6472 +2.4% 0.98x
StringWithCString 119792 119832 +0.0% 1.00x (?)
SuffixAnyCollectionLazy 15082 15116 +0.2% 1.00x (?)
SuffixAnySeqCRangeIter 4929 4932 +0.1% 1.00x
SuffixAnySeqCRangeIterLazy 4931 4933 +0.0% 1.00x
SuffixAnySequence 6642 6709 +1.0% 0.99x (?)
SuffixAnySequenceLazy 6604 6550 -0.8% 1.01x
SuffixSequence 4443 4447 +0.1% 1.00x
SuffixSequenceLazy 4442 4449 +0.2% 1.00x
SuperChars 314471 311212 -1.0% 1.01x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 260 256 -1.5% 1.02x
Walsh 352 352 +0.0% 1.00x
XorLoop 347 347 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (5)
TEST OLD NEW DELTA SPEEDUP
OpenClose 409 442 +8.1% 0.93x
StringHasPrefix 1760 1879 +6.8% 0.94x
NopDeinit 50293 53373 +6.1% 0.94x
ObjectiveCBridgeStubFromNSDate 4014 4245 +5.8% 0.95x
ProtocolDispatch 7230 7633 +5.6% 0.95x
Improvement (1)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7857 7396 -5.9% 1.06x (?)
No Changes (263)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3107 3106 -0.0% 1.00x (?)
AnyHashableWithAClass 84290 84153 -0.2% 1.00x (?)
Array2D 604268 604743 +0.1% 1.00x
ArrayAppend 3814 3788 -0.7% 1.01x
ArrayAppendArrayOfInt 652 652 +0.0% 1.00x
ArrayAppendAscii 62842 62979 +0.2% 1.00x
ArrayAppendFromGeneric 655 654 -0.2% 1.00x
ArrayAppendGenericStructs 1376 1325 -3.7% 1.04x
ArrayAppendLatin1 84619 84525 -0.1% 1.00x
ArrayAppendLazyMap 207748 207851 +0.0% 1.00x
ArrayAppendOptionals 1314 1331 +1.3% 0.99x (?)
ArrayAppendRepeatCol 213133 212940 -0.1% 1.00x (?)
ArrayAppendReserved 3427 3538 +3.2% 0.97x
ArrayAppendSequence 76324 76337 +0.0% 1.00x (?)
ArrayAppendStrings 13772 13762 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 655 655 +0.0% 1.00x
ArrayAppendToGeneric 656 655 -0.2% 1.00x (?)
ArrayAppendUTF16 82831 82771 -0.1% 1.00x (?)
ArrayInClass 4733 4734 +0.0% 1.00x (?)
ArrayLiteral 1484 1478 -0.4% 1.00x
ArrayOfGenericPOD 3067 3067 +0.0% 1.00x
ArrayOfGenericRef 9609 9580 -0.3% 1.00x (?)
ArrayOfPOD 1832 1832 +0.0% 1.00x
ArrayOfRef 8760 8750 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 653 654 +0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 286601 286582 -0.0% 1.00x (?)
ArrayPlusEqualSingleElementCollection 284628 286161 +0.5% 0.99x (?)
ArrayPlusEqualThreeElements 10251 10352 +1.0% 0.99x (?)
ArraySubscript 4159 4168 +0.2% 1.00x (?)
ArrayValueProp 3006 3010 +0.1% 1.00x
ArrayValueProp2 3636 3638 +0.1% 1.00x
ArrayValueProp3 3427 3422 -0.1% 1.00x (?)
ArrayValueProp4 3334 3352 +0.5% 0.99x
BitCount 872 889 +1.9% 0.98x
ByteSwap 270 268 -0.7% 1.01x (?)
CStringLongAscii 5397 5362 -0.6% 1.01x (?)
CStringLongNonAscii 2399 2393 -0.3% 1.00x (?)
CStringShortAscii 8121 8074 -0.6% 1.01x (?)
Calculator 1048 1028 -1.9% 1.02x
CaptureProp 111074 111118 +0.0% 1.00x
CharacterLiteralsLarge 9737 9728 -0.1% 1.00x (?)
CharacterLiteralsSmall 1000 1000 +0.0% 1.00x
Chars 7406 7354 -0.7% 1.01x (?)
ClassArrayGetter 931 932 +0.1% 1.00x
DeadArray 118112 115793 -2.0% 1.02x (?)
Dictionary 1703 1705 +0.1% 1.00x (?)
Dictionary2 3487 3488 +0.0% 1.00x (?)
Dictionary2OfObjects 5798 5765 -0.6% 1.01x (?)
Dictionary3 1331 1326 -0.4% 1.00x (?)
Dictionary3OfObjects 2217 2215 -0.1% 1.00x (?)
DictionaryBridge 2703 2710 +0.3% 1.00x (?)
DictionaryLiteral 8212 8214 +0.0% 1.00x (?)
DictionaryOfObjects 4575 4580 +0.1% 1.00x (?)
DictionaryRemove 21277 21249 -0.1% 1.00x (?)
DictionaryRemoveOfObjects 54967 55061 +0.2% 1.00x (?)
DictionarySwap 5474 5536 +1.1% 0.99x
DictionarySwapOfObjects 19214 19702 +2.5% 0.98x
DropFirstAnyCollection 19292 19370 +0.4% 1.00x
DropFirstAnyCollectionLazy 139977 140620 +0.5% 1.00x (?)
DropFirstAnySeqCRangeIter 29796 29811 +0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 29815 29886 +0.2% 1.00x
DropFirstAnySeqCntRange 19338 19344 +0.0% 1.00x (?)
DropFirstAnySeqCntRangeLazy 19231 19218 -0.1% 1.00x (?)
DropFirstAnySequence 13977 14099 +0.9% 0.99x
DropFirstAnySequenceLazy 14143 14119 -0.2% 1.00x (?)
DropFirstArray 6393 6378 -0.2% 1.00x
DropFirstArrayLazy 45749 45741 -0.0% 1.00x (?)
DropFirstCountableRange 341 334 -2.1% 1.02x
DropFirstCountableRangeLazy 40442 40983 +1.3% 0.99x
DropFirstSequence 12841 12860 +0.1% 1.00x
DropFirstSequenceLazy 12880 12850 -0.2% 1.00x
DropLastAnyCollection 6472 6467 -0.1% 1.00x (?)
DropLastAnyCollectionLazy 46425 46957 +1.1% 0.99x (?)
DropLastAnySeqCRangeIter 43768 43755 -0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 43932 44099 +0.4% 1.00x
DropLastAnySeqCntRange 6454 6465 +0.2% 1.00x (?)
DropLastAnySeqCntRangeLazy 6496 6486 -0.2% 1.00x (?)
DropLastAnySequence 29002 28988 -0.0% 1.00x (?)
DropLastAnySequenceLazy 29059 28991 -0.2% 1.00x (?)
DropLastArray 2134 2119 -0.7% 1.01x
DropLastArrayLazy 15168 15259 +0.6% 0.99x
DropLastCountableRange 119 118 -0.8% 1.01x
DropLastCountableRangeLazy 13541 13495 -0.3% 1.00x (?)
DropLastSequence 28630 28584 -0.2% 1.00x
DropLastSequenceLazy 28596 28599 +0.0% 1.00x (?)
DropWhileAnyCollection 25021 24967 -0.2% 1.00x
DropWhileAnyCollectionLazy 27251 27227 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIter 32040 32001 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 27290 27370 +0.3% 1.00x
DropWhileAnySeqCntRange 25053 24987 -0.3% 1.00x (?)
DropWhileAnySeqCntRangeLazy 27718 27687 -0.1% 1.00x
DropWhileAnySequence 16168 16112 -0.3% 1.00x
DropWhileAnySequenceLazy 12394 12424 +0.2% 1.00x
DropWhileArray 10000 9977 -0.2% 1.00x (?)
DropWhileArrayLazy 16918 16880 -0.2% 1.00x
DropWhileCountableRange 6169 6193 +0.4% 1.00x
DropWhileCountableRangeLazy 26344 26513 +0.6% 0.99x (?)
DropWhileSequence 15260 15110 -1.0% 1.01x
DropWhileSequenceLazy 11277 11194 -0.7% 1.01x (?)
ErrorHandling 3900 3864 -0.9% 1.01x
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17837 17366 -2.6% 1.03x
HashQuadratic 49803559 48965628 -1.7% 1.02x
HashTest 18478 18345 -0.7% 1.01x (?)
Histogram 8671 8670 -0.0% 1.00x (?)
Integrate 396 395 -0.3% 1.00x
IterateData 12896 12859 -0.3% 1.00x (?)
Join 1253 1251 -0.2% 1.00x
LazilyFilteredArrays 1684658 1685868 +0.1% 1.00x (?)
LazilyFilteredRange 679467 678516 -0.1% 1.00x
LinkedList 33187 33137 -0.2% 1.00x (?)
MapReduce 37945 37798 -0.4% 1.00x
MapReduceAnyCollection 38458 38429 -0.1% 1.00x
MapReduceAnyCollectionShort 50000 50050 +0.1% 1.00x (?)
MapReduceClass 43129 43129 +0.0% 1.00x
MapReduceClassShort 54302 54123 -0.3% 1.00x (?)
MapReduceLazyCollection 32867 32749 -0.4% 1.00x (?)
MapReduceLazyCollectionShort 44482 44455 -0.1% 1.00x (?)
MapReduceLazySequence 25558 25638 +0.3% 1.00x
MapReduceSequence 41572 41543 -0.1% 1.00x (?)
MapReduceShort 49771 49960 +0.4% 1.00x (?)
MapReduceShortString 283 278 -1.8% 1.02x (?)
MapReduceString 2593 2590 -0.1% 1.00x (?)
Memset 43983 43994 +0.0% 1.00x (?)
MonteCarloE 135565 135654 +0.1% 1.00x (?)
MonteCarloPi 52489 52510 +0.0% 1.00x
NSDictionaryCastToSwift 6544 6527 -0.3% 1.00x (?)
NSError 706 720 +2.0% 0.98x (?)
NSStringConversion 1319 1312 -0.5% 1.01x (?)
ObjectAllocation 639 639 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 25694 25690 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7850 7942 +1.2% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45149 45240 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38723 38893 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122491 122538 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 102194 101584 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 96904 93947 -3.1% 1.03x
ObjectiveCBridgeFromNSSetAnyObject 67895 68761 +1.3% 0.99x
ObjectiveCBridgeFromNSSetAnyObjectForced 7300 7069 -3.2% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76874 77211 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 65902 66474 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSString 4072 4072 +0.0% 1.00x
ObjectiveCBridgeFromNSStringForced 2768 2757 -0.4% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3797 3701 -2.5% 1.03x (?)
ObjectiveCBridgeStubDateAccess 1028 1030 +0.2% 1.00x (?)
ObjectiveCBridgeStubDateMutation 515 515 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28560 28708 +0.5% 0.99x (?)
ObjectiveCBridgeStubFromNSDateRef 3984 4126 +3.6% 0.97x
ObjectiveCBridgeStubFromNSString 990 990 +0.0% 1.00x
ObjectiveCBridgeStubFromNSStringRef 215 208 -3.3% 1.03x
ObjectiveCBridgeStubNSDataAppend 2663 2671 +0.3% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 15619 15532 -0.6% 1.01x (?)
ObjectiveCBridgeStubNSDateRefAccess 1204 1223 +1.6% 0.98x
ObjectiveCBridgeStubToArrayOfNSString 29721 29089 -2.1% 1.02x (?)
ObjectiveCBridgeStubToNSDate 15374 14978 -2.6% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3377 3385 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSString 1603 1605 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 156 149 -4.5% 1.05x
ObjectiveCBridgeStubURLAppendPath 229954 231432 +0.6% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 233109 234027 +0.4% 1.00x (?)
ObjectiveCBridgeToNSArray 29007 29253 +0.8% 0.99x (?)
ObjectiveCBridgeToNSDictionary 45505 45370 -0.3% 1.00x (?)
ObjectiveCBridgeToNSSet 39768 39828 +0.2% 1.00x (?)
ObjectiveCBridgeToNSString 1326 1325 -0.1% 1.00x (?)
ObserverClosure 6631 6646 +0.2% 1.00x (?)
ObserverForwarderStruct 4691 4705 +0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 8073 8082 +0.1% 1.00x (?)
ObserverUnappliedMethod 8489 8481 -0.1% 1.00x (?)
Phonebook 25509 25037 -1.9% 1.02x
PolymorphicCalls 2998 3007 +0.3% 1.00x
PopFrontArray 7457 7463 +0.1% 1.00x (?)
PopFrontArrayGeneric 6458 6392 -1.0% 1.01x
PopFrontUnsafePointer 98380 97078 -1.3% 1.01x (?)
PrefixAnyCollection 19451 19393 -0.3% 1.00x
PrefixAnyCollectionLazy 141263 140483 -0.6% 1.01x (?)
PrefixAnySeqCRangeIter 24018 24081 +0.3% 1.00x
PrefixAnySeqCRangeIterLazy 24181 24097 -0.3% 1.00x
PrefixAnySeqCntRange 19335 19505 +0.9% 0.99x
PrefixAnySeqCntRangeLazy 19244 19250 +0.0% 1.00x (?)
PrefixAnySequence 11720 11829 +0.9% 0.99x
PrefixAnySequenceLazy 11851 11840 -0.1% 1.00x (?)
PrefixArray 6421 6352 -1.1% 1.01x (?)
PrefixArrayLazy 45651 45664 +0.0% 1.00x (?)
PrefixCountableRange 339 339 +0.0% 1.00x
PrefixCountableRangeLazy 40098 40511 +1.0% 0.99x (?)
PrefixSequence 10716 10663 -0.5% 1.00x
PrefixSequenceLazy 10710 10756 +0.4% 1.00x
PrefixWhileAnyCollection 36641 36590 -0.1% 1.00x
PrefixWhileAnyCollectionLazy 22527 22542 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIter 40715 40759 +0.1% 1.00x
PrefixWhileAnySeqCRangeIterLazy 22738 22698 -0.2% 1.00x
PrefixWhileAnySeqCntRange 36606 36414 -0.5% 1.01x
PrefixWhileAnySeqCntRangeLazy 22764 22728 -0.2% 1.00x (?)
PrefixWhileAnySequence 29535 29550 +0.1% 1.00x
PrefixWhileAnySequenceLazy 11277 11307 +0.3% 1.00x
PrefixWhileArray 17049 16994 -0.3% 1.00x (?)
PrefixWhileArrayLazy 14692 14686 -0.0% 1.00x (?)
PrefixWhileCountableRange 17542 17544 +0.0% 1.00x (?)
PrefixWhileCountableRangeLazy 21918 21878 -0.2% 1.00x
PrefixWhileSequence 28466 28359 -0.4% 1.00x
PrefixWhileSequenceLazy 10394 10415 +0.2% 1.00x (?)
Prims 8999 8870 -1.4% 1.01x
ProtocolDispatch2 490 490 +0.0% 1.00x
RC4 19470 19428 -0.2% 1.00x (?)
RGBHistogram 34034 34160 +0.4% 1.00x (?)
RGBHistogramOfObjects 98353 98595 +0.2% 1.00x (?)
RangeAssignment 5692 5726 +0.6% 0.99x (?)
RecursiveOwnedParameter 9671 9682 +0.1% 1.00x (?)
ReversedArray 588 591 +0.5% 0.99x (?)
ReversedBidirectional 76158 76103 -0.1% 1.00x
ReversedDictionary 26508 25870 -2.4% 1.02x (?)
SetExclusiveOr 21476 21513 +0.2% 1.00x (?)
SetExclusiveOr_OfObjects 41162 41161 -0.0% 1.00x (?)
SetIntersect 10772 10755 -0.2% 1.00x (?)
SetIntersect_OfObjects 11169 11201 +0.3% 1.00x
SetIsSubsetOf 1669 1673 +0.2% 1.00x
SetIsSubsetOf_OfObjects 1528 1526 -0.1% 1.00x
SetUnion 12104 12091 -0.1% 1.00x (?)
SetUnion_OfObjects 29589 29591 +0.0% 1.00x (?)
SevenBoom 1612 1614 +0.1% 1.00x (?)
Sim2DArray 30037 30035 -0.0% 1.00x (?)
SortLargeExistentials 17870 17835 -0.2% 1.00x (?)
SortLettersInPlace 2892 2915 +0.8% 0.99x
SortSortedStrings 1405 1419 +1.0% 0.99x
SortStrings 2443 2509 +2.7% 0.97x
SortStringsUnicode 8882 8955 +0.8% 0.99x
StackPromo 105409 103058 -2.2% 1.02x (?)
StaticArray 4645 4595 -1.1% 1.01x
StrComplexWalk 7026 6862 -2.3% 1.02x
StrToInt 5303 5281 -0.4% 1.00x
StringAdder 43 44 +2.3% 0.98x
StringBuilder 2757 2761 +0.1% 1.00x (?)
StringBuilderLong 1085 1097 +1.1% 0.99x (?)
StringEdits 736477 732474 -0.5% 1.01x (?)
StringEqualPointerComparison 10010 9758 -2.5% 1.03x
StringHasPrefixUnicode 16101 16119 +0.1% 1.00x (?)
StringHasSuffix 1869 1839 -1.6% 1.02x
StringHasSuffixUnicode 63426 63407 -0.0% 1.00x (?)
StringInterpolation 11954 11766 -1.6% 1.02x
StringMatch 30894 30847 -0.2% 1.00x (?)
StringUTF16Builder 3603 3607 +0.1% 1.00x (?)
StringWalk 20568 20916 +1.7% 0.98x
StringWithCString 125891 125965 +0.1% 1.00x (?)
SuffixAnyCollection 6491 6476 -0.2% 1.00x
SuffixAnyCollectionLazy 47025 46744 -0.6% 1.01x (?)
SuffixAnySeqCRangeIter 41575 41556 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 41481 41538 +0.1% 1.00x (?)
SuffixAnySeqCntRange 6518 6463 -0.8% 1.01x (?)
SuffixAnySeqCntRangeLazy 6504 6496 -0.1% 1.00x (?)
SuffixAnySequence 26798 26832 +0.1% 1.00x
SuffixAnySequenceLazy 26855 26877 +0.1% 1.00x (?)
SuffixArray 2140 2118 -1.0% 1.01x
SuffixArrayLazy 15279 15206 -0.5% 1.00x (?)
SuffixCountableRange 119 118 -0.8% 1.01x
SuffixCountableRangeLazy 13432 13367 -0.5% 1.00x (?)
SuffixSequence 26395 26421 +0.1% 1.00x
SuffixSequenceLazy 26407 26417 +0.0% 1.00x (?)
SuperChars 350429 352664 +0.6% 0.99x (?)
TwoSum 4370 4334 -0.8% 1.01x
TypeFlood 171 174 +1.8% 0.98x (?)
UTF8Decode 36921 36917 -0.0% 1.00x (?)
Walsh 11923 11926 +0.0% 1.00x (?)
XorLoop 23734 23736 +0.0% 1.00x (?)
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB

@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke test and merge

@palimondo
Copy link
Contributor

I guess it might be time to start playing with the length of sequences that get processed in those Drop.* Suffix.* and Prefix.* tests, as I suggested to @lplarson in comments to PR 8641. He wanted @therealbnut's feedback on that, too. There I've argued only for balancing the sequenceCount and the other counts so that about half of the sequence get's filtered and the other half gets returned.

I think we need to start with the slowest one, get the sequenceCount and [prefix|suffix|drop]Counts to the point where it takes about a half a second to run on my ancient machine for --num-iters=1 and we'll see if that gets the fastest versions out of the 10ms range where they are very volatile.

@dabrahams
Copy link
Contributor Author

@palimondo Any attention you can give this is much appreciated. One thing we need to be aware of is that there is some tracking of these results going on (/cc @bob-wilson), and every time we make a change like this it will require a reset of the expectations used by that tracking. We may need to coordinate fixes somehow.

@palimondo
Copy link
Contributor

@dabrahams Couldn't you have waited for the benchmark results on #9330 before deciding which one to merge? If this lands, that one will most definitely be in conflict and I've wasted quite a lot of time with it… Should I go play elsewhere?

@dabrahams
Copy link
Contributor Author

@palimondo I don't see why there would be a serious conflict; IIUC your patch also drops explicit string arguments and proposes a different implementation of CheckResults(?). The good thing is that once this is merged, we can benchmark yours with respect to it. If there are no costs, we can think about merging it.

@palimondo
Copy link
Contributor

Is that tracking visible from the outside?
I have filed SR-4591 Performance monitoring: History of benchmark results and SR-4592
Store benchmark results for more commits
, without anyone telling me anything. I've seen some remnants of LNT submissions inside Benchmark_Driver, but I don't see any public facing website.

@dabrahams
Copy link
Contributor Author

@palimondo: I don't think there are externally-visible tracking results yet, unfortunately.

[Sorry if my merge seemed premature; please don't go play elsewhere! As I've been trying to say, your participation here is very much appreciated.]

@palimondo
Copy link
Contributor

palimondo commented May 5, 2017

Sorry, I'm getting a bit frustrated. Today is rough… the tip of the tree failed to build for me twice already today. Always after 3 hours of compilation. I'm running a third one now, to get a local build of #9310. Could you be so kind a trigger a smoke benchmark for me there?

@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke test and merge

@swift-ci swift-ci merged commit 85831df into master May 5, 2017
@jrose-apple jrose-apple deleted the only-benchmark-interpolation-when-you-mean-to branch November 29, 2017 22:36
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