| 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 // This file contains routines for gathering resource statistics for processes | 5 // This file contains routines for gathering resource statistics for processes |
| 6 // running on the system. | 6 // running on the system. |
| 7 | 7 |
| 8 #ifndef BASE_PROCESS_PROCESS_METRICS_H_ | 8 #ifndef BASE_PROCESS_PROCESS_METRICS_H_ |
| 9 #define BASE_PROCESS_PROCESS_METRICS_H_ | 9 #define BASE_PROCESS_PROCESS_METRICS_H_ |
| 10 | 10 |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 // Exposed for memory debugging widget. | 385 // Exposed for memory debugging widget. |
| 386 BASE_EXPORT bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo); | 386 BASE_EXPORT bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo); |
| 387 | 387 |
| 388 #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || | 388 #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || |
| 389 // defined(OS_ANDROID) | 389 // defined(OS_ANDROID) |
| 390 | 390 |
| 391 #if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) | 391 #if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) |
| 392 // Parse the data found in /proc/<pid>/stat and return the sum of the | 392 // Parse the data found in /proc/<pid>/stat and return the sum of the |
| 393 // CPU-related ticks. Returns -1 on parse error. | 393 // CPU-related ticks. Returns -1 on parse error. |
| 394 // Exposed for testing. | 394 // Exposed for testing. |
| 395 BASE_EXPORT int ParseProcStatCPU(const std::string& input); | 395 BASE_EXPORT int ParseProcStatCPU(StringPiece input); |
| 396 | 396 |
| 397 // Get the number of threads of |process| as available in /proc/<pid>/stat. | 397 // Get the number of threads of |process| as available in /proc/<pid>/stat. |
| 398 // This should be used with care as no synchronization with running threads is | 398 // This should be used with care as no synchronization with running threads is |
| 399 // done. This is mostly useful to guarantee being single-threaded. | 399 // done. This is mostly useful to guarantee being single-threaded. |
| 400 // Returns 0 on failure. | 400 // Returns 0 on failure. |
| 401 BASE_EXPORT int GetNumberOfThreads(ProcessHandle process); | 401 BASE_EXPORT int GetNumberOfThreads(ProcessHandle process); |
| 402 | 402 |
| 403 // /proc/self/exe refers to the current executable. | 403 // /proc/self/exe refers to the current executable. |
| 404 BASE_EXPORT extern const char kProcSelfExe[]; | 404 BASE_EXPORT extern const char kProcSelfExe[]; |
| 405 | 405 |
| 406 // Parses a string containing the contents of /proc/meminfo | 406 // Parses a string containing the contents of /proc/meminfo |
| 407 // returns true on success or false for a parsing error | 407 // returns true on success or false for a parsing error |
| 408 BASE_EXPORT bool ParseProcMeminfo(const std::string& input, | 408 // Exposed for testing. |
| 409 BASE_EXPORT bool ParseProcMeminfo(StringPiece input, |
| 409 SystemMemoryInfoKB* meminfo); | 410 SystemMemoryInfoKB* meminfo); |
| 410 | 411 |
| 411 // Parses a string containing the contents of /proc/vmstat | 412 // Parses a string containing the contents of /proc/vmstat |
| 412 // returns true on success or false for a parsing error | 413 // returns true on success or false for a parsing error |
| 413 BASE_EXPORT bool ParseProcVmstat(const std::string& input, | 414 // Exposed for testing. |
| 415 BASE_EXPORT bool ParseProcVmstat(StringPiece input, |
| 414 SystemMemoryInfoKB* meminfo); | 416 SystemMemoryInfoKB* meminfo); |
| 415 | 417 |
| 416 // Data from /proc/diskstats about system-wide disk I/O. | 418 // Data from /proc/diskstats about system-wide disk I/O. |
| 417 struct BASE_EXPORT SystemDiskInfo { | 419 struct BASE_EXPORT SystemDiskInfo { |
| 418 SystemDiskInfo(); | 420 SystemDiskInfo(); |
| 419 SystemDiskInfo(const SystemDiskInfo& other); | 421 SystemDiskInfo(const SystemDiskInfo& other); |
| 420 | 422 |
| 421 // Serializes the platform specific fields to value. | 423 // Serializes the platform specific fields to value. |
| 422 std::unique_ptr<Value> ToValue() const; | 424 std::unique_ptr<Value> ToValue() const; |
| 423 | 425 |
| 424 uint64_t reads; | 426 uint64_t reads; |
| 425 uint64_t reads_merged; | 427 uint64_t reads_merged; |
| 426 uint64_t sectors_read; | 428 uint64_t sectors_read; |
| 427 uint64_t read_time; | 429 uint64_t read_time; |
| 428 uint64_t writes; | 430 uint64_t writes; |
| 429 uint64_t writes_merged; | 431 uint64_t writes_merged; |
| 430 uint64_t sectors_written; | 432 uint64_t sectors_written; |
| 431 uint64_t write_time; | 433 uint64_t write_time; |
| 432 uint64_t io; | 434 uint64_t io; |
| 433 uint64_t io_time; | 435 uint64_t io_time; |
| 434 uint64_t weighted_io_time; | 436 uint64_t weighted_io_time; |
| 435 }; | 437 }; |
| 436 | 438 |
| 437 // Checks whether the candidate string is a valid disk name, [hsv]d[a-z]+ | 439 // Checks whether the candidate string is a valid disk name, [hsv]d[a-z]+ |
| 438 // for a generic disk or mmcblk[0-9]+ for the MMC case. | 440 // for a generic disk or mmcblk[0-9]+ for the MMC case. |
| 439 // Names of disk partitions (e.g. sda1) are not valid. | 441 // Names of disk partitions (e.g. sda1) are not valid. |
| 440 BASE_EXPORT bool IsValidDiskName(const std::string& candidate); | 442 BASE_EXPORT bool IsValidDiskName(StringPiece candidate); |
| 441 | 443 |
| 442 // Retrieves data from /proc/diskstats about system-wide disk I/O. | 444 // Retrieves data from /proc/diskstats about system-wide disk I/O. |
| 443 // Fills in the provided |diskinfo| structure. Returns true on success. | 445 // Fills in the provided |diskinfo| structure. Returns true on success. |
| 444 BASE_EXPORT bool GetSystemDiskInfo(SystemDiskInfo* diskinfo); | 446 BASE_EXPORT bool GetSystemDiskInfo(SystemDiskInfo* diskinfo); |
| 445 | 447 |
| 446 // Returns the amount of time spent in user space since boot across all CPUs. | 448 // Returns the amount of time spent in user space since boot across all CPUs. |
| 447 BASE_EXPORT TimeDelta GetUserCpuTimeSinceBoot(); | 449 BASE_EXPORT TimeDelta GetUserCpuTimeSinceBoot(); |
| 448 #endif // defined(OS_LINUX) || defined(OS_ANDROID) | 450 #endif // defined(OS_LINUX) || defined(OS_ANDROID) |
| 449 | 451 |
| 450 #if defined(OS_CHROMEOS) | 452 #if defined(OS_CHROMEOS) |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 // |size| and |info| are output parameters, only valid on Success. | 532 // |size| and |info| are output parameters, only valid on Success. |
| 531 BASE_EXPORT MachVMRegionResult GetBasicInfo(mach_port_t task, | 533 BASE_EXPORT MachVMRegionResult GetBasicInfo(mach_port_t task, |
| 532 mach_vm_size_t* size, | 534 mach_vm_size_t* size, |
| 533 mach_vm_address_t* address, | 535 mach_vm_address_t* address, |
| 534 vm_region_basic_info_64* info); | 536 vm_region_basic_info_64* info); |
| 535 #endif // defined(OS_MACOSX) && !defined(OS_IOS) | 537 #endif // defined(OS_MACOSX) && !defined(OS_IOS) |
| 536 | 538 |
| 537 } // namespace base | 539 } // namespace base |
| 538 | 540 |
| 539 #endif // BASE_PROCESS_PROCESS_METRICS_H_ | 541 #endif // BASE_PROCESS_PROCESS_METRICS_H_ |
| OLD | NEW |