Skip to content

[benchmark] BenchmarkDriver and BenchmarkDoctor #18719

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 20 commits into from
Aug 22, 2018

Conversation

palimondo
Copy link
Contributor

@palimondo palimondo commented Aug 15, 2018

This is followup to #18124 that makes use of the direct memory measurements in Benchmark_O with the --memory option from the Benchmark_Driver. The PR also introduces thorough unit test coverage of the Benchmark_Driver and all newly added functionality. Summary of changes:

  • Removes the legacy Benchmark_Driver command submit which is no longer used.
  • Introduces test_utils.py with homegrown unit testing helpers to support mocking.
  • Creates LogParser class for reading the output from Benchark_O, including --verbose mode.
  • Creates PerformanceTestsSamples class for computing thorough sample statistics, which can be used to exclude outliers.
  • Creates BenchmarkDriver class for running benchmarks. This is invoked as a new check command to the Benchmark_Driver, with an optional --verbose parameter.
  • Creates BenchmarkDoctor class for validating that benchmarks comply with the set of requirements (naming, runtime, memory) that ensure high quality of the Swift Benchmark Suite.
  • BenchmarkDriver is now dependent on compare_perf_tests.py, so it is also deployed to swift-bin-dir during build.

The incremental rewrite of the Benchmark_Driver's guts that adds full unit test coverage using the StranglerApplication refactoring pattern maintains the original functionality, with the exception of removing the bogus aggregate statistics from the last Totals row in the log. It now only reports the total number of executed benchmarks. The MAX_RSS column now reports the delta of memory used before and after running the benchmark, excluding the overhead of measurement infrastructure (i.e. the reported numbers are now lower by about 10MB).

I've structured the PR as a series of small, incremental changes with detailed descriptions in the commit messages, it is therefore best reviewed sequentially by individual commits.

@palimondo palimondo closed this Aug 16, 2018
@palimondo palimondo force-pushed the fluctuation-of-the-pupil branch from 24400f9 to 46981fe Compare August 16, 2018 06:37
Moved result formatting methods from `PerformanceTestResult` and `ResultComparison` to `ReportFormatter`, in order to free PTR to take more computational responsibilities in the future.
Also removed inused imports.
Moving the `captured_output` function to own file.

Adding homegrown unit testing helper classes `Stub` and `Mock`.

The issue is that the unittest.mock was added in Python 3.3 and we need to run on Python 2.7. `Stub` and `Mock` were organically developed as minimal implementations to support the common testing patterns used on the original branch, but since I’m rewriting the commit history to provide an easily digestible narrative, it makes sense to introduce them here in one step as a custom unit testing library.
The imports are a bit sketchy because it doesn’t have `.py` extension and they had to be hacked manually. :-/

Extracted `parse_args` from `main` and added test coverage for argument parsing.
See https://www.martinfowler.com/bliki/StranglerApplication.html for more info on the used pattern for refactoring legacy applications.

Introduced class `BenchmarkDriver` as a beginning of strangler application that will gradually replace old functions. Used it instead of `get_tests()` function in Benchmark_Driver.

The interaction with Benchmark_O is simulated through mocking. `SubprocessMock` class records the invocations of command line processes and responds with canned replies in the format of Benchmark_O output.

Removed 3 redundant lit tests that are now covered by the unit test `test_gets_list_of_all_benchmarks_when_benchmarks_args_exist`. This saves 3 seconds from test execution. Keeping only single integration test that verifies that the plumbing is connected correstly.
LogParser doesn’t use `csv.reader` anymore.
Parsing is handled by a Finite State Machine. Each line is matched against a set of (mutually exclusive) regular expressions that represent known states. When a match is found, corresponding parsing action is taken.
Added support for tab delimited and formatted log output (space aligned columns as output to console by Benchmark_Driver).
Measure more of environment during test

In addition to measuring maximum resident set size, also extract number of voluntary and involuntary context switches from the verbose mode.
@palimondo palimondo reopened this Aug 16, 2018
@palimondo palimondo changed the title WIP [benchmarks] BenchmarkDriver and BenchmarkDoctor [benchmarks] BenchmarkDriver and BenchmarkDoctor Aug 16, 2018
@palimondo palimondo changed the title [benchmarks] BenchmarkDriver and BenchmarkDoctor [benchmark] BenchmarkDriver and BenchmarkDoctor Aug 16, 2018
@palimondo
Copy link
Contributor Author

@eeckstein Please review 🙏

* Moved the functionality to compute median, standard deviation and related statistics from `PerformanceTestResult` into `PerformanceTestSamples`.
* Fixed wrong unit in comments
Introduce algorithm for excluding of outliers after collecting all samples using the Interquartile Range rule.

The `exclude_outliers` method uses 1st and 3rd Quartile to compute Interquartile Range, then uses inner fences at Q1 - 1.5*IQR and Q3 + 1.5*IQR to remove samples outside this fence.

Based on experiments with collecting hundreads and thousands of samples (`num_samples`) per test with low iteration count (`num_iters`) with ~1s runtime, this rule is very effective in providing much better quality of sample population, effectively removing short environmental fluctuations that were previously averaged into the overall result (by the adaptively determined `num_iters` to run for ~1s), enlarging the reported result with these measurement errors. This technique can be used for some benchmarks, to get more stable results faster than before.

This outlier filering is employed when parsing `--verbose` test results.
Option to exclude the outliers only from top of the range, leaving in the outliers on the min side.
The `run` method on `BenchmarkDriver` invokes the test harness with specified number of iterations, samples. It supports mesuring memory use and in the verbose mode it also collects individual samples and monitors the system load by counting the number of voluntary and involuntary context switches.

Output is parsed using `LogParser` from `compare_perf_tests.py`. This makes that file a required dependency for the driver, therefore it is also copied to the bin directory during the build.
Replaced guts of the `run_benchmarks` function with implementation from `BenchmarDriver`. There was only single client which called it with `verbose=True`, so this parameter could be safely removed.

Function `instrument_test` is replaced by running the `Benchmark_0` with `--memory` option, which implements the MAX_RSS measurement while also excluding the overhead from the benchmarking infrastructure. The incorrect computation of standard deviation was simply dropped for measurements of more than one independent sample. Bogus aggregated `Totals` statistics were removed, now reporting only the total number of executed benchmarks.
`BenchmarkDoctor` analyzes performance tests and reports their conformance to the set of desired criteria. First two rules verify the naming convention.

`BenchmarkDoctor` is invoked from `Benchmark_Driver` with `check` aurgument.
`BenchmarkDoctor` measures benchmark execution (using `BenchmarkDriver`) and verifies that their runtime stays under 2500 microseconds.
Detect setup overhead in benchmark and report if it exceeds 5%.
@palimondo palimondo force-pushed the fluctuation-of-the-pupil branch 2 times, most recently from 9c35c11 to 34db547 Compare August 17, 2018 06:55
@palimondo
Copy link
Contributor Author

I've pushed fixes for minor formatting issues raised by python lint.

This needs to be finished with function approximating normal range based on the memory used.
@palimondo palimondo force-pushed the fluctuation-of-the-pupil branch from 34db547 to f38e6df Compare August 20, 2018 14:52
Copy link
Contributor

@eeckstein eeckstein left a comment

Choose a reason for hiding this comment

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

lgtm.
I didn't review in very detail, but I trust you that the changes will not break anything. It's great that you added all the test.

Regarding the test in Benchmark doctor which checks for naming convention: we can check for this but to be clear: just violating naming conventions does not make it worth renaming benchmarks and breaking history with this.

if len(test) > 40:
BenchmarkDoctor.log_naming.warning(
"'%s' name is longer than 40 characters.", test)
def _name_is_at_most_40_chars_long(measurements):
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure if this rule makes sense. If longer names cause troubles in reports, we should rather fix the reports

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have tried my best to fix the reports before, see the still open #9999. But there is no way to make it work on mobile. GitHub doesn’t give us much control over the CSS, which is the key.

If we follow your previous rename-benchmark-when-runtime-changes-significantly rule, we will be renaming most (all?) of the tests that violate the max-length-40 naming rule while fixing the runtime-under-2500-microseconds violations anyway.

@palimondo
Copy link
Contributor Author

palimondo commented Aug 21, 2018

I have tried my best to fix the reports before, see the still open #9999. But there is no way to make it work on mobile. GitHub doesn’t give us much control over the CSS, which is the key. So I've resigned to just making the reports table not scroll on desktop, where it would be sufficient to just shorten the overly long names to the 40 character limit, without introducing all the complexity of word-breaking in the report that's in #9999. That's the motivation for the naming rule.

If we follow your previous precedent rename-benchmark-when-runtime-changes-significantly as a rule, we will be renaming most (all?) of the tests that violate the max-length-40 naming rule while fixing the runtime-under-2500-microseconds rule violations anyway.

