Compare commits

...

1 Commits

  1. 99
      qa/hush/performance-measurements.sh

99
qa/hush/performance-measurements.sh

@ -1,31 +1,30 @@
#!/bin/bash
set -u
DATADIR=./benchmark-datadir
SHA256CMD="$(command -v sha256sum || echo shasum)"
SHA256ARGS="$(command -v sha256sum >/dev/null || echo '-a 256')"
function zcash_rpc {
function hush_rpc {
./src/hush-cli -datadir="$DATADIR" -rpcuser=user -rpcpassword=password -rpcport=5983 "$@"
}
function zcash_rpc_slow {
function hush_rpc_slow {
# Timeout of 1 hour
zcash_rpc -rpcclienttimeout=3600 "$@"
hush_rpc -rpcclienttimeout=3600 "$@"
}
function zcash_rpc_veryslow {
function hush_rpc_veryslow {
# Timeout of 2.5 hours
zcash_rpc -rpcclienttimeout=9000 "$@"
hush_rpc -rpcclienttimeout=9000 "$@"
}
function zcash_rpc_wait_for_start {
zcash_rpc -rpcwait getinfo > /dev/null
function hush_rpc_wait_for_start {
hush_rpc -rpcwait getinfo > /dev/null
}
function hushd_generate {
zcash_rpc generate 101 > /dev/null
hush_rpc generate 101 > /dev/null
}
function extract_benchmark_datadir {
@ -76,11 +75,11 @@ function hushd_start {
esac
./src/hushd -regtest -datadir="$DATADIR" -rpcuser=user -rpcpassword=password -rpcport=5983 -showmetrics=0 &
ZCASHD_PID=$!
zcash_rpc_wait_for_start
hush_rpc_wait_for_start
}
function hushd_stop {
zcash_rpc stop > /dev/null
hush_rpc stop > /dev/null
wait $ZCASHD_PID
}
@ -107,11 +106,11 @@ function hushd_massif_start {
rm -f massif.out
valgrind --tool=massif --time-unit=ms --massif-out-file=massif.out ./src/hushd -regtest -datadir="$DATADIR" -rpcuser=user -rpcpassword=password -rpcport=5983 -showmetrics=0 &
ZCASHD_PID=$!
zcash_rpc_wait_for_start
hush_rpc_wait_for_start
}
function hushd_massif_stop {
zcash_rpc stop > /dev/null
hush_rpc stop > /dev/null
wait $ZCASHD_PID
ms_print massif.out
}
@ -123,11 +122,11 @@ function hushd_valgrind_start {
rm -f valgrind.out
valgrind --leak-check=yes -v --error-limit=no --log-file="valgrind.out" ./src/hushd -regtest -datadir="$DATADIR" -rpcuser=user -rpcpassword=password -rpcport=5983 -showmetrics=0 &
ZCASHD_PID=$!
zcash_rpc_wait_for_start
hush_rpc_wait_for_start
}
function hushd_valgrind_stop {
zcash_rpc stop > /dev/null
hush_rpc stop > /dev/null
wait $ZCASHD_PID
cat valgrind.out
}
@ -154,13 +153,19 @@ EOF
xzcat block-107134.tar.xz | tar x -C "$DATADIR/regtest"
}
if [ $# -lt 2 ]
then
echo "$0 : two arguments are required!"
exit 1
fi
# Precomputation
case "$1" in
*)
case "$2" in
verifyjoinsplit)
hushd_start "${@:2}"
RAWJOINSPLIT=$(zcash_rpc zcsamplejoinsplit)
RAWJOINSPLIT=$(hush_rpc zcsamplejoinsplit)
hushd_stop
esac
esac
@ -170,41 +175,41 @@ case "$1" in
hushd_start "${@:2}"
case "$2" in
sleep)
zcash_rpc zcbenchmark sleep 10
hush_rpc zcbenchmark sleep 10
;;
parameterloading)
zcash_rpc zcbenchmark parameterloading 10
hush_rpc zcbenchmark parameterloading 10
;;
createjoinsplit)
zcash_rpc zcbenchmark createjoinsplit 10 "${@:3}"
hush_rpc zcbenchmark createjoinsplit 10 "${@:3}"
;;
verifyjoinsplit)
zcash_rpc zcbenchmark verifyjoinsplit 1000 "\"$RAWJOINSPLIT\""
hush_rpc zcbenchmark verifyjoinsplit 1000 "\"$RAWJOINSPLIT\""
;;
solveequihash)
zcash_rpc_slow zcbenchmark solveequihash 50 "${@:3}"
hush_rpc_slow zcbenchmark solveequihash 50 "${@:3}"
;;
verifyequihash)
zcash_rpc zcbenchmark verifyequihash 1000
hush_rpc zcbenchmark verifyequihash 1000
;;
validatelargetx)
zcash_rpc zcbenchmark validatelargetx 5
hush_rpc zcbenchmark validatelargetx 5
;;
trydecryptnotes)
zcash_rpc zcbenchmark trydecryptnotes 1000 "${@:3}"
hush_rpc zcbenchmark trydecryptnotes 1000 "${@:3}"
;;
incnotewitnesses)
zcash_rpc zcbenchmark incnotewitnesses 100 "${@:3}"
hush_rpc zcbenchmark incnotewitnesses 100 "${@:3}"
;;
connectblockslow)
extract_benchmark_data
zcash_rpc zcbenchmark connectblockslow 10
hush_rpc zcbenchmark connectblockslow 10
;;
sendtoaddress)
zcash_rpc zcbenchmark sendtoaddress 10 "${@:4}"
hush_rpc zcbenchmark sendtoaddress 10 "${@:4}"
;;
loadwallet)
zcash_rpc zcbenchmark loadwallet 10
hush_rpc zcbenchmark loadwallet 10
;;
*)
hushd_stop
@ -217,35 +222,35 @@ case "$1" in
hushd_massif_start "${@:2}"
case "$2" in
sleep)
zcash_rpc zcbenchmark sleep 1
hush_rpc zcbenchmark sleep 1
;;
parameterloading)
zcash_rpc zcbenchmark parameterloading 1
hush_rpc zcbenchmark parameterloading 1
;;
createjoinsplit)
zcash_rpc_slow zcbenchmark createjoinsplit 1 "${@:3}"
hush_rpc_slow zcbenchmark createjoinsplit 1 "${@:3}"
;;
verifyjoinsplit)
zcash_rpc zcbenchmark verifyjoinsplit 1 "\"$RAWJOINSPLIT\""
hush_rpc zcbenchmark verifyjoinsplit 1 "\"$RAWJOINSPLIT\""
;;
solveequihash)
zcash_rpc_slow zcbenchmark solveequihash 1 "${@:3}"
hush_rpc_slow zcbenchmark solveequihash 1 "${@:3}"
;;
verifyequihash)
zcash_rpc zcbenchmark verifyequihash 1
hush_rpc zcbenchmark verifyequihash 1
;;
trydecryptnotes)
zcash_rpc zcbenchmark trydecryptnotes 1 "${@:3}"
hush_rpc zcbenchmark trydecryptnotes 1 "${@:3}"
;;
incnotewitnesses)
zcash_rpc zcbenchmark incnotewitnesses 1 "${@:3}"
hush_rpc zcbenchmark incnotewitnesses 1 "${@:3}"
;;
connectblockslow)
extract_benchmark_data
zcash_rpc zcbenchmark connectblockslow 1
hush_rpc zcbenchmark connectblockslow 1
;;
sendtoaddress)
zcash_rpc zcbenchmark sendtoaddress 1 "${@:4}"
hush_rpc zcbenchmark sendtoaddress 1 "${@:4}"
;;
loadwallet)
# The initial load is sufficient for measurement
@ -262,32 +267,32 @@ case "$1" in
hushd_valgrind_start
case "$2" in
sleep)
zcash_rpc zcbenchmark sleep 1
hush_rpc zcbenchmark sleep 1
;;
parameterloading)
zcash_rpc zcbenchmark parameterloading 1
hush_rpc zcbenchmark parameterloading 1
;;
createjoinsplit)
zcash_rpc_veryslow zcbenchmark createjoinsplit 1 "${@:3}"
hush_rpc_veryslow zcbenchmark createjoinsplit 1 "${@:3}"
;;
verifyjoinsplit)
zcash_rpc zcbenchmark verifyjoinsplit 1 "\"$RAWJOINSPLIT\""
hush_rpc zcbenchmark verifyjoinsplit 1 "\"$RAWJOINSPLIT\""
;;
solveequihash)
zcash_rpc_veryslow zcbenchmark solveequihash 1 "${@:3}"
hush_rpc_veryslow zcbenchmark solveequihash 1 "${@:3}"
;;
verifyequihash)
zcash_rpc zcbenchmark verifyequihash 1
hush_rpc zcbenchmark verifyequihash 1
;;
trydecryptnotes)
zcash_rpc zcbenchmark trydecryptnotes 1 "${@:3}"
hush_rpc zcbenchmark trydecryptnotes 1 "${@:3}"
;;
incnotewitnesses)
zcash_rpc zcbenchmark incnotewitnesses 1 "${@:3}"
hush_rpc zcbenchmark incnotewitnesses 1 "${@:3}"
;;
connectblockslow)
extract_benchmark_data
zcash_rpc zcbenchmark connectblockslow 1
hush_rpc zcbenchmark connectblockslow 1
;;
*)
hushd_valgrind_stop

Loading…
Cancel
Save