diff options
author | Rui Liu <rui.liu@mongodb.com> | 2022-09-27 12:46:06 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-09-27 13:37:21 +0000 |
commit | b81eb4d060bb296628338c6f6a3a752cdf47cdfa (patch) | |
tree | 880cc4eeb74c2046c9de78aaed49b6087ff35f35 | |
parent | 2115bfcb0ae08ca1dfb1cbd6cfc95974b4f11240 (diff) | |
download | mongo-b81eb4d060bb296628338c6f6a3a752cdf47cdfa.tar.gz |
SERVER-69798 Use slot id accessor to directly reset the slot in SBE expression benchmarks
-rw-r--r-- | src/mongo/db/query/sbe_expression_bm.cpp | 10 |
1 files 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<TimeZoneDatabase*>(_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<const char*>(document.objdata()), - false); + _inputSlotAccessor->reset(false, + sbe::value::TypeTags::bsonObject, + sbe::value::bitcastFrom<const char*>(document.objdata())); benchmark::DoNotOptimize(_vm.run(compiledExpr.get())); } benchmark::ClobberMemory(); @@ -139,6 +138,7 @@ private: sbe::value::SlotId _inputSlotId; std::unique_ptr<TimeZoneDatabase> _timeZoneDB; + sbe::RuntimeEnvironment::Accessor* _inputSlotAccessor; }; BENCHMARK_EXPRESSIONS(SbeExpressionBenchmarkFixture) |