Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Mark some benchmarks as "slow".
  • Loading branch information
ericsnowcurrently committed Mar 19, 2021
commit 1caa4d4afd50cfff626de8b17777b98f9c57ea6e
20 changes: 20 additions & 0 deletions pyperformance/benchmarks/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import logging

from pyperformance.cli import fast_requested
from pyperformance.run import run_perf_script


Expand Down Expand Up @@ -78,9 +79,23 @@
"apps": ["2to3", "chameleon", "html5lib", "tornado_http", "azure_cli"],
"math": ["float", "nbody", "pidigits"],
"template": ["django_template", "mako"],
"slow": [],
}


def slow(func):
"""A decorator to mark a benchmark as slow."""
if not func.__name__.startswith("BM_"):
raise NotImplementedError(func)
name = func.__name__[3:].lower()
BENCH_GROUPS["slow"].append(name)
return func


def maybe_slow(func):
return func if fast_requested() else slow(func)


def BM_2to3(python, options):
return run_perf_script(python, options, "2to3")

Expand All @@ -92,6 +107,7 @@ def BM_azure_cli(python, options):
])


@maybe_slow
def BM_azure_cli_tests(python, options):
return run_perf_script(python, options, "azure_cli",
extra_args=[
Expand All @@ -100,6 +116,7 @@ def BM_azure_cli_tests(python, options):
])


@maybe_slow
def BM_azure_cli_verify(python, options):
return run_perf_script(python, options, "azure_cli",
extra_args=[
Expand Down Expand Up @@ -320,6 +337,9 @@ def get_benchmarks():

# create the 'all' group
bench_groups["all"] = sorted(bench_funcs)
bench_groups["fast"] = [name
for name in bench_groups["all"]
if name not in bench_groups["slow"]]

return (bench_funcs, bench_groups)

Expand Down
4 changes: 4 additions & 0 deletions pyperformance/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@ def parse_args():
return (parser, options)


def fast_requested():
return '--fast' in sys.argv


def _main():
parser, options = parse_args()

Expand Down