diff --git a/dm/DMReporter.cpp b/dm/DMReporter.cpp index 3f71d693e4..5187a6f453 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 + 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()); }