OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/sync/model_impl/shared_model_type_processor.h" | 5 #include "components/sync/model_impl/shared_model_type_processor.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
11 #include "base/location.h" | 11 #include "base/location.h" |
12 #include "base/memory/ptr_util.h" | 12 #include "base/memory/ptr_util.h" |
13 #include "base/metrics/histogram_macros.h" | 13 #include "base/metrics/histogram_macros.h" |
14 #include "base/threading/thread_task_runner_handle.h" | 14 #include "base/threading/thread_task_runner_handle.h" |
| 15 #include "base/trace_event/memory_usage_estimator.h" |
15 #include "components/sync/base/hash_util.h" | 16 #include "components/sync/base/hash_util.h" |
16 #include "components/sync/engine/activation_context.h" | 17 #include "components/sync/engine/activation_context.h" |
17 #include "components/sync/engine/commit_queue.h" | 18 #include "components/sync/engine/commit_queue.h" |
18 #include "components/sync/engine/model_type_processor_proxy.h" | 19 #include "components/sync/engine/model_type_processor_proxy.h" |
19 #include "components/sync/model_impl/processor_entity_tracker.h" | 20 #include "components/sync/model_impl/processor_entity_tracker.h" |
| 21 #include "components/sync/protocol/proto_memory_estimations.h" |
20 | 22 |
21 namespace syncer { | 23 namespace syncer { |
22 | 24 |
23 SharedModelTypeProcessor::SharedModelTypeProcessor( | 25 SharedModelTypeProcessor::SharedModelTypeProcessor( |
24 ModelType type, | 26 ModelType type, |
25 ModelTypeSyncBridge* bridge, | 27 ModelTypeSyncBridge* bridge, |
26 const base::RepeatingClosure& dump_stack) | 28 const base::RepeatingClosure& dump_stack) |
27 : type_(type), | 29 : type_(type), |
28 bridge_(bridge), | 30 bridge_(bridge), |
29 dump_stack_(dump_stack), | 31 dump_stack_(dump_stack), |
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
657 return entity_ptr; | 659 return entity_ptr; |
658 } | 660 } |
659 | 661 |
660 ProcessorEntityTracker* SharedModelTypeProcessor::CreateEntity( | 662 ProcessorEntityTracker* SharedModelTypeProcessor::CreateEntity( |
661 const EntityData& data) { | 663 const EntityData& data) { |
662 // Verify the tag hash matches, may be relaxed in the future. | 664 // Verify the tag hash matches, may be relaxed in the future. |
663 DCHECK_EQ(data.client_tag_hash, GetHashForTag(bridge_->GetClientTag(data))); | 665 DCHECK_EQ(data.client_tag_hash, GetHashForTag(bridge_->GetClientTag(data))); |
664 return CreateEntity(bridge_->GetStorageKey(data), data); | 666 return CreateEntity(bridge_->GetStorageKey(data), data); |
665 } | 667 } |
666 | 668 |
| 669 size_t SharedModelTypeProcessor::EstimateMemoryUsage() const { |
| 670 using base::trace_event::EstimateMemoryUsage; |
| 671 size_t memory_usage = 0; |
| 672 memory_usage += EstimateMemoryUsage(model_type_state_); |
| 673 memory_usage += EstimateMemoryUsage(entities_); |
| 674 memory_usage += EstimateMemoryUsage(storage_key_to_tag_hash_); |
| 675 return memory_usage; |
| 676 } |
| 677 |
667 } // namespace syncer | 678 } // namespace syncer |
OLD | NEW |