diff options
Diffstat (limited to 'tools/ProcStats.cpp')
-rw-r--r-- | tools/ProcStats.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/ProcStats.cpp b/tools/ProcStats.cpp new file mode 100644 index 0000000000..94660394f8 --- /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 |