Toolbox
snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
toolbox
bm
Range.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 "
Range.hpp
"
17
18
#include <
toolbox/hdr/Histogram.hpp
>
19
20
#include <cassert>
21
22
namespace
toolbox::bm
{
23
using namespace
std
;
24
25
BenchmarkRange::BenchmarkRange
(
Histogram
&
hist
,
int
first,
int
last
)
noexcept
26
: hist_{
hist
}
27
, first_{first}
28
, last_{
last
}
29
, start_{chrono::high_resolution_clock::now()}
30
{
31
assert
(first <
last
);
32
}
33
34
BenchmarkRange::~BenchmarkRange
()
35
{
36
const
auto
end
= chrono::high_resolution_clock::now();
37
const
auto
elapsed
= chrono::duration_cast<chrono::nanoseconds>(
end
- start_);
38
const
auto
count = last_ - first_;
39
// Record average.
40
hist_.
record_values
(
elapsed
.count() / count, count);
41
}
42
43
}
// namespace toolbox::bm
Histogram.hpp
Range.hpp
toolbox::bm::BenchmarkRange::BenchmarkRange
BenchmarkRange(Histogram &hist, int first, int last) noexcept
Definition
Range.cpp:25
toolbox::bm::BenchmarkRange::end
auto end() const noexcept
Definition
Range.hpp:74
toolbox::bm::BenchmarkRange::~BenchmarkRange
~BenchmarkRange()
Definition
Range.cpp:34
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