Add encode benchmark
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user