Skip to content

Commit fd7b4db

Browse files
committed
feat: add support for memory mode
1 parent 7308d30 commit fd7b4db

File tree

7 files changed

+32
-25
lines changed

7 files changed

+32
-25
lines changed

core/BUILD

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,9 @@ cc_library(
8181
defines = [
8282
"CODSPEED_VERSION=\\\"{}\\\"".format(CODSPEED_VERSION),
8383
] + select({
84-
":instrumentation_mode": ["CODSPEED_ENABLED", "CODSPEED_SIMULATION"],
85-
":simulation_mode": ["CODSPEED_ENABLED", "CODSPEED_SIMULATION"],
84+
":instrumentation_mode": ["CODSPEED_ENABLED", "CODSPEED_ANALYSIS"],
85+
":simulation_mode": ["CODSPEED_ENABLED", "CODSPEED_ANALYSIS"],
86+
":memory_mode": ["CODSPEED_ENABLED", "CODSPEED_ANALYSIS"],
8687
":walltime_mode": ["CODSPEED_ENABLED", "CODSPEED_WALLTIME"],
8788
"//conditions:default": [],
8889
}),
@@ -98,6 +99,7 @@ string_flag(
9899
"off",
99100
"instrumentation",
100101
"simulation",
102+
"memory",
101103
"walltime",
102104
],
103105
visibility = ["//visibility:public"],
@@ -113,6 +115,11 @@ config_setting(
113115
flag_values = {":codspeed_mode": "simulation"},
114116
)
115117

118+
config_setting(
119+
name = "memory_mode",
120+
flag_values = {":codspeed_mode": "memory"},
121+
)
122+
116123
config_setting(
117124
name = "walltime_mode",
118125
flag_values = {":codspeed_mode": "walltime"},

core/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ target_compile_definitions(
143143

144144
message(STATUS "Using codspeed root directory: ${CODSPEED_ROOT_DIR}")
145145

146-
set(CODSPEED_MODE_ALLOWED_VALUES "off" "instrumentation" "simulation" "walltime")
146+
set(CODSPEED_MODE_ALLOWED_VALUES "off" "instrumentation" "simulation" "memory" "walltime")
147147
set(CODSPEED_MODE "off" CACHE STRING "Build mode for Codspeed")
148148
set_property(
149149
CACHE CODSPEED_MODE
@@ -166,10 +166,10 @@ if(NOT CODSPEED_MODE STREQUAL "off")
166166
endif()
167167

168168
# Define a preprocessor macro based on the build mode
169-
if(CODSPEED_MODE STREQUAL "instrumentation" OR CODSPEED_MODE STREQUAL "simulation")
169+
if(CODSPEED_MODE STREQUAL "instrumentation" OR CODSPEED_MODE STREQUAL "simulation" OR CODSPEED_MODE STREQUAL "memory")
170170
target_compile_definitions(
171171
codspeed
172-
PUBLIC -DCODSPEED_SIMULATION
172+
PUBLIC -DCODSPEED_ANALYSIS
173173
)
174174
elseif(CODSPEED_MODE STREQUAL "walltime")
175175
target_compile_definitions(codspeed PUBLIC -DCODSPEED_WALLTIME)

google_benchmark/include/benchmark/benchmark.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,7 @@ class BENCHMARK_EXPORT BENCHMARK_INTERNAL_CACHELINE_ALIGNED State {
946946

947947
public:
948948
const IterationCount max_iterations;
949-
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
949+
#if defined(CODSPEED_ANALYSIS) || defined(CODSPEED_WALLTIME)
950950
codspeed::CodSpeed* codspeed_;
951951
#endif
952952
#ifdef CODSPEED_WALLTIME
@@ -974,7 +974,7 @@ class BENCHMARK_EXPORT BENCHMARK_INTERNAL_CACHELINE_ALIGNED State {
974974
internal::ThreadTimer* timer, internal::ThreadManager* manager,
975975
internal::PerfCountersMeasurement* perf_counters_measurement,
976976
ProfilerManager* profiler_manager
977-
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
977+
#if defined(CODSPEED_ANALYSIS) || defined(CODSPEED_WALLTIME)
978978
,
979979
codspeed::CodSpeed* codspeed = NULL
980980
#endif
@@ -1074,12 +1074,12 @@ struct State::StateIterator {
10741074
if (BENCHMARK_BUILTIN_EXPECT(cached_ != 0, true)) {
10751075
return true;
10761076
}
1077-
#ifdef CODSPEED_SIMULATION
1077+
#ifdef CODSPEED_ANALYSIS
10781078
measurement_stop();
10791079
#endif
10801080
parent_->FinishKeepRunning();
10811081

1082-
#ifdef CODSPEED_SIMULATION
1082+
#ifdef CODSPEED_ANALYSIS
10831083
if (parent_->codspeed_ != NULL) {
10841084
parent_->codspeed_->end_benchmark();
10851085
}
@@ -1096,14 +1096,14 @@ inline BENCHMARK_ALWAYS_INLINE State::StateIterator State::begin() {
10961096
return StateIterator(this);
10971097
}
10981098
inline BENCHMARK_ALWAYS_INLINE State::StateIterator State::end() {
1099-
#ifdef CODSPEED_SIMULATION
1099+
#ifdef CODSPEED_ANALYSIS
11001100
if (this->codspeed_ != NULL) {
11011101
this->codspeed_->start_benchmark(name_);
11021102
}
11031103
#endif
11041104

11051105
StartKeepRunning();
1106-
#ifdef CODSPEED_SIMULATION
1106+
#ifdef CODSPEED_ANALYSIS
11071107
measurement_start();
11081108
#endif
11091109
return StateIterator();

google_benchmark/src/benchmark.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ State::State(std::string name, IterationCount max_iters,
186186
internal::ThreadTimer* timer, internal::ThreadManager* manager,
187187
internal::PerfCountersMeasurement* perf_counters_measurement,
188188
ProfilerManager* profiler_manager
189-
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
189+
#if defined(CODSPEED_ANALYSIS) || defined(CODSPEED_WALLTIME)
190190
,
191191
codspeed::CodSpeed* codspeed
192192
#endif
@@ -196,7 +196,7 @@ State::State(std::string name, IterationCount max_iters,
196196
: total_iterations_(0),
197197
batch_leftover_(0),
198198
max_iterations(max_iters),
199-
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
199+
#if defined(CODSPEED_ANALYSIS) || defined(CODSPEED_WALLTIME)
200200
codspeed_(codspeed),
201201
#endif
202202
#ifdef CODSPEED_WALLTIME
@@ -465,7 +465,7 @@ void RunBenchmarks(const std::vector<BenchmarkInstance>& benchmarks,
465465
#ifdef CODSPEED_ENABLED
466466
auto& Err = display_reporter->GetErrorStream();
467467
// Determine the width of the name field using a minimum width of 10.
468-
#ifdef CODSPEED_SIMULATION
468+
#ifdef CODSPEED_ANALYSIS
469469
Err << "Codspeed mode: simulation" << "\n";
470470
#elif defined(CODSPEED_WALLTIME)
471471
Err << "Codspeed mode: walltime" << "\n";

google_benchmark/src/benchmark_api_internal.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ BenchmarkInstance::BenchmarkInstance(Benchmark* benchmark, int family_idx,
9191
teardown_ = benchmark_.teardown_;
9292
}
9393

94-
#ifdef CODSPEED_SIMULATION
95-
State BenchmarkInstance::RunSimulation(
94+
#ifdef CODSPEED_ANALYSIS
95+
State BenchmarkInstance::RunAnalysis(
9696
codspeed::CodSpeed* codspeed, internal::ThreadTimer* timer,
9797
internal::ThreadManager* manager,
9898
internal::PerfCountersMeasurement* perf_counters_measurement,
@@ -103,7 +103,7 @@ State BenchmarkInstance::RunSimulation(
103103
internal::ThreadTimer warmup_timer = internal::ThreadTimer::Create();
104104
State warmup_state(name_.function_name, 1, args_, 0, 1, &warmup_timer,
105105
manager, perf_counters_measurement, profiler_manager,
106-
NULL);
106+
NULL, /*is_warmup=*/true );
107107
benchmark_.Run(warmup_state);
108108

109109
State st(name().str(), 1, args_, 0, 1, timer, manager,
@@ -119,7 +119,7 @@ State BenchmarkInstance::__codspeed_root_frame__Run(
119119
internal::ThreadManager* manager,
120120
internal::PerfCountersMeasurement* perf_counters_measurement,
121121
ProfilerManager* profiler_manager, bool is_warmup) const {
122-
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
122+
#if defined(CODSPEED_ANALYSIS) || defined(CODSPEED_WALLTIME)
123123
State st(name_.function_name, iters, args_, thread_id, threads_, timer,
124124
manager, perf_counters_measurement, profiler_manager, codspeed::CodSpeed::getInstance(), is_warmup);
125125
#else

google_benchmark/src/benchmark_api_internal.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include <vector>
1010

1111
#include "benchmark/benchmark.h"
12-
#ifdef CODSPEED_SIMULATION
12+
#ifdef CODSPEED_ANALYSIS
1313
#include "codspeed.h"
1414
#endif
1515
#include "commandlineflags.h"
@@ -38,7 +38,7 @@ class BenchmarkInstance {
3838
BigOFunc* complexity_lambda() const { return complexity_lambda_; }
3939
const std::vector<Statistics>& statistics() const { return statistics_; }
4040
int repetitions() const {
41-
#ifdef CODSPEED_SIMULATION
41+
#ifdef CODSPEED_ANALYSIS
4242
(void)repetitions_;
4343
return 1;
4444
#else
@@ -57,8 +57,8 @@ class BenchmarkInstance {
5757
internal::PerfCountersMeasurement* perf_counters_measurement,
5858
ProfilerManager* profiler_manager, bool is_warmup = false) const;
5959

60-
#ifdef CODSPEED_SIMULATION
61-
State RunSimulation(
60+
#ifdef CODSPEED_ANALYSIS
61+
State RunAnalysis(
6262
codspeed::CodSpeed* codspeed, internal::ThreadTimer* timer,
6363
internal::ThreadManager* manager,
6464
internal::PerfCountersMeasurement* perf_counters_measurement,

google_benchmark/src/benchmark_runner.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -461,13 +461,13 @@ void BenchmarkRunner::RunProfilerManager(IterationCount profile_iterations) {
461461
}
462462

463463
void BenchmarkRunner::DoOneRepetition() {
464-
#ifdef CODSPEED_SIMULATION
464+
#ifdef CODSPEED_ANALYSIS
465465
std::unique_ptr<internal::ThreadManager> manager;
466466
manager.reset(new internal::ThreadManager(b.threads()));
467467
internal::ThreadTimer timer = internal::ThreadTimer::Create();
468468
b.Setup();
469-
State st = b.RunSimulation(codspeed::CodSpeed::getInstance(), &timer,
470-
manager.get(), nullptr, nullptr);
469+
State st = b.RunAnalysis(codspeed::CodSpeed::getInstance(), &timer,
470+
manager.get(), nullptr, nullptr);
471471
b.Teardown();
472472

473473
return;

0 commit comments

Comments
 (0)