mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
parallel-exec uses sb-aprof and sb-sprof and collects data about vops used, and injects extra GCs, which is not a a fair test of whether code generation got better; and if the compiler gets slower, it also makes the test suite take longer. Those facts made it difficult to get a sense of whether the suite is executing faster. To this end, 'benchmark.sh' does the same thing as parallel-exec, but less of it, and also subtracts time spent in the compiler. Take out the GC that I recently added to PURE-RUNNER, same reason.
37 lines
1 KiB
Bash
Executable file
37 lines
1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# This is copy-and-pasted from parallel-exec, removing:
|
|
# - use of SB-APROF, SB-SPROF
|
|
# - vop usage counts, GC stop-the-world timing
|
|
# - shell tests
|
|
# - anything else extraneous to running the tests.
|
|
# Obviously it would be better if some of this
|
|
# logic could be shared, especially the
|
|
# CHOOSE-ORDER function.
|
|
|
|
if [ $# -ne 1 ]
|
|
then
|
|
echo $0: Need arg
|
|
exit 1
|
|
fi
|
|
|
|
logdir=${SBCL_PAREXEC_TMP:-$HOME}/sbcl-test-logs-$$
|
|
echo ==== Writing logs to $logdir ====
|
|
junkdir=${SBCL_PAREXEC_TMP:-/tmp}/junk
|
|
mkdir -p $junkdir $logdir
|
|
|
|
case `uname` in
|
|
CYGWIN* | WindowsNT | MINGW* | MSYS*)
|
|
echo ";; Using -j$1"
|
|
echo "LOGDIR=$logdir" >$logdir/Makefile
|
|
../run-sbcl.sh --script genmakefile.lisp >>$logdir/Makefile
|
|
exec $GNUMAKE -k -j $1 -f $logdir/Makefile
|
|
;;
|
|
esac
|
|
|
|
export TEST_DIRECTORY SBCL_HOME
|
|
TEST_DIRECTORY=$junkdir SBCL_HOME=../obj/sbcl-home exec ../src/runtime/sbcl \
|
|
--noinform --core ../output/sbcl.core \
|
|
--no-userinit --no-sysinit --noprint --disable-debugger $logdir $* \
|
|
< benchmark.lisp
|