OLD | NEW |
---|---|
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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/trace_event/trace_config.h" | 5 #include "base/trace_event/trace_config.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
43 const char kSyntheticDelaysParam[] = "synthetic_delays"; | 43 const char kSyntheticDelaysParam[] = "synthetic_delays"; |
44 | 44 |
45 const char kSyntheticDelayCategoryFilterPrefix[] = "DELAY("; | 45 const char kSyntheticDelayCategoryFilterPrefix[] = "DELAY("; |
46 | 46 |
47 // String parameters that is used to parse memory dump config in trace config | 47 // String parameters that is used to parse memory dump config in trace config |
48 // string. | 48 // string. |
49 const char kMemoryDumpConfigParam[] = "memory_dump_config"; | 49 const char kMemoryDumpConfigParam[] = "memory_dump_config"; |
50 const char kTriggersParam[] = "triggers"; | 50 const char kTriggersParam[] = "triggers"; |
51 const char kPeriodicIntervalParam[] = "periodic_interval_ms"; | 51 const char kPeriodicIntervalParam[] = "periodic_interval_ms"; |
52 const char kModeParam[] = "mode"; | 52 const char kModeParam[] = "mode"; |
53 const char kMinAllocationSize[] = "min_allocation_size_bytes"; | |
53 | 54 |
54 // Default configuration of memory dumps. | 55 // Default configuration of memory dumps. |
55 const TraceConfig::MemoryDumpTriggerConfig kDefaultHeavyMemoryDumpTrigger = { | 56 const TraceConfig::MemoryDumpTriggerConfig kDefaultHeavyMemoryDumpTrigger = { |
56 2000, // periodic_interval_ms | 57 2000, // periodic_interval_ms |
57 MemoryDumpLevelOfDetail::DETAILED}; | 58 MemoryDumpLevelOfDetail::DETAILED}; |
58 const TraceConfig::MemoryDumpTriggerConfig kDefaultLightMemoryDumpTrigger = { | 59 const TraceConfig::MemoryDumpTriggerConfig kDefaultLightMemoryDumpTrigger = { |
59 250, // periodic_interval_ms | 60 250, // periodic_interval_ms |
60 MemoryDumpLevelOfDetail::LIGHT}; | 61 MemoryDumpLevelOfDetail::LIGHT}; |
61 | 62 |
62 class ConvertableTraceConfigToTraceFormat | 63 class ConvertableTraceConfigToTraceFormat |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
116 else | 117 else |
117 InitializeDefault(); | 118 InitializeDefault(); |
118 } | 119 } |
119 | 120 |
120 TraceConfig::TraceConfig(const TraceConfig& tc) | 121 TraceConfig::TraceConfig(const TraceConfig& tc) |
121 : record_mode_(tc.record_mode_), | 122 : record_mode_(tc.record_mode_), |
122 enable_sampling_(tc.enable_sampling_), | 123 enable_sampling_(tc.enable_sampling_), |
123 enable_systrace_(tc.enable_systrace_), | 124 enable_systrace_(tc.enable_systrace_), |
124 enable_argument_filter_(tc.enable_argument_filter_), | 125 enable_argument_filter_(tc.enable_argument_filter_), |
125 memory_dump_config_(tc.memory_dump_config_), | 126 memory_dump_config_(tc.memory_dump_config_), |
127 min_allocation_size_bytes_(tc.min_allocation_size_bytes_), | |
126 included_categories_(tc.included_categories_), | 128 included_categories_(tc.included_categories_), |
127 disabled_categories_(tc.disabled_categories_), | 129 disabled_categories_(tc.disabled_categories_), |
128 excluded_categories_(tc.excluded_categories_), | 130 excluded_categories_(tc.excluded_categories_), |
129 synthetic_delays_(tc.synthetic_delays_) {} | 131 synthetic_delays_(tc.synthetic_delays_) {} |
130 | 132 |
131 TraceConfig::~TraceConfig() { | 133 TraceConfig::~TraceConfig() { |
132 } | 134 } |
133 | 135 |
134 TraceConfig& TraceConfig::operator=(const TraceConfig& rhs) { | 136 TraceConfig& TraceConfig::operator=(const TraceConfig& rhs) { |
135 if (this == &rhs) | 137 if (this == &rhs) |
136 return *this; | 138 return *this; |
137 | 139 |
138 record_mode_ = rhs.record_mode_; | 140 record_mode_ = rhs.record_mode_; |
139 enable_sampling_ = rhs.enable_sampling_; | 141 enable_sampling_ = rhs.enable_sampling_; |
140 enable_systrace_ = rhs.enable_systrace_; | 142 enable_systrace_ = rhs.enable_systrace_; |
141 enable_argument_filter_ = rhs.enable_argument_filter_; | 143 enable_argument_filter_ = rhs.enable_argument_filter_; |
142 memory_dump_config_ = rhs.memory_dump_config_; | 144 memory_dump_config_ = rhs.memory_dump_config_; |
145 min_allocation_size_bytes_ = rhs.min_allocation_size_bytes_; | |
143 included_categories_ = rhs.included_categories_; | 146 included_categories_ = rhs.included_categories_; |
144 disabled_categories_ = rhs.disabled_categories_; | 147 disabled_categories_ = rhs.disabled_categories_; |
145 excluded_categories_ = rhs.excluded_categories_; | 148 excluded_categories_ = rhs.excluded_categories_; |
146 synthetic_delays_ = rhs.synthetic_delays_; | 149 synthetic_delays_ = rhs.synthetic_delays_; |
147 return *this; | 150 return *this; |
148 } | 151 } |
149 | 152 |
150 const TraceConfig::StringList& TraceConfig::GetSyntheticDelayValues() const { | 153 const TraceConfig::StringList& TraceConfig::GetSyntheticDelayValues() const { |
151 return synthetic_delays_; | 154 return synthetic_delays_; |
152 } | 155 } |
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
509 continue; | 512 continue; |
510 } | 513 } |
511 DCHECK_GT(interval, 0); | 514 DCHECK_GT(interval, 0); |
512 dump_config.periodic_interval_ms = static_cast<uint32_t>(interval); | 515 dump_config.periodic_interval_ms = static_cast<uint32_t>(interval); |
513 std::string level_of_detail_str; | 516 std::string level_of_detail_str; |
514 trigger->GetString(kModeParam, &level_of_detail_str); | 517 trigger->GetString(kModeParam, &level_of_detail_str); |
515 dump_config.level_of_detail = | 518 dump_config.level_of_detail = |
516 StringToMemoryDumpLevelOfDetail(level_of_detail_str); | 519 StringToMemoryDumpLevelOfDetail(level_of_detail_str); |
517 memory_dump_config_.push_back(dump_config); | 520 memory_dump_config_.push_back(dump_config); |
518 } | 521 } |
522 | |
523 int min_size_bytes = 0; | |
524 if (!memory_dump_config.GetInteger(kMinAllocationSize, &min_size_bytes)) { | |
caseq
2016/04/20 22:45:23
Please also update MemoryDumpConfig in devtools' p
| |
525 min_allocation_size_bytes_ = kDefaultMinAllocationSizeBytes; | |
526 } else { | |
527 if (min_size_bytes >= 0) | |
caseq
2016/04/20 22:45:23
merge into the condition above?
| |
528 min_allocation_size_bytes_ = static_cast<size_t>(min_size_bytes); | |
529 else | |
530 min_allocation_size_bytes_ = kDefaultMinAllocationSizeBytes; | |
531 } | |
532 | |
519 } | 533 } |
520 | 534 |
521 void TraceConfig::SetDefaultMemoryDumpConfig() { | 535 void TraceConfig::SetDefaultMemoryDumpConfig() { |
522 memory_dump_config_.clear(); | 536 memory_dump_config_.clear(); |
523 memory_dump_config_.push_back(kDefaultHeavyMemoryDumpTrigger); | 537 memory_dump_config_.push_back(kDefaultHeavyMemoryDumpTrigger); |
524 memory_dump_config_.push_back(kDefaultLightMemoryDumpTrigger); | 538 memory_dump_config_.push_back(kDefaultLightMemoryDumpTrigger); |
539 min_allocation_size_bytes_ = kDefaultMinAllocationSizeBytes; | |
525 } | 540 } |
526 | 541 |
527 void TraceConfig::ToDict(base::DictionaryValue& dict) const { | 542 void TraceConfig::ToDict(base::DictionaryValue& dict) const { |
528 switch (record_mode_) { | 543 switch (record_mode_) { |
529 case RECORD_UNTIL_FULL: | 544 case RECORD_UNTIL_FULL: |
530 dict.SetString(kRecordModeParam, kRecordUntilFull); | 545 dict.SetString(kRecordModeParam, kRecordUntilFull); |
531 break; | 546 break; |
532 case RECORD_CONTINUOUSLY: | 547 case RECORD_CONTINUOUSLY: |
533 dict.SetString(kRecordModeParam, kRecordContinuously); | 548 dict.SetString(kRecordModeParam, kRecordContinuously); |
534 break; | 549 break; |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
672 str.at(0) == ' ' || | 687 str.at(0) == ' ' || |
673 str.at(str.length() - 1) == ' '; | 688 str.at(str.length() - 1) == ' '; |
674 } | 689 } |
675 | 690 |
676 bool TraceConfig::HasIncludedPatterns() const { | 691 bool TraceConfig::HasIncludedPatterns() const { |
677 return !included_categories_.empty(); | 692 return !included_categories_.empty(); |
678 } | 693 } |
679 | 694 |
680 } // namespace trace_event | 695 } // namespace trace_event |
681 } // namespace base | 696 } // namespace base |
OLD | NEW |