Toolbox
snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
toolbox
bm
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
18
#include <
toolbox/hdr/Histogram.hpp
>
19
20
#include <cassert>
21
22
namespace
toolbox::bm
{
23
using namespace
std
;
24
25
BenchmarkRecord::BenchmarkRecord
(
Histogram
&
hist
,
int
count)
noexcept
26
: hist_{
hist
}
27
, count_{count}
28
, start_{chrono::high_resolution_clock::now()}
29
{
30
assert
(count >= 1);
31
}
32
33
BenchmarkRecord::~BenchmarkRecord
()
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
Histogram.hpp
Record.hpp
toolbox::bm::BenchmarkRecord::BenchmarkRecord
BenchmarkRecord(Histogram &hist, int count=1) noexcept
Definition
Record.cpp:25
toolbox::bm::BenchmarkRecord::~BenchmarkRecord
~BenchmarkRecord()
Definition
Record.cpp:33
toolbox::Histogram
A High Dynamic Range (HDR) Histogram.
Definition
Histogram.hpp:64
toolbox::hdr::Histogram::record_values
bool record_values(std::int64_t value, std::int64_t count) noexcept
Definition
Histogram.cpp:212
std
STL namespace.
toolbox::bm
Definition
Benchmark.cpp:26
toolbox::util::bind
constexpr auto bind() noexcept
Definition
Slot.hpp:92
Generated by
1.9.8