Chromium Code Reviews| Index: net/disk_cache/simple/simple_backend_impl.cc |
| diff --git a/net/disk_cache/simple/simple_backend_impl.cc b/net/disk_cache/simple/simple_backend_impl.cc |
| index e5645e357ebd44aecac4b580e3fb88444f7dc7b9..866e591730c1a7432702c8225c200b64f62ee892 100644 |
| --- a/net/disk_cache/simple/simple_backend_impl.cc |
| +++ b/net/disk_cache/simple/simple_backend_impl.cc |
| @@ -30,6 +30,7 @@ |
| #include "base/threading/sequenced_worker_pool.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "base/time/time.h" |
| +#include "base/trace_event/memory_usage_estimator.h" |
| #include "net/base/net_errors.h" |
| #include "net/disk_cache/cache_util.h" |
| #include "net/disk_cache/simple/simple_entry_format.h" |
| @@ -204,6 +205,14 @@ void RecordIndexLoad(net::CacheType cache_type, |
| } // namespace |
| +// Static function which is called by base::trace_event::EstimateMemoryUsage() |
| +// to estimate the memory of SimpleEntryImpl* type. |
| +// This needs to be in disk_cache namespace. |
| +size_t EstimateMemoryUsage(const SimpleEntryImpl*& entry_impl) { |
| + DCHECK(false); |
|
xunjieli
2017/02/17 22:59:10
Dmitry: I followed your suggestion, but this doesn
|
| + return entry_impl->EstimateMemoryUsage(); |
| +} |
| + |
| class SimpleBackendImpl::ActiveEntryProxy |
| : public SimpleEntryImpl::ActiveEntryProxy { |
| public: |
| @@ -552,6 +561,13 @@ void SimpleBackendImpl::OnExternalCacheHit(const std::string& key) { |
| index_->UseIfExists(simple_util::GetEntryHashKey(key)); |
| } |
| +size_t SimpleBackendImpl::EstimateMemoryUsage() const { |
| + // TODO(xunjieli): crbug.com/669108. Track |entries_pending_doom_| once |
| + // base::Closure is suppported in memory_usage_estimator.h. |
| + return base::trace_event::EstimateMemoryUsage(index_) + |
| + base::trace_event::EstimateMemoryUsage(active_entries_); |
| +} |
| + |
| void SimpleBackendImpl::InitializeIndex(const CompletionCallback& callback, |
| const DiskStatResult& result) { |
| if (result.net_error == net::OK) { |