-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Eager array bridging #5488
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
Eager array bridging #5488
Conversation
let n = _cocoaArray.count | ||
self.reserveCapacity(n) | ||
for i in 0..<n { | ||
append(_cocoaArray.object(at: i) as! Element) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has n objc_msgSends, perhaps we should thunk out for getObjects:range: here to just have a C function callout and a single objc msg send.
that way you would send a UnsafeMutablePointer<Unmanaged<NSObject>>
across to be populated and iterate in swift with taking the unretained value back out of the buffer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't this the kind of thing that NSFastEnumeration was designed to do?
if (_isBridgedVerbatimToObjectiveC(Element.self)) { | ||
withUnsafeMutableBufferPointer { | ||
$0.baseAddress!.withMemoryRebound(to: AnyObject.self, capacity: count) { | ||
nsArray.getObjects($0, range: _SwiftNSRange(location: 0, length: count)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this routing though the AutoreleasingUnsafeMutablePointer version? if so that might not be fully safe.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry about the slow turn around; pushed these out while I worked out some other stuff.
Can you elaborate on the AutoreleasingUnsafeMutablePointer situation? I've never heard of this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so the AUMP case was explicitly removed from the swift interface of NSArray since it actually does not represent the API contract that NSArray has.
- (void)getObjects:(ObjectType __unsafe_unretained [])objects range:(NSRange)range NS_SWIFT_UNAVAILABLE("Use 'subarrayWithRange()' instead");
This API should not be imported as AutoreleasingUnsafeMutablePointer because NSArray does not autorelease those objects: they are actually passed as Unmanaged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW, I believe that Swift follows ARC in treating Foo **
as Foo * __autoreleasing *
(i.e. AUMP), but because of the existence of MRR code will never actually optimize based on that fact. However, that doesn't mean the API is suddenly safe, because nothing is owning the objects while they're in the buffer.
We didn't want to use Unmanaged for this because that implies that whether to treat these as +0 or +1 is context-dependent, which it isn't. __unsafe_unretained on out-parameters always means +0.
Can you test this with a resilient build also? |
@slavapestov that's a new term to me; new swift-ci command? (been a bit out of the loop this week; no internet) |
./utils/build-script -R — --swift-stdlib-enable-resilience=1 |
(Same goes for the other PR too of course) |
Is -R vs -r significant for this new mode? |
-R enables asserts, -r disables them. For your own development I suggest always building with -R unless you're doing performance testing. |
@slavapestov anything I should be keeping an eye out for here wrt resilience? (are these PRs notably interesting for it?) |
@swift-ci Please smoke test |
@swift-ci Please benchmark |
(CI failure was an unexpected debug info pass) |
@swift-ci Please smoke test |
@swift-ci Please benchmark |
@swift-ci Please smoke test |
(Weird, why does it sometimes not respond? Throttling?) |
@swift-ci Please benchmark |
Build comment file:Optimized (O)
|
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeFromNSArrayAnyObjectForced | 6152 | 23534 | +282.5% | 0.26x |
ObjectiveCBridgeStubDateAccess | 182 | 224 | +23.1% | 0.81x |
ObjectiveCBridgeStubFromArrayOfNSString | 58264 | 69051 | +18.5% | 0.84x(?) |
ObjectiveCBridgeStubToNSDate | 12128 | 13533 | +11.6% | 0.90x(?) |
Calculator | 34 | 36 | +5.9% | 0.94x |
Improvement (7)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ClassArrayGetter | 13 | 12 | -7.7% | 1.08x(?) |
PopFrontArrayGeneric | 1225 | 1121 | -8.5% | 1.09x(?) |
CaptureProp | 4569 | 4146 | -9.3% | 1.10x |
ObjectiveCBridgeStubNSDateRefAccess | 338 | 308 | -8.9% | 1.10x |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 121042 | 90456 | -25.3% | 1.34x |
ObjectiveCBridgeFromNSArrayAnyObject | 75558 | 50927 | -32.6% | 1.48x |
ByteSwap | 1 | 0 | -99.9% | 1001.00x |
No Changes (135)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendLazyMap | 848 | 808 | -4.7% | 1.05x |
PolymorphicCalls | 22 | 21 | -4.5% | 1.05x |
ObjectiveCBridgeStubFromNSDate | 3521 | 3380 | -4.0% | 1.04x |
Hanoi | 3451 | 3348 | -3.0% | 1.03x |
ObjectiveCBridgeStubNSDateMutationRef | 11945 | 11619 | -2.7% | 1.03x(?) |
StackPromo | 21578 | 21189 | -1.8% | 1.02x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 206554 | 203290 | -1.6% | 1.02x(?) |
ObjectiveCBridgeStubFromNSStringRef | 133 | 131 | -1.5% | 1.02x |
ObjectiveCBridgeStubURLAppendPathRef | 235985 | 231382 | -1.9% | 1.02x(?) |
ObjectiveCBridgeStubURLAppendPath | 237241 | 232866 | -1.8% | 1.02x(?) |
ArrayOfGenericRef | 3622 | 3561 | -1.7% | 1.02x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 101702 | 99722 | -1.9% | 1.02x(?) |
146 | 3066104 | 3017692 | -1.6% | 1.02x |
DeadArray | 185 | 182 | -1.6% | 1.02x |
ArraySubscript | 1457 | 1446 | -0.8% | 1.01x(?) |
DictionaryBridge | 3739 | 3716 | -0.6% | 1.01x(?) |
ObjectiveCBridgeFromNSStringForced | 2667 | 2649 | -0.7% | 1.01x(?) |
Prims | 731 | 722 | -1.2% | 1.01x |
StrComplexWalk | 2892 | 2873 | -0.7% | 1.01x(?) |
StringInterpolation | 10921 | 10841 | -0.7% | 1.01x(?) |
ObjectiveCBridgeStubToNSString | 1288 | 1281 | -0.5% | 1.01x(?) |
ObjectiveCBridgeStubFromNSString | 776 | 772 | -0.5% | 1.01x(?) |
ArrayOfRef | 3533 | 3509 | -0.7% | 1.01x(?) |
ObserverUnappliedMethod | 2439 | 2413 | -1.1% | 1.01x(?) |
ObjectiveCBridgeToNSArray | 29961 | 29749 | -0.7% | 1.01x(?) |
NSError | 329 | 327 | -0.6% | 1.01x(?) |
ObjectiveCBridgeStubToNSStringRef | 117 | 116 | -0.8% | 1.01x(?) |
SortStringsUnicode | 8318 | 8263 | -0.7% | 1.01x(?) |
Dictionary | 729 | 725 | -0.6% | 1.01x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 28878 | 28657 | -0.8% | 1.01x(?) |
SetExclusiveOr | 2899 | 2878 | -0.7% | 1.01x(?) |
Phonebook | 7515 | 7446 | -0.9% | 1.01x |
NSStringConversion | 803 | 798 | -0.6% | 1.01x(?) |
RGBHistogram | 2273 | 2260 | -0.6% | 1.01x(?) |
ObserverForwarderStruct | 927 | 921 | -0.7% | 1.01x(?) |
ObjectiveCBridgeStubNSDataAppend | 2426 | 2401 | -1.0% | 1.01x(?) |
Dictionary2OfObjects | 3444 | 3408 | -1.1% | 1.01x(?) |
ObjectiveCBridgeToNSString | 1065 | 1069 | +0.4% | 1.00x(?) |
DictionarySwapOfObjects | 6254 | 6264 | +0.2% | 1.00x(?) |
RecursiveOwnedParameter | 1937 | 1933 | -0.2% | 1.00x(?) |
Integrate | 238 | 239 | +0.4% | 1.00x(?) |
Array2D | 2040 | 2031 | -0.4% | 1.00x(?) |
Histogram | 288 | 288 | +0.0% | 1.00x |
SortStrings | 1824 | 1822 | -0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 5457 | 5459 | +0.0% | 1.00x(?) |
MonteCarloPi | 44977 | 45147 | +0.4% | 1.00x |
StringWithCString | 154849 | 154912 | +0.0% | 1.00x(?) |
SortLettersInPlace | 975 | 975 | +0.0% | 1.00x |
DictionarySwap | 414 | 415 | +0.2% | 1.00x(?) |
ArrayOfGenericPOD | 220 | 220 | +0.0% | 1.00x |
Dictionary3OfObjects | 873 | 872 | -0.1% | 1.00x(?) |
SuperChars | 211330 | 211576 | +0.1% | 1.00x(?) |
XorLoop | 380 | 380 | +0.0% | 1.00x |
ArrayAppendReserved | 536 | 535 | -0.2% | 1.00x(?) |
ObserverClosure | 1978 | 1985 | +0.3% | 1.00x(?) |
ArrayAppendStrings | 12109 | 12135 | +0.2% | 1.00x(?) |
Join | 475 | 474 | -0.2% | 1.00x(?) |
ProtocolDispatch | 3040 | 3040 | +0.0% | 1.00x |
ObjectAllocation | 153 | 153 | +0.0% | 1.00x |
TypeFlood | 0 | 0 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObject | 85279 | 84877 | -0.5% | 1.00x(?) |
Dictionary3 | 521 | 522 | +0.2% | 1.00x(?) |
Dictionary2 | 2019 | 2023 | +0.2% | 1.00x(?) |
SetIntersect_OfObjects | 1448 | 1449 | +0.1% | 1.00x(?) |
ErrorHandling | 2903 | 2894 | -0.3% | 1.00x(?) |
ArrayAppendOptionals | 1239 | 1241 | +0.2% | 1.00x(?) |
DictionaryOfObjects | 2282 | 2274 | -0.3% | 1.00x(?) |
PopFrontUnsafePointer | 9156 | 9196 | +0.4% | 1.00x(?) |
StringEqualPointerComparison | 7346 | 7366 | +0.3% | 1.00x(?) |
ObjectiveCBridgeStubDateMutation | 273 | 273 | +0.0% | 1.00x |
AngryPhonebook | 2857 | 2866 | +0.3% | 1.00x(?) |
IterateData | 2596 | 2602 | +0.2% | 1.00x(?) |
OpenClose | 54 | 54 | +0.0% | 1.00x |
DictionaryRemoveOfObjects | 19375 | 19420 | +0.2% | 1.00x(?) |
UTF8Decode | 288 | 288 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 130600 | 130175 | -0.3% | 1.00x(?) |
SetIsSubsetOf | 250 | 250 | +0.0% | 1.00x |
NopDeinit | 37979 | 37980 | +0.0% | 1.00x(?) |
ObjectiveCBridgeStubDataAppend | 2932 | 2937 | +0.2% | 1.00x(?) |
RGBHistogramOfObjects | 21504 | 21594 | +0.4% | 1.00x(?) |
ArrayInClass | 63 | 63 | +0.0% | 1.00x |
StringHasSuffix | 800 | 800 | +0.0% | 1.00x |
Sim2DArray | 277 | 277 | +0.0% | 1.00x |
ArrayAppendRepeatCol | 644 | 643 | -0.2% | 1.00x(?) |
ObjectiveCBridgeToNSDictionary | 62807 | 62874 | +0.1% | 1.00x(?) |
MonteCarloE | 10562 | 10600 | +0.4% | 1.00x(?) |
SetUnion_OfObjects | 6159 | 6159 | +0.0% | 1.00x |
StringHasSuffixUnicode | 62836 | 62587 | -0.4% | 1.00x(?) |
HashTest | 1731 | 1725 | -0.3% | 1.00x(?) |
SetIsSubsetOf_OfObjects | 307 | 307 | +0.0% | 1.00x |
ArrayAppend | 775 | 775 | +0.0% | 1.00x |
DictionaryRemove | 2310 | 2305 | -0.2% | 1.00x(?) |
StringHasPrefixUnicode | 13717 | 13700 | -0.1% | 1.00x(?) |
LinkedList | 7219 | 7209 | -0.1% | 1.00x(?) |
MapReduce | 342 | 342 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObjectToString | 140194 | 140228 | +0.0% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 4743 | 4725 | -0.4% | 1.00x(?) |
ArrayAppendSequence | 1062 | 1060 | -0.2% | 1.00x(?) |
ArrayAppendArrayOfInt | 599 | 599 | +0.0% | 1.00x |
ArrayOfPOD | 182 | 182 | +0.0% | 1.00x |
SetUnion | 2423 | 2435 | +0.5% | 1.00x(?) |
Chars | 629 | 629 | +0.0% | 1.00x |
BitCount | 1 | 1 | +0.0% | 1.00x |
ArrayLiteral | 1179 | 1180 | +0.1% | 1.00x(?) |
SevenBoom | 1364 | 1363 | -0.1% | 1.00x(?) |
StringWalk | 5914 | 5914 | +0.0% | 1.00x |
ArrayValueProp | 6 | 6 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSString | 1825 | 1833 | +0.4% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 235 | 235 | +0.0% | 1.00x |
ArrayValueProp4 | 6 | 6 | +0.0% | 1.00x |
TwoSum | 1323 | 1321 | -0.1% | 1.00x(?) |
ArrayValueProp2 | 6 | 6 | +0.0% | 1.00x |
ArrayValueProp3 | 6 | 6 | +0.0% | 1.00x |
ObserverPartiallyAppliedMethod | 3393 | 3396 | +0.1% | 1.00x(?) |
PopFrontArray | 1116 | 1124 | +0.7% | 0.99x(?) |
ArrayAppendGenericStructs | 1238 | 1246 | +0.7% | 0.99x(?) |
AnyHashableWithAClass | 63117 | 63625 | +0.8% | 0.99x(?) |
ProtocolDispatch2 | 158 | 159 | +0.6% | 0.99x |
StringHasPrefix | 727 | 735 | +1.1% | 0.99x(?) |
ObjectiveCBridgeToNSSet | 39907 | 40247 | +0.8% | 0.99x(?) |
ObjectiveCBridgeStubToNSDateRef | 3275 | 3306 | +0.9% | 0.99x(?) |
RC4 | 165 | 166 | +0.6% | 0.99x |
DictionaryLiteral | 1267 | 1274 | +0.6% | 0.99x(?) |
NSDictionaryCastToSwift | 4969 | 5003 | +0.7% | 0.99x(?) |
SetExclusiveOr_OfObjects | 7302 | 7412 | +1.5% | 0.99x(?) |
ObjectiveCBridgeStubFromNSDateRef | 3656 | 3733 | +2.1% | 0.98x |
ObjectiveCBridgeFromNSDictionaryAnyObject | 178457 | 181354 | +1.6% | 0.98x(?) |
RangeAssignment | 288 | 293 | +1.7% | 0.98x(?) |
StringBuilder | 1328 | 1355 | +2.0% | 0.98x(?) |
SetIntersect | 357 | 367 | +2.8% | 0.97x(?) |
StrToInt | 5070 | 5244 | +3.4% | 0.97x(?) |
StaticArray | 2682 | 2781 | +3.7% | 0.96x(?) |
Walsh | 310 | 323 | +4.2% | 0.96x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 90398 | 94522 | +4.6% | 0.96x(?) |
Regression (7)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeFromNSArrayAnyObjectForced | 10315 | 25290 | +145.2% | 0.41x |
ObjectiveCBridgeStubFromArrayOfNSString | 60278 | 71960 | +19.4% | 0.84x(?) |
ProtocolDispatch | 5599 | 6365 | +13.7% | 0.88x |
TypeFlood | 201 | 225 | +11.9% | 0.89x(?) |
StringHasSuffix | 1609 | 1726 | +7.3% | 0.93x |
PopFrontUnsafePointer | 242747 | 258818 | +6.6% | 0.94x |
Calculator | 923 | 982 | +6.4% | 0.94x |
Improvement (32)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
StackPromo | 128783 | 121072 | -6.0% | 1.06x |
RecursiveOwnedParameter | 10855 | 10270 | -5.4% | 1.06x |
XorLoop | 20005 | 18934 | -5.3% | 1.06x |
ArrayInClass | 3960 | 3744 | -5.5% | 1.06x |
ArrayOfGenericPOD | 3777 | 3523 | -6.7% | 1.07x |
Walsh | 13216 | 12344 | -6.6% | 1.07x |
RC4 | 9385 | 8670 | -7.6% | 1.08x |
RGBHistogram | 40325 | 35959 | -10.8% | 1.12x |
146 | 6093335 | 5181908 | -15.0% | 1.18x |
ObjectiveCBridgeStubDateMutation | 517 | 427 | -17.4% | 1.21x |
Histogram | 9997 | 7962 | -20.4% | 1.26x |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 123475 | 93748 | -24.1% | 1.32x |
ObserverUnappliedMethod | 8726 | 6142 | -29.6% | 1.42x |
ObjectiveCBridgeFromNSArrayAnyObject | 78465 | 52966 | -32.5% | 1.48x |
ObserverPartiallyAppliedMethod | 8420 | 5641 | -33.0% | 1.49x |
PopFrontArray | 24358 | 15498 | -36.4% | 1.57x |
DictionaryLiteral | 15719 | 9905 | -37.0% | 1.59x |
Join | 1461 | 904 | -38.1% | 1.62x |
PopFrontArrayGeneric | 9768 | 6025 | -38.3% | 1.62x |
ObserverClosure | 6979 | 4264 | -38.9% | 1.64x |
ArrayOfGenericRef | 10028 | 5789 | -42.3% | 1.73x |
ArrayAppendLazyMap | 245222 | 136260 | -44.4% | 1.80x |
ArrayOfRef | 9131 | 4839 | -47.0% | 1.89x |
ObserverForwarderStruct | 5244 | 2544 | -51.5% | 2.06x |
ArraySubscript | 5653 | 2725 | -51.8% | 2.07x |
MapReduce | 46010 | 22178 | -51.8% | 2.07x |
MonteCarloE | 108952 | 52305 | -52.0% | 2.08x |
Prims | 13229 | 5885 | -55.5% | 2.25x |
UTF8Decode | 43513 | 18176 | -58.2% | 2.39x |
Array2D | 814223 | 299012 | -63.3% | 2.72x |
Hanoi | 19577 | 7085 | -63.8% | 2.76x |
ClassArrayGetter | 1266 | 349 | -72.4% | 3.63x |
No Changes (108)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
RGBHistogramOfObjects | 89560 | 85208 | -4.9% | 1.05x |
ObjectiveCBridgeStubToNSDate | 14086 | 13550 | -3.8% | 1.04x(?) |
ObjectiveCBridgeStubFromNSString | 823 | 793 | -3.6% | 1.04x |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 115205 | 110824 | -3.8% | 1.04x(?) |
ArrayValueProp2 | 3159 | 3044 | -3.6% | 1.04x |
ArrayAppendArrayOfInt | 641 | 616 | -3.9% | 1.04x |
ArrayValueProp3 | 3076 | 2970 | -3.5% | 1.04x |
ObjectiveCBridgeStubFromNSStringRef | 165 | 160 | -3.0% | 1.03x |
ObjectAllocation | 558 | 542 | -2.9% | 1.03x(?) |
HashTest | 5252 | 5081 | -3.3% | 1.03x |
ArrayAppendReserved | 3302 | 3192 | -3.3% | 1.03x |
ArrayOfPOD | 2516 | 2451 | -2.6% | 1.03x |
ArrayValueProp | 2643 | 2574 | -2.6% | 1.03x(?) |
ArrayValueProp4 | 3011 | 2927 | -2.8% | 1.03x |
DictionaryBridge | 3855 | 3791 | -1.7% | 1.02x(?) |
ArrayAppendGenericStructs | 1302 | 1271 | -2.4% | 1.02x(?) |
ArrayAppendOptionals | 1285 | 1265 | -1.6% | 1.02x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 138213 | 135629 | -1.9% | 1.02x(?) |
NSDictionaryCastToSwift | 6313 | 6217 | -1.5% | 1.02x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 158939 | 155468 | -2.2% | 1.02x(?) |
StringHasPrefixUnicode | 15461 | 15136 | -2.1% | 1.02x |
StringBuilder | 2745 | 2690 | -2.0% | 1.02x(?) |
ObjectiveCBridgeFromNSStringForced | 3097 | 3055 | -1.4% | 1.01x(?) |
SortLettersInPlace | 2568 | 2548 | -0.8% | 1.01x |
RangeAssignment | 13290 | 13165 | -0.9% | 1.01x(?) |
ArrayAppendStrings | 11846 | 11778 | -0.6% | 1.01x(?) |
ArrayLiteral | 1259 | 1246 | -1.0% | 1.01x(?) |
ProtocolDispatch2 | 444 | 441 | -0.7% | 1.01x(?) |
ErrorHandling | 3799 | 3780 | -0.5% | 1.01x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 241022 | 237779 | -1.4% | 1.01x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 29402 | 29212 | -0.7% | 1.01x(?) |
Phonebook | 64568 | 63619 | -1.5% | 1.01x(?) |
ArrayAppendRepeatCol | 215512 | 214048 | -0.7% | 1.01x(?) |
ObjectiveCBridgeToNSDictionary | 64023 | 63301 | -1.1% | 1.01x |
DictionaryRemove | 16964 | 16861 | -0.6% | 1.01x |
NSStringConversion | 2975 | 2954 | -0.7% | 1.01x(?) |
ArrayAppendSequence | 106300 | 105654 | -0.6% | 1.01x |
TwoSum | 4949 | 4922 | -0.6% | 1.01x(?) |
ObjectiveCBridgeStubNSDataAppend | 2771 | 2756 | -0.5% | 1.01x(?) |
ObjectiveCBridgeToNSString | 1098 | 1098 | +0.0% | 1.00x |
DictionarySwapOfObjects | 19298 | 19261 | -0.2% | 1.00x(?) |
Integrate | 370 | 369 | -0.3% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 214247 | 215177 | +0.4% | 1.00x(?) |
MonteCarloPi | 53684 | 53587 | -0.2% | 1.00x |
StringWithCString | 152809 | 153516 | +0.5% | 1.00x(?) |
DictionarySwap | 6043 | 6026 | -0.3% | 1.00x |
Dictionary3OfObjects | 2002 | 1999 | -0.1% | 1.00x |
StrComplexWalk | 8084 | 8079 | -0.1% | 1.00x(?) |
ByteSwap | 9 | 9 | +0.0% | 1.00x |
SuperChars | 262897 | 262898 | +0.0% | 1.00x(?) |
StringInterpolation | 15732 | 15660 | -0.5% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1338 | 1335 | -0.2% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObject | 90193 | 89809 | -0.4% | 1.00x(?) |
Dictionary3 | 1383 | 1382 | -0.1% | 1.00x(?) |
Dictionary2 | 4046 | 4028 | -0.4% | 1.00x(?) |
SetIntersect_OfObjects | 11838 | 11820 | -0.1% | 1.00x(?) |
DictionaryOfObjects | 4540 | 4542 | +0.0% | 1.00x(?) |
CaptureProp | 118141 | 118127 | -0.0% | 1.00x(?) |
ObjectiveCBridgeStubToNSStringRef | 156 | 156 | +0.0% | 1.00x |
IterateData | 10619 | 10597 | -0.2% | 1.00x(?) |
OpenClose | 440 | 439 | -0.2% | 1.00x(?) |
DictionaryRemoveOfObjects | 46474 | 46488 | +0.0% | 1.00x(?) |
ObjectiveCBridgeStubURLAppendPath | 241537 | 240762 | -0.3% | 1.00x(?) |
SortStringsUnicode | 9277 | 9290 | +0.1% | 1.00x(?) |
SetIntersect | 13122 | 13166 | +0.3% | 1.00x(?) |
ObjectiveCBridgeStubDataAppend | 3372 | 3383 | +0.3% | 1.00x(?) |
ObjectiveCBridgeStubNSDateRefAccess | 1231 | 1231 | +0.0% | 1.00x |
StrToInt | 5781 | 5782 | +0.0% | 1.00x(?) |
ObjectiveCBridgeFromNSString | 5168 | 5158 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubDateAccess | 1096 | 1095 | -0.1% | 1.00x |
Sim2DArray | 14778 | 14781 | +0.0% | 1.00x(?) |
SetExclusiveOr_OfObjects | 40040 | 40112 | +0.2% | 1.00x(?) |
SetUnion_OfObjects | 28153 | 28117 | -0.1% | 1.00x(?) |
StringHasSuffixUnicode | 65252 | 64972 | -0.4% | 1.00x |
SetIsSubsetOf_OfObjects | 1907 | 1911 | +0.2% | 1.00x(?) |
LinkedList | 27856 | 27866 | +0.0% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 7561 | 7573 | +0.2% | 1.00x(?) |
Chars | 4981 | 5001 | +0.4% | 1.00x |
BitCount | 96 | 96 | +0.0% | 1.00x |
AnyHashableWithAClass | 77748 | 77940 | +0.2% | 1.00x |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 20977 | 20954 | -0.1% | 1.00x |
Dictionary2OfObjects | 5931 | 5913 | -0.3% | 1.00x(?) |
SevenBoom | 1495 | 1495 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObject | 184999 | 187696 | +1.5% | 0.99x(?) |
ObjectiveCBridgeStubFromNSDateRef | 4058 | 4079 | +0.5% | 0.99x(?) |
StaticArray | 35191 | 35697 | +1.4% | 0.99x(?) |
ObjectiveCBridgeToNSSet | 40144 | 40738 | +1.5% | 0.99x(?) |
ObjectiveCBridgeToNSArray | 30129 | 30392 | +0.9% | 0.99x(?) |
ObjectiveCBridgeStubToNSDateRef | 3343 | 3366 | +0.7% | 0.99x(?) |
PolymorphicCalls | 1129 | 1144 | +1.3% | 0.99x(?) |
AngryPhonebook | 2983 | 3008 | +0.8% | 0.99x(?) |
SetIsSubsetOf | 2113 | 2141 | +1.3% | 0.99x |
Dictionary | 1844 | 1854 | +0.5% | 0.99x(?) |
SetExclusiveOr | 23715 | 23892 | +0.8% | 0.99x |
ArrayAppend | 3555 | 3582 | +0.8% | 0.99x |
SetUnion | 12166 | 12268 | +0.8% | 0.99x |
DeadArray | 119954 | 121463 | +1.3% | 0.99x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7861 | 8031 | +2.2% | 0.98x(?) |
NSError | 669 | 681 | +1.8% | 0.98x(?) |
StringEqualPointerComparison | 9625 | 9794 | +1.8% | 0.98x |
ObjectiveCBridgeStubNSDateMutationRef | 14460 | 14690 | +1.6% | 0.98x(?) |
ObjectiveCBridgeStubFromNSDate | 3788 | 3862 | +1.9% | 0.98x(?) |
SortStrings | 2701 | 2774 | +2.7% | 0.97x |
StringWalk | 22314 | 23066 | +3.4% | 0.97x |
StringHasPrefix | 1555 | 1617 | +4.0% | 0.96x |
NopDeinit | 58132 | 61057 | +5.0% | 0.95x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 91914 | 97100 | +5.6% | 0.95x(?) |
Build comment file:Optimized (O)
|
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeFromNSArrayAnyObjectForced | 6135 | 23352 | +280.6% | 0.26x |
ObjectiveCBridgeStubDateAccess | 182 | 224 | +23.1% | 0.81x |
ObjectiveCBridgeStubFromArrayOfNSString | 58686 | 69238 | +18.0% | 0.85x |
PopFrontUnsafePointer | 9148 | 9723 | +6.3% | 0.94x(?) |
Calculator | 34 | 36 | +5.9% | 0.94x |
Improvement (5)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
CaptureProp | 4569 | 4149 | -9.2% | 1.10x |
ObjectiveCBridgeStubNSDateRefAccess | 338 | 308 | -8.9% | 1.10x |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 119588 | 92286 | -22.8% | 1.30x |
ObjectiveCBridgeFromNSArrayAnyObject | 75886 | 50883 | -33.0% | 1.49x |
ByteSwap | 1 | 0 | -99.9% | 1001.00x |
No Changes (137)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
PolymorphicCalls | 22 | 21 | -4.5% | 1.05x |
ArrayAppendLazyMap | 845 | 811 | -4.0% | 1.04x |
ObjectiveCBridgeStubFromNSDate | 3527 | 3379 | -4.2% | 1.04x |
StackPromo | 21617 | 21085 | -2.5% | 1.03x(?) |
Hanoi | 3447 | 3345 | -3.0% | 1.03x |
ObjectiveCBridgeStubURLAppendPath | 245589 | 238849 | -2.7% | 1.03x(?) |
Prims | 731 | 720 | -1.5% | 1.02x(?) |
StringInterpolation | 10977 | 10800 | -1.6% | 1.02x(?) |
ObjectiveCBridgeStubFromNSStringRef | 132 | 130 | -1.5% | 1.02x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 29143 | 28540 | -2.1% | 1.02x(?) |
ArrayOfGenericRef | 3604 | 3545 | -1.6% | 1.02x(?) |
DeadArray | 185 | 182 | -1.6% | 1.02x |
ObjectiveCBridgeStubNSDataAppend | 2429 | 2385 | -1.8% | 1.02x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 206119 | 203241 | -1.4% | 1.01x(?) |
DictionaryBridge | 3752 | 3723 | -0.8% | 1.01x(?) |
ObjectiveCBridgeFromNSStringForced | 2665 | 2651 | -0.5% | 1.01x(?) |
ObjectiveCBridgeFromNSString | 1836 | 1817 | -1.0% | 1.01x(?) |
StrComplexWalk | 2910 | 2868 | -1.4% | 1.01x(?) |
ObjectiveCBridgeStubToNSString | 1288 | 1281 | -0.5% | 1.01x(?) |
ObjectiveCBridgeStubFromNSString | 778 | 774 | -0.5% | 1.01x(?) |
StaticArray | 2754 | 2728 | -0.9% | 1.01x(?) |
ArrayOfRef | 3537 | 3497 | -1.1% | 1.01x(?) |
ObserverUnappliedMethod | 2433 | 2420 | -0.5% | 1.01x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 244439 | 242599 | -0.8% | 1.01x(?) |
ObjectiveCBridgeToNSArray | 30076 | 29728 | -1.2% | 1.01x(?) |
SortStringsUnicode | 8310 | 8263 | -0.6% | 1.01x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 130851 | 130083 | -0.6% | 1.01x(?) |
Dictionary | 730 | 724 | -0.8% | 1.01x(?) |
SetExclusiveOr | 2896 | 2868 | -1.0% | 1.01x(?) |
Phonebook | 7508 | 7446 | -0.8% | 1.01x(?) |
DictionaryRemove | 2308 | 2296 | -0.5% | 1.01x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 101139 | 99725 | -1.4% | 1.01x(?) |
146 | 3073030 | 3039558 | -1.1% | 1.01x |
SevenBoom | 1368 | 1359 | -0.7% | 1.01x(?) |
TwoSum | 1331 | 1312 | -1.4% | 1.01x(?) |
ArraySubscript | 1444 | 1437 | -0.5% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1068 | 1067 | -0.1% | 1.00x(?) |
DictionarySwapOfObjects | 6235 | 6254 | +0.3% | 1.00x(?) |
RecursiveOwnedParameter | 1937 | 1934 | -0.1% | 1.00x(?) |
Integrate | 238 | 239 | +0.4% | 1.00x(?) |
ClassArrayGetter | 12 | 12 | +0.0% | 1.00x |
SortStrings | 1824 | 1824 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 5451 | 5462 | +0.2% | 1.00x(?) |
MonteCarloPi | 44948 | 45143 | +0.4% | 1.00x(?) |
StringWithCString | 154594 | 154739 | +0.1% | 1.00x(?) |
SortLettersInPlace | 972 | 976 | +0.4% | 1.00x(?) |
DictionarySwap | 413 | 415 | +0.5% | 1.00x(?) |
ArrayOfGenericPOD | 220 | 220 | +0.0% | 1.00x |
Dictionary3OfObjects | 872 | 870 | -0.2% | 1.00x(?) |
SuperChars | 211132 | 211681 | +0.3% | 1.00x(?) |
ObjectiveCBridgeStubToNSDate | 13406 | 13367 | -0.3% | 1.00x(?) |
XorLoop | 380 | 380 | +0.0% | 1.00x |
ArrayAppendReserved | 536 | 536 | +0.0% | 1.00x |
ObserverClosure | 1978 | 1980 | +0.1% | 1.00x(?) |
Join | 475 | 474 | -0.2% | 1.00x(?) |
ProtocolDispatch | 3040 | 3039 | -0.0% | 1.00x(?) |
ObjectAllocation | 153 | 153 | +0.0% | 1.00x |
TypeFlood | 0 | 0 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObject | 85042 | 84799 | -0.3% | 1.00x(?) |
ArrayLiteral | 1183 | 1180 | -0.2% | 1.00x(?) |
Dictionary3 | 521 | 522 | +0.2% | 1.00x(?) |
Dictionary2 | 2020 | 2023 | +0.1% | 1.00x(?) |
SetIntersect_OfObjects | 1450 | 1451 | +0.1% | 1.00x(?) |
ErrorHandling | 2883 | 2873 | -0.3% | 1.00x(?) |
ArrayAppend | 776 | 775 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubDateMutation | 273 | 273 | +0.0% | 1.00x |
NSError | 328 | 328 | +0.0% | 1.00x |
DictionaryOfObjects | 2281 | 2275 | -0.3% | 1.00x(?) |
PopFrontArrayGeneric | 1259 | 1260 | +0.1% | 1.00x(?) |
StringEqualPointerComparison | 7343 | 7361 | +0.2% | 1.00x(?) |
ObjectiveCBridgeStubToNSStringRef | 117 | 117 | +0.0% | 1.00x |
MapReduce | 341 | 341 | +0.0% | 1.00x |
IterateData | 2595 | 2601 | +0.2% | 1.00x(?) |
OpenClose | 54 | 54 | +0.0% | 1.00x |
DictionaryRemoveOfObjects | 19351 | 19413 | +0.3% | 1.00x(?) |
UTF8Decode | 288 | 288 | +0.0% | 1.00x |
SetIsSubsetOf | 250 | 250 | +0.0% | 1.00x |
NopDeinit | 37809 | 37934 | +0.3% | 1.00x(?) |
ObjectiveCBridgeStubDataAppend | 2942 | 2941 | -0.0% | 1.00x(?) |
NSDictionaryCastToSwift | 4987 | 4967 | -0.4% | 1.00x(?) |
RGBHistogramOfObjects | 21546 | 21579 | +0.1% | 1.00x(?) |
ArrayInClass | 63 | 63 | +0.0% | 1.00x |
StringHasSuffix | 800 | 800 | +0.0% | 1.00x |
Sim2DArray | 277 | 277 | +0.0% | 1.00x |
ArrayAppendRepeatCol | 644 | 643 | -0.2% | 1.00x(?) |
MonteCarloE | 10560 | 10593 | +0.3% | 1.00x(?) |
StringHasSuffixUnicode | 62855 | 62583 | -0.4% | 1.00x(?) |
HashTest | 1728 | 1723 | -0.3% | 1.00x(?) |
SetIsSubsetOf_OfObjects | 307 | 307 | +0.0% | 1.00x |
ObjectiveCBridgeToNSSet | 40149 | 40117 | -0.1% | 1.00x(?) |
StringHasPrefixUnicode | 13735 | 13704 | -0.2% | 1.00x(?) |
LinkedList | 7233 | 7208 | -0.3% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 139296 | 139414 | +0.1% | 1.00x(?) |
NSStringConversion | 800 | 800 | +0.0% | 1.00x |
RGBHistogram | 2269 | 2258 | -0.5% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 4743 | 4721 | -0.5% | 1.00x(?) |
ArrayAppendSequence | 1062 | 1061 | -0.1% | 1.00x(?) |
ArrayAppendArrayOfInt | 599 | 599 | +0.0% | 1.00x |
ArrayOfPOD | 182 | 182 | +0.0% | 1.00x |
Chars | 629 | 629 | +0.0% | 1.00x |
ObserverForwarderStruct | 920 | 921 | +0.1% | 1.00x(?) |
BitCount | 1 | 1 | +0.0% | 1.00x |
StringWalk | 5893 | 5884 | -0.1% | 1.00x(?) |
ArrayValueProp | 6 | 6 | +0.0% | 1.00x |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 235 | 235 | +0.0% | 1.00x |
Dictionary2OfObjects | 3429 | 3414 | -0.4% | 1.00x(?) |
ArrayValueProp4 | 6 | 6 | +0.0% | 1.00x |
ArrayValueProp2 | 6 | 6 | +0.0% | 1.00x |
ArrayValueProp3 | 6 | 6 | +0.0% | 1.00x |
ObserverPartiallyAppliedMethod | 3379 | 3390 | +0.3% | 1.00x(?) |
PopFrontArray | 1253 | 1260 | +0.6% | 0.99x |
AnyHashableWithAClass | 63094 | 63560 | +0.7% | 0.99x(?) |
Array2D | 2026 | 2044 | +0.9% | 0.99x(?) |
Histogram | 286 | 288 | +0.7% | 0.99x(?) |
RangeAssignment | 291 | 294 | +1.0% | 0.99x(?) |
ArrayAppendGenericStructs | 1229 | 1242 | +1.1% | 0.99x(?) |
ArrayAppendStrings | 12086 | 12167 | +0.7% | 0.99x(?) |
ProtocolDispatch2 | 158 | 159 | +0.6% | 0.99x(?) |
StringHasPrefix | 727 | 736 | +1.2% | 0.99x(?) |
ObjectiveCBridgeStubToNSDateRef | 3245 | 3289 | +1.4% | 0.99x(?) |
RC4 | 165 | 166 | +0.6% | 0.99x(?) |
DictionaryLiteral | 1266 | 1274 | +0.6% | 0.99x(?) |
ArrayAppendOptionals | 1236 | 1243 | +0.6% | 0.99x(?) |
StringBuilder | 1334 | 1342 | +0.6% | 0.99x(?) |
ObjectiveCBridgeToNSDictionary | 62225 | 62966 | +1.2% | 0.99x(?) |
SetUnion_OfObjects | 6160 | 6196 | +0.6% | 0.99x(?) |
SetUnion | 2423 | 2439 | +0.7% | 0.99x(?) |
AngryPhonebook | 2835 | 2862 | +0.9% | 0.99x(?) |
ObjectiveCBridgeStubFromNSDateRef | 3654 | 3738 | +2.3% | 0.98x |
ObjectiveCBridgeFromNSDictionaryAnyObject | 177804 | 180517 | +1.5% | 0.98x(?) |
SetExclusiveOr_OfObjects | 7286 | 7398 | +1.5% | 0.98x(?) |
SetIntersect | 356 | 367 | +3.1% | 0.97x(?) |
StrToInt | 5070 | 5241 | +3.4% | 0.97x |
ObjectiveCBridgeStubNSDateMutationRef | 11836 | 12143 | +2.6% | 0.97x(?) |
Walsh | 311 | 324 | +4.2% | 0.96x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 89875 | 94642 | +5.3% | 0.95x(?) |
Regression (8)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeFromNSArrayAnyObjectForced | 10669 | 25103 | +135.3% | 0.43x |
ObjectiveCBridgeStubFromArrayOfNSString | 58920 | 69356 | +17.7% | 0.85x |
ProtocolDispatch | 5564 | 6389 | +14.8% | 0.87x |
ObjectiveCBridgeStubToNSDate | 13575 | 14531 | +7.0% | 0.93x(?) |
StringHasSuffix | 1611 | 1725 | +7.1% | 0.93x |
PopFrontUnsafePointer | 242557 | 258791 | +6.7% | 0.94x |
Calculator | 924 | 979 | +6.0% | 0.94x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 93398 | 99302 | +6.3% | 0.94x |
Improvement (31)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
RecursiveOwnedParameter | 10854 | 10251 | -5.6% | 1.06x |
XorLoop | 19995 | 18920 | -5.4% | 1.06x |
ArrayInClass | 3957 | 3743 | -5.4% | 1.06x |
ArrayOfGenericPOD | 3778 | 3527 | -6.6% | 1.07x |
Walsh | 13231 | 12327 | -6.8% | 1.07x |
RC4 | 9386 | 8671 | -7.6% | 1.08x |
RGBHistogram | 39999 | 36110 | -9.7% | 1.11x |
146 | 5996533 | 5174671 | -13.7% | 1.16x |
ObjectiveCBridgeStubDateMutation | 517 | 426 | -17.6% | 1.21x |
Histogram | 9988 | 7894 | -21.0% | 1.27x |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 127460 | 94056 | -26.2% | 1.36x |
ObserverUnappliedMethod | 8734 | 6143 | -29.7% | 1.42x |
ObserverPartiallyAppliedMethod | 8349 | 5640 | -32.5% | 1.48x |
ObjectiveCBridgeFromNSArrayAnyObject | 78447 | 52616 | -32.9% | 1.49x |
PopFrontArray | 24342 | 15577 | -36.0% | 1.56x |
DictionaryLiteral | 15737 | 9921 | -37.0% | 1.59x |
Join | 1458 | 906 | -37.9% | 1.61x |
PopFrontArrayGeneric | 9679 | 5998 | -38.0% | 1.61x |
ObserverClosure | 6980 | 4269 | -38.8% | 1.64x |
ArrayOfGenericRef | 10053 | 5793 | -42.4% | 1.74x |
ArrayAppendLazyMap | 245064 | 135721 | -44.6% | 1.81x |
ArrayOfRef | 9113 | 4825 | -47.0% | 1.89x |
MapReduce | 45930 | 22287 | -51.5% | 2.06x |
ObserverForwarderStruct | 5236 | 2542 | -51.5% | 2.06x |
ArraySubscript | 5638 | 2707 | -52.0% | 2.08x |
MonteCarloE | 108568 | 52282 | -51.8% | 2.08x |
Prims | 13185 | 5887 | -55.4% | 2.24x |
UTF8Decode | 43479 | 18187 | -58.2% | 2.39x |
Array2D | 814037 | 298765 | -63.3% | 2.72x |
Hanoi | 19558 | 7072 | -63.8% | 2.77x |
ClassArrayGetter | 1267 | 349 | -72.5% | 3.63x |
No Changes (108)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
StackPromo | 126210 | 120712 | -4.4% | 1.05x(?) |
ArrayAppendGenericStructs | 1331 | 1263 | -5.1% | 1.05x |
RGBHistogramOfObjects | 89535 | 85291 | -4.7% | 1.05x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 220979 | 213068 | -3.6% | 1.04x(?) |
TypeFlood | 186 | 179 | -3.8% | 1.04x(?) |
NSError | 694 | 670 | -3.5% | 1.04x(?) |
ArrayAppendReserved | 3303 | 3191 | -3.4% | 1.04x |
ArrayAppendArrayOfInt | 641 | 617 | -3.7% | 1.04x |
ArrayValueProp2 | 3161 | 3040 | -3.8% | 1.04x |
ArrayValueProp3 | 3078 | 2966 | -3.6% | 1.04x |
ObjectiveCBridgeStubFromNSStringRef | 165 | 160 | -3.0% | 1.03x |
ObjectiveCBridgeStubFromNSString | 825 | 802 | -2.8% | 1.03x |
HashTest | 5246 | 5074 | -3.3% | 1.03x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 7802 | 7593 | -2.7% | 1.03x(?) |
ArrayOfPOD | 2513 | 2451 | -2.5% | 1.03x |
ArrayValueProp | 2638 | 2565 | -2.8% | 1.03x |
ArrayValueProp4 | 3009 | 2928 | -2.7% | 1.03x |
RangeAssignment | 13291 | 13051 | -1.8% | 1.02x(?) |
ArrayAppendOptionals | 1320 | 1300 | -1.5% | 1.02x(?) |
OpenClose | 439 | 430 | -2.0% | 1.02x(?) |
ObjectiveCBridgeStubURLAppendPath | 249592 | 244976 | -1.9% | 1.02x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 29470 | 28895 | -1.9% | 1.02x(?) |
StringHasPrefixUnicode | 15462 | 15132 | -2.1% | 1.02x |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 115193 | 112916 | -2.0% | 1.02x(?) |
DictionaryBridge | 3847 | 3799 | -1.2% | 1.01x(?) |
ObjectiveCBridgeFromNSStringForced | 3091 | 3054 | -1.2% | 1.01x(?) |
SortLettersInPlace | 2571 | 2546 | -1.0% | 1.01x |
StringInterpolation | 15667 | 15574 | -0.6% | 1.01x(?) |
ArrayAppendStrings | 11867 | 11766 | -0.8% | 1.01x(?) |
ObjectiveCBridgeFromNSSetAnyObject | 90646 | 89796 | -0.9% | 1.01x |
ArrayLiteral | 1253 | 1246 | -0.6% | 1.01x(?) |
ProtocolDispatch2 | 444 | 441 | -0.7% | 1.01x |
Dictionary2 | 4040 | 4005 | -0.9% | 1.01x(?) |
ErrorHandling | 3782 | 3735 | -1.2% | 1.01x(?) |
ObjectiveCBridgeToNSArray | 30747 | 30301 | -1.4% | 1.01x |
ObjectiveCBridgeFromNSSetAnyObjectToString | 155579 | 154087 | -1.0% | 1.01x(?) |
StringBuilder | 2698 | 2684 | -0.5% | 1.01x(?) |
ArrayAppendRepeatCol | 215135 | 213638 | -0.7% | 1.01x |
ObjectiveCBridgeToNSDictionary | 63335 | 62835 | -0.8% | 1.01x(?) |
StringHasSuffixUnicode | 65303 | 64897 | -0.6% | 1.01x |
ObjectiveCBridgeToNSSet | 40552 | 40288 | -0.7% | 1.01x(?) |
ArrayAppendSequence | 106228 | 105559 | -0.6% | 1.01x |
ObjectiveCBridgeToNSString | 1099 | 1097 | -0.2% | 1.00x(?) |
DictionarySwapOfObjects | 19242 | 19288 | +0.2% | 1.00x(?) |
Integrate | 369 | 370 | +0.3% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7915 | 7907 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubFromNSDateRef | 4069 | 4076 | +0.2% | 1.00x(?) |
MonteCarloPi | 53703 | 53554 | -0.3% | 1.00x |
StringWithCString | 152696 | 153412 | +0.5% | 1.00x |
DictionarySwap | 6044 | 6017 | -0.5% | 1.00x |
Dictionary3OfObjects | 1997 | 1996 | -0.1% | 1.00x(?) |
StrComplexWalk | 8067 | 8068 | +0.0% | 1.00x(?) |
ByteSwap | 9 | 9 | +0.0% | 1.00x |
SuperChars | 262334 | 263163 | +0.3% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1338 | 1333 | -0.4% | 1.00x(?) |
StaticArray | 35312 | 35372 | +0.2% | 1.00x(?) |
ObjectAllocation | 552 | 552 | +0.0% | 1.00x |
Dictionary3 | 1382 | 1385 | +0.2% | 1.00x(?) |
SetIntersect_OfObjects | 11843 | 11840 | -0.0% | 1.00x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 252201 | 251863 | -0.1% | 1.00x(?) |
DictionaryOfObjects | 4537 | 4540 | +0.1% | 1.00x(?) |
CaptureProp | 117938 | 118348 | +0.3% | 1.00x(?) |
ObjectiveCBridgeStubToNSStringRef | 156 | 156 | +0.0% | 1.00x |
IterateData | 10610 | 10597 | -0.1% | 1.00x(?) |
DictionaryRemoveOfObjects | 46489 | 46559 | +0.1% | 1.00x(?) |
SortStringsUnicode | 9270 | 9278 | +0.1% | 1.00x(?) |
SetIntersect | 13109 | 13165 | +0.4% | 1.00x(?) |
ObjectiveCBridgeStubDataAppend | 3368 | 3360 | -0.2% | 1.00x(?) |
SetExclusiveOr | 23757 | 23853 | +0.4% | 1.00x(?) |
ObjectiveCBridgeStubNSDateRefAccess | 1233 | 1230 | -0.2% | 1.00x |
ObjectiveCBridgeFromNSString | 5158 | 5151 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubDateAccess | 1096 | 1095 | -0.1% | 1.00x |
Sim2DArray | 14776 | 14777 | +0.0% | 1.00x(?) |
SetExclusiveOr_OfObjects | 40001 | 40034 | +0.1% | 1.00x(?) |
SetUnion_OfObjects | 28166 | 28104 | -0.2% | 1.00x |
SetIsSubsetOf_OfObjects | 1907 | 1903 | -0.2% | 1.00x(?) |
DictionaryRemove | 16893 | 16869 | -0.1% | 1.00x(?) |
LinkedList | 27514 | 27581 | +0.2% | 1.00x(?) |
NSStringConversion | 2962 | 2976 | +0.5% | 1.00x(?) |
SetUnion | 12186 | 12227 | +0.3% | 1.00x(?) |
Chars | 4972 | 4993 | +0.4% | 1.00x(?) |
StrToInt | 5774 | 5763 | -0.2% | 1.00x(?) |
DeadArray | 120283 | 120651 | +0.3% | 1.00x(?) |
BitCount | 96 | 96 | +0.0% | 1.00x |
AnyHashableWithAClass | 77692 | 77930 | +0.3% | 1.00x |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 20955 | 20956 | +0.0% | 1.00x(?) |
Dictionary2OfObjects | 5912 | 5898 | -0.2% | 1.00x(?) |
TwoSum | 4938 | 4937 | -0.0% | 1.00x(?) |
SevenBoom | 1498 | 1496 | -0.1% | 1.00x(?) |
ArrayAppend | 3555 | 3581 | +0.7% | 0.99x |
ObjectiveCBridgeStubToNSDateRef | 3355 | 3375 | +0.6% | 0.99x(?) |
PolymorphicCalls | 1128 | 1143 | +1.3% | 0.99x |
AngryPhonebook | 2978 | 2993 | +0.5% | 0.99x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 135857 | 136809 | +0.7% | 0.99x(?) |
Dictionary | 1842 | 1854 | +0.7% | 0.99x |
NSDictionaryCastToSwift | 6154 | 6196 | +0.7% | 0.99x(?) |
StringEqualPointerComparison | 9628 | 9790 | +1.7% | 0.98x |
SetIsSubsetOf | 2114 | 2147 | +1.6% | 0.98x |
Phonebook | 62184 | 63345 | +1.9% | 0.98x(?) |
ObjectiveCBridgeStubNSDataAppend | 2757 | 2800 | +1.6% | 0.98x(?) |
ObjectiveCBridgeStubFromNSDate | 3805 | 3867 | +1.6% | 0.98x |
ObjectiveCBridgeFromNSDictionaryAnyObject | 184304 | 189718 | +2.9% | 0.97x(?) |
SortStrings | 2702 | 2775 | +2.7% | 0.97x |
StringWalk | 22331 | 23044 | +3.2% | 0.97x |
ObjectiveCBridgeStubNSDateMutationRef | 14026 | 14400 | +2.7% | 0.97x(?) |
StringHasPrefix | 1555 | 1617 | +4.0% | 0.96x |
NopDeinit | 58081 | 61028 | +5.1% | 0.95x |
Build comment file:Optimized (O)
|
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeFromNSArrayAnyObjectForced | 5889 | 23159 | +293.3% | 0.25x |
ObjectiveCBridgeStubDateAccess | 172 | 211 | +22.7% | 0.82x |
ObjectiveCBridgeStubFromArrayOfNSString | 56372 | 67531 | +19.8% | 0.83x |
Improvement (5)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ClassArrayGetter | 12 | 11 | -8.3% | 1.09x(?) |
ObjectiveCBridgeStubNSDateRefAccess | 326 | 300 | -8.0% | 1.09x |
CaptureProp | 4315 | 3920 | -9.2% | 1.10x |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 117311 | 88132 | -24.9% | 1.33x |
ObjectiveCBridgeFromNSArrayAnyObject | 72307 | 48903 | -32.4% | 1.48x |
No Changes (139)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendLazyMap | 824 | 788 | -4.4% | 1.05x(?) |
ObjectiveCBridgeStubFromNSDate | 3424 | 3277 | -4.3% | 1.04x(?) |
StringHasSuffixUnicode | 61049 | 59518 | -2.5% | 1.03x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 237586 | 231594 | -2.5% | 1.03x(?) |
Hanoi | 3257 | 3159 | -3.0% | 1.03x(?) |
ArrayAppendOptionals | 1174 | 1144 | -2.6% | 1.03x(?) |
ObjectiveCBridgeStubNSDateMutationRef | 11560 | 11277 | -2.5% | 1.03x(?) |
StackPromo | 20356 | 19860 | -2.4% | 1.02x(?) |
Histogram | 279 | 273 | -2.1% | 1.02x(?) |
SortStrings | 1769 | 1730 | -2.2% | 1.02x(?) |
Prims | 693 | 681 | -1.7% | 1.02x(?) |
StrComplexWalk | 2808 | 2750 | -2.1% | 1.02x(?) |
Integrate | 232 | 227 | -2.2% | 1.02x(?) |
ObjectiveCBridgeStubFromNSStringRef | 133 | 131 | -1.5% | 1.02x |
Dictionary3 | 505 | 494 | -2.2% | 1.02x(?) |
DictionaryOfObjects | 2214 | 2164 | -2.3% | 1.02x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 130060 | 127778 | -1.8% | 1.02x(?) |
ArrayInClass | 62 | 61 | -1.6% | 1.02x(?) |
ArrayOfGenericRef | 3434 | 3366 | -2.0% | 1.02x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 138147 | 135594 | -1.9% | 1.02x(?) |
ArrayOfPOD | 176 | 172 | -2.3% | 1.02x |
DeadArray | 175 | 172 | -1.7% | 1.02x(?) |
ObjectiveCBridgeStubNSDataAppend | 2360 | 2318 | -1.8% | 1.02x(?) |
ObserverPartiallyAppliedMethod | 3314 | 3235 | -2.4% | 1.02x(?) |
ObjectiveCBridgeStubToNSString | 1217 | 1210 | -0.6% | 1.01x(?) |
DictionaryBridge | 3630 | 3585 | -1.2% | 1.01x(?) |
ObjectiveCBridgeStubFromNSString | 758 | 754 | -0.5% | 1.01x(?) |
ArrayOfRef | 3355 | 3335 | -0.6% | 1.01x(?) |
ObserverUnappliedMethod | 2301 | 2283 | -0.8% | 1.01x(?) |
ObjectiveCBridgeToNSArray | 29350 | 29181 | -0.6% | 1.01x(?) |
AngryPhonebook | 2781 | 2749 | -1.1% | 1.01x(?) |
Dictionary | 690 | 686 | -0.6% | 1.01x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 28444 | 28148 | -1.0% | 1.01x(?) |
SetExclusiveOr | 2747 | 2731 | -0.6% | 1.01x(?) |
Phonebook | 7102 | 7028 | -1.0% | 1.01x(?) |
StringHasPrefixUnicode | 13174 | 13016 | -1.2% | 1.01x(?) |
NSStringConversion | 758 | 753 | -0.7% | 1.01x(?) |
SetUnion | 2298 | 2286 | -0.5% | 1.01x(?) |
Chars | 605 | 597 | -1.3% | 1.01x(?) |
ObserverForwarderStruct | 882 | 876 | -0.7% | 1.01x(?) |
146 | 3012999 | 2985661 | -0.9% | 1.01x |
SevenBoom | 1301 | 1291 | -0.8% | 1.01x(?) |
ObjectiveCBridgeFromNSString | 1801 | 1789 | -0.7% | 1.01x(?) |
ArraySubscript | 1366 | 1360 | -0.4% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1033 | 1036 | +0.3% | 1.00x(?) |
DictionarySwapOfObjects | 5941 | 5938 | -0.1% | 1.00x(?) |
RecursiveOwnedParameter | 1828 | 1826 | -0.1% | 1.00x(?) |
Array2D | 1994 | 1995 | +0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 5281 | 5278 | -0.1% | 1.00x(?) |
MonteCarloPi | 42436 | 42627 | +0.5% | 1.00x |
StringWithCString | 145985 | 146206 | +0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSStringForced | 2584 | 2578 | -0.2% | 1.00x(?) |
SortLettersInPlace | 919 | 923 | +0.4% | 1.00x(?) |
DictionarySwap | 397 | 396 | -0.2% | 1.00x(?) |
ArrayOfGenericPOD | 207 | 207 | +0.0% | 1.00x |
Dictionary3OfObjects | 825 | 824 | -0.1% | 1.00x(?) |
ByteSwap | 0 | 0 | +0.0% | 1.00x |
ArrayAppendGenericStructs | 1144 | 1143 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubToNSDate | 12883 | 12879 | -0.0% | 1.00x(?) |
XorLoop | 359 | 359 | +0.0% | 1.00x |
StringInterpolation | 10576 | 10568 | -0.1% | 1.00x(?) |
ObserverClosure | 1880 | 1882 | +0.1% | 1.00x(?) |
ArrayAppendStrings | 11373 | 11414 | +0.4% | 1.00x(?) |
Join | 450 | 448 | -0.4% | 1.00x(?) |
TypeFlood | 0 | 0 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObject | 83073 | 82743 | -0.4% | 1.00x(?) |
AnyHashableWithAClass | 62476 | 62207 | -0.4% | 1.00x(?) |
Dictionary2 | 1919 | 1912 | -0.4% | 1.00x(?) |
SetIntersect_OfObjects | 1368 | 1366 | -0.1% | 1.00x(?) |
ErrorHandling | 2755 | 2765 | +0.4% | 1.00x(?) |
ArrayAppend | 732 | 731 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubDateMutation | 258 | 258 | +0.0% | 1.00x |
NSError | 310 | 309 | -0.3% | 1.00x(?) |
ObjectiveCBridgeStubToNSDateRef | 3108 | 3104 | -0.1% | 1.00x(?) |
PopFrontUnsafePointer | 8646 | 8652 | +0.1% | 1.00x(?) |
PolymorphicCalls | 20 | 20 | +0.0% | 1.00x |
ArrayAppendReserved | 507 | 506 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubToNSStringRef | 112 | 112 | +0.0% | 1.00x |
MapReduce | 323 | 323 | +0.0% | 1.00x |
IterateData | 2454 | 2456 | +0.1% | 1.00x(?) |
DictionaryLiteral | 1230 | 1235 | +0.4% | 1.00x(?) |
OpenClose | 51 | 51 | +0.0% | 1.00x |
DictionaryRemoveOfObjects | 18260 | 18333 | +0.4% | 1.00x(?) |
UTF8Decode | 272 | 272 | +0.0% | 1.00x |
SortStringsUnicode | 8062 | 8025 | -0.5% | 1.00x(?) |
SetIsSubsetOf | 236 | 236 | +0.0% | 1.00x |
NopDeinit | 35944 | 35824 | -0.3% | 1.00x(?) |
NSDictionaryCastToSwift | 4688 | 4706 | +0.4% | 1.00x(?) |
RGBHistogramOfObjects | 20363 | 20368 | +0.0% | 1.00x(?) |
StringHasSuffix | 755 | 756 | +0.1% | 1.00x(?) |
Sim2DArray | 272 | 272 | +0.0% | 1.00x |
ArrayAppendRepeatCol | 607 | 607 | +0.0% | 1.00x |
MonteCarloE | 9979 | 10007 | +0.3% | 1.00x(?) |
SetUnion_OfObjects | 5818 | 5842 | +0.4% | 1.00x(?) |
RC4 | 156 | 156 | +0.0% | 1.00x |
SetIsSubsetOf_OfObjects | 289 | 289 | +0.0% | 1.00x |
ObjectiveCBridgeToNSSet | 39025 | 39105 | +0.2% | 1.00x(?) |
DictionaryRemove | 2241 | 2234 | -0.3% | 1.00x(?) |
LinkedList | 6832 | 6824 | -0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 98780 | 99015 | +0.2% | 1.00x(?) |
RGBHistogram | 2173 | 2172 | -0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 4600 | 4579 | -0.5% | 1.00x(?) |
ArrayAppendSequence | 1005 | 1002 | -0.3% | 1.00x(?) |
ArrayAppendArrayOfInt | 566 | 565 | -0.2% | 1.00x(?) |
BitCount | 1 | 1 | +0.0% | 1.00x |
ArrayLiteral | 1120 | 1118 | -0.2% | 1.00x(?) |
StringWalk | 5572 | 5569 | -0.1% | 1.00x(?) |
ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 222 | 222 | +0.0% | 1.00x |
Dictionary2OfObjects | 3250 | 3254 | +0.1% | 1.00x(?) |
ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
TwoSum | 1246 | 1251 | +0.4% | 1.00x(?) |
ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
PopFrontArray | 1184 | 1190 | +0.5% | 0.99x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 200685 | 202249 | +0.8% | 0.99x(?) |
SuperChars | 199446 | 202248 | +1.4% | 0.99x(?) |
StaticArray | 2604 | 2641 | +1.4% | 0.99x(?) |
ProtocolDispatch | 2911 | 2948 | +1.3% | 0.99x(?) |
ObjectAllocation | 144 | 145 | +0.7% | 0.99x(?) |
ProtocolDispatch2 | 153 | 155 | +1.3% | 0.99x(?) |
PopFrontArrayGeneric | 1065 | 1071 | +0.6% | 0.99x(?) |
StringEqualPointerComparison | 7094 | 7157 | +0.9% | 0.99x(?) |
ObjectiveCBridgeStubDataAppend | 2837 | 2867 | +1.1% | 0.99x(?) |
ObjectiveCBridgeToNSDictionary | 60707 | 61096 | +0.6% | 0.99x(?) |
HashTest | 1648 | 1665 | +1.0% | 0.99x(?) |
ObjectiveCBridgeStubFromNSDateRef | 3544 | 3626 | +2.3% | 0.98x(?) |
RangeAssignment | 275 | 280 | +1.8% | 0.98x(?) |
StringHasPrefix | 687 | 698 | +1.6% | 0.98x(?) |
ObjectiveCBridgeStubURLAppendPath | 230994 | 235797 | +2.1% | 0.98x(?) |
SetExclusiveOr_OfObjects | 6858 | 6988 | +1.9% | 0.98x(?) |
StringBuilder | 1249 | 1276 | +2.2% | 0.98x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 171575 | 177405 | +3.4% | 0.97x(?) |
Calculator | 32 | 33 | +3.1% | 0.97x |
StrToInt | 4914 | 5085 | +3.5% | 0.97x |
Walsh | 297 | 309 | +4.0% | 0.96x(?) |
SetIntersect | 342 | 358 | +4.7% | 0.96x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 87091 | 91830 | +5.4% | 0.95x(?) |
Regression (7)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeFromNSArrayAnyObjectForced | 10378 | 23890 | +130.2% | 0.43x |
ObjectiveCBridgeStubFromArrayOfNSString | 57972 | 69929 | +20.6% | 0.83x |
ProtocolDispatch | 5366 | 6242 | +16.3% | 0.86x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 90019 | 98885 | +9.8% | 0.91x |
TypeFlood | 185 | 202 | +9.2% | 0.92x(?) |
PopFrontUnsafePointer | 235260 | 251620 | +7.0% | 0.93x |
StringHasSuffix | 1563 | 1677 | +7.3% | 0.93x |
Improvement (32)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
XorLoop | 18881 | 17869 | -5.4% | 1.06x |
ObjectiveCBridgeStubFromNSStringRef | 165 | 156 | -5.5% | 1.06x |
ArrayInClass | 3734 | 3534 | -5.4% | 1.06x |
Walsh | 12503 | 11651 | -6.8% | 1.07x |
ArrayAppendArrayOfInt | 625 | 582 | -6.9% | 1.07x |
ArrayOfGenericPOD | 3600 | 3337 | -7.3% | 1.08x |
RC4 | 8864 | 8192 | -7.6% | 1.08x |
RGBHistogram | 38098 | 34056 | -10.6% | 1.12x |
146 | 5888028 | 5064286 | -14.0% | 1.16x |
ObjectiveCBridgeStubDateMutation | 504 | 426 | -15.5% | 1.18x |
Histogram | 9474 | 7565 | -20.1% | 1.25x |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 117753 | 93649 | -20.5% | 1.26x |
ObserverUnappliedMethod | 8235 | 5814 | -29.4% | 1.42x |
ObjectiveCBridgeFromNSArrayAnyObject | 74194 | 52001 | -29.9% | 1.43x |
ObserverPartiallyAppliedMethod | 7887 | 5341 | -32.3% | 1.48x |
PopFrontArray | 23579 | 15455 | -34.5% | 1.53x |
DictionaryLiteral | 15301 | 9623 | -37.1% | 1.59x |
ObserverClosure | 6620 | 4145 | -37.4% | 1.60x |
Join | 1378 | 859 | -37.7% | 1.60x |
PopFrontArrayGeneric | 9415 | 5835 | -38.0% | 1.61x |
ArrayAppendLazyMap | 231654 | 133577 | -42.3% | 1.73x |
ArrayOfGenericRef | 9475 | 5482 | -42.1% | 1.73x |
ArrayOfRef | 8843 | 4558 | -48.5% | 1.94x |
ObserverForwarderStruct | 4946 | 2396 | -51.6% | 2.06x |
ArraySubscript | 5325 | 2564 | -51.9% | 2.08x |
MapReduce | 43560 | 20967 | -51.9% | 2.08x |
MonteCarloE | 102639 | 49239 | -52.0% | 2.08x |
Prims | 12548 | 5721 | -54.4% | 2.19x |
UTF8Decode | 41050 | 17175 | -58.2% | 2.39x |
Hanoi | 18452 | 6861 | -62.8% | 2.69x |
Array2D | 769524 | 282045 | -63.4% | 2.73x |
ClassArrayGetter | 1218 | 349 | -71.3% | 3.49x |
No Changes (108)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
RecursiveOwnedParameter | 10251 | 9798 | -4.4% | 1.05x |
RGBHistogramOfObjects | 84675 | 80601 | -4.8% | 1.05x |
ArrayOfPOD | 2435 | 2316 | -4.9% | 1.05x(?) |
StackPromo | 124014 | 119675 | -3.5% | 1.04x(?) |
ArrayAppendReserved | 3310 | 3194 | -3.5% | 1.04x |
StringBuilder | 2690 | 2582 | -4.0% | 1.04x(?) |
ArrayValueProp3 | 2983 | 2878 | -3.5% | 1.04x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 209518 | 203536 | -2.9% | 1.03x(?) |
DictionarySwap | 5858 | 5699 | -2.7% | 1.03x(?) |
ObjectiveCBridgeStubFromNSString | 801 | 778 | -2.9% | 1.03x |
ErrorHandling | 3678 | 3557 | -3.3% | 1.03x(?) |
HashTest | 4959 | 4792 | -3.4% | 1.03x |
ObjectiveCBridgeFromNSSetAnyObjectForced | 7607 | 7377 | -3.0% | 1.03x(?) |
ArrayValueProp2 | 3052 | 2949 | -3.4% | 1.03x |
ArrayValueProp4 | 2909 | 2837 | -2.5% | 1.03x(?) |
ArrayAppendGenericStructs | 1218 | 1195 | -1.9% | 1.02x |
AngryPhonebook | 2892 | 2844 | -1.7% | 1.02x(?) |
StringHasPrefixUnicode | 15041 | 14691 | -2.3% | 1.02x(?) |
ArrayAppendSequence | 106031 | 103707 | -2.2% | 1.02x(?) |
ArrayValueProp | 2493 | 2439 | -2.2% | 1.02x(?) |
Dictionary2OfObjects | 5730 | 5591 | -2.4% | 1.02x(?) |
ObjectiveCBridgeFromNSStringForced | 3011 | 2968 | -1.4% | 1.01x(?) |
SortLettersInPlace | 2429 | 2415 | -0.6% | 1.01x(?) |
StringInterpolation | 15214 | 15099 | -0.8% | 1.01x(?) |
ArrayAppendStrings | 11169 | 11095 | -0.7% | 1.01x(?) |
StaticArray | 34766 | 34528 | -0.7% | 1.01x(?) |
ArrayLiteral | 1186 | 1178 | -0.7% | 1.01x |
ProtocolDispatch2 | 431 | 428 | -0.7% | 1.01x(?) |
Dictionary2 | 3918 | 3892 | -0.7% | 1.01x(?) |
OpenClose | 425 | 419 | -1.4% | 1.01x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 133053 | 132380 | -0.5% | 1.01x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 28851 | 28486 | -1.3% | 1.01x(?) |
ArrayAppendRepeatCol | 210463 | 208892 | -0.8% | 1.01x(?) |
ObjectiveCBridgeToNSDictionary | 61477 | 61015 | -0.8% | 1.01x(?) |
DictionaryRemove | 16377 | 16246 | -0.8% | 1.01x(?) |
BitCount | 94 | 93 | -1.1% | 1.01x(?) |
AnyHashableWithAClass | 75518 | 74686 | -1.1% | 1.01x(?) |
ObjectiveCBridgeToNSString | 1067 | 1065 | -0.2% | 1.00x(?) |
Integrate | 359 | 359 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7786 | 7818 | +0.4% | 1.00x(?) |
ObjectiveCBridgeStubFromNSDateRef | 3953 | 3951 | -0.1% | 1.00x(?) |
MonteCarloPi | 50716 | 50594 | -0.2% | 1.00x |
Dictionary3OfObjects | 1883 | 1886 | +0.2% | 1.00x(?) |
StrComplexWalk | 7820 | 7805 | -0.2% | 1.00x(?) |
ByteSwap | 9 | 9 | +0.0% | 1.00x |
SuperChars | 221187 | 220751 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubToNSDate | 13806 | 13782 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1261 | 1262 | +0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObject | 88245 | 87977 | -0.3% | 1.00x(?) |
Dictionary3 | 1312 | 1307 | -0.4% | 1.00x(?) |
SetIntersect_OfObjects | 11211 | 11210 | -0.0% | 1.00x(?) |
ArrayAppend | 3443 | 3456 | +0.4% | 1.00x(?) |
ObjectiveCBridgeToNSArray | 29137 | 29018 | -0.4% | 1.00x(?) |
NSError | 641 | 642 | +0.2% | 1.00x(?) |
CaptureProp | 112296 | 112022 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubToNSStringRef | 147 | 147 | +0.0% | 1.00x |
IterateData | 10292 | 10270 | -0.2% | 1.00x(?) |
DictionaryRemoveOfObjects | 43879 | 43892 | +0.0% | 1.00x(?) |
SetIntersect | 12428 | 12451 | +0.2% | 1.00x(?) |
ObjectiveCBridgeStubDataAppend | 3269 | 3264 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubNSDateRefAccess | 1190 | 1195 | +0.4% | 1.00x(?) |
StrToInt | 5610 | 5631 | +0.4% | 1.00x(?) |
ObjectiveCBridgeStubDateAccess | 1067 | 1070 | +0.3% | 1.00x(?) |
SetExclusiveOr_OfObjects | 37826 | 37904 | +0.2% | 1.00x(?) |
SetUnion_OfObjects | 26538 | 26574 | +0.1% | 1.00x(?) |
StringHasSuffixUnicode | 63380 | 63298 | -0.1% | 1.00x(?) |
SetIsSubsetOf_OfObjects | 1850 | 1852 | +0.1% | 1.00x(?) |
ObjectiveCBridgeToNSSet | 39294 | 39486 | +0.5% | 1.00x(?) |
LinkedList | 25999 | 26054 | +0.2% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 109280 | 109597 | +0.3% | 1.00x(?) |
NSStringConversion | 2845 | 2831 | -0.5% | 1.00x(?) |
Chars | 4967 | 4965 | -0.0% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 19789 | 19788 | -0.0% | 1.00x(?) |
TwoSum | 4671 | 4690 | +0.4% | 1.00x(?) |
SevenBoom | 1419 | 1420 | +0.1% | 1.00x(?) |
DictionaryBridge | 3687 | 3713 | +0.7% | 0.99x(?) |
StringWithCString | 144288 | 145177 | +0.6% | 0.99x(?) |
RangeAssignment | 12653 | 12719 | +0.5% | 0.99x(?) |
ObjectAllocation | 522 | 526 | +0.8% | 0.99x(?) |
ArrayAppendOptionals | 1187 | 1195 | +0.7% | 0.99x(?) |
ObjectiveCBridgeStubToNSDateRef | 3122 | 3141 | +0.6% | 0.99x(?) |
SortStringsUnicode | 8987 | 9062 | +0.8% | 0.99x(?) |
Dictionary | 1786 | 1797 | +0.6% | 0.99x(?) |
SetExclusiveOr | 22364 | 22514 | +0.7% | 0.99x |
NSDictionaryCastToSwift | 5864 | 5908 | +0.8% | 0.99x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 150776 | 152616 | +1.2% | 0.99x(?) |
Phonebook | 61373 | 61903 | +0.9% | 0.99x(?) |
Sim2DArray | 13955 | 14090 | +1.0% | 0.99x(?) |
DictionarySwapOfObjects | 18216 | 18552 | +1.8% | 0.98x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 182248 | 186184 | +2.2% | 0.98x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 235617 | 240577 | +2.1% | 0.98x(?) |
DictionaryOfObjects | 4316 | 4414 | +2.3% | 0.98x(?) |
StringEqualPointerComparison | 9328 | 9526 | +2.1% | 0.98x |
SetIsSubsetOf | 2012 | 2046 | +1.7% | 0.98x(?) |
ObjectiveCBridgeStubNSDataAppend | 2677 | 2728 | +1.9% | 0.98x(?) |
ObjectiveCBridgeStubFromNSDate | 3773 | 3852 | +2.1% | 0.98x(?) |
SortStrings | 2619 | 2690 | +2.7% | 0.97x |
PolymorphicCalls | 1106 | 1144 | +3.4% | 0.97x |
ObjectiveCBridgeFromNSString | 5004 | 5146 | +2.8% | 0.97x(?) |
SetUnion | 11537 | 11870 | +2.9% | 0.97x |
DeadArray | 113352 | 116457 | +2.7% | 0.97x(?) |
StringWalk | 21904 | 22492 | +2.7% | 0.97x(?) |
ObjectiveCBridgeStubNSDateMutationRef | 13894 | 14278 | +2.8% | 0.97x(?) |
StringHasPrefix | 1507 | 1567 | +4.0% | 0.96x |
ObjectiveCBridgeStubURLAppendPath | 230449 | 239196 | +3.8% | 0.96x(?) |
Calculator | 875 | 925 | +5.7% | 0.95x |
NopDeinit | 56174 | 58974 | +5.0% | 0.95x |
@swift-ci Please smoke test |
1 similar comment
@swift-ci Please smoke test |
This failure mode can no longer be reliably detected.
@swift-ci please smoke test |
(Rebased, some conflicts, updated reflection tests) |
@swift-ci please smoke test |
@swift-ci please smoke test |
1 similar comment
@swift-ci please smoke test |
The work related to this PR is no longer happening. Closing. |
wow rude, i was obviously on top of this 😤 |
[pull] swiftwasm from main
This is @dabrahams work on eager array bridging rebased and split out of the eager bridging PR so that other teams can analyze the perf impact of it in isolation (and without being blocked on Dictionary/Set work).
Someone for the compiler team should figure out what should happen to the xfail'd tests.
CC @bob-wilson for perf team stuff