From 7fbe6c4b315fe05567c70f7b948c27b62e2a565a Mon Sep 17 00:00:00 2001 From: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> Date: Mon, 6 Jun 2022 08:07:00 +0000 Subject: [PATCH 1/3] Add coverage benchmark --- .gitignore | 3 +++ pyperformance/data-files/benchmarks/MANIFEST | 1 + .../benchmarks/bm_coverage/pyproject.toml | 12 ++++++++++ .../benchmarks/bm_coverage/requirements.txt | 1 + .../benchmarks/bm_coverage/run_benchmark.py | 24 +++++++++++++++++++ 5 files changed, 41 insertions(+) create mode 100644 pyperformance/data-files/benchmarks/bm_coverage/pyproject.toml create mode 100644 pyperformance/data-files/benchmarks/bm_coverage/requirements.txt create mode 100644 pyperformance/data-files/benchmarks/bm_coverage/run_benchmark.py diff --git a/.gitignore b/.gitignore index 6535968a..1f83a928 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,6 @@ pyperformance/tests/data/cpython/ # Created by the tox program .tox/ + +# coverage +.coverage \ No newline at end of file diff --git a/pyperformance/data-files/benchmarks/MANIFEST b/pyperformance/data-files/benchmarks/MANIFEST index 38cd40b5..72cb6730 100644 --- a/pyperformance/data-files/benchmarks/MANIFEST +++ b/pyperformance/data-files/benchmarks/MANIFEST @@ -6,6 +6,7 @@ async_tree async_tree_cpu_io_mixed async_tree_io async_tree_memoization +coverage generators chameleon chaos diff --git a/pyperformance/data-files/benchmarks/bm_coverage/pyproject.toml b/pyperformance/data-files/benchmarks/bm_coverage/pyproject.toml new file mode 100644 index 00000000..0dac4af7 --- /dev/null +++ b/pyperformance/data-files/benchmarks/bm_coverage/pyproject.toml @@ -0,0 +1,12 @@ +[project] +name = "pyperformance_bm_coverage" +requires-python = ">=3.8" +dependencies = [ + "pyperf", + "coverage", +] +urls = {repository = "https://github.com/python/pyperformance"} +dynamic = ["version"] + +[tool.pyperformance] +name = "coverage" diff --git a/pyperformance/data-files/benchmarks/bm_coverage/requirements.txt b/pyperformance/data-files/benchmarks/bm_coverage/requirements.txt new file mode 100644 index 00000000..755f8b95 --- /dev/null +++ b/pyperformance/data-files/benchmarks/bm_coverage/requirements.txt @@ -0,0 +1 @@ +coverage==6.4.1 diff --git a/pyperformance/data-files/benchmarks/bm_coverage/run_benchmark.py b/pyperformance/data-files/benchmarks/bm_coverage/run_benchmark.py new file mode 100644 index 00000000..7c8a8fa1 --- /dev/null +++ b/pyperformance/data-files/benchmarks/bm_coverage/run_benchmark.py @@ -0,0 +1,24 @@ +import coverage +import pyperf + + +def fibonacci(n: int) -> int: + if n <= 1: + return n + return fibonacci(n - 1) + fibonacci(n - 2) + + +def bench_coverage(loops: int) -> None: + range_it = range(loops) + cov = coverage.Coverage() + cov.start() + t0 = pyperf.perf_counter() + for _ in range_it: + fibonacci(25) + cov.stop() + return pyperf.perf_counter() - t0 + +if __name__ == "__main__": + runner = pyperf.Runner() + runner.metadata['description'] = "Benchmark coverage" + runner.bench_time_func('coverage', bench_coverage) From f2b683d0d14e404636e308d06784cbf6951b54ae Mon Sep 17 00:00:00 2001 From: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> Date: Mon, 6 Jun 2022 08:09:24 +0000 Subject: [PATCH 2/3] docstring --- .../data-files/benchmarks/bm_coverage/run_benchmark.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pyperformance/data-files/benchmarks/bm_coverage/run_benchmark.py b/pyperformance/data-files/benchmarks/bm_coverage/run_benchmark.py index 7c8a8fa1..6e8c029b 100644 --- a/pyperformance/data-files/benchmarks/bm_coverage/run_benchmark.py +++ b/pyperformance/data-files/benchmarks/bm_coverage/run_benchmark.py @@ -1,3 +1,7 @@ +""" +Benchmark coverage performance with a recursive fibonacci function. +""" + import coverage import pyperf @@ -18,6 +22,7 @@ def bench_coverage(loops: int) -> None: cov.stop() return pyperf.perf_counter() - t0 + if __name__ == "__main__": runner = pyperf.Runner() runner.metadata['description'] = "Benchmark coverage" From 26b94509c0b133b7d30a5c2fbd5340952ba03c2b Mon Sep 17 00:00:00 2001 From: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> Date: Mon, 6 Jun 2022 09:02:15 +0000 Subject: [PATCH 3/3] whitespace --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1f83a928..ee5e45bf 100644 --- a/.gitignore +++ b/.gitignore @@ -23,4 +23,4 @@ pyperformance/tests/data/cpython/ .tox/ # coverage -.coverage \ No newline at end of file +.coverage