Inside Bitcoin
Opening the selected file…
Inside Bitcoin
Opening the selected file…
The code behind the network, with room to understand it.
Release published 2026-10-28 · Snapshot fetched 2026-11-01. Latest stable release at fetch time; development branches and Git history are excluded. Only the selected code window and visible folders load here.
1// Copyright (c) 2016-present The Bitcoin Core developers2// Distributed under the MIT software license, see the accompanying3// file COPYING or http://www.opensource.org/licenses/mit-license.php.5#include <bench/bench.h>6#include <support/lockedpool.h>7#include <util/byte_units.h>9#include <cstddef>10#include <cstdint>11#include <vector>13#define ASIZE 204814#define MSIZE 204816static void BenchLockedPool(benchmark::Bench& bench)17{18void *synth_base = reinterpret_cast<void*>(0x08000000);19const size_t synth_size{1_MiB};20Arena b(synth_base, synth_size, 16);22std::vector<void*> addr{ASIZE, nullptr};23uint32_t s = 0x12345678;24bench.run([&] {25int idx = s & (addr.size() - 1);26if (s & 0x80000000) {27b.free(addr[idx]);28addr[idx] = nullptr;29} else if (!addr[idx]) {30addr[idx] = b.alloc((s >> 16) & (MSIZE - 1));31}32bool lsb = s & 1;33s >>= 1;34if (lsb)35s ^= 0xf00f00f0; // LFSR period 0xf7ffffe036});37for (void *ptr: addr)38b.free(ptr);39addr.clear();40}42BENCHMARK(BenchLockedPool);
Independent explanations by MyBitcoinExplorer. Not affiliated with or endorsed by Bitcoin Core. Guides are educational and do not replace the source or its tests.
Bitcoin Core source © its contributors, distributed under the MIT license. Original notices and bundled third-party licenses are retained in the source tree.