From b81eb4d060bb296628338c6f6a3a752cdf47cdfa Mon Sep 17 00:00:00 2001 From: Rui Liu Date: Tue, 27 Sep 2022 12:46:06 +0000 Subject: SERVER-69798 Use slot id accessor to directly reset the slot in SBE expression benchmarks --- src/mongo/db/query/sbe_expression_bm.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mongo/db/query/sbe_expression_bm.cpp b/src/mongo/db/query/sbe_expression_bm.cpp index a9a2083b613..7b622c47cc6 100644 --- a/src/mongo/db/query/sbe_expression_bm.cpp +++ b/src/mongo/db/query/sbe_expression_bm.cpp @@ -55,6 +55,7 @@ public: sbe::value::bitcastFrom(_timeZoneDB.get()), false, &_slotIdGenerator); + _inputSlotAccessor = _planStageData.env->getAccessor(_inputSlotId); } void benchmarkExpression(BSONObj expressionSpec, @@ -107,11 +108,9 @@ public: for (auto keepRunning : benchmarkState) { for (const auto& document : bsonDocuments) { - _planStageData.env->resetSlot( - _inputSlotId, - sbe::value::TypeTags::bsonObject, - sbe::value::bitcastFrom(document.objdata()), - false); + _inputSlotAccessor->reset(false, + sbe::value::TypeTags::bsonObject, + sbe::value::bitcastFrom(document.objdata())); benchmark::DoNotOptimize(_vm.run(compiledExpr.get())); } benchmark::ClobberMemory(); @@ -139,6 +138,7 @@ private: sbe::value::SlotId _inputSlotId; std::unique_ptr _timeZoneDB; + sbe::RuntimeEnvironment::Accessor* _inputSlotAccessor; }; BENCHMARK_EXPRESSIONS(SbeExpressionBenchmarkFixture) -- cgit v1.2.1