diff --git a/qa/zcash/performance-measurements.sh b/qa/zcash/performance-measurements.sh index 4931d5519..68de22892 100755 --- a/qa/zcash/performance-measurements.sh +++ b/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." @@ -253,6 +256,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." diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 385e71978..bac5dc871 100644 --- a/src/wallet/rpcwallet.cpp +++ b/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"); } diff --git a/src/zcbenchmarks.cpp b/src/zcbenchmarks.cpp index 5c20a67e3..1cb880ea1 100644 --- a/src/zcbenchmarks.cpp +++ b/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); +} diff --git a/src/zcbenchmarks.h b/src/zcbenchmarks.h index a2672daa0..ac87d0326 100644 --- a/src/zcbenchmarks.h +++ b/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