Commit Graph

52 Commits

Author SHA1 Message Date
Pavol Vaskovic
bea35cb7c1 [benchmark] LogParser measure environment
Measure more of environment during test

In addition to measuring maximum resident set size, also extract number of voluntary and involuntary context switches from the verbose mode.
2018-08-17 00:32:04 +02:00
Pavol Vaskovic
c60e223a3b [benchmark] LogParser: tab & space delimited logs
Added support for tab delimited and formatted log output (space aligned columns as output to console by Benchmark_Driver).
2018-08-17 00:32:04 +02:00
Pavol Vaskovic
d0cdaee798 [benchmark] LogParser support for --verbose mode
LogParser doesn’t use `csv.reader` anymore.
Parsing is handled by a Finite State Machine. Each line is matched against a set of (mutually exclusive) regular expressions that represent known states. When a match is found, corresponding parsing action is taken.
2018-08-17 00:32:04 +02:00
Pavol Vaskovic
9852e9a32a [benchmark] Extracted LogParser class 2018-08-17 00:32:04 +02:00
Pavol Vaskovic
d079607488 [benchmark] Documentation improvements 2018-08-17 00:32:04 +02:00
Pavol Vaskovic
179b12103f [benchmark] Refactor formatting responsibilities
Moved result formatting methods from `PerformanceTestResult` and `ResultComparison` to `ReportFormatter`, in order to free PTR to take more computational responsibilities in the future.
2018-08-16 17:44:59 +02:00
Erik Eckstein
edc7a0f96c benchmarks: add an option to the compare_perf_tests script to output improvements and regressions in an single table.
Instead of separate tables. Only affects git and markdown output.
2018-08-14 13:38:14 -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
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
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
practicalswift
cc6a160d91 [gardening] Remove unused Python property cv 2017-05-04 15:21:45 +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
swift-ci
a67c6d00f5 Merge pull request #8923 from moiseev/reverse-improvements 2017-04-24 17:06:07 -07: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
Hugh Bellamy
4f23d61da0 Import print_function wherever we use print() in python code 2017-02-20 11:11:27 +07:00
practicalswift
6d1ae2a39c [gardening] 2016 → 2017 2017-01-06 16:41:22 +01:00
practicalswift
797b80765f [gardening] Use the correct base URL (https://swift.org) in references to the Swift website
Remove all references to the old non-TLS enabled base URL (http://swift.org)
2016-11-20 17:36:03 +01:00
practicalswift
ee871c7938 [python] Bring code base in line with PEP-8 again 2016-09-16 19:33:04 +02:00
practicalswift
e8c4e1dd24 [gardening] Fix PEP 8 regression. 2016-04-02 11:31:07 +02:00
Erik Eckstein
12f38252d9 compare_perf_tests script: Fix two minor bugs
1) --changes-only didn't have an effect on formats other than html
2) a wrong-format error was printed even if the format name was correct
2016-04-01 14:18:29 -07:00
Erik Eckstein
d628cced3d compare_perf_tests script: Fix bug when calculating the minimum/maximum of multiple samples
Instead of the minimum always the last sample was taken.
2016-04-01 14:18:29 -07:00
practicalswift
11a8b6c2ba [gardening] Daily cleanup: typos, header formatting. 2016-03-28 09:29:38 +02:00
practicalswift
d00a5ef814 [gardening] Weekly gardening: typos, duplicate includes, header formatting, etc. 2016-03-24 22:41:10 +01:00
practicalswift
1f90412532 [Python] Remove unused function nthroot. Use sys.exit(…) instead of exit(…) 2016-03-22 21:34:41 +01:00
Mishal Shah
cb23837bb9 [Compare Perf] Add support for markdown and html 2016-03-21 18:08:08 -07:00
practicalswift
1edb62dc38 [Python] Make flake8 linting pass without errors/warning (w/ default rules) 2016-03-13 20:19:51 +01:00
Mishal Shah
f89c70135b Merge pull request #1624 from shahmishal/master
[Perf script] Fix output format for compare script
2016-03-10 11:56:55 -08:00
Mishal Shah
fcbea8bd90 [Perf script] Fix output format for compare script 2016-03-10 11:54:27 -08:00
practicalswift
a1156e1854 [Python] Fix recently introduced linting (flake8) regression. 2016-03-10 13:51:17 +01:00
practicalswift
0796eaad1f [Python] Fix 80-column violations 2016-03-09 23:52:11 +01:00
Mishal Shah
046f0636b2 Fix compare_perf_tests.py to support python 3 2016-03-09 14:02:16 -08:00
practicalswift
30b66ea036 Merge pull request #1584 from practicalswift/python-3-compatible-print
[Python] Use Py3k compatible print operator: print "foo" → print("foo")
2016-03-09 08:00:49 +01:00
Brian Gesiak
c9000af795 Merge pull request #1526 from practicalswift/fix-pep8-violations-ii
[Python] Fix five classes of PEP-8 violations (E101/E111/E128/E302/W191)
2016-03-08 23:55:46 -05:00
practicalswift
0fd0c48648 [Python] Use Py3k compatible print operator: print "foo" → print("foo") 2016-03-08 23:10:52 +01:00
practicalswift
e2de5c2202 [Python] Fix blind except: statements
Make sure all Python code in the repo specifies which exceptions to
catch when using `except:`.

Regressions can be catched using `flake8-blind-except` going forward.
2016-03-08 11:08:28 +01:00
practicalswift
265835fdfc [Python] Use consistent import ordering for Python code
Ordering used:
1.) standard library imports
2.) third party imports
3.) local package imports

Each group is individually alphabetized.
2016-03-07 23:25:16 +01:00
practicalswift
183da818df [Python] Fix five classes of PEP-8 violations (E101/E111/E128/E302/W191)
* E101: indentation contains mixed spaces and tabs
* E111: indentation is not a multiple of four
* E128: continuation line under-indented for visual indent
* E302: expected 2 blank lines, found 1
* W191: indentation contains tabs
2016-03-07 22:36:23 +01:00
practicalswift
f6d6585ee0 [Python] Improve Python consistency: Use function_name(…) throughout (PEP8) 2016-02-29 22:49:19 +01:00
Andrew Trick
6bcbde2f1c [benchmark] Fix the comparison script to report possibly spurious data points.
When comparing scores from either multiple samples, or multiple runs,
print (?) if scores for the configurations being compared have
overlapping ranges.
2016-02-28 00:29:49 -08:00
Andrew Trick
4c3f4c617d Change benchmark score output to (?) for likely bogus data. 2016-02-27 21:56:29 -08:00
lplarson
15d94d1595 Merge pull request #1234 from practicalswift/benchmark-pep8-fixes
[Python] Bring new code in line with subset of PEP 8 used in project
2016-02-09 18:49:19 -08:00
practicalswift
576ef29629 [Python] Fix redundant list comprehensions in recently introduced code. 2016-02-08 20:54:20 +01:00