diff --git a/Makefile b/Makefile index a26ad5d7c..fe9d8dee2 100644 --- a/Makefile +++ b/Makefile @@ -731,13 +731,9 @@ test-stack%yaml: stack --stack-yaml stack$*yaml clean stack --stack-yaml stack$*yaml --install-ghc build --test --bench --haddock --no-haddock-deps -BENCHEXES=hledger-0.27,hledger +BENCHEXES=hledger-1.4,hledger -quickbench: samplejournals bench.sh \ - $(call def-help,quickbench,\ - run simple performance benchmarks without saving results\ - Requires some commands defined in bench.sh\ - ) +bench: samplejournals bench.sh $(call def-help,bench, benchmark commands in bench.sh with quickbench and $(BENCHEXES)) quickbench -v -w $(BENCHEXES) # bench: samplejournals tests/bench.tests tools/simplebench \ diff --git a/bench.sh b/bench.sh new file mode 100755 index 000000000..2d83469e3 --- /dev/null +++ b/bench.sh @@ -0,0 +1,36 @@ +# Some standard commands to benchmark. "quickbench" runs these by default. +# There is another set of benchmarks in the hledger package: hledger/bench/bench.hs +# Here is a quick benchmarking guide. Note these are quick measurements which +# can be affected by system activity. Usually this isn't a problem. The last +# (criterion) is more robust. +# +# Generate the test journals: make samplejournals +# Get quickbench: stack install quickbench +# Measure performance: +# time ./bench.sh # show if these work, what they do, total time +# quickbench [OPTS] # time each command, one or more times +# make bench # time each command with several hledger versions (BENCHEXES in Makefile) +# stack bench hledger # time a different set of benchmarks (bench/bench.hs) +# stack bench hledger --ba --criterion # time more carefully, using criterion + +hledger -f examples/100x100x10.journal print +hledger -f examples/1000x1000x10.journal print +hledger -f examples/10000x1000x10.journal print +#hledger -f examples/10000x1000x10.journal print ff +hledger -f examples/100000x1000x10.journal print +hledger -f examples/100000x1000x10.journal print ff + +hledger -f examples/100x100x10.journal register +hledger -f examples/1000x1000x10.journal register +hledger -f examples/10000x1000x10.journal register +#hledger -f examples/10000x1000x10.journal register ff +hledger -f examples/100000x1000x10.journal register +hledger -f examples/100000x1000x10.journal register ff + +hledger -f examples/100x100x10.journal balance +hledger -f examples/1000x1000x10.journal balance +hledger -f examples/10000x1000x10.journal balance +#hledger -f examples/10000x1000x10.journal balance ff +hledger -f examples/100000x1000x10.journal balance +hledger -f examples/100000x1000x10.journal balance ff +