Browse Source

Add benchmark for listunspent

Closes #2645.
pull/4/head
Jack Grigg 7 years ago
parent
commit
99dd50c30c
No known key found for this signature in database GPG Key ID: 665DBCD284F7DAFF
  1. 10
      qa/zcash/performance-measurements.sh
  2. 2
      src/wallet/rpcwallet.cpp
  3. 9
      src/zcbenchmarks.cpp
  4. 1
      src/zcbenchmarks.h

10
qa/zcash/performance-measurements.sh

@ -56,7 +56,7 @@ function use_200k_benchmark {
function zcashd_start {
case "$1" in
sendtoaddress|loadwallet)
sendtoaddress|loadwallet|listunspent)
case "$2" in
200k-recv)
use_200k_benchmark 0
@ -86,7 +86,7 @@ function zcashd_stop {
function zcashd_massif_start {
case "$1" in
sendtoaddress|loadwallet)
sendtoaddress|loadwallet|listunspent)
case "$2" in
200k-recv)
use_200k_benchmark 0
@ -206,6 +206,9 @@ case "$1" in
loadwallet)
zcash_rpc zcbenchmark loadwallet 10
;;
listunspent)
zcash_rpc zcbenchmark listunspent 10
;;
*)
zcashd_stop
echo "Bad arguments to time."
@ -250,6 +253,9 @@ case "$1" in
loadwallet)
# The initial load is sufficient for measurement
;;
listunspent)
zcash_rpc zcbenchmark listunspent 1
;;
*)
zcashd_massif_stop
echo "Bad arguments to memory."

2
src/wallet/rpcwallet.cpp

@ -2609,6 +2609,8 @@ UniValue zc_benchmark(const UniValue& params, bool fHelp)
throw JSONRPCError(RPC_TYPE_ERROR, "Benchmark must be run in regtest mode");
}
sample_times.push_back(benchmark_loadwallet());
} else if (benchmarktype == "listunspent") {
sample_times.push_back(benchmark_listunspent());
} else {
throw JSONRPCError(RPC_TYPE_ERROR, "Invalid benchmarktype");
}

9
src/zcbenchmarks.cpp

@ -465,3 +465,12 @@ double benchmark_loadwallet()
post_wallet_load();
return res;
}
double benchmark_listunspent()
{
UniValue params(UniValue::VARR);
struct timeval tv_start;
timer_start(tv_start);
auto unspent = listunspent(params, false);
return timer_stop(tv_start);
}

1
src/zcbenchmarks.h

@ -18,5 +18,6 @@ extern double benchmark_increment_note_witnesses(size_t nTxs);
extern double benchmark_connectblock_slow();
extern double benchmark_sendtoaddress(CAmount amount);
extern double benchmark_loadwallet();
extern double benchmark_listunspent();
#endif

Loading…
Cancel
Save