OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/metrics/sparse_histogram.h" | 5 #include "base/metrics/sparse_histogram.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/metrics/histogram_base.h" | 10 #include "base/metrics/histogram_base.h" |
(...skipping 29 matching lines...) Expand all Loading... |
40 void TearDown() override { | 40 void TearDown() override { |
41 if (allocator_) { | 41 if (allocator_) { |
42 ASSERT_FALSE(allocator_->IsFull()); | 42 ASSERT_FALSE(allocator_->IsFull()); |
43 ASSERT_FALSE(allocator_->IsCorrupt()); | 43 ASSERT_FALSE(allocator_->IsCorrupt()); |
44 } | 44 } |
45 UninitializeStatisticsRecorder(); | 45 UninitializeStatisticsRecorder(); |
46 DestroyPersistentMemoryAllocator(); | 46 DestroyPersistentMemoryAllocator(); |
47 } | 47 } |
48 | 48 |
49 void InitializeStatisticsRecorder() { | 49 void InitializeStatisticsRecorder() { |
50 StatisticsRecorder::ResetForTesting(); | 50 DCHECK(!statistics_recorder_); |
51 statistics_recorder_ = new StatisticsRecorder(); | 51 statistics_recorder_.reset(new StatisticsRecorder()); |
52 } | 52 } |
53 | 53 |
54 void UninitializeStatisticsRecorder() { | 54 void UninitializeStatisticsRecorder() { |
55 delete statistics_recorder_; | 55 statistics_recorder_.reset(); |
56 statistics_recorder_ = NULL; | |
57 } | 56 } |
58 | 57 |
59 void CreatePersistentMemoryAllocator() { | 58 void CreatePersistentMemoryAllocator() { |
60 // By getting the results-histogram before any persistent allocator | 59 // By getting the results-histogram before any persistent allocator |
61 // is attached, that histogram is guaranteed not to be stored in | 60 // is attached, that histogram is guaranteed not to be stored in |
62 // any persistent memory segment (which simplifies some tests). | 61 // any persistent memory segment (which simplifies some tests). |
63 GlobalHistogramAllocator::GetCreateHistogramResultHistogram(); | 62 GlobalHistogramAllocator::GetCreateHistogramResultHistogram(); |
64 | 63 |
65 GlobalHistogramAllocator::CreateWithLocalMemory( | 64 GlobalHistogramAllocator::CreateWithLocalMemory( |
66 kAllocatorMemorySize, 0, "SparseHistogramAllocatorTest"); | 65 kAllocatorMemorySize, 0, "SparseHistogramAllocatorTest"); |
67 allocator_ = GlobalHistogramAllocator::Get()->memory_allocator(); | 66 allocator_ = GlobalHistogramAllocator::Get()->memory_allocator(); |
68 } | 67 } |
69 | 68 |
70 void DestroyPersistentMemoryAllocator() { | 69 void DestroyPersistentMemoryAllocator() { |
71 allocator_ = nullptr; | 70 allocator_ = nullptr; |
72 GlobalHistogramAllocator::ReleaseForTesting(); | 71 GlobalHistogramAllocator::ReleaseForTesting(); |
73 } | 72 } |
74 | 73 |
75 std::unique_ptr<SparseHistogram> NewSparseHistogram(const std::string& name) { | 74 std::unique_ptr<SparseHistogram> NewSparseHistogram(const std::string& name) { |
76 return std::unique_ptr<SparseHistogram>(new SparseHistogram(name)); | 75 return std::unique_ptr<SparseHistogram>(new SparseHistogram(name)); |
77 } | 76 } |
78 | 77 |
79 const bool use_persistent_histogram_allocator_; | 78 const bool use_persistent_histogram_allocator_; |
80 | 79 |
81 StatisticsRecorder* statistics_recorder_; | 80 std::unique_ptr<StatisticsRecorder> statistics_recorder_; |
82 PersistentMemoryAllocator* allocator_ = nullptr; | 81 PersistentMemoryAllocator* allocator_ = nullptr; |
83 | 82 |
84 private: | 83 private: |
85 DISALLOW_COPY_AND_ASSIGN(SparseHistogramTest); | 84 DISALLOW_COPY_AND_ASSIGN(SparseHistogramTest); |
86 }; | 85 }; |
87 | 86 |
88 // Run all HistogramTest cases with both heap and persistent memory. | 87 // Run all HistogramTest cases with both heap and persistent memory. |
89 INSTANTIATE_TEST_CASE_P(HeapAndPersistent, | 88 INSTANTIATE_TEST_CASE_P(HeapAndPersistent, |
90 SparseHistogramTest, | 89 SparseHistogramTest, |
91 testing::Bool()); | 90 testing::Bool()); |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 TimeDelta add_ticks = TimeTicks::Now() - add_start; | 271 TimeDelta add_ticks = TimeTicks::Now() - add_start; |
273 int64_t add_ms = add_ticks.InMilliseconds(); | 272 int64_t add_ms = add_ticks.InMilliseconds(); |
274 | 273 |
275 VLOG(1) << kTestAddCount << " histogram adds took " << add_ms | 274 VLOG(1) << kTestAddCount << " histogram adds took " << add_ms |
276 << "ms or about " | 275 << "ms or about " |
277 << (add_ms * 1000000) / kTestAddCount | 276 << (add_ms * 1000000) / kTestAddCount |
278 << "ns each."; | 277 << "ns each."; |
279 } | 278 } |
280 | 279 |
281 } // namespace base | 280 } // namespace base |
OLD | NEW |