1/* 2 * Copyright 2014 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8#include "ProcStats.h" 9 10#if defined(SK_BUILD_FOR_UNIX) || \ 11 defined(SK_BUILD_FOR_MAC) || \ 12 defined(SK_BUILD_FOR_ANDROID) 13 14 #include <sys/resource.h> 15 int sk_tools::getMaxResidentSetSizeMB() { 16 struct rusage ru; 17 getrusage(RUSAGE_SELF, &ru); 18 #if defined(SK_BUILD_FOR_MAC) 19 return static_cast<int>(ru.ru_maxrss / 1024 / 1024); // Darwin reports bytes. 20 #else 21 return static_cast<int>(ru.ru_maxrss / 1024); // Linux reports kilobytes. 22 #endif 23 } 24 25#else 26 27 int sk_tools::getMaxResidentSetSizeMB() { 28 return -1; 29 } 30 31#endif 32