Index: base/process/process_metrics.h |
diff --git a/base/process/process_metrics.h b/base/process/process_metrics.h |
index 2448a715ace9b5eade7f09524561ffcedb666cc3..92352ff37c03abd087f2318947e679b03cbc4033 100644 |
--- a/base/process/process_metrics.h |
+++ b/base/process/process_metrics.h |
@@ -264,8 +264,9 @@ BASE_EXPORT void SetFdLimit(unsigned int max_descriptors); |
// Total/free memory are available on all platforms that implement |
// GetSystemMemoryInfo(). Total/free swap memory are available on all platforms |
// except on Mac. Buffers/cached/active_anon/inactive_anon/active_file/ |
-// inactive_file/dirty/pswpin/pswpout/pgmajfault are available on |
+// inactive_file/dirty/reclaimable/pswpin/pswpout/pgmajfault are available on |
// Linux/Android/Chrome OS. Shmem/slab/gem_objects/gem_size are Chrome OS only. |
+// Speculative/file_backed/purgeable are Mac and iOS only. |
struct BASE_EXPORT SystemMemoryInfoKB { |
SystemMemoryInfoKB(); |
SystemMemoryInfoKB(const SystemMemoryInfoKB& other); |
@@ -276,7 +277,23 @@ struct BASE_EXPORT SystemMemoryInfoKB { |
int total; |
int free; |
-#if defined(OS_LINUX) |
+#if defined(OS_WIN) |
+ // There are Free and Zero memory on Windows platform. |
+ // See "Memory Management" and "Memory Performance Information" |
+ // articles at MSDN. |
+ int zero; |
Primiano Tucci (use gerrit)
2017/02/20 14:13:27
Why this needs to be exposed at an API level? I un
Michael K. (Yandex Team)
2017/02/20 14:33:13
You're right: currently nobody uses it.
...Except
|
+ |
+ // "This is the amount of physical memory that can be immediately reused |
+ // without having to write its contents to disk first. It is the sum of the |
+ // size of the standby, free, and zero lists." (MSDN). |
+ // Standby: not modified pages of physical ram (file-backed memory) that are |
+ // not actively being used. |
+ // Note: on Windows this field has a bit different meaning from the Linux one. |
+ // On Linux "available" includes _all_ file-backed memory (active + inactive). |
Primiano Tucci (use gerrit)
2017/02/20 14:13:27
note that you are saying "on linux" but this line
Michael K. (Yandex Team)
2017/02/20 14:33:14
Because I wanted to explain what "different" exact
|
+ int available; |
+#endif |
+ |
+#if defined(OS_LINUX) || defined(OS_ANDROID) |
// This provides an estimate of available memory as described here: |
// https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773 |
// NOTE: this is ONLY valid in kernels 3.14 and up. Its value will always |
@@ -297,6 +314,7 @@ struct BASE_EXPORT SystemMemoryInfoKB { |
int active_file; |
int inactive_file; |
int dirty; |
+ int reclaimable; |
// vmstats data. |
unsigned long pswpin; |
@@ -311,6 +329,12 @@ struct BASE_EXPORT SystemMemoryInfoKB { |
int gem_objects; |
long long gem_size; |
#endif // defined(OS_CHROMEOS) |
+ |
+#if defined(OS_MACOSX) || defined(OS_IOS) |
+ int speculative; |
+ int file_backed; |
+ int purgeable; |
+#endif |
}; |
// On Linux/Android/Chrome OS, system-wide memory consumption data is parsed |