| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/process/process_metrics.h" | 5 #include "base/process/process_metrics.h" |
| 6 | 6 |
| 7 namespace base { | 7 namespace base { |
| 8 | 8 |
| 9 ProcessMetrics::ProcessMetrics(ProcessHandle process) | 9 ProcessMetrics::ProcessMetrics(ProcessHandle process) |
| 10 : process_(process), | 10 : process_(process), |
| 11 last_cpu_time_(0), | |
| 12 last_system_time_(0), | 11 last_system_time_(0), |
| 13 last_cpu_(0) { | 12 last_cpu_(0) { |
| 14 processor_count_ = base::SysInfo::NumberOfProcessors(); | 13 processor_count_ = base::SysInfo::NumberOfProcessors(); |
| 15 } | 14 } |
| 16 | 15 |
| 17 // static | 16 // static |
| 18 ProcessMetrics* ProcessMetrics::CreateProcessMetrics(ProcessHandle process) { | 17 ProcessMetrics* ProcessMetrics::CreateProcessMetrics(ProcessHandle process) { |
| 19 return new ProcessMetrics(process); | 18 return new ProcessMetrics(process); |
| 20 } | 19 } |
| 21 | 20 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 ws_usage->shared = 0; | 73 ws_usage->shared = 0; |
| 75 | 74 |
| 76 return true; | 75 return true; |
| 77 } | 76 } |
| 78 | 77 |
| 79 double ProcessMetrics::GetCPUUsage() { | 78 double ProcessMetrics::GetCPUUsage() { |
| 80 struct kinfo_proc info; | 79 struct kinfo_proc info; |
| 81 int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_ }; | 80 int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_ }; |
| 82 size_t length = sizeof(info); | 81 size_t length = sizeof(info); |
| 83 | 82 |
| 84 struct timeval now; | |
| 85 int retval = gettimeofday(&now, NULL); | |
| 86 if (retval) | |
| 87 return 0; | |
| 88 | |
| 89 if (sysctl(mib, arraysize(mib), &info, &length, NULL, 0) < 0) | 83 if (sysctl(mib, arraysize(mib), &info, &length, NULL, 0) < 0) |
| 90 return 0; | 84 return 0; |
| 91 | 85 |
| 92 return (info.ki_pctcpu / FSCALE) * 100.0; | 86 return (info.ki_pctcpu / FSCALE) * 100.0; |
| 93 } | 87 } |
| 94 | 88 |
| 95 bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const { | 89 bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const { |
| 96 return false; | 90 return false; |
| 97 } | 91 } |
| 98 | 92 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 113 NULL, 0) < 0) { | 107 NULL, 0) < 0) { |
| 114 return 0; | 108 return 0; |
| 115 } | 109 } |
| 116 | 110 |
| 117 pagesize = getpagesize(); | 111 pagesize = getpagesize(); |
| 118 | 112 |
| 119 return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize); | 113 return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize); |
| 120 } | 114 } |
| 121 | 115 |
| 122 } // namespace base | 116 } // namespace base |
| OLD | NEW |