Commit Graph

1638 Commits

Author SHA1 Message Date
Pavol Vaskovic
2fe31b324f [benchmark] CaptureProp Legacy Factor 2018-12-07 16:27:06 +01:00
Pavol Vaskovic
4db45875d1 [benchmark] Gardening: Indent ArraySubscript loop 2018-12-07 16:27:06 +01:00
Pavol Vaskovic
6778c8a658 [benchmark] ArraySubscript Legacy Factor
Also fixed variable workload size (`N`-dependent).
2018-12-07 16:27:06 +01:00
Pavol Vaskovic
706efe6e5f [benchmark] CStringShortAscii Legacy Factor 2018-12-07 16:27:06 +01:00
Pavol Vaskovic
46285778c1 [benchmark] Array2D Legacy Factor 2018-12-07 16:27:06 +01:00
Pavol Vaskovic
959a4358c2 [benchmark] AngryPhonebook Legacy Factor
Lowered the workload to get under 1ms runtime.
2018-12-07 16:27:06 +01:00
Pavol Vaskovic
642c6943a4 [benchmark] COW Legacy Factor 2018-12-07 16:27:06 +01:00
Pavol Vaskovic
9e8230badc [benchmark] CSVParsing Legacy Factor
The `legacyFactor` is 11 instead of 10, because of the wierd way the `repeatCount` translates to the workload size based on the number of lines in the `workloadBase`… it’s just so.
2018-12-07 16:27:06 +01:00
Pavol Vaskovic
20f91e7e08 [benchmark] ArrayAppend fine-tune Legacy Factor
Lowered the workload of string appending bechmarks a bit further, to get them under 1ms in `O` and 10ms in `Onone` builds.

Fine tuned the legacy factor to match original `O` runtimes — the changes are non-linear because of complications from double loop and amortized array growth costs.

These string appending benchmarks along with
* ArrayPlusEqualFiveElementCollection and
* ArrayPlusEqualSingleElementCollection
are likely to show different performance in `Osize` and `Onone` builds because of the non-linearity of their original implementation.
2018-12-07 16:27:06 +01:00
Pavol Vaskovic
150d748cab [benchmark] ArrayAppend Legacy Factor
Cleaned up doubled inner loops and applied legacyFactor to the resulting, more rational, workload sizes.

Factors for string appending benchmarks are not 10, but 11 to compensate for smaller amortized Array resizes. Similarily ArrayPlusEqualFiveElementCollection’s factor is 49.
2018-12-07 15:09:27 +01:00
Pavol Vaskovic
3631ccb63a [Gardening] AnyHashableWithAClass inlined LF 2018-12-07 15:09:27 +01:00
Pavol Vaskovic
2582576048 [benchmark] Ackermann Redux
Reintroduce Ackermann benchmark with reasonably sized workload. Since this one was tagged `.unstable`, there’s no need to go through `legacyFactor`.

Adjusted `lit` test for Benchmark_O now that Ackermann isn’t marked `.unstable` anymore.

Removed incorrect `asserts` requirement from the benchmark lit tests.
2018-12-07 15:09:27 +01:00
Pavol Vaskovic
9d6f7ad160 [benchmark] Driver & Doctor: Lower the sample cap
Lowered the default sample cap from 2k to 200. (This doesn’t effect manually specified `--num-samples` argument in the driver.)

Swift benchmarks have pretty constant performance profile over time. It’s more beneficial to get multiple independent measurements faster, than more samples from the same run.
2018-12-07 15:06:43 +01:00
Erik Eckstein
5797e3d8c7 benchmarks: Remove the obsolete bench_code_size.py and run_smoke_bench.py scripts.
Those scripts are replaced by run_smoke_bench.

This is a follow-up commit to 040aa06fec
2018-12-05 16:02:46 -08:00
Pavol Vaskovic
9857b0df9e [benchmark] Replace OCB with Bridging
Removed the controversial mention of C-style name prefixes.
2018-12-05 14:33:19 +01:00
Adrian Prantl
ff63eaea6f Remove \brief commands from doxygen comments.
We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they are a visual distraction and we don't want to
encourage more \brief markers in new code either, this patch removes
them all.

Patch produced by

      for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
