should be it
This commit is contained in:
58
external/duckdb/benchmark/include/benchmark_runner.hpp
vendored
Normal file
58
external/duckdb/benchmark/include/benchmark_runner.hpp
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// DuckDB
|
||||
//
|
||||
// benchmark_runner.hpp
|
||||
//
|
||||
// Author: Mark Raasveldt
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "benchmark_configuration.hpp"
|
||||
#include "benchmark.hpp"
|
||||
#include "duckdb/common/constants.hpp"
|
||||
#include "duckdb/common/fstream.hpp"
|
||||
#include <thread>
|
||||
|
||||
namespace duckdb {
|
||||
class DuckDB;
|
||||
|
||||
//! The benchmark runner class is responsible for running benchmarks
|
||||
class BenchmarkRunner {
|
||||
BenchmarkRunner();
|
||||
|
||||
public:
|
||||
static constexpr const char *DUCKDB_BENCHMARK_DIRECTORY = "duckdb_benchmark_data";
|
||||
BenchmarkConfiguration configuration;
|
||||
|
||||
static BenchmarkRunner &GetInstance() {
|
||||
static BenchmarkRunner instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
static void InitializeBenchmarkDirectory();
|
||||
|
||||
//! Register a benchmark in the Benchmark Runner, this is done automatically
|
||||
//! as long as the proper macro's are used
|
||||
static void RegisterBenchmark(Benchmark *benchmark);
|
||||
|
||||
void Log(string message);
|
||||
void LogLine(string message);
|
||||
void LogResult(string message);
|
||||
void LogOutput(string message);
|
||||
void LogSummary(string benchmark, string message, size_t i);
|
||||
|
||||
void RunBenchmark(Benchmark *benchmark);
|
||||
void RunBenchmarks();
|
||||
|
||||
vector<Benchmark *> benchmarks;
|
||||
ofstream out_file;
|
||||
ofstream log_file;
|
||||
uint32_t threads = MaxValue<uint32_t>(std::thread::hardware_concurrency(), 1u);
|
||||
string memory_limit;
|
||||
unordered_map<string, string> custom_arguments;
|
||||
};
|
||||
|
||||
} // namespace duckdb
|
||||
Reference in New Issue
Block a user