add bench target and scripts to run simple benchmark
This commit is contained in:
parent
87d4f7c270
commit
78987f7ba3
3 changed files with 28 additions and 0 deletions
|
@ -13,6 +13,7 @@ documentation = "https://docs.rs/jotdown"
|
||||||
exclude = [
|
exclude = [
|
||||||
".gitmodules",
|
".gitmodules",
|
||||||
"Makefile",
|
"Makefile",
|
||||||
|
"benches",
|
||||||
"modules",
|
"modules",
|
||||||
"tests",
|
"tests",
|
||||||
]
|
]
|
||||||
|
|
8
Makefile
8
Makefile
|
@ -18,6 +18,13 @@ suite_bench:
|
||||||
(cd tests/bench && make)
|
(cd tests/bench && make)
|
||||||
cargo test --features suite_bench
|
cargo test --features suite_bench
|
||||||
|
|
||||||
|
.PHONY: bench
|
||||||
|
bench:
|
||||||
|
git submodule update --init modules/djot.js
|
||||||
|
for f in $$(find modules/djot.js/bench -name '*.dj' | xargs basename -a); do \
|
||||||
|
ln -fs ../modules/djot.js/bench/$$f benches/$$f; \
|
||||||
|
done
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
cargo clean
|
cargo clean
|
||||||
git submodule deinit -f --all
|
git submodule deinit -f --all
|
||||||
|
@ -25,3 +32,4 @@ clean:
|
||||||
(cd tests/suite && make clean)
|
(cd tests/suite && make clean)
|
||||||
rm -f tests/bench/*.dj
|
rm -f tests/bench/*.dj
|
||||||
(cd tests/bench && make clean)
|
(cd tests/bench && make clean)
|
||||||
|
rm -f benches/*.dj
|
||||||
|
|
19
benches/bench.sh
Executable file
19
benches/bench.sh
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cmd=$*
|
||||||
|
|
||||||
|
test_html=$(echo "abc" | $cmd | tr -d ' \n')
|
||||||
|
[ "$test_html" != "<p>abc</p>" ] && echo "failed simple gen: '$test_html'" && exit 1
|
||||||
|
|
||||||
|
for f in *.dj; do
|
||||||
|
tmp=$(mktemp)
|
||||||
|
for i in $(seq 500); do
|
||||||
|
cat "$f" >> $tmp
|
||||||
|
done
|
||||||
|
t=$(cat "$tmp" \
|
||||||
|
| (LANG=C time -p $cmd > /dev/null) 2>&1 \
|
||||||
|
| grep real \
|
||||||
|
| awk '{print $2}')
|
||||||
|
printf "$t\t$f\n"
|
||||||
|
rm -f "$tmp"
|
||||||
|
done | sort -rn
|
Loading…
Reference in a new issue