From 02fad39d8acadd42663c282c19ddf82adf4f1a22 Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Wed, 13 Dec 2023 13:36:06 +0100 Subject: [PATCH] Add encode benchmark --- benches/addressdecoder.cpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/benches/addressdecoder.cpp b/benches/addressdecoder.cpp index 9e129b1b..27bccc42 100644 --- a/benches/addressdecoder.cpp +++ b/benches/addressdecoder.cpp @@ -39,7 +39,6 @@ #include #include -#include static DRAMSys::AddressDecoder addressDecoder() { @@ -54,19 +53,32 @@ static void decode(benchmark::State& state) { auto decoder = addressDecoder(); - std::default_random_engine engine; - std::uniform_int_distribution distribution(0, decoder.maxAddress()); - for (auto _ : state) { - auto randomAddress = distribution(engine); - auto decodedAddress = decoder.decodeAddress(randomAddress); + // Actual address has no significant impact on performance + auto decodedAddress = decoder.decodeAddress(0x0); benchmark::DoNotOptimize(decodedAddress); } } BENCHMARK(decode); +static void encode(benchmark::State& state) +{ + auto decoder = addressDecoder(); + + // Actual address has no significant impact on performance + DRAMSys::DecodedAddress decodedAddress; + + for (auto _ : state) + { + auto encodedAddress = decoder.encodeAddress(decodedAddress); + benchmark::DoNotOptimize(encodedAddress); + } +} + +BENCHMARK(encode); + int sc_main(int argc, char** argv) { ::benchmark::Initialize(&argc, argv);