grpc
src
cpp
server
load_reporter
get_cpu_stats_macos.cc
Go to the documentation of this file.
1
/*
2
*
3
* Copyright 2018 gRPC authors.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*/
18
19
#include <
grpc/support/port_platform.h
>
20
21
#ifdef GPR_APPLE
22
23
#include <mach/mach.h>
24
25
#include "
src/cpp/server/load_reporter/get_cpu_stats.h
"
26
27
namespace
grpc
{
28
namespace
load_reporter {
29
30
std::pair<uint64_t, uint64_t>
GetCpuStatsImpl
() {
31
uint64_t
busy = 0,
total
= 0;
32
host_cpu_load_info_data_t cpuinfo;
33
mach_msg_type_number_t
count
= HOST_CPU_LOAD_INFO_COUNT;
34
if
(host_statistics(mach_host_self(), HOST_CPU_LOAD_INFO,
35
(host_info_t)&cpuinfo, &
count
) == KERN_SUCCESS) {
36
for
(
int
i = 0;
i
<
CPU_STATE_MAX
;
i
++)
total
+= cpuinfo.cpu_ticks[i];
37
busy =
total
- cpuinfo.cpu_ticks[
CPU_STATE_IDLE
];
38
}
39
return
std::make_pair(busy,
total
);
40
}
41
42
}
// namespace load_reporter
43
}
// namespace grpc
44
45
#endif // GPR_APPLE
grpc
Definition:
grpcpp/alarm.h:33
grpc::load_reporter::GetCpuStatsImpl
std::pair< uint64_t, uint64_t > GetCpuStatsImpl()
Definition:
get_cpu_stats_unsupported.cc:30
total
size_t total
Definition:
cord_analysis.cc:59
CPU_STATE_MAX
#define CPU_STATE_MAX
Definition:
machine.h:74
uint64_t
unsigned __int64 uint64_t
Definition:
stdint-msvc2008.h:90
get_cpu_stats.h
count
int * count
Definition:
bloaty/third_party/googletest/googlemock/test/gmock_stress_test.cc:96
CPU_STATE_IDLE
#define CPU_STATE_IDLE
Definition:
machine.h:78
i
uint64_t i
Definition:
abseil-cpp/absl/container/btree_benchmark.cc:230
port_platform.h
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:28