Add encode benchmark

This commit is contained in:
2023-12-13 13:36:06 +01:00
parent 1ba63bd1f7
commit 02fad39d8a

View File

@@ -39,7 +39,6 @@
#include <DRAMSys/simulation/AddressDecoder.h>
#include <benchmark/benchmark.h>
#include <random>
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<uint64_t> 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);