Skip to content

Finish String and Unicode ABI audit #20605

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 4 commits into from
Nov 15, 2018
Merged

Conversation

milseman
Copy link
Member

No description provided.

Remove some more inlinable annotations and drop dead code.
De-genericize one axis of storage buffers to speed up compilation time
of stdlib and user code. Publish the rest as ABI, since we're out of
time to reevaluate the design.
@milseman
Copy link
Member Author

@swift-ci please test

@milseman
Copy link
Member Author

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Performance: -O

TEST OLD NEW DELTA RATIO
Improvement
StringEqualPointerComparison 628 571 -9.1% 1.10x
InsertCharacterEndIndexNonASCII 60 56 -6.7% 1.07x (?)

Performance: -Osize

TEST OLD NEW DELTA RATIO
Improvement
PrefixAnySeqCRangeIter 20599 16891 -18.0% 1.22x
PrefixAnySeqCntRange 20464 16929 -17.3% 1.21x
DropFirstAnySeqCRangeIter 25434 21462 -15.6% 1.19x
DropFirstAnySeqCntRange 25360 21615 -14.8% 1.17x
StringEqualPointerComparison 628 571 -9.1% 1.10x

Performance: -Onone

TEST OLD NEW DELTA RATIO
Regression
FloatingPointPrinting_Double_interpolated 78709 86438 +9.8% 0.91x
Improvement
PrefixWhileAnyCollectionLazy 25374 19639 -22.6% 1.29x
PrefixWhileAnySeqCntRangeLazy 25307 19679 -22.2% 1.29x
PrefixWhileAnySeqCRangeIterLazy 25070 19653 -21.6% 1.28x
DropFirstAnyCollection 20863 16832 -19.3% 1.24x
SuffixAnyCollection 6950 5609 -19.3% 1.24x
PrefixAnyCollection 20766 16843 -18.9% 1.23x
LazilyFilteredRange 718732 589254 -18.0% 1.22x
PrefixAnySeqCntRange 21330 17518 -17.9% 1.22x
PrefixAnySeqCRangeIter 21298 17515 -17.8% 1.22x
DropFirstAnySeqCRangeIter 26518 22299 -15.9% 1.19x
DropWhileAnyCollection 25860 21748 -15.9% 1.19x
DropFirstAnySeqCntRangeLazy 26616 22434 -15.7% 1.19x
DropFirstAnySeqCntRange 26400 22376 -15.2% 1.18x
SuffixAnySeqCRangeIterLazy 35443 30241 -14.7% 1.17x
DropFirstAnySeqCRangeIterLazy 26463 22656 -14.4% 1.17x
SuffixAnySeqCRangeIter 34670 29701 -14.3% 1.17x
SuffixAnySeqCntRange 34502 29595 -14.2% 1.17x
SuffixAnySeqCntRangeLazy 34948 29983 -14.2% 1.17x
PrefixWhileAnySeqCRangeIter 34469 29924 -13.2% 1.15x
PrefixWhileAnySeqCntRange 34335 29910 -12.9% 1.15x
DropWhileAnySeqCRangeIter 29376 25883 -11.9% 1.13x
DropLastAnySeqCRangeIterLazy 41152 36267 -11.9% 1.13x
DropLastAnySeqCRangeIter 40453 35765 -11.6% 1.13x
DictionaryGroup 5171 4578 -11.5% 1.13x
PrefixWhileAnyCollection 35752 31665 -11.4% 1.13x
DropLastAnySeqCntRangeLazy 40789 36147 -11.4% 1.13x
DropLastAnySeqCntRange 40238 35816 -11.0% 1.12x
DropWhileAnySeqCntRange 29159 25986 -10.9% 1.12x
ArrayOfPOD 858 781 -9.0% 1.10x (?)
DropLastAnyCollection 6963 6427 -7.7% 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
--------------

@milseman milseman requested a review from Catfish-Man November 15, 2018 21:36
Copy link
Contributor

@Catfish-Man Catfish-Man left a comment

Choose a reason for hiding this comment

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

Commented out of band, but all the things I was curious about were fine, so looks good

@milseman milseman merged commit 0a5177d into swiftlang:master Nov 15, 2018
@milseman milseman deleted the abi_publishing branch November 15, 2018 22:03
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.

3 participants