Could you ask @swift-ci to do python lint and benchmark, please?

@eeckstein
Copy link
Contributor

we will be renaming most (all?) of the tests that violate the max-length-40 naming rule while fixing the runtime-under-2500-microseconds rule violations anyway.

That's fine. But in general, I really don't want to mass-change/rename benchmarks which are not noisy anyway, even if they have >2.5ms/iteration. It would cause a big disruption in our performance tracking.
We should only do that for problematic benchmarks.

@eeckstein
Copy link
Contributor

@swift-ci benchmark

@eeckstein
Copy link
Contributor

@swift-ci Please Python lint

@palimondo
Copy link
Contributor Author

But in general, I really don't want to mass-change/rename benchmarks which are not noisy anyway, even if they have >2.5ms/iteration. It would cause a big disruption in our performance tracking.

Could you explain more about the disruption that would cause, so that we may find a good solution? Getting the runtimes down is quite crucial to driving the noise out as well as to speeding up the whole measurement. Maybe we should take this discussion to forum once this lands...

@eeckstein
Copy link
Contributor

@swift-ci benchmark

@eeckstein
Copy link
Contributor

@swift-ci Please Python lint

@eeckstein
Copy link
Contributor

ok, let's discuss it on the forum

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (1)
TEST OLD NEW DELTA SPEEDUP
DataReplaceMediumBuffer 11999 12953 +8.0% 0.93x (?)
No Changes (446)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3553 3546 -0.2% 1.00x (?)
AnyHashableWithAClass 89100 89265 +0.2% 1.00x (?)
Array2D 2717 2717 +0.0% 1.00x
ArrayAppend 797 796 -0.1% 1.00x (?)
ArrayAppendArrayOfInt 793 783 -1.3% 1.01x (?)
ArrayAppendAscii 3893 3786 -2.7% 1.03x (?)
ArrayAppendAsciiSubstring 24910 24921 +0.0% 1.00x (?)
ArrayAppendFromGeneric 789 791 +0.3% 1.00x (?)
ArrayAppendGenericStructs 1414 1423 +0.6% 0.99x (?)
ArrayAppendLatin1 39660 39913 +0.6% 0.99x (?)
ArrayAppendLatin1Substring 139391 139515 +0.1% 1.00x (?)
ArrayAppendLazyMap 1339 1329 -0.7% 1.01x (?)
ArrayAppendOptionals 1421 1418 -0.2% 1.00x (?)
ArrayAppendRepeatCol 1336 1327 -0.7% 1.01x (?)
ArrayAppendReserved 527 527 +0.0% 1.00x
ArrayAppendSequence 1118 1114 -0.4% 1.00x (?)
ArrayAppendStrings 6214 6188 -0.4% 1.00x (?)
ArrayAppendToFromGeneric 788 791 +0.4% 1.00x (?)
ArrayAppendToGeneric 784 794 +1.3% 0.99x (?)
ArrayAppendUTF16 40129 40219 +0.2% 1.00x (?)
ArrayAppendUTF16Substring 138122 137854 -0.2% 1.00x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 152 152 +0.0% 1.00x
ArrayOfGenericRef 4324 4323 -0.0% 1.00x (?)
ArrayOfPOD 184 185 +0.5% 0.99x (?)
ArrayOfRef 4300 4297 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 798 780 -2.3% 1.02x (?)
ArrayPlusEqualFiveElementCollection 4190 4192 +0.0% 1.00x (?)
ArrayPlusEqualSingleElementCollection 794 790 -0.5% 1.01x (?)
ArrayPlusEqualThreeElements 1628 1626 -0.1% 1.00x (?)
ArraySubscript 1562 1562 +0.0% 1.00x
ArrayValueProp 8 8 +0.0% 1.00x
ArrayValueProp2 8 8 +0.0% 1.00x
ArrayValueProp3 8 8 +0.0% 1.00x
ArrayValueProp4 8 8 +0.0% 1.00x
BinaryFloatingPointPropertiesBinade 31 31 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 29 29 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 37 37 +0.0% 1.00x
BitCount 169 169 +0.0% 1.00x
ByteSwap 105 105 +0.0% 1.00x
COWArrayGuaranteedParameterOverhead 11546 11583 +0.3% 1.00x (?)
COWTree 3596 3581 -0.4% 1.00x (?)
CSVParsing2 1713 1712 -0.1% 1.00x (?)
CSVParsingAlt2 1746 1746 +0.0% 1.00x
CSVParsingAltIndices2 760 758 -0.3% 1.00x (?)
CStringLongAscii 3532 3527 -0.1% 1.00x (?)
CStringLongNonAscii 2120 2121 +0.0% 1.00x (?)
CStringShortAscii 3162 3160 -0.1% 1.00x (?)
Calculator 210 208 -1.0% 1.01x
CaptureProp 4070 4076 +0.1% 1.00x (?)
ChainedFilterMap 1407 1407 +0.0% 1.00x
CharIndexing_ascii_unicodeScalars 16639 16641 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 16429 16429 +0.0% 1.00x
CharIndexing_chinese_unicodeScalars 12610 12607 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 12362 12357 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 19910 19914 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 19559 19563 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 16139 16136 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 15856 15853 -0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 3037 3038 +0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2964 2964 +0.0% 1.00x
CharIndexing_punctuated_unicodeScalars 3795 3796 +0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3709 3707 -0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars 13870 13866 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 13693 13692 -0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 32766 32752 -0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 31599 31601 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 22802 22815 +0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 23319 23028 -1.2% 1.01x (?)
CharIteration_ascii_unicodeScalars 20554 20554 +0.0% 1.00x
CharIteration_ascii_unicodeScalars_Backwards 15472 15471 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 15554 15569 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 11719 11717 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 24599 24611 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 18524 18523 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 19924 19948 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 15003 15003 +0.0% 1.00x
CharIteration_punctuatedJapanese_unicodeScalars 3674 3671 -0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2799 2799 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars 4612 4610 -0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3503 3503 +0.0% 1.00x
CharIteration_russian_unicodeScalars 17104 17130 +0.2% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 12890 12892 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 40550 40586 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 30566 30559 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 27601 27584 -0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 18416 18412 -0.0% 1.00x (?)
CharacterLiteralsLarge 5841 5849 +0.1% 1.00x (?)
CharacterLiteralsSmall 220 220 +0.0% 1.00x
CharacterPropertiesFetch 4490 4510 +0.4% 1.00x (?)
CharacterPropertiesPrecomputed 960 963 +0.3% 1.00x (?)
CharacterPropertiesStashed 1678 1676 -0.1% 1.00x (?)
CharacterPropertiesStashedMemo 1411 1415 +0.3% 1.00x (?)
Chars2 2624 2624 +0.0% 1.00x
ClassArrayGetter2 124 123 -0.8% 1.01x (?)
Combos 490 490 +0.0% 1.00x
DataAccessBytes 1136 1137 +0.1% 1.00x (?)
DataAppendArray 5281 5287 +0.1% 1.00x (?)
DataAppendBytes 5009 4966 -0.9% 1.01x (?)
DataAppendDataLargeToLarge 67444 66398 -1.6% 1.02x (?)
DataAppendDataLargeToMedium 35233 35229 -0.0% 1.00x (?)
DataAppendDataLargeToSmall 34123 34420 +0.9% 0.99x (?)
DataAppendDataMediumToLarge 37713 37583 -0.3% 1.00x (?)
DataAppendDataMediumToMedium 6505 6541 +0.6% 0.99x (?)
DataAppendDataMediumToSmall 5846 5856 +0.2% 1.00x (?)
DataAppendDataSmallToLarge 36856 36928 +0.2% 1.00x (?)
DataAppendDataSmallToMedium 6136 6138 +0.0% 1.00x (?)
DataAppendDataSmallToSmall 5628 5634 +0.1% 1.00x (?)
DataAppendSequence 20889 20986 +0.5% 1.00x (?)
DataCopyBytes 456 458 +0.4% 1.00x (?)
DataCount 37 37 +0.0% 1.00x
DataMutateBytes 3830 3839 +0.2% 1.00x (?)
DataReplaceLarge 36818 36885 +0.2% 1.00x (?)
DataReplaceLargeBuffer 57873 58568 +1.2% 0.99x (?)
DataReplaceMedium 7975 8000 +0.3% 1.00x (?)
DataReplaceSmall 5822 5677 -2.5% 1.03x (?)
DataReplaceSmallBuffer 9306 9325 +0.2% 1.00x (?)
DataReset 2788 2803 +0.5% 0.99x (?)
DataSetCount 549 549 +0.0% 1.00x
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 783 786 +0.4% 1.00x (?)
Dictionary 494 494 +0.0% 1.00x
Dictionary2 622 622 +0.0% 1.00x
Dictionary2OfObjects 2067 2066 -0.0% 1.00x (?)
Dictionary3 212 212 +0.0% 1.00x
Dictionary3OfObjects 714 713 -0.1% 1.00x (?)
Dictionary4 298 298 +0.0% 1.00x
Dictionary4Legacy 653 652 -0.2% 1.00x (?)
Dictionary4OfObjects 418 418 +0.0% 1.00x
Dictionary4OfObjectsLegacy 840 839 -0.1% 1.00x (?)
DictionaryBridge 1208 1202 -0.5% 1.00x (?)
DictionaryBridgeToObjC_Access 874 878 +0.5% 1.00x (?)
DictionaryBridgeToObjC_Bridge 19 19 +0.0% 1.00x
DictionaryBridgeToObjC_BulkAccess 162 162 +0.0% 1.00x
DictionaryCompactMapValuesOfCastValue 10825 10867 +0.4% 1.00x (?)
DictionaryCompactMapValuesOfNilValue 6382 6391 +0.1% 1.00x (?)
DictionaryCopy 98912 98016 -0.9% 1.01x (?)
DictionaryFilter 99029 99055 +0.0% 1.00x (?)
DictionaryGroup 199 199 +0.0% 1.00x
DictionaryGroupOfObjects 2090 2089 -0.0% 1.00x (?)
DictionaryKeysContainsCocoa 39 39 +0.0% 1.00x
DictionaryKeysContainsNative 30 30 +0.0% 1.00x
DictionaryLiteral 1824 1823 -0.1% 1.00x (?)
DictionaryOfObjects 2365 2365 +0.0% 1.00x
DictionaryRemove 5270 5271 +0.0% 1.00x (?)
DictionaryRemoveOfObjects 25021 24960 -0.2% 1.00x (?)
DictionarySubscriptDefaultMutation 243 243 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 583 582 -0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 3975 3974 -0.0% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1695 1684 -0.6% 1.01x (?)
DictionarySwap 939 939 +0.0% 1.00x
DictionarySwapAt 6274 6272 -0.0% 1.00x (?)
DictionarySwapAtOfObjects 51702 51252 -0.9% 1.01x (?)
DictionarySwapOfObjects 8645 8585 -0.7% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 64676 64528 -0.2% 1.00x (?)
DropFirstAnySeqCRangeIter 93 93 +0.0% 1.00x
DropFirstAnySeqCRangeIterLazy 93 93 +0.0% 1.00x
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 1841 1841 +0.0% 1.00x
DropFirstAnySequenceLazy 1842 1841 -0.1% 1.00x (?)
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 29 29 +0.0% 1.00x
DropFirstCountableRangeLazy 29 29 +0.0% 1.00x
DropFirstSequence 2679 2680 +0.0% 1.00x (?)
DropFirstSequenceLazy 2770 2770 +0.0% 1.00x
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21632 21502 -0.6% 1.01x (?)
DropLastAnySeqCRangeIter 3299 3306 +0.2% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3303 3291 -0.4% 1.00x (?)
DropLastAnySeqCntRange 9 9 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 9 9 +0.0% 1.00x
DropLastAnySequence 4929 4933 +0.1% 1.00x (?)
DropLastAnySequenceLazy 5023 5012 -0.2% 1.00x (?)
DropLastSequence 665 666 +0.2% 1.00x (?)
DropLastSequenceLazy 665 665 +0.0% 1.00x
DropWhileAnyCollection 99 99 +0.0% 1.00x
DropWhileAnyCollectionLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCRangeIter 75 75 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 147 147 +0.0% 1.00x
DropWhileAnySequence 1854 1854 +0.0% 1.00x
DropWhileAnySequenceLazy 1854 1853 -0.1% 1.00x (?)
DropWhileArrayLazy 105 105 +0.0% 1.00x
DropWhileCountableRange 30 30 +0.0% 1.00x
DropWhileCountableRangeLazy 82 82 +0.0% 1.00x
DropWhileSequence 2205 2206 +0.0% 1.00x (?)
DropWhileSequenceLazy 105 105 +0.0% 1.00x
EqualStringSubstring 48 48 +0.0% 1.00x
EqualSubstringString 48 48 +0.0% 1.00x
EqualSubstringSubstring 48 48 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 48 48 +0.0% 1.00x
ErrorHandling 1195 1190 -0.4% 1.00x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 1407 1407 +0.0% 1.00x
FilterEvenUsingReduce 1323 1309 -1.1% 1.01x (?)
FilterEvenUsingReduceInto 159 159 +0.0% 1.00x
FloatingPointPrinting_Double_description_small 21548 21492 -0.3% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 20998 21005 +0.0% 1.00x (?)
FloatingPointPrinting_Double_interpolated 60726 60639 -0.1% 1.00x (?)
FloatingPointPrinting_Float80_description_small 28428 28505 +0.3% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 27696 27664 -0.1% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 64407 64417 +0.0% 1.00x (?)
FloatingPointPrinting_Float_description_small 5715 5716 +0.0% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 5863 5853 -0.2% 1.00x (?)
FloatingPointPrinting_Float_interpolated 37846 37880 +0.1% 1.00x (?)
FrequenciesUsingReduce 4722 4698 -0.5% 1.01x (?)
FrequenciesUsingReduceInto 1478 1480 +0.1% 1.00x (?)
Hanoi 2084 2083 -0.0% 1.00x (?)
HashTest 940 943 +0.3% 1.00x (?)
Histogram 583 583 +0.0% 1.00x
Integrate 335 334 -0.3% 1.00x (?)
IterateData 1447 1448 +0.1% 1.00x (?)
Join 160 160 +0.0% 1.00x
LazilyFilteredArrayContains 33483 33483 +0.0% 1.00x
LazilyFilteredArrays2 4585 4587 +0.0% 1.00x (?)
LazilyFilteredRange 3657 3655 -0.1% 1.00x (?)
LessSubstringSubstring 48 48 +0.0% 1.00x
LessSubstringSubstringGenericComparable 48 48 +0.0% 1.00x
LinkedList 7552 7558 +0.1% 1.00x (?)
LuhnAlgoEager 438 435 -0.7% 1.01x (?)
LuhnAlgoLazy 434 433 -0.2% 1.00x (?)
MapReduce 369 369 +0.0% 1.00x
MapReduceAnyCollection 370 369 -0.3% 1.00x (?)
MapReduceAnyCollectionShort 1994 1998 +0.2% 1.00x (?)
MapReduceClass 2979 2982 +0.1% 1.00x (?)
MapReduceClassShort 4526 4522 -0.1% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 466 465 -0.2% 1.00x (?)
MapReduceShort 1977 1988 +0.6% 0.99x (?)
MapReduceShortString 20 20 +0.0% 1.00x
MapReduceString 47 47 +0.0% 1.00x
Memset 215 212 -1.4% 1.01x (?)
MonteCarloE 10321 10369 +0.5% 1.00x (?)
MonteCarloPi 42873 42912 +0.1% 1.00x (?)
NSDictionaryCastToSwift 6987 7107 +1.7% 0.98x (?)
NSError 165 165 +0.0% 1.00x
NSStringConversion 672 672 +0.0% 1.00x
NibbleSort 3290 3291 +0.0% 1.00x (?)
NopDeinit 30152 30145 -0.0% 1.00x (?)
ObjectAllocation 132 132 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 24223 25377 +4.8% 0.95x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4386 4312 -1.7% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45735 45364 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 43628 42727 -2.1% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 105004 105564 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 45382 45854 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 3801 3798 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 68535 68026 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSString 1188 1185 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2439 2443 +0.2% 1.00x (?)
ObjectiveCBridgeStubDataAppend 6306 6307 +0.0% 1.00x (?)
ObjectiveCBridgeStubDateMutation 400 400 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString2 3428 3301 -3.7% 1.04x (?)
ObjectiveCBridgeStubFromNSString 1030 1032 +0.2% 1.00x (?)
ObjectiveCBridgeStubNSDataAppend 2554 2545 -0.4% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString2 3930 3929 -0.0% 1.00x (?)
ObjectiveCBridgeStubToNSDate2 1605 1601 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSString 2341 2339 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 121 121 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath2 2644 2714 +2.6% 0.97x (?)
ObjectiveCBridgeStubURLAppendPathRef2 2689 2689 +0.0% 1.00x
ObjectiveCBridgeToNSArray 14608 14480 -0.9% 1.01x (?)
ObjectiveCBridgeToNSDictionary 27505 27800 +1.1% 0.99x (?)
ObjectiveCBridgeToNSSet 17024 17285 +1.5% 0.98x (?)
ObjectiveCBridgeToNSString 446 446 +0.0% 1.00x
ObserverClosure 2163 2162 -0.0% 1.00x (?)
ObserverForwarderStruct 1187 1184 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 3718 3726 +0.2% 1.00x (?)
ObserverUnappliedMethod 2473 2473 +0.0% 1.00x
OpaqueConsumingUsers 4178 4179 +0.0% 1.00x (?)
OpenClose 73 72 -1.4% 1.01x
Phonebook 6856 6851 -0.1% 1.00x (?)
PointerArithmetics 31488 31491 +0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1791 1791 +0.0% 1.00x
PopFrontArrayGeneric 1816 1815 -0.1% 1.00x (?)
PopFrontUnsafePointer 8742 8739 -0.0% 1.00x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 64772 64541 -0.4% 1.00x (?)
PrefixAnySeqCRangeIter 33 33 +0.0% 1.00x
PrefixAnySeqCRangeIterLazy 33 33 +0.0% 1.00x
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 1378 1378 +0.0% 1.00x
PrefixAnySequenceLazy 1378 1378 +0.0% 1.00x
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 29 29 +0.0% 1.00x
PrefixCountableRangeLazy 29 29 +0.0% 1.00x
PrefixSequence 2209 2208 -0.0% 1.00x (?)
PrefixSequenceLazy 2275 2275 +0.0% 1.00x
PrefixWhileAnyCollection 146 146 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 89 89 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 367 368 +0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 89 89 +0.0% 1.00x
PrefixWhileAnySequence 1522 1523 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1390 1389 -0.1% 1.00x (?)
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileSequence 326 326 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 899 901 +0.2% 1.00x (?)
PrimsSplit 899 897 -0.2% 1.00x (?)
QueueConcrete 1134 1135 +0.1% 1.00x (?)
QueueGeneric 1127 1127 +0.0% 1.00x
RC4 154 154 +0.0% 1.00x
RGBHistogram 2353 2364 +0.5% 1.00x (?)
RGBHistogramOfObjects 20034 19978 -0.3% 1.00x (?)
Radix2CooleyTukey 12170 11905 -2.2% 1.02x (?)
Radix2CooleyTukeyf 8783 8762 -0.2% 1.00x (?)
RandomDoubleDef 26954 26975 +0.1% 1.00x (?)
RandomDoubleLCG 2233 2233 +0.0% 1.00x
RandomIntegersDef 24534 24526 -0.0% 1.00x (?)
RandomIntegersLCG 178 178 +0.0% 1.00x
RandomShuffleDef2 2585 2585 +0.0% 1.00x
RandomShuffleLCG2 1779 1780 +0.1% 1.00x (?)
RangeAssignment 334 335 +0.3% 1.00x (?)
RangeIterationSigned 171 171 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 1048 1045 -0.3% 1.00x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 47 47 +0.0% 1.00x
RemoveWhereFilterString 243 242 -0.4% 1.00x (?)
RemoveWhereFilterStrings 435 435 +0.0% 1.00x
RemoveWhereMoveInts 14 14 +0.0% 1.00x
RemoveWhereMoveStrings 707 707 +0.0% 1.00x
RemoveWhereQuadraticInts 1284 1282 -0.2% 1.00x (?)
RemoveWhereQuadraticString 359 363 +1.1% 0.99x (?)
RemoveWhereQuadraticStrings 2754 2750 -0.1% 1.00x (?)
RemoveWhereSwapInts 20 20 +0.0% 1.00x
RemoveWhereSwapStrings 862 861 -0.1% 1.00x (?)
ReversedArray2 200 200 +0.0% 1.00x
ReversedBidirectional 13811 13813 +0.0% 1.00x (?)
ReversedDictionary2 317 317 +0.0% 1.00x
RomanNumbers 77095 77251 +0.2% 1.00x (?)
SequenceAlgosAnySequence 12632 12585 -0.4% 1.00x (?)
SequenceAlgosArray 1569 1572 +0.2% 1.00x (?)
SequenceAlgosContiguousArray 1578 1575 -0.2% 1.00x (?)
SequenceAlgosList 1352 1352 +0.0% 1.00x
SequenceAlgosRange 2576 2576 +0.0% 1.00x
SequenceAlgosUnfoldSequence 1105 1105 +0.0% 1.00x
SetExclusiveOr 4857 4855 -0.0% 1.00x (?)
SetExclusiveOr_OfObjects 11295 11273 -0.2% 1.00x (?)
SetIntersect 585 582 -0.5% 1.01x (?)
SetIntersect_OfObjects 1615 1619 +0.2% 1.00x (?)
SetIsSubsetOf 317 317 +0.0% 1.00x
SetIsSubsetOf_OfObjects 429 429 +0.0% 1.00x
SetUnion 4120 4122 +0.0% 1.00x (?)
SetUnion_OfObjects 9718 9707 -0.1% 1.00x (?)
SevenBoom 849 843 -0.7% 1.01x (?)
Sim2DArray 311 312 +0.3% 1.00x (?)
SortAdjacentIntPyramids 10236 10228 -0.1% 1.00x (?)
SortIntPyramid 8753 8752 -0.0% 1.00x (?)
SortLargeExistentials 5424 5410 -0.3% 1.00x (?)
SortLettersInPlace 943 934 -1.0% 1.01x (?)
SortSortedStrings 665 666 +0.2% 1.00x (?)
SortStrings 1438 1439 +0.1% 1.00x (?)
SortStringsUnicode 2036 2036 +0.0% 1.00x
StackPromo 24648 24436 -0.9% 1.01x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1781 1782 +0.1% 1.00x (?)
StrToInt 3193 3246 +1.7% 0.98x
StringAdder 547 547 +0.0% 1.00x
StringBuilder 490 490 +0.0% 1.00x
StringBuilderLong 1232 1222 -0.8% 1.01x (?)
StringBuilderSmallReservingCapacity 500 500 +0.0% 1.00x
StringBuilderWithLongSubstring 1473 1471 -0.1% 1.00x (?)
StringComparison_abnormal 762 762 +0.0% 1.00x
StringComparison_ascii 943 943 +0.0% 1.00x
StringComparison_emoji 851 850 -0.1% 1.00x (?)
StringComparison_fastPrenormal 872 872 +0.0% 1.00x
StringComparison_latin1 643 644 +0.2% 1.00x (?)
StringComparison_longSharedPrefix 940 941 +0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 1676 1674 -0.1% 1.00x (?)
StringComparison_slowerPrenormal 1790 1788 -0.1% 1.00x (?)
StringComparison_zalgo 111974 112163 +0.2% 1.00x (?)
StringEdits 166815 166488 -0.2% 1.00x (?)
StringEnumRawValueInitialization 858 860 +0.2% 1.00x (?)
StringEqualPointerComparison 314 314 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2232 2233 +0.0% 1.00x (?)
StringHasPrefixUnicode 98352 98329 -0.0% 1.00x (?)
StringHasSuffixAscii 2318 2318 +0.0% 1.00x
StringHasSuffixUnicode 99125 99030 -0.1% 1.00x (?)
StringHashing_abnormal 1339 1337 -0.1% 1.00x (?)
StringHashing_ascii 34 34 +0.0% 1.00x
StringHashing_emoji 1944 1942 -0.1% 1.00x (?)
StringHashing_fastPrenormal 8381 8408 +0.3% 1.00x (?)
StringHashing_latin1 2560 2568 +0.3% 1.00x (?)
StringHashing_longSharedPrefix 7715 7721 +0.1% 1.00x (?)
StringHashing_nonBMPSlowestPrenormal 2122 2124 +0.1% 1.00x (?)
StringHashing_slowerPrenormal 2736 2734 -0.1% 1.00x (?)
StringHashing_zalgo 3508 3505 -0.1% 1.00x (?)
StringInterpolation 8747 8760 +0.1% 1.00x (?)
StringInterpolationManySmallSegments 17580 17308 -1.5% 1.02x (?)
StringInterpolationSmall 3996 3982 -0.4% 1.00x (?)
StringMatch 12090 12089 -0.0% 1.00x (?)
StringRemoveDupes 463 463 +0.0% 1.00x
StringUTF16Builder 2520 2534 +0.6% 0.99x (?)
StringUTF16SubstringBuilder 5664 5668 +0.1% 1.00x (?)
StringWalk 1544 1543 -0.1% 1.00x (?)
StringWithCString2 1786 1786 +0.0% 1.00x
StringWordBuilder 2240 2243 +0.1% 1.00x (?)
StringWordBuilderReservingCapacity 1615 1616 +0.1% 1.00x (?)
SubstringComparable 12 12 +0.0% 1.00x
SubstringEqualString 601 602 +0.2% 1.00x (?)
SubstringEquatable 1393 1393 +0.0% 1.00x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21572 21519 -0.2% 1.00x (?)
SuffixAnySeqCRangeIter 3603 3603 +0.0% 1.00x
SuffixAnySeqCRangeIterLazy 3606 3592 -0.4% 1.00x (?)
SuffixAnySeqCntRange 14 14 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 14 14 +0.0% 1.00x
SuffixAnySequence 4943 4941 -0.0% 1.00x (?)
SuffixAnySequenceLazy 5080 5061 -0.4% 1.00x (?)
SuffixSequence 3605 3609 +0.1% 1.00x (?)
SuffixSequenceLazy 3606 3627 +0.6% 0.99x (?)
SumUsingReduce 102 101 -1.0% 1.01x
SumUsingReduceInto 101 101 +0.0% 1.00x
SuperChars 19251 19269 +0.1% 1.00x (?)
TwoSum 1361 1361 +0.0% 1.00x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 303 303 +0.0% 1.00x
UTF8Decode_InitDecoding 1336 1337 +0.1% 1.00x (?)
UTF8Decode_InitDecoding_ascii 649 650 +0.2% 1.00x (?)
UTF8Decode_InitFromBytes 1199 1202 +0.3% 1.00x (?)
UTF8Decode_InitFromBytes_ascii 475 477 +0.4% 1.00x (?)
UTF8Decode_InitFromData 1244 1239 -0.4% 1.00x (?)
UTF8Decode_InitFromData_ascii 695 695 +0.0% 1.00x
Walsh 413 412 -0.2% 1.00x (?)
WordCountHistogramASCII 6687 6714 +0.4% 1.00x (?)
WordCountHistogramUTF16 10155 10126 -0.3% 1.00x (?)
WordCountUniqueASCII 2012 2041 +1.4% 0.99x (?)
WordCountUniqueUTF16 4448 4495 +1.1% 0.99x (?)
XorLoop 394 389 -1.3% 1.01x (?)

