Chromium Code Reviews| 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 |