summaryrefslogtreecommitdiff
path: root/src/zmalloc.c
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2019-09-15 14:05:00 +0100
committerDavid Carlier <devnexen@gmail.com>2019-09-15 14:05:00 +0100
commit819a661be5efcb045be4d34d7269ab35dc0fcb88 (patch)
tree781b842606ec42e001dd232a23cab98b08c0291c /src/zmalloc.c
parent888efc1b3642959b05815473663a5f0971af53ac (diff)
downloadredis-819a661be5efcb045be4d34d7269ab35dc0fcb88.tar.gz
Getting region date per process in Darwin
Diffstat (limited to 'src/zmalloc.c')
-rw-r--r--src/zmalloc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/zmalloc.c b/src/zmalloc.c
index fd8bb6938..48f4b1e99 100644
--- a/src/zmalloc.c
+++ b/src/zmalloc.c
@@ -396,6 +396,18 @@ size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) {
}
#else
size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) {
+#if defined(__APPLE__)
+ struct proc_regioninfo pri;
+ if (proc_pidinfo(pid, PROC_PIDREGIONINFO, 0, &pri, PROC_PIDREGIONINFO_SIZE) ==
+ PROC_PIDREGIONINFO_SIZE) {
+ if (!strcmp(field, "Private_Dirty")) {
+ return (size_t)pri.pri_pages_dirtied * 4096;
+ } else if (!strcmp(field, "Rss")) {
+ return (size_t)pri.pri_pages_resident * 4096;
+ }
+ }
+ return 0;
+#endif
((void) field);
((void) pid);
return 0;