grpc
third_party
protobuf
third_party
benchmark
src
protobuf/third_party/benchmark/src/counter.cc
Go to the documentation of this file.
1
// Copyright 2015 Google Inc. All rights reserved.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#include "
counter.h
"
16
17
namespace
benchmark
{
18
namespace
internal
{
19
20
double
Finish
(Counter
const
& c,
double
cpu_time,
double
num_threads
) {
21
double
v
=
c
.value;
22
if
(
c
.flags &
Counter::kIsRate
) {
23
v
/= cpu_time;
24
}
25
if
(
c
.flags &
Counter::kAvgThreads
) {
26
v
/=
num_threads
;
27
}
28
return
v
;
29
}
30
31
void
Finish
(
UserCounters
*l,
double
cpu_time,
double
num_threads
) {
32
for
(
auto
&c : *l) {
33
c
.second.value =
Finish
(
c
.second, cpu_time,
num_threads
);
34
}
35
}
36
37
void
Increment
(
UserCounters
*l,
UserCounters
const
&
r
) {
38
// add counters present in both or just in *l
39
for
(
auto
&c : *l) {
40
auto
it
=
r
.find(
c
.first);
41
if
(
it
!=
r
.end()) {
42
c
.second.value =
c
.second +
it
->second;
43
}
44
}
45
// add counters present in r, but not in *l
46
for
(
auto
const
&tc :
r
) {
47
auto
it
=
l
->find(tc.first);
48
if
(
it
==
l
->end()) {
49
(*l)[tc.first] = tc.second;
50
}
51
}
52
}
53
54
bool
SameNames
(
UserCounters
const
& l,
UserCounters
const
&
r
) {
55
if
(&l == &
r
)
return
true
;
56
if
(
l
.size() !=
r
.size()) {
57
return
false
;
58
}
59
for
(
auto
const
& c : l) {
60
if
(
r
.find(
c
.first) ==
r
.end()) {
61
return
false
;
62
}
63
}
64
return
true
;
65
}
66
67
}
// end namespace internal
68
}
// end namespace benchmark
benchmark::Counter::kIsRate
@ kIsRate
Definition:
benchmark/include/benchmark/benchmark.h:388
regen-readme.it
it
Definition:
regen-readme.py:15
benchmark
Definition:
bm_alarm.cc:55
fix_build_deps.c
list c
Definition:
fix_build_deps.py:490
benchmark::Counter::kAvgThreads
@ kAvgThreads
Definition:
benchmark/include/benchmark/benchmark.h:391
benchmark::internal::Increment
void Increment(UserCounters *l, UserCounters const &r)
Definition:
benchmark/src/counter.cc:49
setup.v
v
Definition:
third_party/bloaty/third_party/capstone/bindings/python/setup.py:42
benchmark::UserCounters
std::map< std::string, Counter > UserCounters
Definition:
benchmark/include/benchmark/benchmark.h:439
benchmark::internal::Finish
double Finish(Counter const &c, IterationCount iterations, double cpu_time, double num_threads)
Definition:
benchmark/src/counter.cc:20
fix_build_deps.r
r
Definition:
fix_build_deps.py:491
num_threads
static volatile int num_threads
Definition:
benchmark-thread.c:30
internal
Definition:
benchmark/test/output_test_helper.cc:20
counter.h
run_grpclb_interop_tests.l
dictionary l
Definition:
run_grpclb_interop_tests.py:410
benchmark::internal::SameNames
bool SameNames(UserCounters const &l, UserCounters const &r)
Definition:
benchmark/src/counter.cc:66
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:04