From 74f108a67199e625bebdf9b9079b0e20f9149903 Mon Sep 17 00:00:00 2001 From: Sarah Pham Date: Fri, 20 Jan 2023 10:18:19 +1100 Subject: [PATCH] Add Fuchsia support to memory_usage. Implement GetProcessResidentSizeBytes for Fuchsia. Bug: webrtc:14825 Change-Id: I64582ce0da72d3bb0fa61ff64799a1a165e1192f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290922 Commit-Queue: Sarah Pham Reviewed-by: Mirko Bonadei Cr-Commit-Position: refs/heads/main@{#39154} --- rtc_base/memory_usage.cc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/rtc_base/memory_usage.cc b/rtc_base/memory_usage.cc index 4284e4f597..2d33d98eed 100644 --- a/rtc_base/memory_usage.cc +++ b/rtc_base/memory_usage.cc @@ -22,6 +22,9 @@ #include #include // must come after windows.h // clang-format on +#elif defined(WEBRTC_FUCHSIA) +#include +#include #endif #include "rtc_base/logging.h" @@ -61,8 +64,16 @@ int64_t GetProcessResidentSizeBytes() { } return pmc.WorkingSetSize; #elif defined(WEBRTC_FUCHSIA) - RTC_LOG_ERR(LS_ERROR) << "GetProcessResidentSizeBytes() not implemented"; - return 0; + zx_info_task_stats_t task_stats; + zx_status_t status = zx::process::self()->get_info( + ZX_INFO_TASK_STATS, &task_stats, sizeof(task_stats), nullptr, nullptr); + if (status == ZX_OK) { + return task_stats.mem_mapped_bytes; + } else { + RTC_LOG_ERR(LS_ERROR) << "get_info() failed: " + << zx_status_get_string(status); + return -1; + } #else // Not implemented yet. static_assert(false,