Index: tools/ProcStats.cpp |
diff --git a/tools/ProcStats.cpp b/tools/ProcStats.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..94660394f8997143edb5e1daf74882291d6c013a |
--- /dev/null |
+++ b/tools/ProcStats.cpp |
@@ -0,0 +1,31 @@ |
+/* |
+ * Copyright 2014 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include "ProcStats.h" |
+ |
+#if defined(SK_BUILD_FOR_UNIX) || \ |
+ defined(SK_BUILD_FOR_MAC) || \ |
+ defined(SK_BUILD_FOR_ANDROID) |
+ |
+ #include <sys/resource.h> |
+ int sk_tools::getMaxResidentSetSizeKB() { |
+ struct rusage ru; |
+ getrusage(RUSAGE_SELF, &ru); |
+ #if defined(SK_BUILD_FOR_MAC) |
+ return static_cast<int>(ru.ru_maxrss / 1024); // Darwin reports bytes. |
+ #else |
+ return static_cast<int>(ru.ru_maxrss); // Linux reports kilobytes. |
+ #endif |
+ } |
+ |
+#else |
+ |
+ int sk_tools::getMaxResidentSetSizeKB() { |
+ return -1; |
+ } |
+ |
+#endif |