Skip to content

[stdlib][DNM] Replace several subscript gets with reads #19858

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

airspeedswift
Copy link
Member

Giving this a go. Seems to make the compiler a bit crashy though...

@airspeedswift
Copy link
Member Author

---
2.	While emitting property descriptor for 'subscript(_:)' at /Users/ben/src/swift-source/swift/stdlib/public/core/UnsafeBufferPointer.swift.gyb:269:10
0  swift                    0x0000000108896178 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  swift                    0x0000000108895555 llvm::sys::RunSignalHandlers() + 85
2  swift                    0x0000000108896782 SignalHandler(int) + 258
3  libsystem_platform.dylib 0x00007fff63e8b87d _sigtramp + 29
4  libsystem_platform.dylib 0x00007fbd049fc080 _sigtramp + 2696349728
5  swift                    0x0000000105d9c893 swift::Lowering::SILGenFunction::emitRValueForStorageLoad(swift::SILLocation, swift::Lowering::ManagedValue, swift::CanType, bool, swift::AbstractStorageDecl*, swift::Lowering::PreparedArguments&&, swift::SubstitutionMap, swift::AccessSemantics, swift::Type, swift::Lowering::SGFContext, bool) + 787
6  swift                    0x0000000105da345a getOrCreateKeyPathGetter(swift::Lowering::SILGenModule&, swift::SILLocation, swift::AbstractStorageDecl*, swift::SubstitutionMap, swift::GenericEnvironment*, llvm::ArrayRef<std::__1::pair<swift::CanType, swift::SILType> >, swift::CanType, swift::CanType) + 2378
7  swift                    0x0000000105da2651 swift::Lowering::SILGenModule::emitKeyPathComponentForDecl(swift::SILLocation, swift::GenericEnvironment*, unsigned int&, bool&, swift::SubstitutionMap, swift::AbstractStorageDecl*, llvm::ArrayRef<swift::ProtocolConformanceRef>, swift::CanType, bool) + 11265
8  swift                    0x0000000105d547d3 swift::Lowering::SILGenModule::tryEmitPropertyDescriptor(swift::AbstractStorageDecl*) + 595
9  swift                    0x0000000105df8e4b SILGenExtension::emitExtension(swift::ExtensionDecl*) + 59
10 swift                    0x0000000105df8e05 swift::Lowering::SILGenModule::visitExtensionDecl(swift::ExtensionDecl*) + 21
11 swift                    0x0000000105d55140 swift::Lowering::SILGenModule::emitSourceFile(swift::SourceFile*) + 832
12 swift                    0x0000000105d55d90 swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*) + 368
13 swift                    0x0000000105d56150 swift::performSILGeneration(swift::ModuleDecl*, swift::SILOptions&) + 16
14 swift                    0x00000001055a910d performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 13357
15 swift                    0x00000001055a4dc4 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 3028
16 swift                    0x000000010555e5c4 main + 660
17 libdyld.dylib            0x00007fff63c9fa2d start + 1
<unknown>:0: error: unable to execute command: Segmentation fault: 11

@airspeedswift
Copy link
Member Author

cc @rjmccall

@rjmccall
Copy link
Contributor

I'll take a look.

@slavapestov
Copy link
Contributor

What about the unsafeAddressWithNativeOwner in ManagedBuffer?

@airspeedswift
Copy link
Member Author

