Index: dm/DMReporter.cpp |
diff --git a/dm/DMReporter.cpp b/dm/DMReporter.cpp |
index 3f71d693e43a750b98dc348871d4ee228664098e..5187a6f453ae6ab086793756d58e42436d83558a 100644 |
--- a/dm/DMReporter.cpp |
+++ b/dm/DMReporter.cpp |
@@ -4,6 +4,17 @@ |
#include "SkCommonFlags.h" |
#include "OverwriteLine.h" |
+#ifdef SK_BUILD_FOR_UNIX |
+ #include <sys/resource.h> |
+ static long get_max_rss_kb() { |
+ struct rusage ru; |
+ getrusage(RUSAGE_SELF, &ru); |
+ return ru.ru_maxrss; |
+ } |
+#else |
+ static long get_max_rss_kb() { return 0; } |
+#endif |
+ |
namespace DM { |
void Reporter::printStatus(SkString name, SkMSec timeMs) const { |
@@ -21,7 +32,10 @@ void Reporter::printStatus(SkString name, SkMSec timeMs) const { |
status.appendf(", %d failed", failed); |
} |
if (FLAGS_verbose) { |
- status.appendf("\t%5dms %s", timeMs, name.c_str()); |
+ 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()); |
} |
SkDebugf("%s", status.c_str()); |
} |