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::kAvgThreads
@ kAvgThreads
Definition:
benchmark.h:347
benchmark
Definition:
benchmark.h:241
benchmark::Counter::flags
Flags flags
Definition:
benchmark.h:353
benchmark::Counter::value
double value
Definition:
benchmark.h:352
benchmark::internal::Finish
double Finish(Counter const &c, double cpu_time, double num_threads)
Definition:
counter.cc:20
benchmark::internal::Increment
void Increment(UserCounters *l, UserCounters const &r)
Definition:
counter.cc:37
benchmark::Counter::kIsRate
@ kIsRate
Definition:
benchmark.h:344
benchmark::Counter
Definition:
benchmark.h:337
v
const GLdouble * v
Definition:
glcorearb.h:3106
r
GLboolean r
Definition:
glcorearb.h:3228
internal
Definition:
any.pb.h:40
benchmark::UserCounters
std::map< std::string, Counter > UserCounters
Definition:
benchmark.h:364
counter.h
it
MapIter it
Definition:
php/ext/google/protobuf/map.c:205
benchmark::internal::SameNames
bool SameNames(UserCounters const &l, UserCounters const &r)
Definition:
counter.cc:54
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:48