I pulled that one out in the hope that was what was causing the crash (it wasn't)

@rjmccall
Copy link
Contributor

rjmccall commented Nov 6, 2018

Okay, a bunch of patches I have in flight at the moment collectively seem to get the stdlib building with this PR.

@rjmccall
Copy link
Contributor

rjmccall commented Nov 6, 2018

The last of those PRs is landing as #20352.

@airspeedswift
Copy link
Member Author

@swift-ci please benchmark

@airspeedswift
Copy link
Member Author

@swift-ci please test

@airspeedswift
Copy link
Member Author

@swift-ci please smoke test compiler performance

@swift-ci
Copy link
Contributor

swift-ci commented Nov 6, 2018

Build comment file:

Performance: -O

TEST OLD NEW DELTA RATIO
Regression
DropLastAnyCollectionLazy 23242 31842 +37.0% 0.73x
SuffixAnyCollectionLazy 23095 31329 +35.7% 0.74x
DropFirstAnyCollectionLazy 69744 93795 +34.5% 0.74x
PrefixAnyCollectionLazy 71712 95617 +33.3% 0.75x
SubstringEquatable 986 1292 +31.0% 0.76x
StringComparison_slowerPrenormal 1579 2058 +30.3% 0.77x
StringComparison_emoji 838 1065 +27.1% 0.79x
SubstringEqualString 563 710 +26.1% 0.79x
CharIteration_punctuated_unicodeScalars 928 1162 +25.2% 0.80x
StringComparison_fastPrenormal 2482 3092 +24.6% 0.80x
StringComparison_nonBMPSlowestPrenormal 1654 2032 +22.9% 0.81x
StringComparison_latin1 1817 2229 +22.7% 0.82x
SortStringsUnicode 5384 6476 +20.3% 0.83x
CharIteration_ascii_unicodeScalars 3791 4496 +18.6% 0.84x
CharIteration_tweet_unicodeScalars 7485 8760 +17.0% 0.85x
CharIndexing_tweet_unicodeScalars 9469 10974 +15.9% 0.86x
CharIndexing_ascii_unicodeScalars 4851 5577 +15.0% 0.87x
CharIteration_punctuatedJapanese_unicodeScalars 1046 1185 +13.3% 0.88x
CharIndexing_punctuated_unicodeScalars 1231 1394 +13.2% 0.88x
CharIndexing_korean_unicodeScalars 6111 6862 +12.3% 0.89x
CharIndexing_chinese_unicodeScalars 4547 5086 +11.9% 0.89x
StringComparison_longSharedPrefix 619 688 +11.1% 0.90x
CharIndexing_punctuatedJapanese_unicodeScalars 1248 1372 +9.9% 0.91x
RomanNumbers 91012 99822 +9.7% 0.91x
StringComparison_abnormal 9029 9888 +9.5% 0.91x
CharIndexing_utf16_unicodeScalars 7071 7719 +9.2% 0.92x
CharIteration_chinese_unicodeScalars 3900 4254 +9.1% 0.92x
StringMatch 9446 10293 +9.0% 0.92x
CharIteration_russian_unicodeScalars 4446 4828 +8.6% 0.92x
StringComparison_zalgo 101932 110605 +8.5% 0.92x
StringHasPrefixUnicode 181647 196770 +8.3% 0.92x
RemoveWhereQuadraticString 453 490 +8.2% 0.92x
Improvement
CharIndexing_ascii_unicodeScalars_Backwards 5210 4678 -10.2% 1.11x
CharIndexing_tweet_unicodeScalars_Backwards 10224 9198 -10.0% 1.11x
CharIteration_tweet_unicodeScalars_Backwards 10095 9199 -8.9% 1.10x
IterateData 1532 1402 -8.5% 1.09x
CharIteration_ascii_unicodeScalars_Backwards 5083 4679 -7.9% 1.09x
CharIndexing_punctuated_unicodeScalars_Backwards 1317 1223 -7.1% 1.08x

Code size: -O

TEST OLD NEW DELTA RATIO
Improvement
StringWalk.o 42855 41289 -3.7% 1.04x

Performance: -Osize

TEST OLD NEW DELTA RATIO
Regression
CharIteration_ascii_unicodeScalars 4525 7676 +69.6% 0.59x
DropLastAnyCollectionLazy 23051 33192 +44.0% 0.69x
PrefixAnyCollectionLazy 68817 96562 +40.3% 0.71x
DropFirstAnyCollectionLazy 69105 96090 +39.0% 0.72x
SuffixAnyCollectionLazy 23547 31897 +35.5% 0.74x
StringComparison_nonBMPSlowestPrenormal 1511 2043 +35.2% 0.74x
StringComparison_emoji 788 1064 +35.0% 0.74x
SubstringEquatable 987 1285 +30.2% 0.77x
SubstringEqualString 553 702 +26.9% 0.79x
StringComparison_slowerPrenormal 1611 2043 +26.8% 0.79x
StringWalk 8133 10155 +24.9% 0.80x
StringComparison_fastPrenormal 2523 3133 +24.2% 0.81x
StringComparison_latin1 1802 2193 +21.7% 0.82x
StrComplexWalk 5901 6767 +14.7% 0.87x
StringMatch 9433 10537 +11.7% 0.90x
StringUTF16SubstringBuilder 3035 3325 +9.6% 0.91x
CharIteration_punctuated_unicodeScalars_Backwards 1228 1345 +9.5% 0.91x
StringComparison_abnormal 8945 9788 +9.4% 0.91x
CharIteration_utf16_unicodeScalars 6745 7367 +9.2% 0.92x
CharIteration_punctuatedJapanese_unicodeScalars 1168 1271 +8.8% 0.92x (?)
RemoveWhereQuadraticString 454 493 +8.6% 0.92x
StringHasPrefixUnicode 181317 196633 +8.4% 0.92x
StringComparison_zalgo 102092 110604 +8.3% 0.92x
StringHashing_fastPrenormal 1647 1781 +8.1% 0.92x
CharIteration_punctuated_unicodeScalars 1097 1185 +8.0% 0.93x
RemoveWhereFilterString 501 540 +7.8% 0.93x
StringHashing_zalgo 4245 4575 +7.8% 0.93x
Improvement
IterateData 1537 1365 -11.2% 1.13x
CharIteration_russian_unicodeScalars_Backwards 5817 5269 -9.4% 1.10x

Code size: -Osize

TEST OLD NEW DELTA RATIO
Regression
CharacterProperties.o 20981 22461 +7.1% 0.93x
StringWalk.o 37400 38232 +2.2% 0.98x
ReversedCollections.o 11612 11788 +1.5% 0.99x
StringRemoveDupes.o 8201 8305 +1.3% 0.99x
Improvement
StrComplexWalk.o 3282 3238 -1.3% 1.01x

Performance: -Onone

TEST OLD NEW DELTA RATIO
Regression
ReversedBidirectional 43979 90350 +105.4% 0.49x
ArrayAppendLatin1Substring 55228 95201 +72.4% 0.58x
ArrayAppendAsciiSubstring 54935 94690 +72.4% 0.58x
ArrayAppendUTF16Substring 54877 93719 +70.8% 0.59x
CSVParsing2 4661 7163 +53.7% 0.65x
StrComplexWalk 46822 60576 +29.4% 0.77x
PrefixAnyCollectionLazy 112511 142409 +26.6% 0.79x
SuffixAnyCollectionLazy 37654 47124 +25.2% 0.80x
StringWalk 45889 57200 +24.6% 0.80x
DropLastAnyCollectionLazy 37670 46234 +22.7% 0.81x
DropFirstAnyCollectionLazy 112617 138019 +22.6% 0.82x
CSVParsingAltIndices2 6226 7551 +21.3% 0.82x
CSVParsingAlt2 4296 5019 +16.8% 0.86x
SortStringsUnicode 5958 6951 +16.7% 0.86x
StringComparison_emoji 1944 2181 +12.2% 0.89x
StackPromo 115770 128569 +11.1% 0.90x
StringComparison_fastPrenormal 6364 7030 +10.5% 0.91x
RemoveWhereFilterString 986 1083 +9.8% 0.91x
StringComparison_abnormal 9836 10726 +9.0% 0.92x
StringComparison_zalgo 104077 113177 +8.7% 0.92x
StringComparison_latin1 4889 5310 +8.6% 0.92x
Improvement
DictionaryCompactMapValuesOfNilValue 19312 17002 -12.0% 1.14x
How to read the data The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.

If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR.

Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@swift-ci
Copy link
Contributor

swift-ci commented Nov 6, 2018

Build comment file:

Summary for master smoketest

Unexpected test results, excluded stats for Kingfisher, ReactiveCocoa

Regressions found (see below)

Debug

debug brief

Regressed (1)
name old new delta delta_pct
time.swift-driver.wall 23.6s 23.9s 278.6ms 1.18% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 183,819,740,217 183,644,560,947 -175,179,270 -0.1%
LLVM.NumLLVMBytesOutput 9,211,636 9,211,636 0 0.0%

debug detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 4,553 4,553 0 0.0%
AST.NumLoadedModules 1,578 1,578 0 0.0%
AST.NumTotalClangImportedEntities 17,267 17,267 0 0.0%
AST.NumUsedConformances 1,339 1,339 0 0.0%
IRModule.NumIRBasicBlocks 30,705 30,705 0 0.0%
IRModule.NumIRFunctions 15,679 15,679 0 0.0%
IRModule.NumIRGlobals 13,513 13,513 0 0.0%
IRModule.NumIRInsts 439,488 439,488 0 0.0%
IRModule.NumIRValueSymbols 28,018 28,018 0 0.0%
LLVM.NumLLVMBytesOutput 9,211,636 9,211,636 0 0.0%
SILModule.NumSILGenFunctions 7,647 7,647 0 0.0%
SILModule.NumSILOptFunctions 10,353 10,353 0 0.0%
Sema.NumConformancesDeserialized 22,725 22,725 0 0.0%
Sema.NumConstraintScopes 65,295 65,295 0 0.0%
Sema.NumDeclsDeserialized 227,507 227,507 0 0.0%
Sema.NumDeclsValidated 16,958 16,958 0 0.0%
Sema.NumFunctionsTypechecked 6,090 6,090 0 0.0%
Sema.NumGenericSignatureBuilders 7,305 7,305 0 0.0%
Sema.NumLazyGenericEnvironments 50,314 50,314 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 2,335 2,335 0 0.0%
Sema.NumLazyIterableDeclContexts 44,280 44,280 0 0.0%
Sema.NumTypesDeserialized 98,155 98,156 1 0.0%
Sema.NumTypesValidated 14,111 14,111 0 0.0%

Release

release brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (3)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 219,482,002,921 219,538,287,019 56,284,098 0.03%
LLVM.NumLLVMBytesOutput 10,353,340 10,353,328 -12 -0.0%
time.swift-driver.wall 41.6s 41.7s 91.4ms 0.22%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 1,111 1,111 0 0.0%
AST.NumLoadedModules 105 105 0 0.0%
AST.NumTotalClangImportedEntities 4,552 4,552 0 0.0%
AST.NumUsedConformances 1,341 1,341 0 0.0%
IRModule.NumIRBasicBlocks 33,345 33,345 0 0.0%
IRModule.NumIRFunctions 14,214 14,214 0 0.0%
IRModule.NumIRGlobals 12,960 12,960 0 0.0%
IRModule.NumIRInsts 326,287 326,287 0 0.0%
IRModule.NumIRValueSymbols 26,235 26,235 0 0.0%
LLVM.NumLLVMBytesOutput 10,353,340 10,353,328 -12 -0.0%
SILModule.NumSILGenFunctions 5,895 5,895 0 0.0%
SILModule.NumSILOptFunctions 8,607 8,607 0 0.0%
Sema.NumConformancesDeserialized 14,961 14,961 0 0.0%
Sema.NumConstraintScopes 58,677 58,677 0 0.0%
Sema.NumDeclsDeserialized 43,794 43,804 10 0.02%
Sema.NumDeclsValidated 10,938 10,938 0 0.0%
Sema.NumFunctionsTypechecked 4,162 4,162 0 0.0%
Sema.NumGenericSignatureBuilders 2,077 2,077 0 0.0%
Sema.NumLazyGenericEnvironments 9,387 9,392 5 0.05%
Sema.NumLazyGenericEnvironmentsLoaded 184 184 0 0.0%
Sema.NumLazyIterableDeclContexts 5,707 5,707 0 0.0%
Sema.NumTypesDeserialized 25,377 25,375 -2 -0.01%
Sema.NumTypesValidated 7,103 7,103 0 0.0%

@swift-ci
Copy link
Contributor

swift-ci commented Nov 6, 2018

Build failed
Swift Test Linux Platform
Git Sha - 77eb38d

@airspeedswift
Copy link
Member Author

@swift-ci please test linux platform

@airspeedswift
Copy link
Member Author

@rjmccall do you have a view on those benchmark numbers from this change being expected/unexpected?

@rjmccall
Copy link
Contributor

rjmccall commented Nov 8, 2018

I'm seeing similar things with #20415, and I've been trying to tweak the heuristics accordingly. I know that we're not really taking advantage of read accessors very much right now on the caller side, but some of these are, yeah, not where we want them. You might try testing the combination to see if it helps.

@airspeedswift
Copy link
Member Author

@swift-ci please benchmark

1 similar comment
@airspeedswift
Copy link
Member Author

@swift-ci please benchmark

@airspeedswift
Copy link
Member Author

Re-benchmarking to see if much has changed after a few other things like the new String have landed.

@swift-ci
Copy link
Contributor

Build comment file:

Performance: -O

TEST OLD NEW DELTA RATIO
Regression
NopDeinit 44518 80431 +80.7% 0.55x
PrefixAnyCollectionLazy 68611 94879 +38.3% 0.72x
DropFirstAnyCollectionLazy 68312 94407 +38.2% 0.72x
DropLastAnyCollectionLazy 23136 31906 +37.9% 0.73x
StringComparison_nonBMPSlowestPrenormal 1532 2075 +35.4% 0.74x
StringComparison_emoji 794 1075 +35.4% 0.74x
StringComparison_slowerPrenormal 1629 2069 +27.0% 0.79x
SubstringEquatable 1000 1265 +26.5% 0.79x
StringComparison_fastPrenormal 2533 3160 +24.8% 0.80x
StringComparison_latin1 1862 2246 +20.6% 0.83x
SubstringEqualString 603 719 +19.2% 0.84x
ObjectiveCBridgeStringHash 80 93 +16.2% 0.86x
CharIndexing_ascii_unicodeScalars 4858 5588 +15.0% 0.87x
SortStringsUnicode 9450 10858 +14.9% 0.87x
CharIndexing_russian_unicodeScalars 5562 6279 +12.9% 0.89x
CharIndexing_korean_unicodeScalars 6259 7001 +11.9% 0.89x
CharIndexing_tweet_unicodeScalars 9818 10952 +11.6% 0.90x
CharIndexing_chinese_unicodeScalars 4671 5202 +11.4% 0.90x
CharIndexing_japanese_unicodeScalars 7762 8609 +10.9% 0.90x
StringMatch 9341 10346 +10.8% 0.90x
CharIndexing_punctuated_unicodeScalars 1271 1402 +10.3% 0.91x
ObjectiveCBridgeStringGetUTF8Contents 266 293 +10.2% 0.91x
StringComparison_longSharedPrefix 627 687 +9.6% 0.91x
CharIndexing_punctuatedJapanese_unicodeScalars 1280 1401 +9.5% 0.91x
StringHashing_zalgo 4253 4610 +8.4% 0.92x

Performance: -Osize

TEST OLD NEW DELTA RATIO
Regression
StringWalk 3654 7205 +97.2% 0.51x
StrComplexWalk 6947 10373 +49.3% 0.67x
DropLastAnyCollectionLazy 22889 32621 +42.5% 0.70x
DropFirstAnyCollectionLazy 68849 97781 +42.0% 0.70x
PrefixAnyCollectionLazy 68918 96272 +39.7% 0.72x
SuffixAnyCollectionLazy 23396 32035 +36.9% 0.73x
StringComparison_emoji 783 1066 +36.1% 0.73x
StringComparison_nonBMPSlowestPrenormal 1540 2082 +35.2% 0.74x
HashTest 1430 1821 +27.3% 0.79x
SubstringEquatable 1008 1281 +27.1% 0.79x
StringComparison_slowerPrenormal 1627 2067 +27.0% 0.79x
StringComparison_fastPrenormal 2556 3135 +22.7% 0.82x
SubstringEqualString 576 700 +21.5% 0.82x
StringComparison_latin1 1856 2228 +20.0% 0.83x
ObjectiveCBridgeStringHash 80 93 +16.2% 0.86x
SortStringsUnicode 9522 10886 +14.3% 0.87x
StringMatch 9442 10435 +10.5% 0.90x
RemoveWhereQuadraticString 456 497 +9.0% 0.92x
CharIteration_punctuated_unicodeScalars_Backwards 1176 1277 +8.6% 0.92x (?)

Code size: -Osize

TEST OLD NEW DELTA RATIO
Regression
ReversedCollections.o 11612 11788 +1.5% 0.99x

Performance: -Onone

TEST OLD NEW DELTA RATIO
Regression
ArrayAppendAsciiSubstring 55372 98112 +77.2% 0.56x
ArrayAppendLatin1Substring 56068 99188 +76.9% 0.57x
ArrayAppendUTF16Substring 55590 97559 +75.5% 0.57x
ReversedBidirectional 47799 83160 +74.0% 0.57x
StrComplexWalk 9245 14753 +59.6% 0.63x
CSVParsing2 4700 7116 +51.4% 0.66x
StackPromo 94551 130327 +37.8% 0.73x
SuffixAnyCollectionLazy 37115 47138 +27.0% 0.79x
PrefixAnyCollectionLazy 112269 140104 +24.8% 0.80x
DropLastAnyCollectionLazy 38379 47674 +24.2% 0.81x
DropFirstAnyCollectionLazy 113044 138927 +22.9% 0.81x
CSVParsingAltIndices2 6537 7668 +17.3% 0.85x
StringWalk 14459 16894 +16.8% 0.86x
ObjectiveCBridgeStringHash 80 93 +16.2% 0.86x
SortStringsUnicode 10992 12647 +15.1% 0.87x
StringComparison_nonBMPSlowestPrenormal 3552 4079 +14.8% 0.87x
StringComparison_emoji 1920 2196 +14.4% 0.87x
ObjectiveCBridgeStringGetUTF8Contents 265 292 +10.2% 0.91x
Improvement
CharIteration_utf16_unicodeScalars 172511 130325 -24.5% 1.32x
CharIteration_ascii_unicodeScalars 184715 146409 -20.7% 1.26x
CharIteration_russian_unicodeScalars 155962 123986 -20.5% 1.26x
CharIteration_korean_unicodeScalars 183385 146359 -20.2% 1.25x
CharIteration_punctuated_unicodeScalars 41725 33324 -20.1% 1.25x
CharIndexing_japanese_unicodeScalars 503442 408229 -18.9% 1.23x
CharIndexing_tweet_unicodeScalars 818113 663603 -18.9% 1.23x
CharIteration_punctuatedJapanese_unicodeScalars 32964 26822 -18.6% 1.23x
CharIndexing_russian_unicodeScalars 344668 282628 -18.0% 1.22x
CharIndexing_chinese_unicodeScalars 312233 256426 -17.9% 1.22x
CharIndexing_ascii_unicodeScalars 409034 336405 -17.8% 1.22x
CharIndexing_punctuated_unicodeScalars 90406 75608 -16.4% 1.20x
CharIteration_russian_unicodeScalars_Backwards 251991 218808 -13.2% 1.15x
CharIteration_ascii_unicodeScalars_Backwards 289456 258496 -10.7% 1.12x
CharIteration_chinese_unicodeScalars_Backwards 221999 201080 -9.4% 1.10x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 51457 46745 -9.2% 1.10x
CharIteration_punctuated_unicodeScalars_Backwards 64216 58412 -9.0% 1.10x
DictionaryCompactMapValuesOfCastValue 67628 62566 -7.5% 1.08x
How to read the data The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.

If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.

Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB
--------------

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