From eec84e324ee47f19b7e9c22d3454622d7a21da2e Mon Sep 17 00:00:00 2001 From: mtklein Date: Tue, 17 Mar 2015 10:24:49 -0700 Subject: Current RSS on linux and android too? BUG=skia: Review URL: https://codereview.chromium.org/1009313003 --- tools/ProcStats.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tools/ProcStats.cpp') diff --git a/tools/ProcStats.cpp b/tools/ProcStats.cpp index 1af71917bd..5c41213d4d 100644 --- a/tools/ProcStats.cpp +++ b/tools/ProcStats.cpp @@ -41,6 +41,23 @@ } return info.resident_size / 1024 / 1024; // Darwin reports bytes. } +#elif defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_ANDROID) // N.B. /proc is Linux-only. + #include + #include + int sk_tools::getCurrResidentSetSizeMB() { + const long pageSize = sysconf(_SC_PAGESIZE); + long rssPages = 0; + if (FILE* statm = fopen("/proc/self/statm", "r")) { + // statm contains: program-size rss shared text lib data dirty, all in page counts. + int rc = fscanf(statm, "%*d %ld", &rssPages); + fclose(statm); + if (rc != 1) { + return -1; + } + } + return rssPages * pageSize / 1024 / 1024; + } + #elif defined(SK_BUILD_FOR_WIN32) int sk_tools::getCurrResidentSetSizeMB() { PROCESS_MEMORY_COUNTERS info; -- cgit v1.2.3