2018-12-04 15:45:04 -08:00
David Smith
f85e1fee22 Generalize the JSON perf tests to Codable 2018-12-03 11:16:47 -08:00
swift-ci
ece1bfc85a Merge pull request #20886 from Catfish-Man/someone-called-json-is-decoding-things 2018-11-29 22:14:17 -08:00
David Smith
c129066b39 Add simple benchmarks for JSON coding 2018-11-29 17:41:50 -08:00
Karoy Lorentey
41c9a222da [benchmark] DictTest4Legacy: Add dummy hash(into:)
The new definition is the same as the one synthesized by the compiler.
2018-11-29 17:52:50 +00:00
Pavol Vaskovic
d6392cc014 Merge pull request #20807 from palimondo/and-dreadfully-distinct
[benchmark] Added Benchmark Check Report
2018-11-29 05:35:18 +01:00
Karoy Lorentey
74eaea2a6a [benchmark] Add some benchmarks for String breadcrumbs (#20769)
[benchmark] Add some benchmarks for String breadcrumbs
2018-11-28 16:24:29 -08:00
Pavol Vaskovic
cd47f32350 [benchmark] Don’t emit report for no added tests 2018-11-28 23:57:23 +01:00
Pavol Vaskovic
94e86c043e [benchmark] Call test_opt_levels directly
Simplify the code by removing indirection:
After removal of -check-added option, only single function remains.
2018-11-28 22:47:02 +01:00
Pavol Vaskovic
98d6f22a7d [benchmark] run_smoke_bench -skip-check-added
Removed the option to `-check-added`, as it’s now run by default. Replaced with option to skip checking added benchmarks: `-skip-check-added`.
2018-11-28 21:47:57 +01:00
Pavol Vaskovic
0bdd3ef275 [benchmark] Equalize memory usage (w&w/o verbose)
The use of `--verbose` parameter was affecting the reported memory usage (`--memory`), because it front-loads initialization of string interpolation and printing.

By always computing the configuration string and always calling print, the baseline memory measurement no longer includes this constant overhead.
2018-11-28 21:34:12 +01:00
Pavol Vaskovic
cbd882119c [benchmark] Added Benchmark Check Report
Produce Markdown formatted report, analyzing the quality of newly added benchmarks.
2018-11-27 23:01:39 +01:00
Andreas Jönsson
09768f29c5 [benchmark] fixes index(of:) deprecation warnings in ArgParse 2018-11-27 22:57:22 +01:00
Pavol Vaskovic
92cf40dcd3 [benchmark] MarkdownReportHandler
`logging.Handler` that creates nicely formatted report from `BecnhmarkDoctor`’s `check` in Markdown table for display on GitHub.
2018-11-27 22:55:02 +01:00
Pavol Vaskovic
9a04207735 [benchmark] Doctor: emit mem_page details info
Promoting previously DEBUG message to INFO.
2018-11-27 22:49:07 +01:00
eeckstein
5a6dfb6bc7 Merge pull request #20667 from palimondo/cells-interlinked
[benchmark] run_smoke_bench tweaks
2018-11-26 12:40:53 -08:00
Pavol Vaskovic
e828adc058 [benchmark] Naming: emphasize ABBR are last resort 2018-11-19 11:40:55 +01:00
Pavol Vaskovic
bc0064d285 [benchmark] Simpler naming convention regex 2018-11-19 10:03:33 +01:00
Pavol Vaskovic
4e5f51d2f6 [benchmark] run_smoke tests with new naming
Allow for running of test matching the naming convention proposed in #20334.
2018-11-17 22:35:58 +01:00
Pavol Vaskovic
af719248e6 [benchmark] run_smoke_bench deterministic hashing
Tests that used hashing were being unnecessarily tested multiple times, because this environment variable was missing.
2018-11-17 21:38:46 +01:00
swift-ci
f093925036 Merge pull request #20452 from Catfish-Man/stringtrampolines 2018-11-15 17:55:34 -08:00
David Smith
8bb6b78e36 Use super trampolines to let us override several more NSString methods (-UTF8String, -cStringUsingEncoding:, and -getCString:maxLength:encoding:) for performance 2018-11-15 17:10:51 -08:00
Lance Parker
4714a74fbe Re-enable iterator benchmarks, remove longSharedPrefix from hashing benchmarks 2018-11-15 11:01:28 -08:00
Maxim Moiseev
cbf83ac04f [NFC][stdlib] Add FIXME markers to simplify audit 2018-11-14 11:58:42 -08:00
Slava Pestov
f6c2caf64b stdlib: Add @inlinable to @inline(__always) declarations
These should be audited since some might not actually need to be
@inlinable, but for now:

- Anything public and @inline(__always) is now also @inlinable
- Anything @usableFromInline and @inline(__always) is now @inlinable
2018-11-13 15:15:07 -05:00
Philippe Hausler
ff26e96a23 Disable really large Data tests that take a bit too long to run 2018-11-07 15:48:49 -08:00
Philippe Hausler
a66e769b84 [Benchmarks] Add a whole lot more benchmarks for Data (#20396) 2018-11-07 11:25:54 -08:00
Graydon Hoare
6b972f5165 Merge pull request #20347 from graydon/flake8-fixes
Flake8 fixes
2018-11-06 17:30:01 -08:00
David Smith
634e6bc584 Add benchmarks for various ObjC NSString operations on bridged Swift Strings 2018-11-06 13:43:24 -08:00
Graydon Hoare
71da5ec519 Fix flake8 warning W605 invalid escape sequence. 2018-11-06 11:38:39 -08:00
eeckstein
f64f02bfde Merge pull request #20212 from palimondo/fluctuation-of-the-pupil
[benchmark] Legacy Factor
2018-11-06 11:31:08 -08:00
Graydon Hoare
4aa01e908a Fix flake8 warning E741 ambiguous variable name 'l'. 2018-11-05 21:01:33 -08:00
eeckstein
5f21c12358 Merge pull request #20048 from palimondo/i-just-do-eyes
[benchmark] Extract Setup from Benchmarks
2018-11-05 15:16:32 -08:00
Pavol Vaskovic
b4f901bae4 [benchmark] Naming Convention
New benchmark naming convention for better readability and improved naming system that accounts for performance coverage growth going forward.
2018-11-05 22:44:50 +01:00
Michael Ilseman
948655e850 [String] Cleanups, comments, documentation
After rebasing on master and incorporating more 32-bit support,
perform a bunch of cleanup, documentation updates, comments, move code
back to String declaration, etc.
2018-11-04 10:42:42 -08:00