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
39 lines
859 B
4 months ago
|
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()
|