[bench] Benchmark CTxMemPool::check()

This commit is contained in:
glozow 2021-09-30 09:31:18 +01:00
parent cb1407196f
commit 30e240f65e

View file

@ -6,6 +6,7 @@
#include <policy/policy.h> #include <policy/policy.h>
#include <test/util/setup_common.h> #include <test/util/setup_common.h>
#include <txmempool.h> #include <txmempool.h>
#include <validation.h>
#include <vector> #include <vector>
@ -98,4 +99,20 @@ static void ComplexMemPool(benchmark::Bench& bench)
}); });
} }
static void MempoolCheck(benchmark::Bench& bench)
{
FastRandomContext det_rand{true};
const int childTxs = bench.complexityN() > 1 ? static_cast<int>(bench.complexityN()) : 2000;
const std::vector<CTransactionRef> ordered_coins = CreateOrderedCoins(det_rand, childTxs, /* min_ancestors */ 5);
const auto testing_setup = MakeNoLogFileContext<const TestingSetup>(CBaseChainParams::MAIN, {"-checkmempool=1"});
CTxMemPool pool;
LOCK2(cs_main, pool.cs);
for (auto& tx : ordered_coins) AddTx(tx, pool);
bench.run([&]() NO_THREAD_SAFETY_ANALYSIS {
pool.check(testing_setup.get()->m_node.chainman->ActiveChainstate());
});
}
BENCHMARK(ComplexMemPool); BENCHMARK(ComplexMemPool);
BENCHMARK(MempoolCheck);