You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Copyright (c) 2024- The Bitcoin Core developers
2
+
// Distributed under the MIT software license, see the accompanying
3
+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
+
5
+
#include<bench/bench.h>
6
+
#include<random.h>
7
+
#include<stddef.h>
8
+
#include<util/strencodings.h>
9
+
#include<cassert>
10
+
#include<optional>
11
+
#include<vector>
12
+
13
+
std::string generateHexString(size_t length) {
14
+
constauto hex_digits = "0123456789ABCDEF";
15
+
FastRandomContext rng(/*fDeterministic=*/true);
16
+
17
+
std::string data;
18
+
while (data.size() < length) {
19
+
auto digit = hex_digits[rng.randbits(4)];
20
+
data.push_back(digit);
21
+
}
22
+
return data;
23
+
}
24
+
25
+
staticvoidHexParse(benchmark::Bench& bench)
26
+
{
27
+
auto data = generateHexString(130); // Generates 678B0EDA0A1FD30904D5A65E3568DB82DB2D918B0AD8DEA18A63FECCB877D07CAD1495C7157584D877420EF38B8DA473A6348B4F51811AC13C786B962BEE5668F9 by default
28
+
29
+
bench.batch(data.size()).unit("base16").run([&] {
30
+
auto result = TryParseHex(data);
31
+
assert(result != std::nullopt); // make sure we're measuring the successful case
0 commit comments