diff options
Diffstat (limited to 'cc/resources/memory_history.cc')
-rw-r--r-- | cc/resources/memory_history.cc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/cc/resources/memory_history.cc b/cc/resources/memory_history.cc new file mode 100644 index 0000000..13b71c7 --- /dev/null +++ b/cc/resources/memory_history.cc @@ -0,0 +1,37 @@ +// Copyright 2012 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 "cc/resources/memory_history.h" + +namespace cc { + +// static +scoped_ptr<MemoryHistory> MemoryHistory::Create() { + return make_scoped_ptr(new MemoryHistory()); +} + +MemoryHistory::MemoryHistory() {} + +void MemoryHistory::SaveEntry(const MemoryHistory::Entry& entry) { + ring_buffer_.SaveToBuffer(entry); +} + +void MemoryHistory::GetMinAndMax(size_t* min, size_t* max) const { + *min = std::numeric_limits<size_t>::max(); + *max = 0; + + for (RingBufferType::Iterator it = ring_buffer_.Begin(); it; ++it) { + size_t bytes_total = it->bytes_total(); + + if (bytes_total < *min) + *min = bytes_total; + if (bytes_total > *max) + *max = bytes_total; + } + + if (*min > *max) + *min = *max; +} + +} // namespace cc |