diff --git a/Makefile b/Makefile index 5b8208e..cbaadaa 100644 --- a/Makefile +++ b/Makefile @@ -65,6 +65,10 @@ serve-docs: $(VENV) manpage: $(VENV) help2man $(BIN)/blag --no-info -n "blog-aware, static site generator" -o debian/blag.1 +.PHONY: benchmark +benchmark: $(VENV) + $(BIN)/pytest --no-cov -s -rP tests/benchmark.py + .PHONY: clean clean: rm -rf build dist *.egg-info diff --git a/tests/benchmark.py b/tests/benchmark.py new file mode 100644 index 0000000..3766f21 --- /dev/null +++ b/tests/benchmark.py @@ -0,0 +1,31 @@ +import os + +import blag +from blag.blag import build + + +def test_performance(args) -> None: + FILES = 1000 + print(f"Generating {FILES} files") + # create random markdown files in the content directory + with open(os.path.join(blag.__path__[0], "content", "testpage.md")) as fh: + markdown = fh.read() + for i in range(FILES): + with open(f"content/{i}.md", "w") as f: + f.write(markdown) + f.write(str(i)) + + from time import time + + t = time() + build(args) + t_first = time() - t + print(t_first) + + t = time() + build(args) + t_second = time() - t + print(t_second) + print(f"First run: {t_first:.2f}s, second run: {t_second:.2f}s") + print(f"Speedup: {t_first/t_second:.2f}") +