diff options
author | swarmer <swarmer@yandex-team.ru> | 2022-02-10 16:46:31 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:46:31 +0300 |
commit | 11a24635da4c4f39428b182c49a7bc35e47c9534 (patch) | |
tree | 1a2c5ffcf89eb53ecd79dbc9bc0a195c27404d0c /library/cpp/testing/benchmark/bench.cpp | |
parent | 317da38588b7898a99fd9168571408123350012b (diff) | |
download | ydb-11a24635da4c4f39428b182c49a7bc35e47c9534.tar.gz |
Restoring authorship annotation for <swarmer@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/testing/benchmark/bench.cpp')
-rw-r--r-- | library/cpp/testing/benchmark/bench.cpp | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/library/cpp/testing/benchmark/bench.cpp b/library/cpp/testing/benchmark/bench.cpp index a2245f20db..08d8708005 100644 --- a/library/cpp/testing/benchmark/bench.cpp +++ b/library/cpp/testing/benchmark/bench.cpp @@ -43,7 +43,7 @@ namespace { TMaybe<double> CyclesPerIteration; TMaybe<double> SecondsPerIteration; double RunTime; - size_t TestId; // Sequential test id (zero-based) + size_t TestId; // Sequential test id (zero-based) }; struct ITestRunner: public TIntrusiveListItem<ITestRunner> { @@ -52,7 +52,7 @@ namespace { virtual TStringBuf Name() const noexcept = 0; virtual TResult Run(const TOptions& opts) = 0; - size_t SequentialId = 0; + size_t SequentialId = 0; }; struct TCpuBenchmark: public ITestRunner { @@ -387,39 +387,39 @@ namespace { TVector<TResult> Results_; }; - class TOrderedReporter: public IReporter { - public: - TOrderedReporter(THolder<IReporter> slave) - : Slave_(std::move(slave)) - { - } - - void Report(TResult&& result) override { - with_lock (ResultsLock_) { - OrderedResultQueue_.emplace(result.TestId, std::move(result)); - while (!OrderedResultQueue_.empty() && OrderedResultQueue_.begin()->first <= ExpectedTestId_) { - Slave_->Report(std::move(OrderedResultQueue_.begin()->second)); - OrderedResultQueue_.erase(OrderedResultQueue_.begin()); - ++ExpectedTestId_; - } - } - } - - void Finish() override { - for (auto& it : OrderedResultQueue_) { - Slave_->Report(std::move(it.second)); - } - OrderedResultQueue_.clear(); - Slave_->Finish(); - } - - private: - THolder<IReporter> Slave_; - size_t ExpectedTestId_ = 0; - TMap<size_t, TResult> OrderedResultQueue_; - TAdaptiveLock ResultsLock_; - }; - + class TOrderedReporter: public IReporter { + public: + TOrderedReporter(THolder<IReporter> slave) + : Slave_(std::move(slave)) + { + } + + void Report(TResult&& result) override { + with_lock (ResultsLock_) { + OrderedResultQueue_.emplace(result.TestId, std::move(result)); + while (!OrderedResultQueue_.empty() && OrderedResultQueue_.begin()->first <= ExpectedTestId_) { + Slave_->Report(std::move(OrderedResultQueue_.begin()->second)); + OrderedResultQueue_.erase(OrderedResultQueue_.begin()); + ++ExpectedTestId_; + } + } + } + + void Finish() override { + for (auto& it : OrderedResultQueue_) { + Slave_->Report(std::move(it.second)); + } + OrderedResultQueue_.clear(); + Slave_->Finish(); + } + + private: + THolder<IReporter> Slave_; + size_t ExpectedTestId_ = 0; + TMap<size_t, TResult> OrderedResultQueue_; + TAdaptiveLock ResultsLock_; + }; + THolder<IReporter> MakeReporter(const EOutFormat type) { switch (type) { case F_CONSOLE: @@ -437,16 +437,16 @@ namespace { return MakeHolder<TConsoleReporter>(); // make compiler happy } - + THolder<IReporter> MakeOrderedReporter(const EOutFormat type) { - return MakeHolder<TOrderedReporter>(MakeReporter(type)); - } - + return MakeHolder<TOrderedReporter>(MakeReporter(type)); + } + void EnumerateTests(TVector<ITestRunner*>& tests) { - for (size_t id : xrange(tests.size())) { - tests[id]->SequentialId = id; - } - } + for (size_t id : xrange(tests.size())) { + tests[id]->SequentialId = id; + } + } } template <> @@ -560,7 +560,7 @@ int NBench::Main(int argc, char** argv) { tests.push_back(&it); } } - EnumerateTests(tests); + EnumerateTests(tests); if (opts.ListTests) { for (const auto* const it : tests) { @@ -581,7 +581,7 @@ int NBench::Main(int argc, char** argv) { } const TOptions testOpts = {timeBudget / tests.size()}; - const auto reporter = MakeOrderedReporter(opts.OutFormat); + const auto reporter = MakeOrderedReporter(opts.OutFormat); std::function<void(ITestRunner**)> func = [&](ITestRunner** it) { auto&& res = (*it)->Run(testOpts); |