|
12 | 12 |
|
13 | 13 | #include <univalue.h>
|
14 | 14 |
|
15 |
| -static void BlockToJsonVerbose(benchmark::Bench& bench) |
16 |
| -{ |
| 15 | +namespace { |
| 16 | + |
| 17 | +struct TestBlockAndIndex { |
17 | 18 | TestingSetup test_setup{};
|
| 19 | + CBlock block{}; |
| 20 | + uint256 blockHash{}; |
| 21 | + CBlockIndex blockindex{}; |
18 | 22 |
|
19 |
| - CDataStream stream(benchmark::data::block413567, SER_NETWORK, PROTOCOL_VERSION); |
20 |
| - char a = '\0'; |
21 |
| - stream.write(&a, 1); // Prevent compaction |
| 23 | + TestBlockAndIndex() |
| 24 | + { |
| 25 | + CDataStream stream(benchmark::data::block413567, SER_NETWORK, PROTOCOL_VERSION); |
| 26 | + char a = '\0'; |
| 27 | + stream.write(&a, 1); // Prevent compaction |
22 | 28 |
|
23 |
| - CBlock block; |
24 |
| - stream >> block; |
| 29 | + stream >> block; |
25 | 30 |
|
26 |
| - CBlockIndex blockindex; |
27 |
| - const uint256 blockHash = block.GetHash(); |
28 |
| - blockindex.phashBlock = &blockHash; |
29 |
| - blockindex.nBits = 403014710; |
| 31 | + blockHash = block.GetHash(); |
| 32 | + blockindex.phashBlock = &blockHash; |
| 33 | + blockindex.nBits = 403014710; |
| 34 | + } |
| 35 | +}; |
30 | 36 |
|
| 37 | +} // namespace |
| 38 | + |
| 39 | +static void BlockToJsonVerbose(benchmark::Bench& bench) |
| 40 | +{ |
| 41 | + TestBlockAndIndex data; |
31 | 42 | bench.run([&] {
|
32 |
| - (void)blockToJSON(block, &blockindex, &blockindex, /*verbose*/ true); |
| 43 | + auto univalue = blockToJSON(data.block, &data.blockindex, &data.blockindex, /*verbose*/ true); |
| 44 | + ankerl::nanobench::doNotOptimizeAway(univalue); |
33 | 45 | });
|
34 | 46 | }
|
35 | 47 |
|
36 | 48 | BENCHMARK(BlockToJsonVerbose);
|
| 49 | + |
| 50 | +static void BlockToJsonVerboseWrite(benchmark::Bench& bench) |
| 51 | +{ |
| 52 | + TestBlockAndIndex data; |
| 53 | + auto univalue = blockToJSON(data.block, &data.blockindex, &data.blockindex, /*verbose*/ true); |
| 54 | + bench.run([&] { |
| 55 | + auto str = univalue.write(); |
| 56 | + ankerl::nanobench::doNotOptimizeAway(str); |
| 57 | + }); |
| 58 | +} |
| 59 | + |
| 60 | +BENCHMARK(BlockToJsonVerboseWrite); |
0 commit comments