| Index: tools/ProcStats.cpp
|
| diff --git a/tools/ProcStats.cpp b/tools/ProcStats.cpp
|
| index 1af71917bd365bf917160e8aa82f2e6e9453c9f5..5c41213d4df2513f9196adc1c747fe93f00123c4 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 <unistd.h>
|
| + #include <stdio.h>
|
| + 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;
|
|
|