Commit Graph

109 Commits

Author SHA1 Message Date
Arnold Schwaighofer
a921bfa044 Benchmark_RuntimeLeaksRunner: don't use non-existing --run-all flag
rdar://34149935
2017-10-13 07:44:46 -07:00
Erik Eckstein
45a2ae48ce benchmarks: replace the Ounchecked build with an Osize build
We don't measure Ounchecked anymore. On the other hand we want to benchmark the Osize build.
2017-10-06 14:09:43 -07:00
Michael Gottesman
96bc70d6ad [benchmark] Update perf_test_driver for benchmark driver updates.
This ensures that Benchmark_GuardMalloc, Benchmark_RuntimeLeaksRunner, etc. all
support the new way benchmark --list outputs benchmark names.
2017-10-02 22:06:47 -07:00
Michael Gottesman
dfc780a744 [benchmark][driver] Teach the Benchmark_Driver how to parse ./Benchmark_O{,none} --list now that tags are output as well. 2017-09-27 19:14:52 -07:00
Pavol Vaskovic
9c51a48917 Fix: Run benchmarks just once 2017-06-27 18:47:35 +02:00
Luke Larson
6944c20e13 Benchmark_Driver: Support custom baseline branches
Support specifying a baseline branch to compare the current results
against. Previously, the master branch was hardcoded.

Fixes: rdar://problem/32751587
2017-06-14 15:28:52 -07:00
Pavol Vaskovic
97d6f8dc5e Support for running benchmarks by ordinal number
Add support for running benchmarks by reffering to them by their ordinal number in `Benchmark_Driver`, as is supported by `Benchmark_O`(`Onone`, `Ounchecked`).

Updated documentation to reflect this.
2017-06-12 20:50:00 +02:00
Pavol Vaskovic
f244b54e68 Fix SR-4780
SR-4780 Can not run performance tests that are not in precommit suite

Modified driver to honor command line arguments when listing enabled tests. Fixed interaction between filters (positional arguments) and --run-all option.

Benchmark_Driver lists available benchmarks with --run-all option when benchmarks or filters are specified.
2017-06-07 21:13:50 +02:00
Pavol Vaskovic
686c761992 One more typo fix. 2017-06-04 18:48:19 +02:00
Pavol Vaskovic
e7b243cad7 Fixed false statement in documentation. 2017-06-04 18:40:20 +02:00
Pavol Vaskovic
dea7d8fe77 Consistent --output; Improved coverage: main()
Coverage at 99% according to coverage.py

* `compare_perf_tests.py` now always outputs the same format to stdout as is written to `--output` file
* Added integration test for the main() function
* Added tests for console output (and suppressed it leaking during testing)
* Fixed file name in test’s file header
2017-06-04 18:31:06 +02:00
Pavol Vaskovic
9265a71ac6 Improved coverage: ReportFormatter
Coverage at 87% according to coveragy.py

Also fixed spelling errors in documentation.
2017-06-02 02:28:44 +02:00
Pavol Vaskovic
d178b6e0cd Improved coverage with more tests: parse_args
Coverage at 66% according to coveragy.py
2017-06-01 22:19:33 +02:00
Pavol Vaskovic
49ddd96c83 Added documentation and test coverage.
compare_perf_test.py is now covered with unit tests and public methods are documented in the implementation.

Minor refactoring  to better conform to Python conventions:
* classes declared in new style
* proper private method prefix of single underscore
* replacing map with list comprehension where it was clearer

Unit test are executed as part of validation-test.

