From bd461195f4b3a3c53366c8f197e7701836cab053 Mon Sep 17 00:00:00 2001 From: ismaelsadeeq Date: Mon, 23 Dec 2024 17:13:39 -0500 Subject: [PATCH] bench: support benching all verbosity of `BlockToJson` --- src/bench/rpc_blockchain.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/bench/rpc_blockchain.cpp b/src/bench/rpc_blockchain.cpp index df951a14e49..52916242fa5 100644 --- a/src/bench/rpc_blockchain.cpp +++ b/src/bench/rpc_blockchain.cpp @@ -45,17 +45,34 @@ struct TestBlockAndIndex { } // namespace -static void BlockToJsonVerbose(benchmark::Bench& bench) +static void BlockToJson(benchmark::Bench& bench, TxVerbosity verbosity) { TestBlockAndIndex data; const uint256 pow_limit{data.testing_setup->m_node.chainman->GetParams().GetConsensus().powLimit}; bench.run([&] { - auto univalue = blockToJSON(data.testing_setup->m_node.chainman->m_blockman, data.block, data.blockindex, data.blockindex, TxVerbosity::SHOW_DETAILS_AND_PREVOUT, pow_limit); + auto univalue = blockToJSON(data.testing_setup->m_node.chainman->m_blockman, data.block, data.blockindex, data.blockindex, verbosity, pow_limit); ankerl::nanobench::doNotOptimizeAway(univalue); }); } -BENCHMARK(BlockToJsonVerbose, benchmark::PriorityLevel::HIGH); +static void BlockToJsonVerbosity1(benchmark::Bench& bench) +{ + BlockToJson(bench, TxVerbosity::SHOW_TXID); +} + +static void BlockToJsonVerbosity2(benchmark::Bench& bench) +{ + BlockToJson(bench, TxVerbosity::SHOW_DETAILS); +} + +static void BlockToJsonVerbosity3(benchmark::Bench& bench) +{ + BlockToJson(bench, TxVerbosity::SHOW_DETAILS_AND_PREVOUT); +} + +BENCHMARK(BlockToJsonVerbosity1, benchmark::PriorityLevel::HIGH); +BENCHMARK(BlockToJsonVerbosity2, benchmark::PriorityLevel::HIGH); +BENCHMARK(BlockToJsonVerbosity3, benchmark::PriorityLevel::HIGH); static void BlockToJsonVerboseWrite(benchmark::Bench& bench) {