| 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 249 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 260 // Total/free memory are available on all platforms that implement | 260 // Total/free memory are available on all platforms that implement | 
| 261 // GetSystemMemoryInfo(). Total/free swap memory are available on all platforms | 261 // GetSystemMemoryInfo(). Total/free swap memory are available on all platforms | 
| 262 // except on Mac. Buffers/cached/active_anon/inactive_anon/active_file/ | 262 // except on Mac. Buffers/cached/active_anon/inactive_anon/active_file/ | 
| 263 // inactive_file/dirty/pswpin/pswpout/pgmajfault are available on | 263 // inactive_file/dirty/pswpin/pswpout/pgmajfault are available on | 
| 264 // Linux/Android/Chrome OS. Shmem/slab/gem_objects/gem_size are Chrome OS only. | 264 // Linux/Android/Chrome OS. Shmem/slab/gem_objects/gem_size are Chrome OS only. | 
| 265 struct BASE_EXPORT SystemMemoryInfoKB { | 265 struct BASE_EXPORT SystemMemoryInfoKB { | 
| 266   SystemMemoryInfoKB(); | 266   SystemMemoryInfoKB(); | 
| 267   SystemMemoryInfoKB(const SystemMemoryInfoKB& other); | 267   SystemMemoryInfoKB(const SystemMemoryInfoKB& other); | 
| 268 | 268 | 
| 269   // Serializes the platform specific fields to value. | 269   // Serializes the platform specific fields to value. | 
| 270   scoped_ptr<Value> ToValue() const; | 270   std::unique_ptr<Value> ToValue() const; | 
| 271 | 271 | 
| 272   int total; | 272   int total; | 
| 273   int free; | 273   int free; | 
| 274 | 274 | 
| 275 #if !defined(OS_MACOSX) | 275 #if !defined(OS_MACOSX) | 
| 276   int swap_total; | 276   int swap_total; | 
| 277   int swap_free; | 277   int swap_free; | 
| 278 #endif | 278 #endif | 
| 279 | 279 | 
| 280 #if defined(OS_ANDROID) || defined(OS_LINUX) | 280 #if defined(OS_ANDROID) || defined(OS_LINUX) | 
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 336 // returns true on success or false for a parsing error | 336 // returns true on success or false for a parsing error | 
| 337 BASE_EXPORT bool ParseProcVmstat(const std::string& input, | 337 BASE_EXPORT bool ParseProcVmstat(const std::string& input, | 
| 338                                  SystemMemoryInfoKB* meminfo); | 338                                  SystemMemoryInfoKB* meminfo); | 
| 339 | 339 | 
| 340 // Data from /proc/diskstats about system-wide disk I/O. | 340 // Data from /proc/diskstats about system-wide disk I/O. | 
| 341 struct BASE_EXPORT SystemDiskInfo { | 341 struct BASE_EXPORT SystemDiskInfo { | 
| 342   SystemDiskInfo(); | 342   SystemDiskInfo(); | 
| 343   SystemDiskInfo(const SystemDiskInfo& other); | 343   SystemDiskInfo(const SystemDiskInfo& other); | 
| 344 | 344 | 
| 345   // Serializes the platform specific fields to value. | 345   // Serializes the platform specific fields to value. | 
| 346   scoped_ptr<Value> ToValue() const; | 346   std::unique_ptr<Value> ToValue() const; | 
| 347 | 347 | 
| 348   uint64_t reads; | 348   uint64_t reads; | 
| 349   uint64_t reads_merged; | 349   uint64_t reads_merged; | 
| 350   uint64_t sectors_read; | 350   uint64_t sectors_read; | 
| 351   uint64_t read_time; | 351   uint64_t read_time; | 
| 352   uint64_t writes; | 352   uint64_t writes; | 
| 353   uint64_t writes_merged; | 353   uint64_t writes_merged; | 
| 354   uint64_t sectors_written; | 354   uint64_t sectors_written; | 
| 355   uint64_t write_time; | 355   uint64_t write_time; | 
| 356   uint64_t io; | 356   uint64_t io; | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 373 struct BASE_EXPORT SwapInfo { | 373 struct BASE_EXPORT SwapInfo { | 
| 374   SwapInfo() | 374   SwapInfo() | 
| 375       : num_reads(0), | 375       : num_reads(0), | 
| 376         num_writes(0), | 376         num_writes(0), | 
| 377         compr_data_size(0), | 377         compr_data_size(0), | 
| 378         orig_data_size(0), | 378         orig_data_size(0), | 
| 379         mem_used_total(0) { | 379         mem_used_total(0) { | 
| 380   } | 380   } | 
| 381 | 381 | 
| 382   // Serializes the platform specific fields to value. | 382   // Serializes the platform specific fields to value. | 
| 383   scoped_ptr<Value> ToValue() const; | 383   std::unique_ptr<Value> ToValue() const; | 
| 384 | 384 | 
| 385   uint64_t num_reads; | 385   uint64_t num_reads; | 
| 386   uint64_t num_writes; | 386   uint64_t num_writes; | 
| 387   uint64_t compr_data_size; | 387   uint64_t compr_data_size; | 
| 388   uint64_t orig_data_size; | 388   uint64_t orig_data_size; | 
| 389   uint64_t mem_used_total; | 389   uint64_t mem_used_total; | 
| 390 }; | 390 }; | 
| 391 | 391 | 
| 392 // In ChromeOS, reads files from /sys/block/zram0 that contain ZRAM usage data. | 392 // In ChromeOS, reads files from /sys/block/zram0 that contain ZRAM usage data. | 
| 393 // Fills in the provided |swap_data| structure. | 393 // Fills in the provided |swap_data| structure. | 
| 394 BASE_EXPORT void GetSwapInfo(SwapInfo* swap_info); | 394 BASE_EXPORT void GetSwapInfo(SwapInfo* swap_info); | 
| 395 #endif  // defined(OS_CHROMEOS) | 395 #endif  // defined(OS_CHROMEOS) | 
| 396 | 396 | 
| 397 // Collects and holds performance metrics for system memory and disk. | 397 // Collects and holds performance metrics for system memory and disk. | 
| 398 // Provides functionality to retrieve the data on various platforms and | 398 // Provides functionality to retrieve the data on various platforms and | 
| 399 // to serialize the stored data. | 399 // to serialize the stored data. | 
| 400 class SystemMetrics { | 400 class SystemMetrics { | 
| 401  public: | 401  public: | 
| 402   SystemMetrics(); | 402   SystemMetrics(); | 
| 403 | 403 | 
| 404   static SystemMetrics Sample(); | 404   static SystemMetrics Sample(); | 
| 405 | 405 | 
| 406   // Serializes the system metrics to value. | 406   // Serializes the system metrics to value. | 
| 407   scoped_ptr<Value> ToValue() const; | 407   std::unique_ptr<Value> ToValue() const; | 
| 408 | 408 | 
| 409  private: | 409  private: | 
| 410   FRIEND_TEST_ALL_PREFIXES(SystemMetricsTest, SystemMetrics); | 410   FRIEND_TEST_ALL_PREFIXES(SystemMetricsTest, SystemMetrics); | 
| 411 | 411 | 
| 412   size_t committed_memory_; | 412   size_t committed_memory_; | 
| 413 #if defined(OS_LINUX) || defined(OS_ANDROID) | 413 #if defined(OS_LINUX) || defined(OS_ANDROID) | 
| 414   SystemMemoryInfoKB memory_info_; | 414   SystemMemoryInfoKB memory_info_; | 
| 415   SystemDiskInfo disk_info_; | 415   SystemDiskInfo disk_info_; | 
| 416 #endif | 416 #endif | 
| 417 #if defined(OS_CHROMEOS) | 417 #if defined(OS_CHROMEOS) | 
| 418   SwapInfo swap_info_; | 418   SwapInfo swap_info_; | 
| 419 #endif | 419 #endif | 
| 420 }; | 420 }; | 
| 421 | 421 | 
| 422 }  // namespace base | 422 }  // namespace base | 
| 423 | 423 | 
| 424 #endif  // BASE_PROCESS_PROCESS_METRICS_H_ | 424 #endif  // BASE_PROCESS_PROCESS_METRICS_H_ | 
| OLD | NEW | 
|---|