| Index: base/process/process_metrics_posix.cc
|
| diff --git a/base/process/process_metrics_posix.cc b/base/process/process_metrics_posix.cc
|
| index a4445e8bc2e80ff6fdac1e04074224298ba422ca..677e26d12148d084f21a2906837e939f82be4664 100644
|
| --- a/base/process/process_metrics_posix.cc
|
| +++ b/base/process/process_metrics_posix.cc
|
| @@ -14,6 +14,12 @@
|
| #include "base/logging.h"
|
| #include "build/build_config.h"
|
|
|
| +#if defined(OS_MACOSX)
|
| +#include <malloc/malloc.h>
|
| +#else
|
| +#include <malloc.h>
|
| +#endif
|
| +
|
| namespace base {
|
|
|
| int64_t TimeValToMicroseconds(const struct timeval& tv) {
|
| @@ -83,4 +89,19 @@ size_t GetPageSize() {
|
| return getpagesize();
|
| }
|
|
|
| +size_t ProcessMetrics::GetMallocUsage() {
|
| +#if defined(OS_MACOSX) || defined(OS_IOS)
|
| + malloc_statistics_t stats = {0};
|
| + malloc_zone_statistics(nullptr, &stats);
|
| + return stats.size_in_use;
|
| +#elif defined(OS_LINUX) || defined(OS_ANDROID)
|
| + struct mallinfo minfo = mallinfo();
|
| +#if defined(USE_TCMALLOC)
|
| + return minfo.uordblks;
|
| +#else
|
| + return minfo.hblkhd + minfo.arena;
|
| +#endif
|
| +#endif
|
| +}
|
| +
|
| } // namespace base
|
|
|