| 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 |