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..e81877c9017bef6324ef7883b2daa1357ca74456 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,13 @@ 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* const& entry_impl) { |
jkarlin
2017/02/24 18:38:09
Have you verified that this actually gets called?
xunjieli
2017/02/24 18:42:17
I verified manually that this is called. (build ch
|
+ return sizeof(SimpleEntryImpl) + entry_impl->EstimateMemoryUsage(); |
+} |
+ |
class SimpleBackendImpl::ActiveEntryProxy |
: public SimpleEntryImpl::ActiveEntryProxy { |
public: |
@@ -552,6 +560,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) { |