// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/trace_event/process_memory_totals.h" #include "base/format_macros.h" #include "base/strings/stringprintf.h" #include "base/trace_event/trace_event_argument.h" namespace base { namespace trace_event { ProcessMemoryTotals::ProcessMemoryTotals() : resident_set_bytes_(0), peak_resident_set_bytes_(0), is_peak_rss_resetable_(false) { } ProcessMemoryTotals::~ProcessMemoryTotals() {} void ProcessMemoryTotals::AsValueInto(TracedValue* value) const { value->SetString("resident_set_bytes", StringPrintf("%" PRIx64, resident_set_bytes_)); if (peak_resident_set_bytes_ > 0) { value->SetString("peak_resident_set_bytes", StringPrintf("%" PRIx64, peak_resident_set_bytes_)); value->SetBoolean("is_peak_rss_resetable", is_peak_rss_resetable_); } for (const auto it : extra_fields_) { value->SetString(it.first, StringPrintf("%" PRIx64, it.second)); } } void ProcessMemoryTotals::Clear() { resident_set_bytes_ = 0; } void ProcessMemoryTotals::SetExtraFieldInBytes(const char* name, uint64_t value) { DCHECK_EQ(0u, extra_fields_.count(name)); extra_fields_[name] = value; } } // namespace trace_event } // namespace base