From e241dbeba4bd8e4f9cd2786d76697afd6057e406 Mon Sep 17 00:00:00 2001 From: Vincent Loupmon Date: Wed, 9 Mar 2016 12:38:22 +0100 Subject: [PATCH] Changed RAM calculation formula. Former : MemTotal - MemAvailable New : (MemTotal - MemFree) - (Buffers + Cached) --- slstatus.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/slstatus.c b/slstatus.c index cd2def6..331a345 100644 --- a/slstatus.c +++ b/slstatus.c @@ -162,7 +162,7 @@ char * get_ram_usage() { int ram_perc; - long total, free, available; + long total, free, buffers, cached; FILE *fp; /* open meminfo file */ @@ -174,13 +174,14 @@ get_ram_usage() /* read the values */ fscanf(fp, "MemTotal: %ld kB\n", &total); fscanf(fp, "MemFree: %ld kB\n", &free); - fscanf(fp, "MemAvailable: %ld kB\n", &available); + fscanf(fp, "MemAvailable: %ld kB\nBuffers: %ld kB\n", &buffers, &buffers); + fscanf(fp, "Cached: %ld kB\n", &cached); /* close meminfo file */ fclose(fp); /* calculate percentage */ - ram_perc = 100 * (total - available) / total; + ram_perc = 100 * ((total - free) - (buffers + cached)) / total; /* return ram_perc as string */ return smprintf("%d%%",ram_perc);