Unoptimized (Onone)

Regression (9)
TEST OLD NEW DELTA SPEEDUP
StringFromLongWholeSubstring 22 29 +31.8% 0.76x
SubstringFromLongString 15 17 +13.3% 0.88x
CharIteration_punctuated_unicodeScalars_Backwards 54526 61087 +12.0% 0.89x (?)
UTF8Decode_InitFromData_ascii 721 792 +9.8% 0.91x (?)
StringBuilderWithLongSubstring 3239 3552 +9.7% 0.91x (?)
CharIndexing_japanese_unicodeScalars_Backwards 424112 464994 +9.6% 0.91x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 61681 67529 +9.5% 0.91x (?)
CharIndexing_chinese_unicodeScalars_Backwards 278776 299288 +7.4% 0.93x (?)
ArrayPlusEqualThreeElements 9323 9885 +6.0% 0.94x (?)
Improvement (12)
TEST OLD NEW DELTA SPEEDUP
CharIteration_chinese_unicodeScalars_Backwards 213199 186321 -12.6% 1.14x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 49163 43040 -12.5% 1.14x (?)
CharIteration_ascii_unicodeScalars_Backwards 279808 246000 -12.1% 1.14x (?)
CharIndexing_ascii_unicodeScalars 350473 314657 -10.2% 1.11x (?)
CharIndexing_tweet_unicodeScalars 699053 627712 -10.2% 1.11x (?)
Dictionary4Legacy 1540 1419 -7.9% 1.09x (?)
CharIndexing_utf16_unicodeScalars 302483 282082 -6.7% 1.07x (?)
SubstringFromLongStringGeneric 110 103 -6.4% 1.07x
SuperChars 82475 77446 -6.1% 1.06x (?)
CharIndexing_korean_unicodeScalars_Backwards 392378 371785 -5.2% 1.06x
DataReplaceMediumBuffer 13351 12678 -5.0% 1.05x (?)
ArrayValueProp2 15401 14627 -5.0% 1.05x
No Changes (426)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5013 5126 +2.3% 0.98x (?)
AnyHashableWithAClass 108049 105655 -2.2% 1.02x
Array2D 502916 502749 -0.0% 1.00x (?)
ArrayAppend 4443 4451 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 866 852 -1.6% 1.02x (?)
ArrayAppendAscii 26428 26474 +0.2% 1.00x (?)
ArrayAppendAsciiSubstring 71291 71295 +0.0% 1.00x (?)
ArrayAppendFromGeneric 871 872 +0.1% 1.00x (?)
ArrayAppendGenericStructs 1486 1511 +1.7% 0.98x (?)
ArrayAppendLatin1 63226 63443 +0.3% 1.00x (?)
ArrayAppendLatin1Substring 159487 159521 +0.0% 1.00x (?)
ArrayAppendLazyMap 164340 164853 +0.3% 1.00x (?)
ArrayAppendOptionals 1521 1514 -0.5% 1.00x (?)
ArrayAppendRepeatCol 190752 190302 -0.2% 1.00x
ArrayAppendReserved 4158 4160 +0.0% 1.00x (?)
ArrayAppendSequence 100632 100822 +0.2% 1.00x (?)
ArrayAppendStrings 6344 6333 -0.2% 1.00x (?)
ArrayAppendToFromGeneric 873 859 -1.6% 1.02x (?)
ArrayAppendToGeneric 878 882 +0.5% 1.00x (?)
ArrayAppendUTF16 63414 63569 +0.2% 1.00x (?)
ArrayAppendUTF16Substring 158138 158288 +0.1% 1.00x (?)
ArrayInClass 4696 4696 +0.0% 1.00x
ArrayLiteral 1581 1598 +1.1% 0.99x (?)
ArrayOfGenericPOD2 1069 1069 +0.0% 1.00x
ArrayOfGenericRef 10273 10248 -0.2% 1.00x (?)
ArrayOfPOD 759 760 +0.1% 1.00x (?)
ArrayOfRef 9415 9402 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 871 876 +0.6% 0.99x (?)
ArrayPlusEqualFiveElementCollection 224522 226275 +0.8% 0.99x (?)
ArrayPlusEqualSingleElementCollection 222605 223909 +0.6% 0.99x (?)
ArraySubscript 107345 107088 -0.2% 1.00x (?)
ArrayValueProp 3210 3233 +0.7% 0.99x (?)
ArrayValueProp3 3736 3798 +1.7% 0.98x (?)
ArrayValueProp4 3695 3693 -0.1% 1.00x (?)
BinaryFloatingPointPropertiesBinade 94 94 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 140 140 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 130 130 +0.0% 1.00x
BitCount 8996 8997 +0.0% 1.00x (?)
ByteSwap 9774 9777 +0.0% 1.00x (?)
COWArrayGuaranteedParameterOverhead 16608 16134 -2.9% 1.03x (?)
COWTree 12186 12129 -0.5% 1.00x (?)
CSVParsing2 7612 7309 -4.0% 1.04x (?)
CSVParsingAlt2 3357 3257 -3.0% 1.03x (?)
CSVParsingAltIndices2 6371 6337 -0.5% 1.01x (?)
CStringLongAscii 3614 3609 -0.1% 1.00x (?)
CStringLongNonAscii 2236 2222 -0.6% 1.01x
CStringShortAscii 5988 5995 +0.1% 1.00x (?)
Calculator 1067 1070 +0.3% 1.00x
CaptureProp 290782 290153 -0.2% 1.00x (?)
ChainedFilterMap 228161 229353 +0.5% 0.99x
CharIndexing_ascii_unicodeScalars_Backwards 359932 356606 -0.9% 1.01x (?)
CharIndexing_chinese_unicodeScalars 264013 261687 -0.9% 1.01x (?)
CharIndexing_japanese_unicodeScalars 425467 425628 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 346819 336877 -2.9% 1.03x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 61277 62982 +2.8% 0.97x (?)
CharIndexing_punctuated_unicodeScalars 80103 79043 -1.3% 1.01x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 79118 77520 -2.0% 1.02x (?)
CharIndexing_russian_unicodeScalars 293381 281517 -4.0% 1.04x (?)
CharIndexing_russian_unicodeScalars_Backwards 294831 296795 +0.7% 0.99x (?)
CharIndexing_tweet_unicodeScalars_Backwards 733758 726135 -1.0% 1.01x (?)
CharIndexing_utf16_unicodeScalars_Backwards 302896 302702 -0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars 152776 147144 -3.7% 1.04x (?)
CharIteration_chinese_unicodeScalars 112368 111255 -1.0% 1.01x (?)
CharIteration_japanese_unicodeScalars 177698 176122 -0.9% 1.01x (?)
CharIteration_japanese_unicodeScalars_Backwards 294604 296593 +0.7% 0.99x (?)
CharIteration_korean_unicodeScalars 144789 143933 -0.6% 1.01x (?)
CharIteration_korean_unicodeScalars_Backwards 238317 238544 +0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 27219 26300 -3.4% 1.03x (?)
CharIteration_punctuated_unicodeScalars 33709 32978 -2.2% 1.02x (?)
CharIteration_russian_unicodeScalars 123783 122322 -1.2% 1.01x (?)
CharIteration_russian_unicodeScalars_Backwards 204635 204327 -0.2% 1.00x (?)
CharIteration_tweet_unicodeScalars 293480 289961 -1.2% 1.01x (?)
CharIteration_tweet_unicodeScalars_Backwards 486190 486190 +0.0% 1.00x
CharIteration_utf16_unicodeScalars 127005 131059 +3.2% 0.97x (?)
CharIteration_utf16_unicodeScalars_Backwards 234565 237561 +1.3% 0.99x (?)
CharacterLiteralsLarge 5784 5761 -0.4% 1.00x (?)
CharacterLiteralsSmall 680 680 +0.0% 1.00x
CharacterPropertiesFetch 5382 5528 +2.7% 0.97x (?)
CharacterPropertiesPrecomputed 2860 2846 -0.5% 1.00x (?)
CharacterPropertiesStashed 2597 2580 -0.7% 1.01x (?)
CharacterPropertiesStashedMemo 3975 4106 +3.3% 0.97x (?)
Chars2 35973 35539 -1.2% 1.01x
ClassArrayGetter2 9453 9446 -0.1% 1.00x (?)
Combos 2518 2454 -2.5% 1.03x (?)
DataAccessBytes 2341 2341 +0.0% 1.00x
DataAppendArray 5400 5576 +3.3% 0.97x (?)
DataAppendBytes 5098 5177 +1.5% 0.98x (?)
DataAppendDataLargeToLarge 67402 69148 +2.6% 0.97x (?)
DataAppendDataLargeToMedium 35724 35358 -1.0% 1.01x (?)
DataAppendDataLargeToSmall 34720 34227 -1.4% 1.01x (?)
DataAppendDataMediumToLarge 37942 38072 +0.3% 1.00x (?)
DataAppendDataMediumToMedium 6469 6636 +2.6% 0.97x (?)
DataAppendDataMediumToSmall 5995 5936 -1.0% 1.01x (?)
DataAppendDataSmallToLarge 37346 37268 -0.2% 1.00x (?)
DataAppendDataSmallToMedium 6281 6272 -0.1% 1.00x (?)
DataAppendDataSmallToSmall 5826 6014 +3.2% 0.97x (?)
DataAppendSequence 1993881 2001539 +0.4% 1.00x (?)
DataCopyBytes 543 546 +0.6% 0.99x
DataCount 223 223 +0.0% 1.00x
DataMutateBytes 5175 5136 -0.8% 1.01x (?)
DataReplaceLarge 36947 37294 +0.9% 0.99x (?)
DataReplaceLargeBuffer 58505 59531 +1.8% 0.98x (?)
DataReplaceMedium 8186 8230 +0.5% 0.99x (?)
DataReplaceSmall 5880 5710 -2.9% 1.03x (?)
DataReplaceSmallBuffer 10184 10172 -0.1% 1.00x (?)
DataReset 2824 2879 +1.9% 0.98x (?)
DataSetCount 564 564 +0.0% 1.00x
DataSubscript 443 444 +0.2% 1.00x
DictOfArraysToArrayOfDicts 3696 3764 +1.8% 0.98x (?)
Dictionary 2115 2118 +0.1% 1.00x (?)
Dictionary2 1272 1274 +0.2% 1.00x (?)
Dictionary2OfObjects 4348 4233 -2.6% 1.03x (?)
Dictionary3 799 818 +2.4% 0.98x (?)
Dictionary3OfObjects 2033 2004 -1.4% 1.01x (?)
Dictionary4 1168 1162 -0.5% 1.01x (?)
Dictionary4OfObjects 1813 1772 -2.3% 1.02x (?)
Dictionary4OfObjectsLegacy 2184 2105 -3.6% 1.04x (?)
DictionaryBridge 1309 1343 +2.6% 0.97x (?)
DictionaryBridgeToObjC_Access 1583 1576 -0.4% 1.00x (?)
DictionaryBridgeToObjC_Bridge 19 19 +0.0% 1.00x
DictionaryBridgeToObjC_BulkAccess 167 167 +0.0% 1.00x
DictionaryCompactMapValuesOfCastValue 120101 121290 +1.0% 0.99x (?)
DictionaryCompactMapValuesOfNilValue 32596 32780 +0.6% 0.99x (?)
DictionaryCopy 300615 299310 -0.4% 1.00x (?)
DictionaryFilter 300478 300495 +0.0% 1.00x (?)
DictionaryGroup 4433 4429 -0.1% 1.00x (?)
DictionaryGroupOfObjects 6931 7010 +1.1% 0.99x (?)
DictionaryKeysContainsCocoa 70 69 -1.4% 1.01x (?)
DictionaryKeysContainsNative 48 50 +4.2% 0.96x (?)
DictionaryLiteral 8197 8265 +0.8% 0.99x (?)
DictionaryOfObjects 5740 5709 -0.5% 1.01x (?)
DictionaryRemove 17301 17299 -0.0% 1.00x (?)
DictionaryRemoveOfObjects 54865 54681 -0.3% 1.00x (?)
DictionarySubscriptDefaultMutation 1726 1720 -0.3% 1.00x (?)
DictionarySubscriptDefaultMutationArray 1994 1996 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9255 9211 -0.5% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 5081 5097 +0.3% 1.00x (?)
DictionarySwap 4722 4644 -1.7% 1.02x (?)
DictionarySwapAt 32150 32220 +0.2% 1.00x (?)
DictionarySwapAtOfObjects 113030 114246 +1.1% 0.99x (?)
DictionarySwapOfObjects 19200 18988 -1.1% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 15997 16028 +0.2% 1.00x (?)
DropFirstAnyCollectionLazy 108344 110500 +2.0% 0.98x (?)
DropFirstAnySeqCRangeIter 25271 25252 -0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 25205 25462 +1.0% 0.99x
DropFirstAnySeqCntRange 16186 16072 -0.7% 1.01x
DropFirstAnySeqCntRangeLazy 15956 16063 +0.7% 0.99x (?)
DropFirstAnySequence 12400 12505 +0.8% 0.99x (?)
DropFirstAnySequenceLazy 12468 12488 +0.2% 1.00x (?)
DropFirstArray 3488 3504 +0.5% 1.00x (?)
DropFirstArrayLazy 30462 30485 +0.1% 1.00x (?)
DropFirstCountableRange 345 345 +0.0% 1.00x
DropFirstCountableRangeLazy 36212 36446 +0.6% 0.99x (?)
DropFirstSequence 11998 12179 +1.5% 0.99x (?)
DropFirstSequenceLazy 12196 12157 -0.3% 1.00x (?)
DropLastAnyCollection 5359 5355 -0.1% 1.00x (?)
DropLastAnyCollectionLazy 36859 36445 -1.1% 1.01x (?)
DropLastAnySeqCRangeIter 40226 40584 +0.9% 0.99x (?)
DropLastAnySeqCRangeIterLazy 39854 39813 -0.1% 1.00x (?)
DropLastAnySeqCntRange 5385 5331 -1.0% 1.01x
DropLastAnySeqCntRangeLazy 5393 5387 -0.1% 1.00x (?)
DropLastAnySequence 30028 29057 -3.2% 1.03x (?)
DropLastAnySequenceLazy 29856 28907 -3.2% 1.03x (?)
DropLastSequence 28981 28762 -0.8% 1.01x (?)
DropLastSequenceLazy 28907 28940 +0.1% 1.00x (?)
DropWhileAnyCollection 20740 20714 -0.1% 1.00x (?)
DropWhileAnyCollectionLazy 23887 23881 -0.0% 1.00x (?)
DropWhileAnySeqCRangeIter 26276 26263 -0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 23814 23848 +0.1% 1.00x (?)
DropWhileAnySeqCntRange 20742 20761 +0.1% 1.00x (?)
DropWhileAnySeqCntRangeLazy 23917 23801 -0.5% 1.00x
DropWhileAnySequence 13320 13409 +0.7% 0.99x (?)
DropWhileAnySequenceLazy 11881 11892 +0.1% 1.00x (?)
DropWhileArrayLazy 13490 13448 -0.3% 1.00x
DropWhileCountableRange 5073 5053 -0.4% 1.00x
DropWhileCountableRangeLazy 22949 22716 -1.0% 1.01x
DropWhileSequence 13023 12912 -0.9% 1.01x (?)
DropWhileSequenceLazy 11508 11522 +0.1% 1.00x (?)
EqualStringSubstring 71 71 +0.0% 1.00x
EqualSubstringString 72 71 -1.4% 1.01x
EqualSubstringSubstring 74 72 -2.7% 1.03x (?)
EqualSubstringSubstringGenericEquatable 56 57 +1.8% 0.98x
ErrorHandling 5224 5158 -1.3% 1.01x (?)
ExclusivityGlobal 188 188 +0.0% 1.00x
ExclusivityIndependent 71 71 +0.0% 1.00x
FatCompactMap 286110 286750 +0.2% 1.00x (?)
FilterEvenUsingReduce 3574 3574 +0.0% 1.00x
FilterEvenUsingReduceInto 1838 1837 -0.1% 1.00x (?)
FloatingPointPrinting_Double_description_small 22381 22344 -0.2% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 34033 33757 -0.8% 1.01x (?)
FloatingPointPrinting_Double_interpolated 91279 90898 -0.4% 1.00x (?)
FloatingPointPrinting_Float80_description_small 29604 29398 -0.7% 1.01x (?)
FloatingPointPrinting_Float80_description_uniform 58276 57058 -2.1% 1.02x (?)
FloatingPointPrinting_Float80_interpolated 114933 115629 +0.6% 0.99x (?)
FloatingPointPrinting_Float_description_small 6857 6855 -0.0% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 17701 17656 -0.3% 1.00x (?)
FloatingPointPrinting_Float_interpolated 65401 65357 -0.1% 1.00x (?)
FrequenciesUsingReduce 10490 10912 +4.0% 0.96x (?)
FrequenciesUsingReduceInto 3369 3406 +1.1% 0.99x (?)
Hanoi 19245 19279 +0.2% 1.00x (?)
HashTest 19883 19634 -1.3% 1.01x (?)
Histogram 6178 6124 -0.9% 1.01x (?)
Integrate 587 587 +0.0% 1.00x
IterateData 4992 4975 -0.3% 1.00x (?)
Join 177 174 -1.7% 1.02x
LazilyFilteredArrayContains 745124 733607 -1.5% 1.02x
LazilyFilteredArrays2 90652 90702 +0.1% 1.00x (?)
LazilyFilteredRange 553306 552507 -0.1% 1.00x (?)
LessSubstringSubstring 74 73 -1.4% 1.01x
LessSubstringSubstringGenericComparable 57 58 +1.8% 0.98x
LinkedList 32481 32517 +0.1% 1.00x (?)
LuhnAlgoEager 5658 5788 +2.3% 0.98x (?)
LuhnAlgoLazy 6009 5990 -0.3% 1.00x (?)
MapReduce 24868 24898 +0.1% 1.00x (?)
MapReduceAnyCollection 24961 24820 -0.6% 1.01x (?)
MapReduceAnyCollectionShort 36660 36660 +0.0% 1.00x
MapReduceClass 28945 28992 +0.2% 1.00x
MapReduceClassShort 39860 40127 +0.7% 0.99x (?)
MapReduceLazyCollection 22074 21990 -0.4% 1.00x (?)
MapReduceLazyCollectionShort 32796 32718 -0.2% 1.00x (?)
MapReduceLazySequence 19893 19876 -0.1% 1.00x (?)
MapReduceSequence 29866 29916 +0.2% 1.00x (?)
MapReduceShort 36694 36849 +0.4% 1.00x (?)
MapReduceShortString 219 215 -1.8% 1.02x (?)
MapReduceString 1696 1696 +0.0% 1.00x
Memset 24346 24354 +0.0% 1.00x (?)
MonteCarloE 1133902 1137437 +0.3% 1.00x (?)
MonteCarloPi 5188348 5196030 +0.1% 1.00x (?)
NSDictionaryCastToSwift 7875 8179 +3.9% 0.96x (?)
NSError 604 602 -0.3% 1.00x (?)
NSStringConversion 735 738 +0.4% 1.00x (?)
NibbleSort 368654 368037 -0.2% 1.00x (?)
NopDeinit 197872 197749 -0.1% 1.00x (?)
ObjectAllocation 1236 1229 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObject 29675 30092 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9327 8992 -3.6% 1.04x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 50965 49423 -3.0% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 47328 47862 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 115269 111208 -3.5% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObject 48627 50115 +3.1% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4414 4430 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76010 75229 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSString 2917 2913 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2575 2575 +0.0% 1.00x
ObjectiveCBridgeStubDataAppend 6736 6644 -1.4% 1.01x (?)
ObjectiveCBridgeStubDateMutation 802 802 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString2 3402 3333 -2.0% 1.02x (?)
ObjectiveCBridgeStubFromNSString 1074 1075 +0.1% 1.00x (?)
ObjectiveCBridgeStubNSDataAppend 2969 2996 +0.9% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString2 3946 3954 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSDate2 1632 1652 +1.2% 0.99x (?)
ObjectiveCBridgeStubToNSString 2423 2417 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 153 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath2 2834 2784 -1.8% 1.02x (?)
ObjectiveCBridgeStubURLAppendPathRef2 2971 2954 -0.6% 1.01x (?)
ObjectiveCBridgeToNSArray 15272 15715 +2.9% 0.97x (?)
ObjectiveCBridgeToNSDictionary 30107 29183 -3.1% 1.03x (?)
ObjectiveCBridgeToNSSet 17994 18121 +0.7% 0.99x (?)
ObjectiveCBridgeToNSString 539 536 -0.6% 1.01x (?)
ObserverClosure 6273 6355 +1.3% 0.99x (?)
ObserverForwarderStruct 4138 4163 +0.6% 0.99x
ObserverPartiallyAppliedMethod 7819 7818 -0.0% 1.00x (?)
ObserverUnappliedMethod 7869 7836 -0.4% 1.00x (?)
OpaqueConsumingUsers 13418 13416 -0.0% 1.00x (?)
OpenClose 573 572 -0.2% 1.00x (?)
Phonebook 16021 15992 -0.2% 1.00x (?)
PointerArithmetics 418001 417957 -0.0% 1.00x (?)
PolymorphicCalls 2433 2402 -1.3% 1.01x (?)
PopFrontArray 4351 4346 -0.1% 1.00x (?)
PopFrontArrayGeneric 5684 5684 +0.0% 1.00x
PopFrontUnsafePointer 11908 11905 -0.0% 1.00x (?)
PrefixAnyCollection 16033 16049 +0.1% 1.00x (?)
PrefixAnyCollectionLazy 105052 108645 +3.4% 0.97x (?)
PrefixAnySeqCRangeIter 20167 20110 -0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 20175 20358 +0.9% 0.99x (?)
PrefixAnySeqCntRange 16105 16031 -0.5% 1.00x (?)
PrefixAnySeqCntRangeLazy 15964 16053 +0.6% 0.99x (?)
PrefixAnySequence 10015 9996 -0.2% 1.00x (?)
PrefixAnySequenceLazy 9953 9989 +0.4% 1.00x (?)
PrefixArray 3589 3598 +0.3% 1.00x (?)
PrefixArrayLazy 30456 30441 -0.0% 1.00x (?)
PrefixCountableRange 345 345 +0.0% 1.00x
PrefixCountableRangeLazy 36264 36443 +0.5% 1.00x (?)
PrefixSequence 9692 9625 -0.7% 1.01x (?)
PrefixSequenceLazy 9571 9643 +0.8% 0.99x (?)
PrefixWhileAnyCollection 30078 30077 -0.0% 1.00x (?)
PrefixWhileAnyCollectionLazy 19781 19840 +0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIter 33654 33647 -0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 19776 19738 -0.2% 1.00x (?)
PrefixWhileAnySequence 25403 25740 +1.3% 0.99x (?)
PrefixWhileAnySequenceLazy 10753 10744 -0.1% 1.00x (?)
PrefixWhileArray 10353 10352 -0.0% 1.00x (?)
PrefixWhileArrayLazy 11844 11819 -0.2% 1.00x (?)
PrefixWhileSequence 25021 25032 +0.0% 1.00x (?)
PrefixWhileSequenceLazy 10511 10489 -0.2% 1.00x (?)
Prims 8854 8878 +0.3% 1.00x (?)
PrimsSplit 8902 8851 -0.6% 1.01x (?)
QueueConcrete 14410 14091 -2.2% 1.02x
QueueGeneric 18778 18767 -0.1% 1.00x (?)
RC4 12875 12861 -0.1% 1.00x (?)
RGBHistogram 22224 22323 +0.4% 1.00x (?)
RGBHistogramOfObjects 72313 73194 +1.2% 0.99x (?)
Radix2CooleyTukey 47449 47730 +0.6% 0.99x (?)
Radix2CooleyTukeyf 41387 41254 -0.3% 1.00x (?)
RandomDoubleDef 84541 86876 +2.8% 0.97x (?)
RandomDoubleLCG 55410 55277 -0.2% 1.00x (?)
RandomIntegersDef 44438 43826 -1.4% 1.01x
RandomIntegersLCG 32685 32678 -0.0% 1.00x (?)
RandomShuffleDef2 7183 7177 -0.1% 1.00x (?)
RandomShuffleLCG2 47084 47100 +0.0% 1.00x (?)
RangeAssignment 2719 2723 +0.1% 1.00x (?)
RangeIterationSigned 14668 14667 -0.0% 1.00x (?)
RangeReplaceableCollectionPlusDefault 11597 11293 -2.6% 1.03x (?)
RecursiveOwnedParameter 6045 6047 +0.0% 1.00x (?)
RemoveWhereFilterInts 2011 2022 +0.5% 0.99x
RemoveWhereFilterString 1295 1297 +0.2% 1.00x (?)
RemoveWhereFilterStrings 2536 2531 -0.2% 1.00x (?)
RemoveWhereMoveInts 3335 3336 +0.0% 1.00x (?)
RemoveWhereMoveStrings 3872 3869 -0.1% 1.00x (?)
RemoveWhereQuadraticInts 8483 8473 -0.1% 1.00x (?)
RemoveWhereQuadraticString 2605 2600 -0.2% 1.00x (?)
RemoveWhereQuadraticStrings 10115 10100 -0.1% 1.00x
RemoveWhereSwapInts 5990 5994 +0.1% 1.00x (?)
RemoveWhereSwapStrings 6683 6679 -0.1% 1.00x (?)
ReversedArray2 14200 14203 +0.0% 1.00x (?)
ReversedBidirectional 43535 43319 -0.5% 1.00x (?)
ReversedDictionary2 15827 15728 -0.6% 1.01x (?)
RomanNumbers 1390147 1387149 -0.2% 1.00x (?)
SequenceAlgosAnySequence 13590 13602 +0.1% 1.00x (?)
SequenceAlgosArray 731943 731423 -0.1% 1.00x (?)
SequenceAlgosContiguousArray 312262 311265 -0.3% 1.00x
SequenceAlgosList 8571 8602 +0.4% 1.00x (?)
SequenceAlgosRange 1322374 1322704 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 6322 6314 -0.1% 1.00x (?)
SetExclusiveOr 12898 12862 -0.3% 1.00x (?)
SetExclusiveOr_OfObjects 38723 38591 -0.3% 1.00x (?)
SetIntersect 3814 3801 -0.3% 1.00x (?)
SetIntersect_OfObjects 7599 7592 -0.1% 1.00x (?)
SetIsSubsetOf 856 846 -1.2% 1.01x
SetIsSubsetOf_OfObjects 1893 1875 -1.0% 1.01x (?)
SetUnion 10445 10460 +0.1% 1.00x (?)
SetUnion_OfObjects 28698 28656 -0.1% 1.00x (?)
SevenBoom 1045 1045 +0.0% 1.00x
Sim2DArray 30303 30309 +0.0% 1.00x (?)
SortAdjacentIntPyramids 199324 199089 -0.1% 1.00x (?)
SortIntPyramid 233590 233823 +0.1% 1.00x
SortLargeExistentials 9711 9681 -0.3% 1.00x (?)
SortLettersInPlace 1591 1614 +1.4% 0.99x (?)
SortSortedStrings 877 875 -0.2% 1.00x (?)
SortStrings 1820 1822 +0.1% 1.00x (?)
SortStringsUnicode 2932 2936 +0.1% 1.00x (?)
StackPromo 89254 90573 +1.5% 0.99x (?)
StaticArray 2384 2334 -2.1% 1.02x (?)
StrComplexWalk 6827 6826 -0.0% 1.00x (?)
StrToInt 78094 78012 -0.1% 1.00x (?)
StringAdder 748 749 +0.1% 1.00x (?)
StringBuilder 5037 4971 -1.3% 1.01x (?)
StringBuilderLong 1452 1447 -0.3% 1.00x (?)
StringBuilderSmallReservingCapacity 5023 4981 -0.8% 1.01x (?)
StringComparison_abnormal 1288 1283 -0.4% 1.00x (?)
StringComparison_ascii 8896 8899 +0.0% 1.00x (?)
StringComparison_emoji 1985 1982 -0.2% 1.00x (?)
StringComparison_fastPrenormal 4887 4887 +0.0% 1.00x
StringComparison_latin1 3798 3800 +0.1% 1.00x (?)
StringComparison_longSharedPrefix 2363 2353 -0.4% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 3679 3677 -0.1% 1.00x (?)
StringComparison_slowerPrenormal 4134 4132 -0.0% 1.00x (?)
StringComparison_zalgo 114828 114671 -0.1% 1.00x (?)
StringEdits 354199 357859 +1.0% 0.99x (?)
StringEnumRawValueInitialization 22261 22202 -0.3% 1.00x (?)
StringEqualPointerComparison 1803 1755 -2.7% 1.03x
StringFromLongWholeSubstringGeneric 194 195 +0.5% 0.99x (?)
StringHasPrefixAscii 3260 3260 +0.0% 1.00x
StringHasPrefixUnicode 99640 99787 +0.1% 1.00x (?)
StringHasSuffixAscii 3338 3344 +0.2% 1.00x
StringHasSuffixUnicode 100564 100363 -0.2% 1.00x (?)
StringHashing_abnormal 1462 1466 +0.3% 1.00x (?)
StringHashing_ascii 211 212 +0.5% 1.00x (?)
StringHashing_emoji 2185 2158 -1.2% 1.01x (?)
StringHashing_fastPrenormal 8621 8614 -0.1% 1.00x (?)
StringHashing_latin1 2788 2771 -0.6% 1.01x (?)
StringHashing_longSharedPrefix 7870 7883 +0.2% 1.00x (?)
StringHashing_nonBMPSlowestPrenormal 2413 2409 -0.2% 1.00x (?)
StringHashing_slowerPrenormal 2946 2951 +0.2% 1.00x (?)
StringHashing_zalgo 3656 3673 +0.5% 1.00x (?)
StringInterpolation 11290 11250 -0.4% 1.00x (?)
StringInterpolationManySmallSegments 18294 18423 +0.7% 0.99x (?)
StringInterpolationSmall 5860 5822 -0.6% 1.01x (?)
StringMatch 50358 52637 +4.5% 0.96x (?)
StringRemoveDupes 704 702 -0.3% 1.00x (?)
StringUTF16Builder 7464 7523 +0.8% 0.99x (?)
StringUTF16SubstringBuilder 19979 20449 +2.4% 0.98x (?)
StringWalk 13730 13670 -0.4% 1.00x (?)
StringWithCString2 1786 1786 +0.0% 1.00x
StringWordBuilder 2524 2520 -0.2% 1.00x (?)
StringWordBuilderReservingCapacity 1850 1851 +0.1% 1.00x (?)
SubstringComparable 1584 1571 -0.8% 1.01x (?)
SubstringEqualString 1717 1720 +0.2% 1.00x (?)
SubstringEquatable 5276 5346 +1.3% 0.99x (?)
SuffixAnyCollection 5385 5366 -0.4% 1.00x (?)
SuffixAnyCollectionLazy 36693 37202 +1.4% 0.99x (?)
SuffixAnySeqCRangeIter 36362 36342 -0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 36224 36226 +0.0% 1.00x (?)
SuffixAnySeqCntRange 5354 5357 +0.1% 1.00x (?)
SuffixAnySeqCntRangeLazy 5354 5364 +0.2% 1.00x (?)
SuffixAnySequence 26319 25423 -3.4% 1.04x (?)
SuffixAnySequenceLazy 25183 25171 -0.0% 1.00x (?)
SuffixSequence 25097 25032 -0.3% 1.00x (?)
SuffixSequenceLazy 25038 25053 +0.1% 1.00x (?)
SumUsingReduce 155738 155813 +0.0% 1.00x (?)
SumUsingReduceInto 148999 149023 +0.0% 1.00x (?)
TwoSum 3730 3788 +1.6% 0.98x (?)
TypeFlood 188 194 +3.2% 0.97x (?)
UTF8Decode 28861 28886 +0.1% 1.00x (?)
UTF8Decode_InitDecoding 1389 1401 +0.9% 0.99x (?)
UTF8Decode_InitDecoding_ascii 942 938 -0.4% 1.00x (?)
UTF8Decode_InitFromBytes 1192 1196 +0.3% 1.00x (?)
UTF8Decode_InitFromBytes_ascii 487 496 +1.8% 0.98x (?)
UTF8Decode_InitFromData 1243 1247 +0.3% 1.00x (?)
Walsh 7224 7203 -0.3% 1.00x (?)
WordCountHistogramASCII 37016 37017 +0.0% 1.00x (?)
WordCountHistogramUTF16 43162 42530 -1.5% 1.01x (?)
WordCountUniqueASCII 6795 6794 -0.0% 1.00x (?)
WordCountUniqueUTF16 9483 9346 -1.4% 1.01x (?)
XorLoop 12896 12881 -0.1% 1.00x (?)
Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@eeckstein
Copy link
Contributor

@swift-ci smoke test and merge

1 similar comment
@eeckstein
Copy link
Contributor

@swift-ci smoke test and merge

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