You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
859 B

import os
import re
import sys
from subprocess import Popen
_filename_re = re.compile(r"^bench_(.*?)\.py$")
bench_directory = os.path.abspath(os.path.dirname(__file__))
def list_benchmarks():
result = []
for name in os.listdir(bench_directory):
match = _filename_re.match(name)
if match is not None:
result.append(match.group(1))
result.sort(key=lambda x: (x.startswith("logging_"), x.lower()))
return result
def run_bench(name):
print(name)
Popen(
[sys.executable, "-m", "timeit", "-s", f"from bench_{name} import run", "run()"]
).wait()
def main():
print("=" * 80)
print("Running benchmark for MarkupSafe")
print("-" * 80)
os.chdir(bench_directory)
for bench in list_benchmarks():
run_bench(bench)
print("-" * 80)
if __name__ == "__main__":
main()