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);