From 0d29e8da52f31e76ac8df77c50e027580e1e83fa Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 17 Nov 2014 10:39:45 -0800 Subject: Improved 'make bench'. --- Makefile | 18 +++++++++++++----- README.md | 3 ++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 9e564e9..5e326da 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,7 @@ archive: spec.html $(BUILDDIR) echo "Created $(TARBALL) and $(ZIPARCHIVE)." clean: - rm -rf $(BUILDDIR) $(MINGW_BUILDDIR) $(MINGW_INSTALLDIR) $(TARBALL) $(ZIPARCHIVE) $(PKGDIR) benchmark.md + rm -rf $(BUILDDIR) $(MINGW_BUILDDIR) $(MINGW_INSTALLDIR) $(TARBALL) $(ZIPARCHIVE) $(PKGDIR) $(PROG): all @@ -115,12 +115,19 @@ fuzztest: done } 2>&1 | grep 'user\|abnormally' # for benchmarking -benchmark.md: progit.md - for x in `seq 1 10` ; do cat $< >> $@; done +benchmark.md: progit/progit.md + -rm $@; for x in `seq 1 20` ; do cat $< >> $@; done + +progit: + git clone https://github.com/progit/progit.git + +progit/progit.md: progit + cat progit/en/*/*.markdown > $@ bench: benchmark.md - { for x in `seq 1 20` ; do \ - sudo chrt -f 99 /usr/bin/env time -p ${PROG} $< >/dev/null ; \ + { sudo renice 99 $$$$; \ + for x in `seq 1 20` ; do \ + /usr/bin/env time -p ${PROG} $< >/dev/null ; \ done \ } 2>&1 | tee rawdata | grep 'user' |\ awk '{print $$2}' | \ @@ -134,6 +141,7 @@ distclean: clean -rm -rf *.dSYM -rm -f README.html -rm -f spec.md fuzz.txt spec.html + -rm -rf benchmark.md progit ### JavaScript ### diff --git a/README.md b/README.md index 390b58f..8edc1a8 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,9 @@ written in standard C99 and has no library dependencies. The parser is very fast, on par with [sundown](https://github.com/vmg/sundown). Some benchmarks (on an ancient Thinkpad running Intel Core 2 Duo at 2GHz, measured using `time` and parsing a ~500K book, the English version of +the 1st edition of [*Pro Git*](https://github.com/progit/progit/tree/master/en) by Scott -Chacon and Ben Straub): +Chacon): |Implementation | Time | Factor| |---------------|-------|--------| -- cgit v1.2.3