Toolbox snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
Record.cpp
Go to the documentation of this file.
1// The Reactive C++ Toolbox.
2// Copyright (C) 2021 Reactive Markets Limited
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16#include "Record.hpp"
17
19
20#include <cassert>
21
22namespace toolbox::bm {
23using namespace std;
24
26: hist_{hist}
27, count_{count}
28, start_{chrono::high_resolution_clock::now()}
29{
30 assert(count >= 1);
31}
32
34{
35 const auto end = chrono::high_resolution_clock::now();
36 const auto elapsed = chrono::duration_cast<chrono::nanoseconds>(end - start_);
37 // Record average.
38 hist_.record_values(elapsed.count() / count_, count_);
39}
40
41} // namespace toolbox::bm
BenchmarkRecord(Histogram &hist, int count=1) noexcept
Definition Record.cpp:25
A High Dynamic Range (HDR) Histogram.
Definition Histogram.hpp:64
bool record_values(std::int64_t value, std::int64_t count) noexcept
STL namespace.
constexpr auto bind() noexcept
Definition Slot.hpp:92