Skip to content

[benchmark] Robust Measurements #26462

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 26 commits into from
Closed

Conversation

palimondo
Copy link
Contributor

@palimondo palimondo commented Aug 2, 2019

With the faster benchmarks in Swift Benchmark Suite (now that the Legacy Factor refactoring is finished), we don’t need to be so extremely frugal with the sample count. Gathering just the first 3 to 10 samples per benchmark was not very representative from the statistical point of view. There was a not insignificant chance that the benchmark did not yet reach a steady state. I suspect it was the reason for sporadic false changes reported from CI. (For most recent example see #26455.)

This PR adjusts the measurement method (in both the Benchmark_Driver as well as run_smoke_bench) to sample each benchmark for 250 ms and gather at minimum 10 samples. The run_smoke_bench now gathers up to 10 independent runs for the suspected changes. Ten independent runs with larger sample counts are enough to get statistically sound results, so it no longer spins in a measurement loop waiting for 10 no-change runs in a row.

@palimondo palimondo requested a review from eeckstein August 2, 2019 15:46
@palimondo
Copy link
Contributor Author

@swift-ci please benchmark

@palimondo
Copy link
Contributor Author

@swift-ci please smoke test

@palimondo
Copy link
Contributor Author

@eeckstein Hmm… I should have started full test, to also exercise the python unit tests. But if you trust me it all passes locally, we could check this (assuming smoke test passes) based on my honor word, to help Joe get less erratic results ASAP.

@swift-ci
Copy link
Contributor

swift-ci commented Aug 2, 2019

Performance: -O

Regression OLD NEW DELTA RATIO
FlattenListLoop 2230 2827 +26.8% 0.79x (?)
 
Removed MIN MAX MEAN MAX_RSS
Diffing.Disparate 0 0 0
Diffing.ReversedAlphabets 0 0 0

Code size: -O

Performance: -Osize

Regression OLD NEW DELTA RATIO
DropFirstCountableRange 14 16 +14.3% 0.88x (?)
 
Improvement OLD NEW DELTA RATIO
DropLastArray 5 4 -20.0% 1.25x (?)
 
Removed MIN MAX MEAN MAX_RSS
Diffing.Disparate 0 0 0

Code size: -Osize

@palimondo
Copy link
Contributor Author

Hmm… I must have messed something up. Will check after returning from dog walk.

@palimondo
Copy link
Contributor Author

Interesting… failure in 2nd iteration of Onone in the ObjectiveCBridgeASCIIStringFromFile benchmark. @Catfish-Man?

@palimondo
Copy link
Contributor Author

palimondo commented Aug 2, 2019

@Catfish-Man, disregard. The error is in python code for merging results and has nothing to do with the particular benchmark. (Note to self: do not comment from phone while on dog walk)

@Catfish-Man
Copy link
Contributor

If we get more stable benchmark results can we decrease the 7% reporting threshold?

@palimondo
Copy link
Contributor Author

I can't figure out how am I sporadically reporting removed benchmarks whose runtime is 0 and how can they be missing in results dictionary during merge. Here it's too late now, I'll try again tomorrow. Sorry!

@palimondo
Copy link
Contributor Author

palimondo commented Aug 3, 2019

The error that occurred while running the benchmark is some kind of a heisenbug… (I reproduced the issue locally, but any attempt at observation around potential error sources made it not occur. 💁‍♂️) I'm going for vacation next week, so I will not be able to work on this. Maybe I'll push the little cleanup work I did in the meantime and see if that fixes the issue. @eeckstein if this modified process works, passes tests and your review, could you please check this in? I'm not sure if I'll be online next week.

@swiftlang swiftlang deleted a comment from swift-ci Aug 3, 2019
@swiftlang swiftlang deleted a comment from swift-ci Aug 3, 2019
@palimondo
Copy link
Contributor Author

@swift-ci benchmark

@palimondo
Copy link
Contributor Author

@swift-ci please test

@swiftlang swiftlang deleted a comment from swift-ci Aug 3, 2019
@swift-ci
Copy link
Contributor

swift-ci commented Aug 3, 2019

Performance: -O

Regression OLD NEW DELTA RATIO
DataAppendDataSmallToSmall 2960 3340 +12.8% 0.89x (?)
String.data.Empty 18 19 +5.6% 0.95x (?)
 
Improvement OLD NEW DELTA RATIO
FlattenListFlatMap 5558 3721 -33.1% 1.49x (?)

Code size: -O

Performance: -Osize

Regression OLD NEW DELTA RATIO
DataAppendDataSmallToSmall 3080 3340 +8.4% 0.92x (?)
DropFirstArrayLazy 13 14 +7.7% 0.93x (?)
PrefixCountableRange 15 16 +6.7% 0.94x (?)
 
Improvement OLD NEW DELTA RATIO
DropFirstCountableRange 16 14 -12.5% 1.14x (?)

Code size: -Osize

Performance: -Onone

Regression OLD NEW DELTA RATIO
StringBuilderLong 1010 1070 +5.9% 0.94x (?)
 
Improvement OLD NEW DELTA RATIO
Breadcrumbs.MutatedUTF16ToIdx.ASCII 15 14 -6.7% 1.07x (?)
Breadcrumbs.MutatedIdxToUTF16.ASCII 15 14 -6.7% 1.07x (?)

Code size: -swiftlibs

How to read the data The tables contain differences in performance which are larger than 5.0% 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 mini
  Model Identifier: Macmini8,1
  Processor Name: Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 64 GB

@palimondo
Copy link
Contributor Author

This isn’t really better… 🙁

@palimondo
Copy link
Contributor Author

@swift-ci benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Aug 3, 2019

Performance: -O

Regression OLD NEW DELTA RATIO
ObjectiveCBridgeStubToNSDateRef 2380 2560 +7.6% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
FlattenListFlatMap 4086 3667 -10.3% 1.11x (?)

Code size: -O

Performance: -Osize

Regression OLD NEW DELTA RATIO
FlattenListLoop 2208 2748 +24.5% 0.80x (?)
PrefixWhileAnySequence 1205 1284 +6.6% 0.94x (?)
 
Improvement OLD NEW DELTA RATIO
DropFirstCountableRange 14 13 -7.1% 1.08x (?)
DropFirstCountableRangeLazy 16 15 -6.2% 1.07x (?)

Code size: -Osize

Performance: -Onone

Regression OLD NEW DELTA RATIO
TypeFlood 135 148 +9.6% 0.91x (?)

Code size: -swiftlibs

How to read the data The tables contain differences in performance which are larger than 5.0% 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 mini
  Model Identifier: Macmini8,1
  Processor Name: Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 64 GB

@palimondo
Copy link
Contributor Author

I’ve backed out the finer threshold. It was too high of a goal to get working correctly at this moment.

@atrick, @jckarter mentioned to me that you had your own analysis of the sporadic false reports, I’d appreciate if you could share your perspective here.

@palimondo
Copy link
Contributor Author

@swift-ci benchmark

1 similar comment
@palimondo
Copy link
Contributor Author

@swift-ci benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Aug 4, 2019

Performance: -O

Code size: -O

Performance: -Osize

Improvement OLD NEW DELTA RATIO
PrefixWhileCountableRangeLazy 15 14 -6.7% 1.07x (?)

Code size: -Osize

Performance: -Onone

Code size: -swiftlibs

How to read the data The tables contain differences in performance which are larger than 5.0% 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 mini
  Model Identifier: Macmini8,1
  Processor Name: Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 64 GB

@palimondo
Copy link
Contributor Author

I think this looks OK, but let me run one more benchmark.

@palimondo
Copy link
Contributor Author

@swift-ci benchmark

@palimondo
Copy link
Contributor Author

@swift-ci test

@swift-ci
Copy link
Contributor

swift-ci commented Aug 4, 2019

Performance: -O

Regression OLD NEW DELTA RATIO
FlattenListFlatMap 4040 5778 +43.0% 0.70x (?)

Code size: -O

Performance: -Osize

Improvement OLD NEW DELTA RATIO
FlattenListLoop 2746 2159 -21.4% 1.27x (?)
PrefixCountableRange 16 14 -12.5% 1.14x (?)

Code size: -Osize

Performance: -Onone

Code size: -swiftlibs

How to read the data The tables contain differences in performance which are larger than 5.0% 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 mini
  Model Identifier: Macmini8,1
  Processor Name: Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 64 GB

@palimondo
Copy link
Contributor Author

Well, benchmarks with runtimes under 20 μs need to be adjusted anyway… and Flatten has its issues and also a pending fix, but that PR needs a bit of a refresh: #20552… so I’d argue this is fine?

@atrick
Copy link
Contributor

atrick commented Aug 4, 2019

Since my comments were alluded to above, I want to avoid confusion about the different kinds of variation we see in performance results. Performance is unpredictable in response to either changes to the compiler or to the inputs. I've made comments about these "optimizer instability" problems, or more generally performance unpredictability of the language. It's a problem because fundamentally good changes often produce bad results. The tradeoffs involved have to do with language features, peak benchmark performance, and time spent developing robust optimizations.

Run-to-run variation is different. It has to do with the design of the benchmarks and measurement methodology. I have not made any comments about this recently. The tradeoffs here are with turn around time, machine resources, precision and sensitivity, applicability to larger benchmarks, etc. To the extent that anyone pays attention to the benchmark scores, I do think it's important to fix "measurement instability". We just need to acknowledge that even with a perfectly deterministic benchmarking methodology, changes in benchmark scores across compiler changes can still be very misleading.

@palimondo
Copy link
Contributor Author

palimondo commented Mar 2, 2020

@swift-ci please benchmark

I’m gathering more data… not all previously problematic benchmarks were present in last report. As I said above:

We have to remember that the samples reported in tables and visualized in the charts above are aggregates from 10 independent measurement runs. [...] It is not clear if the extreme outliers appear rarely in every measurement or if they come from one measurement with different distribution.

So far, it looks like the anomalous results are “lucky” runs. The whole execution of that independent run is an outlier. I’ll post some charts to illustrate the issue tomorrow.

@Rostepher
Copy link
Contributor

@palimondo The goal is to add another Python validation-test to run utils/python_format.py --check which should enforce the black style on all our Python sources. Details are in #29701.

@swift-ci

This comment has been minimized.

@palimondo
Copy link
Contributor Author

@swift-ci please benchmark

@swift-ci

This comment has been minimized.

@palimondo
Copy link
Contributor Author

@swift-ci please benchmark

@swift-ci

This comment has been minimized.

Replaced list comprehension that computes the minimum from runtimes corrected for setup overhead with a procedural style that is easier to understand.
@gottesmm
Copy link
Contributor

gottesmm commented Mar 3, 2020

I don't understand this new output and it definitely needs to be behind a detail drop down.

@palimondo
Copy link
Contributor Author

palimondo commented Mar 3, 2020

@gottesmm I’m sorry for spamming you all with these verbose reports. It was a quick hack to dump samples from all independent runs that go into the result comparison. I needed these just temporarily to gather more data and devise better strategy for coping with the issue of false changes. Now it’s clear the extreme outliers are coming from “lucky runs”, which then skew the aggregated sample distribution, used for the final comparison of OLD and NEW. The selection of most stable location from f888aefe9d989fee26fac6a2f8ef3d6deeb6c15c does not help with this problem, because the individual runs have the same shape of distribution, the lucky runs are just shifted in location and we keep comparing the MINs. I think I’ll need to detect and throw out such outlier runs. This explains why run_smoke_bench currently needs to go up to 20 or more iterations to get the “lucky run” from the other result and doesn’t always succeed.

Use the most stable location estimate (MIN, P05, P10, Q1, MED) for `ResultComparison` based on the standard deviation for given quantiles across the independent runs and the aggregate sample (hardening against outlier runs). We multiply the standard deviations for each quantile between the OLD and NEW results to get “cross-sample” variance. We pick the quantile with lowest variance as most stable and use it for the comparisons.
With the faster benchmarks in the Swift Benchmark Suite, we now don’t need to spend a whole 1 second measuring each one of them. So I’m adjusting the Benchmark_Driver to sample each one for 50 ms and gather up to 102 actual runtime values (percentiles + MIN + MAX). In my tests, for most optmized benchmarks, the sample distribution was still roughly comparable with full second mesurements. It is more important to gather samples from multiple independent runs to cover the possible variations in distribution.
With the faster benchmarks in Swift Benchmark Suite (now that the Legacy Factor refactoring is finished), we don’t need to be so extremly frugal with the sample count. Gathering just the first 3 to 10 samples per benchmark was not very representative from the statistical point of view. I suspect it hides Type II errors — unreported changes.

Adjusting the measurement method to sample each benchmark for 50 ms and gather at minimum 10 samples. For the suspected changes, gather up to 10 independent samples.

Also thorougly measure the newly added test in re-runs.
Removed unused `num_samples` argument and redundant `run_count` variable.
Also gather metadata (currently unused).
Print the actual threshold in the “How to read the data“ decription.
@palimondo
Copy link
Contributor Author

@swift-ci python lint

@palimondo
Copy link
Contributor Author

@swift-ci please benchmark

@palimondo
Copy link
Contributor Author

@swift-ci please smoke test

@palimondo
Copy link
Contributor Author

@swift-ci benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Mar 4, 2020

Performance: -O

Regression OLD NEW DELTA RATIO
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 48400 54600 +12.8% 0.89x (?)
O: 43400 43800 44000 46200 46600 46600 46800 48200 48400 48400 48400 49400 52600 52800 54400 54600 57600 57600 60600
N: 43800 44000 44000 46200 46400 52600 52800 54400 54600 54600 54800 54800 55600 55800 56000 56200 58200 58600 59000
ObjectiveCBridgeStubFromArrayOfNSString2 4010 4420 +10.2% 0.91x (?)
O: 3920 3930 3930 3930 3930 3940 3940 3940 4010 4010 4010 4020 4020 4020 4020 4020 4020 4020 4020
N: 4020 4030 4030 4030 4030 4030 4040 4040 4420 4420 4430 4430 4430 4430 4430 4430 4440 4440 4450
DropFirstAnyCollectionLazy 53400 57964 +8.5% 0.92x (?)
O: 51609 52067 52667 52927 52961 53086 53206 53278 53345 53400 53510 56348 57310 57607 58799 59124 59667 59744 61950
N: 51832 52171 52434 52594 52683 52777 53729 53897 57882 57964 58972 59029 59182 59786 60732 60860 63260 63393 64022
DropLastAnyCollectionLazy 18072 19490 +7.8% 0.93x (?)
O: 17403 17472 17624 17658 17749 18003 18007 18017 18043 18072 18179 18223 18280 18905 18942 19741 19794 20781 20849
N: 17767 17878 18109 18168 18259 18283 18332 19301 19359 19490 19701 19719 20291 20354 20406 21755 21818 21869 22440
 
Improvement OLD NEW DELTA RATIO
NSStringConversion.Rebridge.Mutable 1297 1110 -14.4% 1.17x (?)
O: 900 901 990 1101 1107 1109 1113 1234 1236 1297 1329 1373 1377 1380 1415 1415 1451 1454 1456
N: 899 899 901 905 1014 1018 1027 1100 1104 1110 1190 1219 1219 1220 1229 1233 1235 1236 1237

Code size: -O

Performance: -Osize

Regression OLD NEW DELTA RATIO
NSStringConversion.Rebridge.UTF8 492 546 +11.0% 0.90x (?)
O: 411 417 417 419 421 441 442 463 464 492 608 609 630 631 644 644 668 668 775
N: 417 419 419 488 490 494 496 537 543 546 550 550 607 607 621 623 700 702 705
NSStringConversion.Rebridge.LongUTF8 59 65 +10.2% 0.91x (?)
O: 48 49 49 50 50 53 53 55 55 59 73 73 75 75 76 77 80 80 89
N: 50 50 50 58 58 59 59 63 63 65 66 66 72 72 74 74 84 84 86
DataAppendBytesMedium 4500 4820 +7.1% 0.93x (?)
O: 4380 4400 4440 4440 4440 4440 4460 4480 4480 4500 4500 4520 4540 4540 4540 4540 4560 5440 5460
N: 4300 4300 4440 4440 4460 4720 4760 4780 4820 4820 4820 5160 5180 5200 5400 5420 5440 6120 6140
 
Improvement OLD NEW DELTA RATIO
UTF8Decode_InitFromBytes_ascii 416 339 -18.5% 1.23x (?)
O: 332 335 335 392 396 407 407 413 413 416 420 421 422 423 424 428 428 429 473
N: 311 313 314 316 316 327 327 332 338 339 348 348 352 383 420 422 462 465 497
UTF8Decode_InitFromBytes 272 255 -6.2% 1.07x (?)
O: 253 253 253 266 267 269 270 270 271 272 272 272 272 273 274 274 275 276 282
N: 249 249 250 253 253 253 253 254 254 255 255 257 257 271 272 272 279 279 286

Code size: -Osize

Performance: -Onone

Regression OLD NEW DELTA RATIO
StringFromLongWholeSubstring 12 15 +25.0% 0.80x (?)
O: 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13
N: 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 15
DictionarySubscriptDefaultMutation 11501 12209 +6.2% 0.94x (?)
O: 11461 11461 11461 11461 11462 11465 11497 11497 11499 11501 12981 13011 13019 13031 13047 13049 13057 13115 13134
N: 11551 11553 11564 11567 11574 11583 11589 11602 11604 12209 12209 12211 12229 12253 12274 12285 12318 12366 12369
 
Improvement OLD NEW DELTA RATIO
FloatingPointPrinting_Double_description_uniform 40800 35100 -14.0% 1.16x (?)
O: 34900 35000 35400 35400 35700 35800 36300 36600 37000 40800 41100 41100 41200 42800 42800 43300 43500 47700 47800
N: 34600 34700 34700 34700 34800 34900 35000 35100 35100 35100 35200 35300 35300 35400 35400 35500 35500 36200 36400
CharIteration_russian_unicodeScalars 211280 183520 -13.1% 1.15x (?)
O: 181160 181240 185160 197800 198400 198440 199480 199880 201840 211280 211480 211480 211520 213280 216240 217560 217880 219160 226240
N: 180880 180960 181000 181160 181240 181320 181360 181920 183480 183520 184000 185680 195640 195800 203000 203080 209600 212080 230680
Set.isSuperset.Seq.Box0 2428 2152 -11.4% 1.13x (?)
O: 2141 2146 2174 2424 2428 2430 2436 2465 2472 2473 2507 2509 2518 2520 2538 2560 2561 2642 2666
N: 2143 2145 2147 2152 2152 2170 2172 2179 2179 2183 2185 2331 2361 2364 2443 2461 2462 2466 2602
CharIteration_korean_unicodeScalars 246960 219120 -11.3% 1.13x (?)
O: 212240 213880 216960 220720 231240 232480 232560 246040 246120 246960 247160 247280 250000 251200 253720 255520 263520 264280 265080
N: 210840 212120 212200 212200 212440 212520 215000 216600 217600 219120 230320 230400 237360 237440 245000 245080 247440 247520 255880
CharIteration_utf16_unicodeScalars 185480 165280 -10.9% 1.12x (?)
O: 163440 175600 175680 175880 175920 176120 176160 177480 185160 185480 186000 186400 186800 187960 191880 192000 196400 197200 200120
N: 162880 163600 163680 164120 164160 164440 164720 164960 165040 165280 165720 167200 168480 175400 178360 181720 185760 185840 200560
Set.isSuperset.Seq.Box25 2303 2071 -10.1% 1.11x (?)
O: 2066 2066 2067 2068 2089 2252 2254 2299 2300 2303 2306 2307 2309 2336 2361 2362 2381 2395 2396
N: 2043 2044 2044 2047 2047 2049 2049 2063 2063 2071 2078 2079 2189 2191 2300 2301 2318 2322 2436
SevenBoom 1261 1135 -10.0% 1.11x (?)
O: 1067 1067 1068 1070 1071 1071 1072 1261 1261 1261 1271 1272 1273 1728 1728 1746 1764 1764 1764
N: 1065 1065 1065 1069 1069 1071 1133 1133 1133 1135 1136 1137 1138 1143 1144 1145 1444 1445 1447
FloatingPointPrinting_Double_interpolated 85200 77600 -8.9% 1.10x (?)
O: 71800 72200 72400 72800 73000 81200 81400 83000 83000 85200 85400 85800 86000 86200 91000 91400 91400 91800 102600
N: 74200 75000 75200 76800 76800 77000 77200 77200 77400 77600 77600 77600 80200 80400 81800 82000 82800 82800 86800
String.data.Small 58 53 -8.6% 1.09x (?)
O: 45 51 52 52 52 53 53 55 58 58 61 62 62 62 64 64 64 64 70
N: 39 49 49 49 49 50 50 51 51 53 55 55 58 58 59 59 60 61 61
FloatingPointPrinting_Float80_description_uniform 64100 59100 -7.8% 1.08x (?)
O: 58600 58800 59000 59100 59200 59300 59400 59500 63900 64100 64800 65300 66300 66900 67100 67400 69700 69900 71100
N: 58300 58300 58400 58500 58500 58600 58600 58900 59000 59100 59200 59200 59300 59400 60200 60700 61400 61700 66900
ObjectiveCBridgeStubFromArrayOfNSString2 4210 3900 -7.4% 1.08x (?)
O: 3630 3650 3760 3960 4130 4140 4150 4160 4170 4210 4280 4330 4350 4410 4620 4680 4710 4890 4910
N: 3400 3590 3610 3610 3630 3880 3890 3890 3900 3900 3930 4040 4050 4060 4080 4150 4260 4300 4610
StackPromo 60800 56400 -7.2% 1.08x (?)
O: 54000 54000 56400 56500 56500 56500 60100 60100 60400 60800 61000 61900 61900 62700 62700 63500 63600 64800 64800
N: 54400 54400 55700 55700 55800 55800 55900 56000 56400 56400 56400 56700 56800 56900 56900 57100 57100 60800 60900
CharIteration_tweet_unicodeScalars_Backwards 745360 696360 -6.6% 1.07x (?)
O: 689280 705720 708440 744920 745360 748600 750440 751120 753600 756320 759280 780600 782880 789400 829280 830200 896960 900160 917480
N: 686240 692400 693480 694120 696360 697480 700400 701600 703240 704240 705040 706200 747440 757800 761840 762400 764320 767760 780040
QueueConcrete 19010 17950 -5.6% 1.06x (?)
O: 17860 17890 17910 17920 17950 17990 18070 18110 18960 19010 19390 19400 19420 19430 19660 19700 19720 19790 19850
N: 17860 17860 17870 17880 17890 17910 17930 17940 17950 17950 17960 17980 17990 18010 18030 18040 18130 18140 18370
CStringLongAscii 280 265 -5.4% 1.06x (?)
O: 267 267 267 267 267 267 267 280 280 280 280 281 370 371 371 371 371 371 372
N: 253 253 254 255 256 257 264 265 265 265 265 265 265 281 281 281 281 281 281
CharIndexing_tweet_unicodeScalars 1269440 1203720 -5.2% 1.05x (?)
O: 1155600 1172920 1176080 1178080 1179560 1208120 1216440 1227680 1232480 1269440 1271160 1274680 1276280 1282320 1295440 1303000 1304120 1305440 1308720
N: 1124040 1124480 1131000 1164840 1168160 1190160 1192880 1195080 1202960 1203720 1205840 1211000 1215840 1218720 1220600 1233880 1274000 1275000 1276000

Code size: -swiftlibs

How to read the data The tables contain differences in performance which are larger than 5.0% 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

@palimondo
Copy link
Contributor Author

Wow, now this is upsetting! Switching away from MIN as location estimate on these benchmarks did backfire tremendously. I have seen nothing like this locally. I need to re-enable that verbose dump to understand the distribution of individual runs for these cases.

@palimondo
Copy link
Contributor Author

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Mar 4, 2020

Performance: -O

Regression OLD NEW DELTA RATIO
ObjectiveCBridgeFromNSArrayAnyObjectToString 50700 54900 +8.3% 0.92x (?)
O: 45000 47100 47300 49700 49800 50300 50500 50600 50700 50700 51700 52200 55800 55900 56500 57100 59100 59300 64100
N: 47900 50900 51200 51400 51500 54100 54300 54500 54600 54900 55600 55900 56300 56300 56400 56500 57700 58100 62900
N: 50400 50500 50500 50500 50500 50500 50600 50600 50600 50600 50600 50600 50600 50600 50700 50700 50700 50800 51000
N: 51700 51800 51900 51900 52000 52000 52000 52100 52100 52100 52200 52200 52200 52200 52200 52200 52300 52300 52400
N: 50500 50500 50500 50600 50600 50600 50600 50700 50800 51000 51800 51900 52000 52100 52100 52200 52200 52200 52300
N: 50500 50600 50600 50700 50700 50700 50700 50700 50700 50700 50700 50700 50800 50800 50800 50800 50800 50800 50900
N: 50500 50500 50600 50600 50600 50700 50700 50700 50700 50700 50800 50800 51000 51800 52000 52100 52200 52200 52300
N: 49700 49700 49700 49700 49700 49700 49700 49800 49800 49800 49800 49800 49800 49800 49800 49800 49900 49900 49900
N: 49700 49800 49800 49800 49900 50500 50600 50600 50600 50700 50700 50700 50800 50800 51000 51900 52100 52200 52200
N: 56200 56400 56400 56500 56500 56500 56500 56600 56600 56800 56900 56900 57000 57100 57100 57200 57200 57200 57300
N: 49700 49800 49800 50400 50500 50600 50600 50700 50700 50700 50800 51700 52000 52200 52200 56200 56500 56900 57200
N: 55700 55700 55800 55800 55800 55800 55800 55800 55800 55900 55900 55900 55900 55900 56000 56000 56000 56000 56100
N: 49700 49800 49900 50500 50600 50600 50700 50700 50800 51700 52000 52200 52400 55800 55900 56000 56400 56600 57100
N: 47100 47100 47200 47200 47200 47200 47200 47300 47300 47300 47300 47300 47300 47300 47300 47400 47400 47400 47400
N: 47200 47300 49700 49800 49800 50500 50600 50600 50700 50700 50800 52000 52200 52400 55800 55900 56200 56500 57100
N: 63900 64000 64000 64000 64000 64100 64100 64100 64100 64100 64100 64100 64100 64100 64100 64100 64200 64200 64300
N: 47300 47400 49700 49800 49900 50500 50600 50700 50800 51000 52100 52200 55800 55900 56100 56500 57100 64000 64100
N: 44800 44900 44900 44900 44900 44900 44900 45000 45000 45000 45000 45000 45000 45100 45100 45100 45100 45100 45200
N: 45000 45100 47200 47400 49700 49800 50500 50600 50700 50700 50900 52100 52200 55800 55900 56400 56900 58200 64100
N: 58900 59000 59000 59100 59100 59100 59200 59200 59200 59200 59200 59200 59300 59300 59300 59300 59400 59400 59500
N: 45000 47100 47300 47700 49800 49900 50600 50700 50700 51000 52100 52400 55900 56100 56600 57200 59200 59400 64100
N: 50100 50300 50300 50300 50300 50300 50300 50300 50400 50400 50400 50400 50400 50400 50500 50500 50500 50600 50800
N: 45000 47100 47300 49700 49800 50300 50500 50600 50700 50700 51700 52200 55800 55900 56500 57100 59100 59300 64100
N: 45000 47100 47300 49700 49800 50300 50500 50600 50700 50700 51700 52200 55800 55900 56500 57100 59100 59300 64100
N: 45000 47100 47300 49700 49800 50300 50500 50600 50700 50700 51700 52200 55800 55900 56500 57100 59100 59300 64100
N: 54200 54300 54300 54400 54400 54400 54400 54400 54400 54400 54400 54500 54500 54500 54500 54500 54500 54600 54600
N: 54000 54100 54100 54100 54100 54100 54200 54200 54200 54200 54200 54200 54200 54300 54600 54600 54600 54600 54600
N: 54100 54100 54100 54200 54200 54200 54200 54300 54400 54400 54400 54400 54500 54500 54500 54600 54600 54600 54600
N: 56200 56200 56300 56300 56300 56300 56300 56300 56400 56400 56400 56400 56400 56400 56500 56500 56500 56500 56500
N: 54100 54100 54200 54200 54300 54400 54400 54400 54500 54500 54600 54600 54900 56300 56300 56400 56400 56500 56500
N: 62700 62800 62800 62800 62900 62900 62900 62900 62900 62900 63000 63000 63000 63000 63000 63000 63100 63100 63100
N: 54100 54200 54200 54300 54400 54400 54500 54600 54600 54900 56300 56300 56400 56500 56600 62800 62900 63000 63000
N: 56200 56200 56300 56300 56300 56300 56300 56300 56300 56300 56300 56300 56400 56400 56400 56400 56400 56400 56500
N: 54100 54200 54300 54400 54400 54500 54600 56200 56300 56300 56300 56300 56400 56400 56500 56600 62900 62900 63000
N: 47700 47800 47800 47800 47800 47800 47800 47800 47900 47900 47900 47900 47900 47900 47900 48000 48000 48100 48200
N: 47800 47900 48100 54100 54200 54300 54400 54500 54600 56200 56300 56300 56300 56400 56400 56500 62800 62900 63000
N: 50800 50900 50900 50900 51000 51000 51100 51100 51100 51200 51200 51200 51200 51300 51300 51400 51400 51400 51400
N: 47800 47900 50900 51100 51400 54100 54200 54300 54400 54500 54600 56300 56300 56300 56400 56400 56500 62900 63000
N: 54600 54700 54700 54800 54800 54800 54900 54900 54900 54900 54900 54900 54900 55000 55000 55000 55000 55100 55200
N: 47800 48000 51000 51200 51600 54200 54300 54400 54600 54600 54900 55000 56300 56300 56300 56400 56500 62800 63000
N: 55500 55600 55600 55600 55600 55700 55700 55800 55800 55800 55900 55900 56000 56000 56200 56300 56300 56400 56500
N: 47900 48100 51100 51400 54100 54200 54400 54500 54700 54900 55200 55800 56200 56300 56300 56400 56500 62800 63000
N: 51200 51300 51300 51300 51300 51400 51400 51400 51400 51400 51400 51500 51500 51500 51500 51500 51500 51500 51600
N: 47900 50800 51200 51300 51400 54000 54200 54400 54500 54600 54900 55500 55900 56300 56300 56400 56400 56600 62900
N: 57600 57600 57600 57700 57700 57700 57700 57700 57700 57800 57800 57800 57800 57800 58100 58100 58100 58100 58500
N: 47900 50900 51200 51400 51500 54100 54300 54500 54600 54900 55600 55900 56300 56300 56400 56500 57700 58100 62900
N: 47900 50900 51200 51400 51500 54100 54300 54500 54600 54900 55600 55900 56300 56300 56400 56500 57700 58100 62900
N: 47900 50900 51200 51400 51500 54100 54300 54500 54600 54900 55600 55900 56300 56300 56400 56500 57700 58100 62900
InsertCharacterTowardsEndIndex 202 215 +6.4% 0.94x (?)
O: 197 197 199 199 199 199 202 202 202 202 203 203 203 203 203 203 219 220 220
N: 199 199 199 199 202 203 203 203 214 215 215 215 215 215 215 217 217 220 220
N: 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202
N: 196 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197
N: 197 197 197 197 197 197 197 197 197 197 202 202 202 202 202 202 202 202 202
N: 197 197 197 197 197 197 197 197 197 197 202 202 202 202 202 202 202 202 202
N: 197 197 197 197 197 197 197 197 197 197 202 202 202 202 202 202 202 202 202
N: 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203
N: 197 197 197 197 197 197 202 202 202 202 202 202 202 203 203 203 203 203 203
N: 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199
N: 197 197 197 197 197 199 199 199 199 199 202 202 202 202 203 203 203 203 203
N: 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220
N: 197 197 197 197 199 199 199 199 202 202 202 203 203 203 203 203 220 220 220
N: 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199
N: 197 197 197 199 199 199 199 199 199 202 202 202 202 203 203 203 220 220 220
N: 202 202 202 202 202 202 202 202 202 202 219 219 219 219 219 219 220 220 220
N: 197 197 199 199 199 199 199 199 202 202 202 202 203 203 203 219 220 220 220
N: 202 202 202 202 202 202 202 202 202 203 203 203 203 203 203 203 203 203 203
N: 197 197 199 199 199 199 199 202 202 202 202 202 203 203 203 203 219 220 220
N: 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203
N: 197 197 199 199 199 199 202 202 202 202 203 203 203 203 203 203 219 220 220
N: 197 197 199 199 199 199 202 202 202 202 203 203 203 203 203 203 219 220 220
N: 197 197 199 199 199 199 202 202 202 202 203 203 203 203 203 203 219 220 220
N: 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217
N: 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199
N: 199 199 199 199 199 199 199 199 199 217 217 217 217 217 217 217 217 217 217
N: 199 199 199 199 199 199 199 199 199 217 217 217 217 217 217 217 217 217 217
N: 199 199 199 199 199 199 199 199 199 217 217 217 217 217 217 217 217 217 217
N: 214 214 214 214 214 214 214 214 214 215 215 215 215 215 215 215 215 215 215
N: 199 199 199 199 199 199 214 214 214 215 215 215 215 217 217 217 217 217 217
N: 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220
N: 199 199 199 199 214 214 214 215 215 215 217 217 217 217 217 220 220 220 220
N: 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215
N: 199 199 199 214 214 215 215 215 215 215 215 217 217 217 217 220 220 220 220
N: 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203
N: 199 199 199 203 203 203 214 214 215 215 215 215 215 217 217 217 220 220 220
N: 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199
N: 199 199 199 199 199 203 203 203 214 215 215 215 215 215 217 217 217 220 220
N: 214 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215
N: 199 199 199 199 203 203 203 214 215 215 215 215 215 215 215 217 217 220 220
N: 202 202 202 202 202 202 202 202 202 202 202 202 202 203 203 215 215 215 215
N: 199 199 199 199 202 203 203 203 214 215 215 215 215 215 215 217 217 220 220
N: 199 199 199 199 202 203 203 203 214 215 215 215 215 215 215 217 217 220 220
N: 199 199 199 199 202 203 203 203 214 215 215 215 215 215 215 217 217 220 220
 
Improvement OLD NEW DELTA RATIO
DictionaryBridgeToObjC_Access 1143 1043 -8.7% 1.10x (?)
O: 894 987 988 1000 1004 1124 1126 1129 1143 1143 1158 1159 1180 1184 1228 1229 1239 1240 1294
N: 879 913 914 993 993 997 1019 1025 1038 1043 1063 1067 1138 1140 1166 1167 1197 1199 1207
N: 1228 1228 1228 1228 1229 1229 1229 1229 1229 1229 1229 1229 1229 1229 1229 1229 1229 1229 1229
N: 1126 1126 1127 1127 1127 1127 1129 1129 1129 1129 1129 1129 1130 1130 1130 1130 1130 1131 1131
N: 1126 1127 1127 1129 1129 1129 1130 1130 1131 1131 1228 1228 1229 1229 1229 1229 1229 1229 1229
N: 1236 1236 1236 1237 1239 1239 1239 1239 1239 1239 1239 1239 1240 1240 1240 1240 1240 1240 1241
N: 1127 1127 1129 1129 1130 1130 1132 1228 1229 1229 1229 1229 1229 1236 1237 1239 1239 1240 1240
N: 893 893 893 893 894 894 894 894 894 894 894 894 894 894 894 894 894 894 894
N: 893 894 894 894 1126 1127 1129 1130 1130 1132 1228 1229 1229 1229 1229 1237 1239 1239 1240
N: 1158 1158 1158 1158 1158 1158 1158 1158 1158 1158 1158 1159 1160 1162 1162 1162 1162 1163 1164
N: 894 894 894 1126 1127 1129 1130 1132 1158 1158 1162 1164 1228 1229 1229 1229 1239 1239 1240
N: 1293 1293 1293 1294 1294 1294 1294 1294 1294 1294 1296 1296 1297 1297 1297 1297 1297 1297 1298
N: 894 894 894 1127 1129 1130 1158 1158 1160 1163 1229 1229 1229 1236 1239 1240 1293 1294 1297
N: 1180 1180 1180 1180 1181 1182 1184 1184 1184 1184 1184 1184 1184 1184 1184 1184 1184 1184 1185
N: 894 894 1127 1129 1130 1158 1158 1162 1180 1184 1184 1228 1229 1229 1237 1239 1240 1294 1297
N: 987 987 987 987 987 987 987 987 987 987 987 988 988 988 988 988 988 988 988
N: 894 894 987 988 1126 1129 1130 1158 1159 1164 1184 1184 1228 1229 1229 1239 1240 1294 1296
N: 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1143 1144 1145 1145 1145
N: 894 894 987 988 1129 1130 1143 1143 1158 1158 1163 1184 1184 1228 1229 1236 1239 1293 1296
N: 1000 1000 1000 1000 1000 1000 1001 1001 1001 1004 1004 1004 1004 1004 1004 1004 1004 1004 1004
N: 894 987 988 1000 1004 1126 1129 1132 1143 1145 1158 1164 1184 1184 1229 1229 1239 1241 1294
N: 1121 1122 1122 1123 1123 1124 1124 1124 1124 1124 1124 1125 1125 1126 1126 1126 1126 1126 1126
N: 894 987 988 1000 1004 1124 1126 1129 1143 1143 1158 1159 1180 1184 1228 1229 1239 1240 1294
N: 894 987 988 1000 1004 1124 1126 1129 1143 1143 1158 1159 1180 1184 1228 1229 1239 1240 1294
N: 894 987 988 1000 1004 1124 1126 1129 1143 1143 1158 1159 1180 1184 1228 1229 1239 1240 1294
N: 912 913 913 913 913 913 913 913 913 913 913 913 913 914 914 914 914 914 915
N: 878 878 878 878 878 878 878 878 878 878 879 879 879 879 879 879 879 879 880
N: 878 878 878 878 879 879 879 879 880 912 913 913 913 913 913 913 914 914 915
N: 1164 1165 1165 1165 1166 1166 1166 1166 1166 1166 1166 1166 1166 1167 1167 1167 1167 1168 1168
N: 878 878 878 879 879 879 913 913 913 913 913 914 915 1165 1165 1166 1166 1167 1167
N: 1038 1038 1038 1038 1038 1038 1038 1038 1038 1038 1042 1043 1043 1043 1045 1045 1045 1045 1045
N: 878 878 879 879 912 913 913 913 914 915 1038 1038 1043 1045 1045 1165 1166 1166 1167
N: 1206 1206 1206 1206 1207 1207 1207 1207 1207 1209 1210 1211 1211 1211 1212 1214 1214 1216 1216
N: 878 879 879 912 913 913 914 915 1038 1038 1045 1045 1165 1166 1167 1168 1207 1209 1212
N: 1063 1063 1065 1065 1065 1065 1065 1065 1065 1065 1065 1066 1067 1068 1068 1068 1068 1068 1068
N: 878 879 880 913 913 914 1038 1038 1043 1047 1065 1065 1068 1165 1166 1167 1206 1207 1211
N: 1019 1019 1020 1024 1024 1024 1024 1024 1025 1025 1025 1026 1026 1026 1026 1027 1027 1027 1028
N: 878 879 913 913 914 1020 1025 1027 1038 1038 1045 1065 1065 1068 1165 1166 1168 1207 1211
N: 1193 1195 1196 1196 1196 1197 1197 1197 1197 1197 1197 1198 1198 1198 1198 1199 1199 1199 1200
N: 878 879 913 913 1019 1025 1027 1038 1043 1045 1065 1068 1165 1166 1168 1197 1198 1206 1211
N: 1138 1138 1138 1139 1139 1139 1139 1139 1139 1139 1139 1140 1140 1141 1141 1141 1141 1141 1142
N: 878 880 913 914 1024 1026 1038 1043 1047 1065 1068 1139 1141 1166 1167 1196 1198 1206 1210
N: 996 996 996 997 997 997 997 997 997 997 998 998 998 998 998 998 998 999 999
N: 879 913 913 996 998 1019 1025 1038 1038 1047 1065 1068 1139 1141 1166 1168 1197 1200 1209
N: 991 992 992 993 993 993 993 993 993 993 993 993 993 993 993 993 993 993 993
N: 879 913 914 993 993 997 1019 1025 1038 1043 1063 1067 1138 1140 1166 1167 1197 1199 1207
N: 879 913 914 993 993 997 1019 1025 1038 1043 1063 1067 1138 1140 1166 1167 1197 1199 1207
N: 879 913 914 993 993 997 1019 1025 1038 1043 1063 1067 1138 1140 1166 1167 1197 1199 1207
DataReplaceMedium 5000 4600 -8.0% 1.09x (?)
O: 4400 4400 4600 4600 4600 4600 4800 4800 4800 5000 5100 5200 5200 5200 5200 5400 5400 5400 5700
N: 4400 4400 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4700 4800 5300 5300
N: 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200
N: 4700 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800
N: 4800 4800 4800 4800 4800 4800 4800 4800 4800 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200
N: 5100 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200
N: 4800 4800 4800 4800 4800 4800 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200 5200
N: 4500 4500 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 4500 4600 4600 4600 4700 4800 4800 4800 4800 5100 5200 5200 5200 5200 5200 5200 5200 5200 5200
N: 4500 4600 4600 4600 4700 4800 4800 4800 4800 5100 5200 5200 5200 5200 5200 5200 5200 5200 5200
N: 4500 4600 4600 4600 4700 4800 4800 4800 4800 5100 5200 5200 5200 5200 5200 5200 5200 5200 5200
N: 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700 5700
N: 4600 4600 4600 4600 4800 4800 4800 4800 5200 5200 5200 5200 5200 5200 5200 5200 5700 5700 5700
N: 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400 5400
N: 4600 4600 4600 4800 4800 4800 5200 5200 5200 5200 5200 5200 5200 5400 5400 5400 5400 5700 5700
N: 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5100 5100 5100
N: 4600 4600 4700 4800 4800 5000 5000 5000 5200 5200 5200 5200 5200 5200 5400 5400 5400 5700 5700
N: 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400
N: 4400 4400 4500 4600 4600 4800 4800 5000 5000 5100 5200 5200 5200 5200 5200 5400 5400 5700 5700
N: 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 4400 4400 4600 4600 4600 4600 4800 4800 4800 5000 5100 5200 5200 5200 5200 5400 5400 5400 5700
N: 4400 4400 4600 4600 4600 4600 4800 4800 4800 5000 5100 5200 5200 5200 5200 5400 5400 5400 5700
N: 4400 4400 4600 4600 4600 4600 4800 4800 4800 5000 5100 5200 5200 5200 5200 5400 5400 5400 5700
N: 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300 5300
N: 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 5300 5300 5300 5300 5300 5300
N: 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500
N: 4500 4500 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 5300 5300 5300 5300 5300
N: 4500 4500 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 5300 5300 5300 5300 5300
N: 4500 4500 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 5300 5300 5300 5300 5300
N: 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 4500 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 5300 5300 5300 5300
N: 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 4500 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 5300 5300 5300
N: 4700 4700 4700 4700 4700 4700 4700 4700 4700 4700 4700 4700 4700 4800 4800 4800 4800 4800 4800
N: 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4700 4700 4800 5300 5300
N: 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400
N: 4400 4400 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4700 4700 4800 5300 5300
N: 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 4400 4400 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4700 4800 5300 5300
N: 4400 4400 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4700 4800 5300 5300
N: 4400 4400 4500 4500 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4700 4800 5300 5300

Code size: -O

Performance: -Osize

Improvement OLD NEW DELTA RATIO
String.data.Empty 53 42 -20.8% 1.26x (?)
O: 31 31 31 31 31 43 43 52 53 53 53 53 58 58 59 59 59 59 62
N: 31 31 31 31 31 38 38 40 40 42 42 42 43 43 58 58 62 62 62
N: 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59
N: 52 52 52 52 52 52 52 52 52 52 53 53 53 53 53 53 53 53 53
N: 52 52 52 52 52 53 53 53 53 53 59 59 59 59 59 59 59 59 59
N: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
N: 31 31 31 31 31 31 52 52 52 53 53 53 53 59 59 59 59 59 59
N: 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43
N: 31 31 31 31 43 43 43 43 43 52 52 52 53 53 59 59 59 59 59
N: 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59
N: 31 31 31 43 43 43 43 52 52 52 53 53 59 59 59 59 59 59 59
N: 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62
N: 31 31 31 43 43 43 52 52 53 53 59 59 59 59 59 59 62 62 62
N: 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53
N: 31 31 43 43 43 52 52 53 53 53 53 59 59 59 59 59 59 62 62
N: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
N: 31 31 31 31 43 43 43 52 53 53 53 53 59 59 59 59 59 62 62
N: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58
N: 31 31 31 31 43 43 52 53 53 53 53 58 58 59 59 59 59 62 62
N: 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53
N: 31 31 31 43 43 43 52 53 53 53 53 53 58 58 59 59 59 59 62
N: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
N: 31 31 31 31 31 43 43 52 53 53 53 53 58 58 59 59 59 59 62
N: 31 31 31 31 31 43 43 52 53 53 53 53 58 58 59 59 59 59 62
N: 31 31 31 31 31 43 43 52 53 53 53 53 58 58 59 59 59 59 62
N: 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
N: 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43
N: 42 42 42 42 42 42 42 42 42 42 43 43 43 43 43 43 43 43 43
N: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
N: 31 31 31 31 31 31 42 42 42 42 42 42 42 43 43 43 43 43 43
N: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
N: 31 31 31 31 31 40 40 40 40 40 42 42 42 42 42 43 43 43 43
N: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58
N: 31 31 31 31 40 40 40 40 42 42 42 42 43 43 43 43 58 58 58
N: 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
N: 31 31 31 40 40 40 42 42 42 42 42 42 42 43 43 43 58 58 58
N: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
N: 31 31 31 31 31 40 40 40 42 42 42 42 42 42 43 43 43 58 58
N: 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
N: 31 31 31 31 31 38 38 40 40 42 42 42 42 42 43 43 43 58 58
N: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
N: 31 31 31 31 31 31 38 38 40 40 40 42 42 42 42 43 43 58 58
N: 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62
N: 31 31 31 31 31 31 38 40 40 42 42 42 42 43 43 58 58 62 62
N: 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62
N: 31 31 31 31 31 38 38 40 40 42 42 42 43 43 58 58 62 62 62
N: 31 31 31 31 31 38 38 40 40 42 42 42 43 43 58 58 62 62 62
N: 31 31 31 31 31 38 38 40 40 42 42 42 43 43 58 58 62 62 62
String.data.Small 56 45 -19.6% 1.24x (?)
O: 33 33 33 45 45 46 46 55 56 56 56 56 60 60 60 60 65 65 66
N: 33 33 33 34 34 40 40 43 45 45 45 45 46 46 61 61 64 64 65
N: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66
N: 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
N: 55 55 55 55 55 55 55 55 55 55 66 66 66 66 66 66 66 66 66
N: 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46
N: 46 46 46 46 46 46 55 55 55 55 55 55 55 66 66 66 66 66 66
N: 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45
N: 45 45 45 45 46 46 46 46 46 55 55 55 55 55 66 66 66 66 66
N: 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
N: 45 45 45 46 46 46 46 55 55 55 55 60 60 60 60 66 66 66 66
N: 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
N: 45 45 45 46 46 46 55 55 55 60 60 60 60 65 65 65 66 66 66
N: 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56
N: 45 45 46 46 46 55 55 55 56 56 56 60 60 60 65 65 65 66 66
N: 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33
N: 33 33 45 45 46 46 46 55 55 56 56 56 60 60 65 65 65 66 66
N: 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
N: 33 33 45 45 46 46 55 55 56 56 56 60 60 60 60 65 65 66 66
N: 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56
N: 33 33 45 46 46 55 55 56 56 56 56 60 60 60 60 65 65 66 66
N: 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 34
N: 33 33 33 45 45 46 46 55 56 56 56 56 60 60 60 60 65 65 66
N: 33 33 33 45 45 46 46 55 56 56 56 56 60 60 60 60 65 65 66
N: 33 33 33 45 45 46 46 55 56 56 56 56 60 60 60 60 65 65 66
N: 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45
N: 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46
N: 45 45 45 45 45 45 45 45 45 45 46 46 46 46 46 46 46 46 46
N: 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33
N: 33 33 33 33 33 33 45 45 45 45 45 45 45 46 46 46 46 46 46
N: 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43
N: 33 33 33 33 33 43 43 43 43 43 45 45 45 45 45 46 46 46 46
N: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
N: 33 33 33 33 43 43 43 43 45 45 45 45 46 46 46 46 61 61 61
N: 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45
N: 33 33 33 43 43 43 45 45 45 45 45 45 45 46 46 46 61 61 61
N: 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33
N: 33 33 33 33 33 43 43 43 45 45 45 45 45 45 46 46 46 61 61
N: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
N: 33 33 33 33 33 40 40 43 43 45 45 45 45 45 46 46 46 61 61
N: 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34
N: 33 33 33 33 34 34 40 40 43 43 45 45 45 45 45 46 46 61 61
N: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64
N: 33 33 33 33 34 34 40 43 43 45 45 45 45 46 46 61 61 64 64
N: 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
N: 33 33 33 34 34 40 40 43 45 45 45 45 46 46 61 61 64 64 65
N: 33 33 33 34 34 40 40 43 45 45 45 45 46 46 61 61 64 64 65
N: 33 33 33 34 34 40 40 43 45 45 45 45 46 46 61 61 64 64 65
String.data.Medium 118 105 -11.0% 1.12x (?)
O: 101 101 101 109 109 111 112 117 118 118 118 119 122 122 123 124 125 126 127
N: 92 97 98 99 99 100 100 105 105 105 106 106 107 109 125 126 147 148 149
N: 124 124 124 124 124 124 124 125 125 125 125 125 125 125 125 125 125 125 125
N: 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109
N: 109 109 109 109 109 109 109 109 109 124 124 124 124 125 125 125 125 125 125
N: 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118
N: 109 109 109 109 109 109 118 118 118 118 118 118 124 124 124 125 125 125 125
N: 111 111 111 111 111 111 111 111 111 111 111 111 111 111 112 112 112 112 112
N: 109 109 109 109 109 111 111 111 112 112 118 118 118 118 124 124 125 125 125
N: 121 121 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122
N: 109 109 109 109 111 111 112 112 118 118 118 121 122 122 122 124 124 125 125
N: 116 116 116 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117
N: 109 109 109 111 111 112 116 117 117 117 118 118 118 122 122 122 124 125 125
N: 118 118 118 118 118 118 118 119 119 119 119 119 119 119 119 119 120 120 120
N: 109 109 111 111 111 116 117 117 118 118 118 118 119 120 122 122 124 124 125
N: 100 100 100 100 100 100 100 101 101 101 101 101 101 101 101 101 101 101 101
N: 101 101 109 109 109 111 112 116 117 118 118 118 118 119 121 122 122 124 125
N: 122 122 122 122 122 123 123 123 123 123 123 123 124 126 126 126 126 126 127
N: 101 101 109 109 111 111 116 117 118 118 118 119 120 122 122 123 124 125 125
N: 126 126 126 126 126 126 127 127 127 127 127 127 127 127 127 127 127 127 127
N: 101 101 109 109 111 112 117 118 118 118 119 121 122 122 123 125 125 126 127
N: 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101
N: 101 101 101 109 109 111 112 117 118 118 118 119 122 122 123 124 125 126 127
N: 101 101 101 109 109 111 112 117 118 118 118 119 122 122 123 124 125 126 127
N: 101 101 101 109 109 111 112 117 118 118 118 119 122 122 123 124 125 126 127
N: 105 105 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106
N: 97 99 99 99 99 99 99 99 99 99 99 99 99 99 99 100 100 100 100
N: 99 99 99 99 99 99 99 99 100 100 100 105 106 106 106 106 106 106 106
N: 105 105 105 105 105 105 105 105 105 105 105 105 106 106 106 106 106 106 106
N: 99 99 99 99 99 100 100 105 105 105 105 105 106 106 106 106 106 106 106
N: 106 106 107 107 107 107 107 107 107 108 108 109 109 109 109 109 109 109 109
N: 99 99 99 100 100 105 105 105 106 106 106 106 106 106 106 107 107 109 109
N: 146 147 147 147 147 147 149 149 149 149 149 149 149 149 149 149 149 149 149
N: 99 99 99 100 105 105 105 106 106 106 106 106 107 109 109 146 147 149 149
N: 97 98 98 98 98 98 98 98 98 98 98 98 98 99 99 99 99 99 99
N: 98 98 99 99 99 99 105 105 105 106 106 106 106 107 108 109 147 149 149
N: 98 99 99 99 99 99 99 100 100 100 100 100 100 100 100 100 100 100 100
N: 98 98 99 99 99 99 100 100 105 105 106 106 106 106 107 109 109 149 149
N: 104 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105
N: 98 99 99 99 99 100 100 105 105 105 105 105 106 106 106 107 109 147 149
N: 92 92 92 92 92 92 92 92 92 92 92 93 93 93 93 93 93 93 93
N: 92 93 98 98 99 99 99 100 100 105 105 105 106 106 106 107 109 147 149
N: 124 125 125 125 125 125 125 125 125 126 126 126 126 126 126 126 127 127 127
N: 92 93 98 99 99 99 100 100 105 105 105 106 106 106 108 124 126 146 149
N: 147 147 147 147 147 147 148 148 148 148 148 148 148 148 148 148 148 148 148
N: 92 97 98 99 99 100 100 105 105 105 106 106 107 109 125 126 147 148 149
N: 92 97 98 99 99 100 100 105 105 105 106 106 107 109 125 126 147 148 149
N: 92 97 98 99 99 100 100 105 105 105 106 106 107 109 125 126 147 148 149
StringToDataMedium 3850 3500 -9.1% 1.10x (?)
O: 3500 3500 3500 3650 3650 3650 3700 3700 3750 3850 3900 3950 4000 4050 4050 4150 4150 4200 4450
N: 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3600 3650 3650 3650 4350 4350 4900
N: 3850 3850 3850 3850 3850 3850 3850 3850 3850 3850 3850 3850 3850 3850 3900 3900 3900 3900 3900
N: 4000 4000 4000 4000 4000 4000 4000 4000 4000 4150 4150 4150 4150 4200 4200 4200 4200 4200 4300
N: 3850 3850 3850 3850 3850 3850 3850 3900 3900 3900 4000 4000 4000 4000 4150 4150 4200 4200 4200
N: 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3700 3700 3700 3700 3700 3700 3700
N: 3650 3650 3650 3650 3700 3700 3850 3850 3850 3850 3850 3900 3900 4000 4000 4000 4150 4200 4200
N: 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050
N: 3650 3650 3650 3700 3700 3850 3850 3850 3900 3900 4000 4000 4050 4050 4050 4050 4050 4150 4200
N: 4450 4450 4450 4450 4450 4450 4450 4450 4450 4450 4450 4650 4650 4650 4650 4650 4650 4650 4650
N: 3650 3650 3700 3700 3850 3850 3900 3900 4000 4000 4050 4050 4050 4150 4200 4450 4450 4450 4650
N: 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3700 3700 3700 3700 3700 3700
N: 3650 3650 3650 3650 3700 3700 3850 3850 3850 3900 4000 4050 4050 4050 4150 4200 4450 4450 4650
N: 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950
N: 3650 3650 3650 3700 3700 3850 3850 3850 3950 3950 3950 4000 4050 4050 4050 4150 4300 4450 4650
N: 3450 3450 3450 3450 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500
N: 3500 3500 3650 3650 3650 3700 3700 3850 3850 3900 3950 3950 4000 4050 4050 4050 4200 4450 4650
N: 3700 3700 3700 3700 3700 3700 3700 3700 3750 3750 3750 3750 3750 3750 3750 3750 3750 3750 3750
N: 3500 3500 3650 3650 3650 3700 3700 3750 3750 3850 3900 3950 3950 4000 4050 4050 4150 4450 4650
N: 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3550 3550 3550
N: 3500 3500 3500 3550 3650 3650 3700 3700 3700 3750 3850 3900 3950 3950 4050 4050 4150 4450 4450
N: 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150
N: 3500 3500 3500 3650 3650 3650 3700 3700 3750 3850 3900 3950 4000 4050 4050 4150 4150 4200 4450
N: 3500 3500 3500 3650 3650 3650 3700 3700 3750 3850 3900 3950 4000 4050 4050 4150 4150 4200 4450
N: 3500 3500 3500 3650 3650 3650 3700 3700 3750 3850 3900 3950 4000 4050 4050 4150 4150 4200 4450
N: 3600 3600 3600 3600 3600 3600 3600 3600 3600 3600 3600 3650 3650 3650 3650 3650 3650 3650 3650
N: 3450 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500
N: 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3600 3600 3600 3600 3600 3650 3650 3650 3650
N: 3450 3450 3450 3450 3450 3450 3450 3450 3450 3450 3450 3450 3450 3450 3450 3500 3500 3500 3500
N: 3450 3450 3450 3450 3450 3450 3500 3500 3500 3500 3500 3500 3500 3600 3600 3600 3600 3650 3650
N: 3550 3550 3550 3550 3550 3550 3550 3550 3550 3550 3550 3550 3550 3600 3600 3600 3600 3600 3600
N: 3450 3450 3450 3450 3500 3500 3500 3500 3500 3500 3550 3550 3550 3600 3600 3600 3600 3650 3650
N: 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500
N: 3450 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3550 3600 3600 3600 3600 3650
N: 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500
N: 3450 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3550 3600 3600 3600 3650
N: 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500
N: 3450 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3550 3600 3600 3650
N: 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3650 3700 3800 3800 3800 3800
N: 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3550 3600 3600 3650 3650 3650
N: 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500
N: 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3600 3600 3650 3650 3650
N: 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350 4350
N: 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3600 3600 3650 3650 3800 4350
N: 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900 4900
N: 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3600 3650 3650 3650 4350 4350 4900
N: 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3600 3650 3650 3650 4350 4350 4900
N: 3450 3450 3500 3500 3500 3500 3500 3500 3500 3500 3500 3550 3600 3650 3650 3650 4350 4350 4900
String.data.LargeUnicode 124 114 -8.1% 1.09x (?)
O: 106 110 110 123 124 126 126 127 128 128 129 130 130 131 132 132 133 135 136
N: 109 112 114 114 114 115 115 116 118 119 120 121 123 124 127 130 154 159 161
N: 132 132 132 132 132 132 132 132 132 132 132 132 132 132 133 133 133 133 133
N: 123 123 123 123 123 123 123 123 123 123 123 123 124 124 124 124 124 124 124
N: 123 123 123 123 123 123 124 124 124 132 132 132 132 132 132 132 133 133 133
N: 125 125 125 125 125 126 126 126 126 126 126 126 126 126 126 126 126 126 126
N: 123 123 123 123 124 124 125 125 126 126 126 126 126 132 132 132 132 133 133
N: 127 127 127 127 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128
N: 123 123 123 124 124 125 126 126 126 126 127 128 128 128 132 132 132 132 133
N: 130 131 131 131 134 135 135 135 135 135 135 135 135 135 135 135 136 136 136
N: 123 123 124 124 125 126 126 126 127 128 128 130 132 132 132 133 133 135 135
N: 129 129 129 129 129 129 129 129 129 130 130 130 130 130 130 130 130 130 130
N: 123 123 124 125 126 126 127 128 128 129 129 130 130 132 132 132 133 135 135
N: 132 132 132 133 133 134 134 135 135 136 136 136 136 136 136 136 136 136 137
N: 123 124 125 126 126 127 128 128 129 130 130 132 132 132 133 134 135 136 136
N: 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110
N: 110 110 123 123 124 126 126 127 128 129 129 130 132 132 132 133 135 135 136
N: 127 127 127 127 127 127 128 128 128 128 128 128 128 128 128 128 129 129 129
N: 110 110 123 124 125 126 127 128 128 128 129 129 130 132 132 133 135 135 136
N: 130 130 130 130 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131
N: 110 123 123 125 126 126 127 128 128 129 130 130 131 131 132 132 134 135 136
N: 96 102 103 103 103 103 103 103 103 106 106 106 106 106 106 106 106 106 109
N: 106 110 110 123 124 126 126 127 128 128 129 130 130 131 132 132 133 135 136
N: 106 110 110 123 124 126 126 127 128 128 129 130 130 131 132 132 133 135 136
N: 106 110 110 123 124 126 126 127 128 128 129 130 130 131 132 132 133 135 136
N: 114 114 114 114 114 114 114 114 115 115 115 115 115 115 115 115 115 115 115
N: 113 114 114 114 114 114 115 115 115 115 115 115 115 115 115 115 115 116 116
N: 114 114 114 114 114 114 114 115 115 115 115 115 115 115 115 115 115 115 116
N: 120 120 120 120 120 120 121 121 121 121 121 121 121 121 121 121 121 121 121
N: 114 114 114 114 115 115 115 115 115 115 115 115 116 120 120 121 121 121 121
N: 114 115 115 115 115 115 115 115 115 115 118 118 118 119 119 119 119 119 119
N: 114 114 114 115 115 115 115 115 115 115 115 116 118 119 119 120 121 121 121
N: 161 161 161 161 161 161 161 161 161 161 161 162 162 162 162 162 163 163 163
N: 114 114 114 115 115 115 115 115 115 116 119 119 120 121 121 122 161 161 162
N: 108 108 108 108 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109
N: 109 109 109 114 114 115 115 115 115 115 115 118 119 120 121 121 161 161 162
N: 123 123 123 123 123 123 123 123 124 124 124 124 124 124 124 124 124 124 124
N: 109 109 113 114 114 115 115 115 115 116 119 120 121 121 123 124 124 161 162
N: 112 112 112 112 112 112 112 113 113 114 114 114 114 114 114 114 114 114 114
N: 109 109 112 114 114 114 115 115 115 115 116 119 120 121 122 123 124 161 162
N: 117 117 118 118 118 118 118 118 118 118 118 118 118 118 118 119 120 120 120
N: 109 109 112 114 114 114 115 115 115 116 118 118 120 121 121 123 124 161 162
N: 127 127 127 127 127 127 127 128 128 128 128 128 130 130 130 130 130 130 130
N: 109 109 113 114 114 115 115 115 116 118 119 120 121 123 124 127 128 161 161
N: 154 154 154 154 154 154 154 154 159 159 159 159 159 159 159 159 159 159 159
N: 109 112 114 114 114 115 115 116 118 119 120 121 123 124 127 130 154 159 161
N: 109 112 114 114 114 115 115 116 118 119 120 121 123 124 127 130 154 159 161
N: 109 112 114 114 114 115 115 116 118 119 120 121 123 124 127 130 154 159 161
StringToDataLargeUnicode 4150 3900 -6.0% 1.06x (?)
O: 3700 3700 3700 3700 3700 3950 3950 4050 4050 4150 4250 4250 4400 4400 4550 4600 4600 4650 4850
N: 3700 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 3950 4000 4000 4400 4450 5000
N: 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250
N: 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 4250 4250 4250 4250 4250 4250 4250 4250 4250 4250 4600 4600 4600 4600 4600 4600 4600 4600 4600
N: 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050 4050
N: 4050 4050 4050 4050 4050 4050 4250 4250 4250 4250 4250 4250 4250 4600 4600 4600 4600 4600 4600
N: 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400 4400
N: 4050 4050 4050 4050 4050 4250 4250 4250 4250 4250 4400 4400 4400 4400 4400 4600 4600 4600 4600
N: 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850 4850
N: 4050 4050 4050 4050 4250 4250 4250 4250 4400 4400 4400 4400 4600 4600 4600 4600 4850 4850 4850
N: 3900 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950
N: 3950 3950 3950 4050 4050 4050 4250 4250 4250 4400 4400 4400 4400 4600 4600 4600 4850 4850 4850
N: 4550 4550 4550 4550 4550 4550 4550 4550 4550 4550 4650 4650 4650 4650 4650 4650 4650 4650 4650
N: 3950 3950 4050 4050 4050 4250 4250 4250 4400 4400 4400 4550 4600 4600 4600 4650 4650 4850 4850
N: 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700
N: 3700 3700 3950 3950 4050 4050 4050 4250 4250 4400 4400 4400 4550 4600 4600 4600 4650 4850 4850
N: 3650 3650 3650 3650 3650 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700
N: 3700 3700 3700 3700 3950 3950 4050 4050 4250 4250 4250 4400 4400 4550 4600 4600 4650 4850 4850
N: 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700
N: 3700 3700 3700 3700 3700 3700 3950 4050 4050 4250 4250 4400 4400 4550 4600 4600 4650 4850 4850
N: 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150 4150
N: 3700 3700 3700 3700 3700 3950 3950 4050 4050 4150 4250 4250 4400 4400 4550 4600 4600 4650 4850
N: 3700 3700 3700 3700 3700 3950 3950 4050 4050 4150 4250 4250 4400 4400 4550 4600 4600 4650 4850
N: 3700 3700 3700 3700 3700 3950 3950 4050 4050 4150 4250 4250 4400 4400 4550 4600 4600 4650 4850
N: 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900
N: 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900
N: 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900
N: 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700
N: 3700 3700 3700 3700 3700 3700 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900
N: 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800
N: 3700 3700 3700 3700 3800 3800 3800 3800 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3900
N: 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 3950 3950 3950 3950 3950 3950
N: 3700 3700 3700 3800 3800 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3950
N: 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950 3950
N: 3700 3700 3700 3800 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 3950 3950
N: 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900
N: 3700 3700 3800 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 3950 3950
N: 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000
N: 3700 3700 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 3950 3950 4000 4000
N: 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900
N: 3700 3700 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 3950 4000 4000
N: 4400 4400 4400 4400 4400 4400 4400 4400 4450 4450 4450 4450 4450 4450 4450 4450 4450 4450 4450
N: 3700 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 4000 4000 4400 4450
N: 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5050 5050 5050 5050 5050 5050 5050 5050 5050
N: 3700 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 3950 4000 4000 4400 4450 5000
N: 3700 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 3950 4000 4000 4400 4450 5000
N: 3700 3800 3800 3900 3900 3900 3900 3900 3900 3900 3900 3950 3950 3950 4000 4000 4400 4450 5000
DropLastAnyCollectionLazy 19162 18143 -5.3% 1.06x (?)
O: 17618 17803 17850 17901 18025 18177 18359 18898 19125 19162 19236 19255 19384 20245 20339 20518 21578 21641 21879
N: 17521 17617 17826 17835 17868 17915 17944 18066 18077 18143 18210 18521 18941 19815 19859 19967 20054 20253 20308
N: 19089 19089 19102 19102 19125 19125 19157 19157 19157 19157 19164 19164 19207 19207 19221 19221 19311 19311 19355
N: 19152 19152 19162 19162 19226 19226 19236 19236 19243 19243 19253 19253 19255 19255 19305 19305 19331 19331 19404
N: 19089 19102 19125 19152 19157 19157 19162 19164 19207 19221 19226 19236 19243 19253 19255 19305 19311 19331 19355
N: 17497 17497 17501 17501 17559 17559 17618 17618 17791 17791 17803 17803 17848 17848 17960 17960 18025 18025 18046
N: 17501 17559 17791 17803 17960 18025 19089 19102 19152 19157 19162 19164 19221 19226 19243 19253 19305 19311 19355
N: 21183 21183 21191 21191 21298 21298 21578 21578 21583 21583 21592 21592 21633 21633 21641 21641 21731 21731 21753
N: 17501 17618 17803 17960 18046 19102 19152 19157 19164 19221 19236 19253 19305 19331 19404 21191 21578 21592 21641
N: 20120 20120 20518 20518 20559 20559 21730 21730 21829 21829 21879 21879 21888 21888 21895 21895 21934 21934 21953
N: 17559 17791 17960 18046 19125 19157 19164 19221 19243 19255 19331 19404 20559 21191 21583 21633 21731 21829 21895
N: 20200 20200 20245 20245 20252 20252 20289 20289 20294 20294 20295 20295 20339 20339 20340 20340 20342 20342 20396
N: 17559 17803 18025 19102 19157 19164 19226 19253 19311 19404 20245 20294 20340 20518 21191 21583 21641 21753 21888
N: 17618 17618 17751 17751 17901 17901 18163 18163 18177 18177 18348 18348 18359 18359 18428 18428 18433 18433 18460
N: 17618 17791 17960 18163 18428 19089 19157 19164 19236 19255 19355 20200 20294 20340 20559 21298 21633 21731 21888
N: 17618 17791 17960 18163 18428 19089 19157 19164 19236 19255 19355 20200 20294 20340 20559 21298 21633 21731 21888
N: 17872 17872 18038 18038 18204 18204 18222 18222 18310 18310 18898 18898 19066 19066 19109 19109 19240 19240 19384
N: 17618 17803 17960 18163 18310 18433 19089 19152 19164 19236 19255 19355 20200 20294 20342 21183 21583 21730 21879
N: 17618 17803 17960 18163 18310 18433 19089 19152 19164 19236 19255 19355 20200 20294 20342 21183 21583 21730 21879
N: 17803 17803 17832 17832 17844 17844 17844 17844 17850 17850 17874 17874 17894 17894 17916 17916 17981 17981 18005
N: 17618 17803 17850 17901 18025 18177 18359 18898 19125 19162 19236 19255 19384 20245 20339 20518 21578 21641 21879
N: 17618 17803 17850 17901 18025 18177 18359 18898 19125 19162 19236 19255 19384 20245 20339 20518 21578 21641 21879
N: 17618 17803 17850 17901 18025 18177 18359 18898 19125 19162 19236 19255 19384 20245 20339 20518 21578 21641 21879
N: 17830 17830 17835 17835 17847 17847 17906 17906 17906 17906 17911 17911 17915 17915 17927 17927 17934 17934 17941
N: 17826 17826 17829 17829 17830 17830 17851 17851 17866 17866 17868 17868 17944 17944 17948 17948 17986 17986 17991
N: 17826 17829 17830 17830 17835 17847 17851 17866 17868 17906 17906 17911 17915 17927 17934 17941 17944 17948 17986
N: 18066 18066 18070 18070 18070 18070 18103 18103 18116 18116 18157 18157 18170 18170 18190 18190 18193 18193 18210
N: 17829 17830 17835 17847 17866 17868 17906 17911 17927 17934 17944 17948 17991 18066 18070 18103 18157 18170 18193
N: 19808 19808 19815 19815 19859 19859 19902 19902 19968 19968 20040 20040 20077 20077 20142 20142 20214 20214 20496
N: 17829 17830 17847 17866 17906 17911 17927 17941 17948 17991 18070 18103 18157 18190 18210 19815 19902 20040 20142
N: 20234 20234 20253 20253 20275 20275 20275 20275 20289 20289 20289 20308 20308 20316 20316 20345 20345 20381 20381
N: 17830 17835 17866 17906 17915 17934 17948 17991 18070 18116 18170 18210 19815 19968 20077 20234 20275 20308 20345
N: 17503 17503 17513 17513 17513 17513 17515 17515 17521 17521 17572 17572 17601 17601 17602 17602 17617 17617 17622
N: 17513 17572 17617 17829 17835 17866 17906 17927 17944 17991 18070 18157 18193 19815 19968 20142 20253 20289 20345
N: 17824 17824 17826 17826 17826 17826 17905 17905 18016 18016 18254 18254 18443 18443 18780 18780 18822 18822 18869
N: 17515 17601 17824 17826 17835 17866 17906 17927 17948 18016 18070 18170 18210 18822 19815 20040 20214 20275 20316
N: 17515 17601 17824 17826 17835 17866 17906 17927 17948 18016 18070 18170 18210 18822 19815 20040 20214 20275 20316
N: 19847 19847 19848 19848 19858 19858 19939 19939 19948 19948 19948 19955 19955 19967 19967 19982 19982 20054 20054
N: 17515 17602 17826 17830 17851 17906 17927 17948 18066 18103 18190 18443 19808 19858 19948 19982 20142 20275 20316
N: 17515 17602 17826 17830 17851 17906 17927 17948 18066 18103 18190 18443 19808 19858 19948 19982 20142 20275 20316
N: 18069 18069 18077 18077 18104 18104 18143 18143 18279 18279 18521 18521 18901 18901 18941 18941 18989 18989 18990
N: 17521 17617 17826 17835 17868 17915 17944 18066 18077 18143 18210 18521 18941 19815 19859 19967 20054 20253 20308
N: 17521 17617 17826 17835 17868 17915 17944 18066 18077 18143 18210 18521 18941 19815 19859 19967 20054 20253 20308
N: 17521 17617 17826 17835 17868 17915 17944 18066 18077 18143 18210 18521 18941 19815 19859 19967 20054 20253 20308

Code size: -Osize

Performance: -Onone

Regression OLD NEW DELTA RATIO
ObjectiveCBridgeFromNSStringForced 2785 3345 +20.1% 0.83x (?)
O: 2770 2775 2780 2780 2780 2780 2785 2785 2785 2785 2940 2940 3015 3015 3015 3015 3515 3520 3625
N: 2785 2915 2915 2925 2925 3010 3020 3205 3205 3345 3355 3510 3510 3865 3865 4035 4065 4115 4155
N: 3490 3500 3515 3515 3515 3515 3515 3515 3515 3515 3515 3515 3520 3520 3520 3520 3520 3520 3525
N: 2770 2770 2770 2770 2770 2770 2770 2770 2770 2770 2770 2775 2775 2775 2775 2775 2775 2775 2775
N: 2770 2770 2770 2770 2770 2775 2775 2775 2775 2775 3500 3515 3515 3515 3515 3515 3520 3520 3520
N: 2775 2775 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780
N: 2770 2770 2770 2775 2775 2775 2775 2780 2780 2780 2780 2780 2780 3500 3515 3515 3515 3520 3520
N: 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940 2940
N: 2770 2770 2770 2775 2775 2780 2780 2780 2780 2780 2940 2940 2940 2940 2940 3515 3515 3515 3520
N: 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785
N: 2770 2770 2775 2775 2780 2780 2780 2780 2785 2785 2785 2785 2940 2940 2940 2940 3515 3515 3520
N: 2770 2770 2775 2775 2780 2780 2780 2780 2785 2785 2785 2785 2940 2940 2940 2940 3515 3515 3520
N: 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785
N: 2770 2775 2775 2780 2780 2780 2785 2785 2785 2785 2785 2785 2785 2940 2940 2940 3500 3515 3520
N: 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015
N: 2770 2775 2775 2780 2780 2785 2785 2785 2785 2785 2785 2940 2940 2940 3015 3015 3015 3515 3520
N: 2775 2775 2775 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780 2780
N: 2770 2775 2775 2780 2780 2780 2780 2785 2785 2785 2785 2785 2940 2940 2940 3015 3015 3515 3515
N: 3010 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015 3015
N: 2770 2775 2780 2780 2780 2780 2785 2785 2785 2785 2785 2940 2940 3015 3015 3015 3015 3500 3515
N: 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625 3625
N: 2770 2775 2780 2780 2780 2780 2785 2785 2785 2785 2940 2940 3015 3015 3015 3015 3515 3520 3625
N: 2770 2775 2780 2780 2780 2780 2785 2785 2785 2785 2940 2940 3015 3015 3015 3015 3515 3520 3625
N: 2770 2775 2780 2780 2780 2780 2785 2785 2785 2785 2940 2940 3015 3015 3015 3015 3515 3520 3625
N: 4025 4030 4035 4055 4055 4060 4065 4065 4065 4065 4065 4065 4065 4075 4075 4075 4075 4075 4075
N: 3865 3865 3865 3865 3865 3865 3865 3865 3865 3865 3865 3865 3865 3865 3870 3870 3870 3870 3870
N: 3865 3865 3865 3865 3865 3865 3865 3870 3870 3875 4030 4055 4060 4065 4065 4065 4075 4075 4075
N: 3195 3205 3205 3205 3205 3205 3205 3205 3205 3205 3205 3205 3205 3205 3205 3205 3205 3210 3210
N: 3205 3205 3205 3205 3205 3865 3865 3865 3865 3865 3870 3870 4025 4035 4060 4065 4065 4075 4075
N: 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915 2915
N: 2915 2915 2915 2915 3195 3205 3205 3205 3210 3865 3865 3865 3865 3870 4030 4055 4065 4065 4075
N: 2920 2920 2925 2925 2925 2925 2925 2925 2925 2925 2925 2925 2925 2925 2925 2925 2925 2925 2925
N: 2915 2915 2915 2920 2925 2925 2925 3195 3205 3205 3205 3865 3865 3865 3870 4030 4060 4065 4075
N: 2915 2915 2915 2920 2925 2925 2925 3195 3205 3205 3205 3865 3865 3865 3870 4030 4060 4065 4075
N: 4115 4115 4115 4115 4115 4120 4125 4145 4155 4155 4155 4155 4155 4155 4155 4155 4155 4155 4155
N: 2915 2915 2915 2925 2925 2925 3205 3205 3205 3865 3865 3870 4025 4060 4065 4075 4115 4155 4155
N: 3490 3510 3510 3510 3510 3510 3510 3510 3510 3510 3510 3510 3510 3510 3510 3515 3515 3515 3515
N: 2915 2915 2920 2925 2925 3205 3205 3210 3510 3510 3865 3865 3865 4025 4065 4075 4115 4125 4155
N: 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785 2785
N: 2785 2785 2915 2915 2925 2925 2925 3205 3205 3510 3510 3515 3865 3870 4035 4065 4075 4115 4155
N: 3005 3010 3015 3015 3015 3015 3020 3020 3020 3020 3020 3020 3020 3020 3020 3020 3020 3020 3020
N: 2785 2785 2915 2915 2925 2925 3015 3020 3205 3205 3510 3510 3865 3865 3870 4065 4075 4115 4155
N: 3345 3345 3345 3345 3355 3355 3355 3355 3355 3355 3355 3355 3355 3355 3355 3355 3355 3355 3355
N: 2785 2915 2915 2925 2925 3010 3020 3205 3205 3345 3355 3510 3510 3865 3865 4035 4065 4115 4155
N: 2785 2915 2915 2925 2925 3010 3020 3205 3205 3345 3355 3510 3510 3865 3865 4035 4065 4115 4155
N: 2785 2915 2915 2925 2925 3010 3020 3205 3205 3345 3355 3510 3510 3865 3865 4035 4065 4115 4155
ObjectiveCBridgeFromNSString 3820 4130 +8.1% 0.92x (?)
O: 3195 3195 3200 3565 3570 3725 3730 3775 3780 3820 3835 3885 4100 4110 4265 4265 4865 4875 5115
N: 3190 3575 3575 3870 3875 4020 4020 4025 4055 4130 4130 4260 4370 4370 4675 4685 5170 5480 5485
N: 3565 3565 3565 3565 3565 3565 3565 3570 3570 3570 3570 3570 3570 3570 3570 3570 3570 3570 3575
N: 3775 3775 3775 3775 3775 3775 3775 3775 3775 3780 3780 3780 3780 3780 3780 3780 3780 3780 3785
N: 3565 3565 3565 3570 3570 3570 3570 3570 3570 3575 3775 3775 3775 3775 3780 3780 3780 3780 3780
N: 4100 4100 4100 4100 4100 4105 4105 4105 4105 4105 4105 4105 4105 4105 4110 4110 4110 4110 4110
N: 3565 3565 3570 3570 3570 3570 3775 3775 3775 3775 3780 3780 3780 4100 4100 4105 4105 4105 4110
N: 3725 3725 3725 3725 3725 3725 3730 3730 3730 3730 3730 3730 3730 3730 3730 3730 3730 3730 3735
N: 3565 3570 3570 3570 3575 3725 3730 3730 3730 3735 3775 3775 3780 3780 3785 4100 4105 4105 4110
N: 4855 4860 4860 4860 4865 4865 4865 4865 4865 4865 4865 4865 4865 4870 4870 4870 4870 4875 4875
N: 3565 3570 3570 3575 3725 3730 3730 3735 3775 3780 3780 3785 4100 4105 4110 4855 4865 4865 4870
N: 3820 3820 3820 3820 3820 3820 3820 3820 3825 3825 3825 3825 3825 3825 3825 3830 3835 3835 3835
N: 3565 3570 3570 3725 3730 3730 3775 3775 3780 3780 3820 3825 3835 4100 4105 4110 4860 4865 4870
N: 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195 3195
N: 3195 3195 3565 3570 3570 3725 3730 3730 3775 3775 3780 3820 3825 3835 4105 4105 4855 4865 4870
N: 4115 4265 4265 4265 4265 4265 4265 4265 4265 4265 4265 4265 4265 4265 4265 4265 4265 4265 4265
N: 3195 3195 3565 3570 3575 3730 3730 3775 3780 3780 3820 3825 4100 4105 4110 4265 4265 4865 4865
N: 3195 3195 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200
N: 3195 3195 3200 3200 3565 3570 3725 3730 3775 3775 3780 3820 3830 4105 4110 4265 4265 4860 4865
N: 3865 3875 3885 3885 3885 3885 3885 3885 3885 3885 3885 3885 3885 3885 3885 3885 3885 3885 3885
N: 3195 3195 3200 3565 3570 3575 3730 3730 3775 3780 3820 3835 3885 4100 4105 4115 4265 4860 4865
N: 5115 5115 5115 5115 5115 5115 5115 5115 5115 5115 5115 5120 5120 5120 5120 5120 5120 5125 5125
N: 3195 3195 3200 3565 3570 3725 3730 3775 3780 3820 3835 3885 4100 4110 4265 4265 4865 4875 5115
N: 3195 3195 3200 3565 3570 3725 3730 3775 3780 3820 3835 3885 4100 4110 4265 4265 4865 4875 5115
N: 3195 3195 3200 3565 3570 3725 3730 3775 3780 3820 3835 3885 4100 4110 4265 4265 4865 4875 5115
N: 4665 4665 4665 4665 4675 4675 4675 4675 4675 4675 4675 4675 4675 4680 4680 4685 4685 4685 4690
N: 5165 5165 5165 5165 5165 5165 5165 5170 5170 5175 5175 5175 5175 5175 5175 5175 5175 5175 5180
N: 4665 4665 4675 4675 4675 4675 4675 4680 4685 4690 5165 5165 5165 5165 5170 5175 5175 5175 5175
N: 3185 3190 3190 3190 3190 3190 3190 3190 3190 3190 3190 3190 3190 3190 3190 3190 3190 3190 3190
N: 3190 3190 3190 3190 3190 3190 4665 4665 4675 4675 4675 4680 4685 5165 5165 5165 5175 5175 5175
N: 4025 4025 4025 4025 4025 4025 4025 4030 4040 4040 4040 4050 4050 4050 4050 4050 4055 4060 4060
N: 3190 3190 3190 3190 4025 4025 4030 4050 4050 4060 4665 4675 4675 4680 4690 5165 5165 5175 5175
N: 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575 3575
N: 3190 3190 3190 3575 3575 3575 3575 4025 4025 4040 4050 4665 4675 4675 4680 4690 5165 5170 5175
N: 4130 4245 4250 4250 4250 4250 4250 4255 4255 4260 4260 4260 4260 4260 4260 4260 4270 4270 4270
N: 3190 3190 3190 3575 3575 3575 4025 4030 4050 4060 4250 4260 4270 4675 4675 4685 5165 5170 5175
N: 5480 5480 5480 5480 5480 5480 5480 5480 5485 5485 5485 5490 5495 5500 5500 5500 5500 5500 5505
N: 3190 3190 3575 3575 3575 4025 4040 4050 4250 4260 4270 4675 4675 4690 5165 5175 5480 5480 5500
N: 3960 4010 4130 4130 4130 4130 4130 4130 4130 4130 4130 4130 4130 4130 4130 4130 4130 4130 4130
N: 3190 3190 3575 3575 3960 4025 4050 4130 4130 4130 4255 4270 4675 4675 4695 5170 5175 5480 5495
N: 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370 4370
N: 3190 3190 3575 3575 4025 4050 4130 4130 4130 4255 4270 4370 4370 4675 4685 5165 5175 5480 5490
N: 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 3875 3875 3875 3875 3875 3875 3875 3875 3875
N: 3190 3575 3575 3870 3875 3960 4030 4055 4130 4130 4260 4370 4370 4665 4675 5165 5175 5480 5485
N: 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020 4020
N: 3190 3575 3575 3870 3875 4020 4020 4025 4055 4130 4130 4260 4370 4370 4675 4685 5170 5480 5485
N: 3190 3575 3575 3870 3875 4020 4020 4025 4055 4130 4130 4260 4370 4370 4675 4685 5170 5480 5485
N: 3190 3575 3575 3870 3875 4020 4020 4025 4055 4130 4130 4260 4370 4370 4675 4685 5170 5480 5485
 
Improvement OLD NEW DELTA RATIO
Dictionary2 1280 1145 -10.5% 1.12x (?)
O: 1145 1280 1280 1280 1280 1285 1285 1285 1290 1335 1340 1340 1345 1345 1345 1350 1365 1365 1370
N: 1140 1140 1140 1140 1145 1155 1155 1160 1280 1280 1335 1335 1340 1340 1345 1350 1350 1350 1370
N: 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345
N: 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1290 1290 1290 1290 1290 1290
N: 1285 1285 1285 1285 1285 1285 1290 1290 1290 1290 1345 1345 1345 1345 1345 1345 1345 1345 1345
N: 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285
N: 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1285 1290 1290 1345 1345 1345 1345 1345 1345
N: 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145
N: 1145 1145 1145 1145 1285 1285 1285 1285 1285 1285 1285 1285 1285 1290 1290 1345 1345 1345 1345
N: 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370
N: 1145 1145 1145 1145 1285 1285 1285 1285 1285 1285 1290 1290 1345 1345 1345 1345 1370 1370 1370
N: 1330 1330 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335
N: 1145 1145 1145 1285 1285 1285 1285 1285 1285 1290 1335 1335 1335 1345 1345 1345 1370 1370 1370
N: 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1345 1350 1350 1350 1350 1350 1350 1350
N: 1145 1145 1285 1285 1285 1285 1285 1290 1330 1335 1335 1345 1345 1345 1345 1345 1350 1370 1370
N: 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280
N: 1145 1145 1280 1280 1280 1285 1285 1285 1285 1290 1335 1335 1345 1345 1345 1345 1350 1370 1370
N: 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365 1365
N: 1145 1145 1280 1280 1285 1285 1285 1285 1290 1335 1335 1345 1345 1345 1350 1365 1365 1370 1370
N: 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340
N: 1145 1145 1280 1280 1285 1285 1285 1290 1335 1335 1340 1345 1345 1345 1345 1350 1365 1365 1370
N: 1275 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280
N: 1145 1280 1280 1280 1280 1285 1285 1285 1290 1335 1340 1340 1345 1345 1345 1350 1365 1365 1370
N: 1145 1280 1280 1280 1280 1285 1285 1285 1290 1335 1340 1340 1345 1345 1345 1350 1365 1365 1370
N: 1145 1280 1280 1280 1280 1285 1285 1285 1290 1335 1340 1340 1345 1345 1345 1350 1365 1365 1370
N: 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155
N: 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160 1160
N: 1155 1155 1155 1155 1155 1155 1155 1155 1155 1155 1160 1160 1160 1160 1160 1160 1160 1160 1160
N: 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350
N: 1155 1155 1155 1155 1155 1155 1155 1160 1160 1160 1160 1160 1160 1350 1350 1350 1350 1350 1350
N: 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140
N: 1140 1140 1140 1140 1140 1155 1155 1155 1155 1155 1160 1160 1160 1160 1160 1350 1350 1350 1350
N: 1345 1345 1345 1345 1345 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350 1350
N: 1140 1140 1140 1155 1155 1155 1155 1155 1160 1160 1160 1160 1345 1350 1350 1350 1350 1350 1350
N: 1140 1140 1140 1140 1140 1140 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145 1145
N: 1140 1140 1140 1140 1145 1145 1155 1155 1155 1155 1160 1160 1160 1345 1350 1350 1350 1350 1350
N: 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140 1140
N: 1140 1140 1140 1140 1140 1140 1145 1145 1155 1155 1155 1160 1160 1160 1345 1350 1350 1350 1350
N: 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280
N: 1140 1140 1140 1140 1140 1145 1145 1155 1155 1155 1160 1160 1280 1280 1280 1350 1350 1350 1350
N: 1330 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335 1335
N: 1140 1140 1140 1140 1145 1145 1155 1155 1160 1160 1160 1280 1280 1335 1335 1345 1350 1350 1350
N: 1335 1335 1335 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340 1340
N: 1140 1140 1140 1140 1145 1155 1155 1160 1160 1280 1280 1330 1335 1335 1340 1340 1350 1350 1350
N: 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370
N: 1140 1140 1140 1140 1145 1155 1155 1160 1280 1280 1335 1335 1340 1340 1345 1350 1350 1350 1370
N: 1140 1140 1140 1140 1145 1155 1155 1160 1280 1280 1335 1335 1340 1340 1345 1350 1350 1350 1370
N: 1140 1140 1140 1140 1145 1155 1155 1160 1280 1280 1335 1335 1340 1340 1345 1350 1350 1350 1370
ErrorHandling 8370 7810 -6.7% 1.07x (?)
O: 8130 8250 8280 8360 8370 8380 8390 8490 8510 8730 8750 8790 8850 8930 8940 9040 9230 9280 9310
N: 7650 7750 7790 7800 7810 7870 7890 7890 7900 7920 7940 7980 8440 8450 8530 8760 9750 9760 9930
N: 8700 8710 8720 8730 8840 8880 8930 8930 8930 8930 8960 9000 9030 9040 9040 9040 9060 9070 9100
N: 8720 8730 8730 8730 8730 8730 8740 8740 8740 8750 8750 8750 8750 8750 8750 8750 8760 8770 8770
N: 8710 8720 8730 8730 8730 8740 8750 8750 8750 8750 8770 8840 8930 8930 8960 9030 9040 9060 9100
N: 8760 8770 8770 8770 8790 8790 8790 8800 8800 8800 8810 8820 8830 8830 8840 8840 8850 8850 8920
N: 8720 8730 8730 8740 8750 8750 8750 8770 8770 8790 8800 8820 8840 8850 8920 8930 9000 9040 9070
N: 9310 9310 9310 9310 9310 9310 9310 9310 9310 9310 9310 9310 9340 9350 9350 9350 9380 9390 9390
N: 8720 8730 8740 8750 8750 8760 8770 8790 8810 8840 8850 8930 8960 9040 9070 9310 9310 9310 9350
N: 8360 8360 8360 8360 8360 8360 8360 8360 8370 8370 8370 8370 8370 8370 8380 8380 8390 8390 8400
N: 8360 8370 8370 8400 8720 8730 8740 8750 8760 8770 8800 8840 8880 8930 9040 9070 9310 9310 9350
N: 8360 8360 8360 8370 8370 8370 8380 8380 8380 8380 8380 8390 8390 8390 8390 8390 8390 8390 8400
N: 8360 8360 8370 8380 8390 8390 8710 8730 8740 8750 8770 8790 8820 8850 8930 9040 9250 9310 9340
N: 8460 8470 8470 8470 8470 8470 8480 8490 8490 8490 8490 8500 8500 8500 8500 8510 8510 8510 8520
N: 8360 8370 8370 8380 8390 8470 8490 8500 8710 8730 8750 8760 8790 8820 8850 8960 9060 9310 9310
N: 8920 8920 8920 8920 8920 8930 8930 8940 8940 8940 8940 8940 8940 8940 8970 8970 8970 8970 8970
N: 8360 8370 8380 8390 8400 8480 8500 8720 8730 8750 8770 8800 8850 8920 8940 8970 9040 9310 9310
N: 8100 8110 8120 8120 8120 8120 8120 8120 8130 8130 8130 8130 8130 8140 8150 8160 8160 8170 8170
N: 8130 8170 8360 8370 8380 8390 8470 8490 8520 8730 8750 8770 8810 8880 8930 8940 9000 9250 9310
N: 8230 8240 8250 8250 8250 8250 8260 8260 8260 8260 8260 8270 8280 8280 8290 8290 8300 8300 8310
N: 8130 8230 8260 8360 8360 8370 8390 8400 8490 8510 8730 8750 8770 8840 8920 8940 8970 9070 9310
N: 9230 9230 9230 9230 9230 9230 9230 9230 9240 9240 9240 9250 9280 9280 9280 9280 9280 9290 9290
N: 8130 8250 8280 8360 8370 8380 8390 8490 8510 8730 8750 8790 8850 8930 8940 9040 9230 9280 9310
N: 8130 8250 8280 8360 8370 8380 8390 8490 8510 8730 8750 8790 8850 8930 8940 9040 9230 9280 9310
N: 8130 8250 8280 8360 8370 8380 8390 8490 8510 8730 8750 8790 8850 8930 8940 9040 9230 9280 9310
N: 7730 7750 7750 7750 7750 7760 7760 7760 7780 7780 7780 7790 7790 7790 7790 7790 7800 7800 7810
N: 9740 9740 9740 9740 9750 9750 9750 9750 9760 9760 9760 9760 9760 9760 9760 9760 9760 9760 9760
N: 7750 7750 7760 7760 7780 7790 7790 7790 7800 9740 9740 9750 9750 9760 9760 9760 9760 9760 9760
N: 7860 7860 7870 7870 7870 7880 7880 7880 7880 7890 7890 7900 7910 7920 7920 7930 7950 7950 7960
N: 7750 7760 7780 7790 7790 7800 7860 7870 7880 7890 7910 7930 7960 9740 9750 9760 9760 9760 9760
N: 7860 7870 7880 7890 7890 7890 7890 7890 7890 7890 7890 7890 7890 7890 7890 7890 7890 7890 7890
N: 7750 7760 7790 7790 7810 7870 7870 7880 7890 7890 7890 7890 7920 7950 9740 9750 9760 9760 9760
N: 7790 7790 7790 7790 7800 7800 7800 7800 7800 7800 7800 7810 7810 7810 7810 7810 7810 7810 7820
N: 7750 7780 7790 7790 7800 7800 7810 7820 7870 7880 7890 7890 7890 7900 7930 9740 9750 9760 9760
N: 7880 7880 7890 7890 7890 7890 7890 7900 7900 7900 7900 7910 7910 7910 7910 7910 7910 7920 7930
N: 7760 7790 7790 7800 7800 7810 7860 7870 7880 7890 7890 7890 7900 7910 7910 7950 9740 9760 9760
N: 7900 7940 7940 7940 7940 7940 7940 7940 7950 7960 7960 7960 7980 7980 7980 7980 7990 8000 8000
N: 7760 7790 7790 7800 7810 7860 7880 7890 7890 7890 7900 7910 7920 7940 7950 7980 9740 9750 9760
N: 9770 9840 9870 9880 9880 9890 9900 9930 9950 9950 9950 9970 9980 9980 9980 9980 9980 9980 10100
N: 7760 7790 7800 7810 7820 7870 7890 7890 7890 7900 7910 7930 7950 7980 9740 9750 9760 9870 9970
N: 8410 8420 8420 8430 8440 8450 8450 8450 8470 8470 8620 8750 8760 8760 8760 8760 8760 8770 8800
N: 7780 7790 7800 7810 7870 7880 7890 7890 7900 7910 7940 7960 8000 8450 8760 9740 9760 9770 9950
N: 8440 8440 8440 8440 8440 8440 8440 8450 8450 8460 8460 8460 8480 8490 8510 8530 8530 8530 8530
N: 7780 7790 7800 7820 7880 7890 7890 7900 7920 7940 7960 8420 8440 8470 8620 9740 9760 9770 9950
N: 7640 7640 7650 7650 7650 7650 7650 7650 7650 7650 7650 7650 7660 7660 7660 7660 7660 7670 7670
N: 7650 7750 7790 7800 7810 7870 7890 7890 7900 7920 7940 7980 8440 8450 8530 8760 9750 9760 9930
N: 7650 7750 7790 7800 7810 7870 7890 7890 7900 7920 7940 7980 8440 8450 8530 8760 9750 9760 9930
N: 7650 7750 7790 7800 7810 7870 7890 7890 7900 7920 7940 7980 8440 8450 8530 8760 9750 9760 9930
CStringLongAscii 264 248 -6.1% 1.06x (?)
O: 264 265 265 265 267 268 269 270 271 275 282 282 286 286 286 293 293 295 310
N: 248 248 248 250 250 250 251 254 255 257 258 261 262 268 268 274 277 279 286
N: 264 265 265 265 265 265 265 265 265 265 265 266 269 270 271 271 272 272 273
N: 285 285 285 285 285 285 285 286 286 286 286 286 286 286 286 286 286 286 286
N: 265 265 265 265 265 266 270 271 272 273 285 285 285 285 286 286 286 286 286
N: 286 286 286 286 286 286 286 286 286 286 286 286 286 286 286 286 286 286 286
N: 265 265 265 265 270 272 273 285 285 286 286 286 286 286 286 286 286 286 286
N: 269 269 269 269 269 269 269 269 269 269 270 270 270 270 270 270 270 270 270
N: 265 265 266 269 269 269 270 270 271 272 285 285 286 286 286 286 286 286 286
N: 283 293 293 293 293 293 293 293 293 293 293 293 293 293 293 293 293 293 293
N: 265 265 269 269 270 270 270 273 285 285 286 286 286 286 286 286 293 293 293
N: 263 263 263 263 263 263 264 264 264 264 264 264 264 264 264 264 264 264 264
N: 263 264 264 265 265 269 269 270 270 273 285 286 286 286 286 286 293 293 293
N: 282 282 282 282 282 282 282 282 282 282 282 282 287 295 295 295 295 295 295
N: 264 264 265 265 269 269 270 271 282 282 285 286 286 286 286 286 293 293 295
N: 264 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265
N: 264 264 265 265 265 265 269 270 270 273 282 285 286 286 286 286 293 293 293
N: 267 267 267 267 267 267 267 267 267 267 268 268 268 268 268 268 268 268 269
N: 264 264 265 265 265 267 268 269 269 270 273 282 285 286 286 286 293 293 293
N: 269 269 270 270 270 270 275 275 275 275 275 275 275 275 275 276 276 276 276
N: 264 264 265 265 265 267 269 269 270 271 275 278 282 285 286 286 286 293 293
N: 310 310 310 310 310 310 310 310 310 310 310 310 310 310 310 310 310 310 310
N: 264 265 265 265 267 268 269 270 271 275 282 282 286 286 286 293 293 295 310
N: 264 265 265 265 267 268 269 270 271 275 282 282 286 286 286 293 293 295 310
N: 264 265 265 265 267 268 269 270 271 275 282 282 286 286 286 293 293 295 310
N: 250 250 250 250 250 250 250 250 251 251 251 251 251 251 251 251 251 251 251
N: 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 258 258 258 258
N: 250 250 250 250 251 251 251 251 251 252 257 257 257 257 257 257 257 258 258
N: 247 247 247 247 247 247 247 247 247 248 248 248 248 248 248 248 248 248 248
N: 247 247 247 248 248 248 250 250 250 251 251 251 251 257 257 257 257 257 258
N: 247 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248
N: 247 247 248 248 248 248 248 248 248 250 250 251 251 251 257 257 257 257 258
N: 253 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255
N: 247 247 248 248 248 248 248 250 250 251 251 253 254 255 255 257 257 257 258
N: 249 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
N: 247 248 248 248 248 248 250 250 250 250 250 251 251 254 255 255 257 257 257
N: 261 261 261 261 261 262 262 262 262 262 262 262 262 262 262 262 262 262 262
N: 247 248 248 248 248 250 250 250 250 251 251 254 255 255 257 257 258 261 262
N: 275 276 276 276 276 276 277 277 277 277 283 284 284 284 284 284 284 284 286
N: 247 248 248 248 249 250 250 250 251 251 254 255 257 257 258 262 262 276 284
N: 256 257 258 258 258 258 259 274 274 274 274 274 274 274 274 276 277 277 277
N: 247 248 248 248 250 250 250 251 253 254 255 257 257 258 262 262 274 276 283
N: 257 258 258 279 279 279 279 279 279 282 288 288 288 288 288 288 288 288 288
N: 247 248 248 250 250 250 251 252 255 255 257 258 259 262 274 276 277 282 288
N: 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268
N: 248 248 248 250 250 250 251 254 255 257 258 261 262 268 268 274 277 279 286
N: 248 248 248 250 250 250 251 254 255 257 258 261 262 268 268 274 277 279 286
N: 248 248 248 250 250 250 251 254 255 257 258 261 262 268 268 274 277 279 286

Code size: -swiftlibs

How to read the data The tables contain differences in performance which are larger than 5.0% 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

@palimondo
Copy link
Contributor Author

@shahmishal @eeckstein Did @swift-ci start to invoke run_smoke_bench with --num-reruns equal to 22 recently? I’m surprised by the number of independent iterations I’ve dumped. It seems we were using the default value just few days ago…

@CodaFi
Copy link
Contributor

CodaFi commented Apr 15, 2020

@palimondo This PR is enormous! The python formatting changes need to be broken out separately from the benchmark formatting changes.

@palimondo
Copy link
Contributor Author

palimondo commented Apr 17, 2020 via email

@shahmishal
Copy link
Member

Please update the base branch to main by Oct 5th otherwise the pull request will be closed automatically.

  • How to change the base branch: (Link)
  • More detail about the branch update: (Link)

@shahmishal shahmishal closed this Oct 5, 2020
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.

9 participants