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 
20 
21 #ifdef GPR_APPLE
22 
23 #include <mach/mach.h>
24 
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