From 5ac797965cf5ae208d74818482d339e90d8bc102 Mon Sep 17 00:00:00 2001 From: Nimrod Gileadi Date: Fri, 10 Jun 2022 04:21:38 -0700 Subject: [PATCH] Use batch mode in step_benchmark_test. d8880e9a12629fde0a33f2d368bc0d5d2aafce23 introduced measuring performance of a fixed batch of 50 steps, with a fixed starting state. The Google Benchmark library has a more direct API for doing this, which ends up with nicer looking reported numbers. PiperOrigin-RevId: 454133316 Change-Id: I368b985dc871084b9ed8c41a87016408719b53ad --- test/benchmark/step_benchmark_test.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/benchmark/step_benchmark_test.cc b/test/benchmark/step_benchmark_test.cc index b9d5abd7..fc2a7964 100644 --- a/test/benchmark/step_benchmark_test.cc +++ b/test/benchmark/step_benchmark_test.cc @@ -84,7 +84,7 @@ static void run_step_benchmark(const mjModel* model, benchmark::State& state) { std::vector warmstart = AsVector(data->qacc_warmstart, model->nv); // reset state, benchmark subsequent kNumBenchmarkSteps steps - for (auto s : state) { + while (state.KeepRunningBatch(kNumBenchmarkSteps)) { mju_copy(data->qpos, qpos.data(), model->nq); mju_copy(data->qvel, qvel.data(), model->nv); mju_copy(data->act, act.data(), model->na); @@ -98,7 +98,7 @@ static void run_step_benchmark(const mjModel* model, benchmark::State& state) { // finalize mj_deleteData(data); - state.SetItemsProcessed(kNumBenchmarkSteps * state.iterations()); + state.SetItemsProcessed(state.iterations()); } // Use ABSL_ATTRIBUTE_NO_TAIL_CALL to make sure the benchmark functions appear