Index: dm/DMReporter.cpp |
diff --git a/dm/DMReporter.cpp b/dm/DMReporter.cpp |
index 12bcfac0f3f7f233b5a7ebc780f75813ece9f536..14f50871021ea42e811e547fc452b48089c2f300 100644 |
--- a/dm/DMReporter.cpp |
+++ b/dm/DMReporter.cpp |
@@ -3,7 +3,21 @@ |
#include "SkDynamicAnnotations.h" |
#include "SkCommonFlags.h" |
#include "OverwriteLine.h" |
-#include "ProcStats.h" |
+ |
+#if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_ANDROID) |
+ #include <sys/resource.h> |
+ static long get_max_rss_kb() { |
+ struct rusage ru; |
+ getrusage(RUSAGE_SELF, &ru); |
+ #if defined(SK_BUILD_FOR_MAC) |
+ return ru.ru_maxrss / 1024; // Darwin reports bytes. |
+ #else |
+ return ru.ru_maxrss; // Linux reports kilobytes. |
+ #endif |
+ } |
+#else |
+ static long get_max_rss_kb() { return 0; } |
+#endif |
namespace DM { |
@@ -22,9 +36,8 @@ |
status.appendf(", %d failed", failed); |
} |
if (FLAGS_verbose) { |
- int max_rss_kb = sk_tools::getMaxResidentSetSizeKB(); |
- if (max_rss_kb >= 0) { |
- status.appendf("\t%4dM peak", max_rss_kb / 1024); |
+ if (long max_rss_kb = get_max_rss_kb()) { |
+ status.appendf("\t%4ldM peak", max_rss_kb / 1024); |
} |
status.appendf("\t%5dms\t%s", timeMs, name.c_str()); |
} |