Index: base/tracked_objects.cc |
diff --git a/base/tracked_objects.cc b/base/tracked_objects.cc |
index 574745813ad20cffb09699ff1774ec24b3676e5a..9029f4febda79c9206494fc19219994e4d455a15 100644 |
--- a/base/tracked_objects.cc |
+++ b/base/tracked_objects.cc |
@@ -28,19 +28,13 @@ class TimeDelta; |
namespace tracked_objects { |
namespace { |
-// TODO(jar): Evaluate the perf impact of enabling this. If the perf impact is |
-// negligible, enable by default. |
-// Flag to compile out parent-child link recording. |
-const bool kTrackParentChildLinks = false; |
- |
// When ThreadData is first initialized, should we start in an ACTIVE state to |
// record all of the startup-time tasks, or should we start up DEACTIVATED, so |
// that we only record after parsing the command line flag --enable-tracking. |
// Note that the flag may force either state, so this really controls only the |
// period of time up until that flag is parsed. If there is no flag seen, then |
// this state may prevail for much or all of the process lifetime. |
-const ThreadData::Status kInitialStartupState = |
- ThreadData::PROFILING_CHILDREN_ACTIVE; |
+const ThreadData::Status kInitialStartupState = ThreadData::PROFILING_ACTIVE; |
// Control whether an alternate time source (Now() function) is supported by |
// the ThreadData class. This compile time flag should be set to true if we |
@@ -528,18 +522,6 @@ Births* ThreadData::TallyABirth(const Location& location) { |
birth_map_[location] = child; |
} |
- if (kTrackParentChildLinks && status_ > PROFILING_ACTIVE && |
- !parent_stack_.empty()) { |
- const Births* parent = parent_stack_.top(); |
- ParentChildPair pair(parent, child); |
- if (parent_child_set_.find(pair) == parent_child_set_.end()) { |
- // Lock since the map may get relocated now, and other threads sometimes |
- // snapshot it (but they lock before copying it). |
- base::AutoLock lock(map_lock_); |
- parent_child_set_.insert(pair); |
- } |
- } |
- |
return child; |
} |
@@ -573,13 +555,6 @@ void ThreadData::TallyADeath(const Births& births, |
death_data = &death_map_[&births]; |
} // Release lock ASAP. |
death_data->RecordDeath(queue_duration, run_duration, random_number_); |
- |
- if (!kTrackParentChildLinks) |
- return; |
- if (!parent_stack_.empty()) { // We might get turned off. |
- DCHECK_EQ(parent_stack_.top(), &births); |
- parent_stack_.pop(); |
- } |
} |
// static |
@@ -678,8 +653,7 @@ void ThreadData::SnapshotExecutedTasks( |
// and processing. |
BirthMap birth_map; |
DeathsSnapshot deaths; |
- ParentChildSet parent_child_set; |
- SnapshotMaps(current_profiling_phase, &birth_map, &deaths, &parent_child_set); |
+ SnapshotMaps(current_profiling_phase, &birth_map, &deaths); |
for (const auto& birth : birth_map) { |
(*birth_counts)[birth.second] += birth.second->birth_count(); |
@@ -710,8 +684,7 @@ void ThreadData::SnapshotExecutedTasks( |
// This may be called from another thread. |
void ThreadData::SnapshotMaps(int profiling_phase, |
BirthMap* birth_map, |
- DeathsSnapshot* deaths, |
- ParentChildSet* parent_child_set) { |
+ DeathsSnapshot* deaths) { |
base::AutoLock lock(map_lock_); |
for (const auto& birth : birth_map_) |
@@ -729,12 +702,6 @@ void ThreadData::SnapshotMaps(int profiling_phase, |
death.second.queue_duration_sample(), |
death.second.last_phase_snapshot()))); |
} |
- |
- if (!kTrackParentChildLinks) |
- return; |
- |
- for (const auto& parent_child : parent_child_set_) |
- parent_child_set->insert(parent_child); |
} |
void ThreadData::OnProfilingPhaseCompletedOnThread(int profiling_phase) { |
@@ -791,9 +758,6 @@ bool ThreadData::Initialize() { |
// ensures that if we have a racy initialization, that we'll bail as soon as |
// we get the lock earlier in this method. |
status_ = kInitialStartupState; |
- if (!kTrackParentChildLinks && |
- kInitialStartupState == PROFILING_CHILDREN_ACTIVE) |
- status_ = PROFILING_ACTIVE; |
DCHECK(status_ != UNINITIALIZED); |
return true; |
} |
@@ -801,12 +765,12 @@ bool ThreadData::Initialize() { |
// static |
bool ThreadData::InitializeAndSetTrackingStatus(Status status) { |
DCHECK_GE(status, DEACTIVATED); |
- DCHECK_LE(status, PROFILING_CHILDREN_ACTIVE); |
+ DCHECK_LE(status, PROFILING_ACTIVE); |
if (!Initialize()) // No-op if already initialized. |
return false; // Not compiled in. |
- if (!kTrackParentChildLinks && status > DEACTIVATED) |
+ if (status > DEACTIVATED) |
status = PROFILING_ACTIVE; |
status_ = status; |
return true; |
@@ -823,20 +787,6 @@ bool ThreadData::TrackingStatus() { |
} |
// static |
-bool ThreadData::TrackingParentChildStatus() { |
- return status_ >= PROFILING_CHILDREN_ACTIVE; |
-} |
- |
-// static |
-void ThreadData::PrepareForStartOfRun(const Births* parent) { |
- if (kTrackParentChildLinks && parent && status_ > PROFILING_ACTIVE) { |
- ThreadData* current_thread_data = Get(); |
- if (current_thread_data) |
- current_thread_data->parent_stack_.push(parent); |
- } |
-} |
- |
-// static |
void ThreadData::SetAlternateTimeSource(NowFunction* now_function) { |
DCHECK(now_function); |
if (kAllowAlternateTimeSourceHandling) |
@@ -1063,21 +1013,6 @@ TaskSnapshot::~TaskSnapshot() { |
} |
//------------------------------------------------------------------------------ |
-// ParentChildPairSnapshot |
- |
-ParentChildPairSnapshot::ParentChildPairSnapshot() { |
-} |
- |
-ParentChildPairSnapshot::ParentChildPairSnapshot( |
- const ThreadData::ParentChildPair& parent_child) |
- : parent(*parent_child.first), |
- child(*parent_child.second) { |
-} |
- |
-ParentChildPairSnapshot::~ParentChildPairSnapshot() { |
-} |
- |
-//------------------------------------------------------------------------------ |
// ProcessDataPhaseSnapshot |
ProcessDataPhaseSnapshot::ProcessDataPhaseSnapshot() { |