.gitignore was modified to ignore .coverage and htmlcov artifacts generated by the coverage.py package
2017-06-01 20:05:40 +02:00
Slava Pestov
02dbc0f34f Merge pull request #9193 from palimondo/SR-4572
[benchmark] SR-4572 Remove jinja2 dependency from test harness generation
2017-05-11 15:16:11 -07:00
practicalswift
659b415462 [gardening] Fix typo. 2017-05-11 16:04:36 +02:00
practicalswift
49ed8579c4 [gardening] Use American English. 2017-05-09 20:44:30 +02:00
Mishal Shah
a05b35c332 Merge pull request #9026 from palimondo/SR-4598
[benchmark] Support multiple regular expression filters in Benchmark_Driver
2017-05-05 09:46:02 -07:00
Pavol Vaskovic
2f8f11801a Filters are now regullar expression patterns 2017-05-05 08:48:41 +02:00
practicalswift
cc6a160d91 [gardening] Remove unused Python property cv 2017-05-04 15:21:45 +02:00
Pavol Vaskovic
68fde69535 Applied DRYer. Made python lint happy. 2017-05-02 21:49:59 +02:00
Pavol Vaskovic
bdffb35d17 SR-4572 Remove jinja2 dependency from benchmark test harness generation 2017-05-02 16:20:30 +02:00
swift-ci
ba67a51c54 Merge pull request #8978 from palimondo/SR-4659 2017-04-27 14:53:26 -07:00
Pavol Vaskovic
d77324782a Fix SR-4659 Benchmark logs should be tied to tested tree version 2017-04-27 23:09:14 +02:00
Pavol Vaskovic
6d9de4ca70 Multiple filters are specified by repeated -f
Updated usage documentation to reflect this.
2017-04-26 21:12:59 +02:00
Pavol Vaskovic
c719818024 Fix SR-4601 Report Added and Removed Benchmarks in Performance Comparison (#8991)
* Refactor compare_perf_tests.py

* Fix SR-4601 Report Added and Removed Benchmarks in Performance Comparison

Improved HTML styling.

* Added back support for reading concatenated Benchmark_Driver output

PerformanceTestResults can be merged, computing new MIN, MAX, and running MEAN and SD.

* Handle output from Benchmark_O again

Treat MAX_RSS as optional column
2017-04-26 12:09:18 -07:00
Michael Ilseman
111d6200eb Merge pull request #8979 from milseman/parse_my_tweets_faster
[stdlib] Parse my tweets faster! 2x forwards, 3x reverse
2017-04-26 07:36:18 -07:00
Pavol Vaskovic
481f542100 Support multiple prefix filters 2017-04-26 16:14:59 +02:00
swift-ci
9b0fe1a47a Merge pull request #8975 from palimondo/SR-4598 2017-04-25 14:07:19 -07:00
Pavol Vaskovic
cecfe439c6 Display OPT choices in usage help
Fixed pyton-lint warnings
2017-04-25 03:50:40 +02:00
Pavol Vaskovic
5c29fa65b1 Renamed args.benchmarks - plural 2017-04-25 03:25:29 +02:00
swift-ci
a67c6d00f5 Merge pull request #8923 from moiseev/reverse-improvements 2017-04-24 17:06:07 -07:00
Michael Ilseman
517ac2a66f [benchmark] Add in some (default off) mixed-string micro benchmarks
Adds in a benchmark to see how quickly we can traverse mixed latin and
emoji strings. Default disabled and part of the stringTests suite.
2017-04-24 14:57:42 -07:00
Pavol Vaskovic
094094a04c Addressed python style issue raised during review 2017-04-24 23:53:40 +02:00
Pavol Vaskovic
3a5051e392 Fix SR-4598 Add option to run subset of benchmarks matching a prefix 2017-04-24 23:40:38 +02:00
Max Moiseev
9aa1e61851 Sorting performance by delta instead of ratio
...to avoid problems with rounding.
2017-04-24 14:34:38 -07:00
Andrew Trick
f5410be16b compare_perf_tests.py: fix column header formatting.
Column names must not contain spaces for tools that auto-format the table.
The extra "(%)" was completely redundant since every value in the column
reads as a percentage.
2017-04-22 10:16:17 -07:00
Max Moiseev
c4dc74b9b6 Fixing the crash in compare_perf_tests
Comparisons should only be performed on the intersection of test lists,
otherwise it would crash should the new benchmark be introduced.
2017-04-21 14:40:38 -07:00
Max Moiseev
d878b45e29 Reverse the order of improvements in the output of compare_perf_tests
Both regressions and improvements are sorted by the delta, which in case
of improvements produces the reversed order due to negative values of
delta.
This change makes the improvements ordered 'naturally':
most-improved-first.
2017-04-21 13:59:02 -07:00
Arnold Schwaighofer
a4c1bc9e5e Make python lint happy 2017-04-20 20:16:16 -07:00
Arnold Schwaighofer
c9aa05c3c6 [benchmark] Move existential tests out of precommit. They are not very stable. 2017-04-20 13:11:20 -07:00
Michael Ilseman
f6bf784ef1 [benchmark] Appease python lint 2017-04-19 15:55:16 -07:00
Michael Ilseman
edf8e6e5e6 [benchmark] Move work into the harness generator
Move the improvements to main.swift into the harness generator and
template itself. Run the generator.
2017-04-19 14:59:35 -07:00
swift-ci
bf08d01610 Merge pull request #8641 from palimondo/sequence-benchmarks 2017-04-14 00:35:02 -07:00
Pavol Vaskovic
857745fbf1 Added usage comment to test driver. Renamed validation-test/[benchmarks -> benchmark]. 2017-04-13 21:38:21 +02:00
Pavol Vaskovic
6a54bc22ff Fixed Python style issues reported by python-lint 2017-04-13 13:00:54 +02:00
practicalswift
77ab316d60 [gardening] Avoid blind exception 2017-04-12 15:13:11 +02:00
Michael Gottesman
92b70212bb [leaksrunner] Handle subprocesses segfaulting nicely rather than throwing an IndexError. 2017-04-10 16:33:26 -07:00
Michael Gottesman
503b6b883f [leaksrunner] Use pool.map_async.get(999999) instead of pool.map so that we support C-c. 2017-04-10 16:00:04 -07:00
Pavol Vaskovic
7c103d80c6 Validate that benchmark commits contain freshly generated test harness 2017-04-11 00:47:34 +02:00