summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRui Liu <rui.liu@mongodb.com>2022-09-27 12:46:06 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-09-27 13:37:21 +0000
commitb81eb4d060bb296628338c6f6a3a752cdf47cdfa (patch)
tree880cc4eeb74c2046c9de78aaed49b6087ff35f35
parent2115bfcb0ae08ca1dfb1cbd6cfc95974b4f11240 (diff)
downloadmongo-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.cpp10
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)