| Index: base/tracked_objects.cc
|
| ===================================================================
|
| --- base/tracked_objects.cc (revision 113567)
|
| +++ base/tracked_objects.cc (working copy)
|
| @@ -43,7 +43,7 @@
|
| count_ = count;
|
| }
|
|
|
| -// TODO(jar): I need to see if this macro to optimize branching is worth it.
|
| +// TODO(jar): I need to see if this macro to optimize branching is worth using.
|
| //
|
| // This macro has no branching, so it is surely fast, and is equivalent to:
|
| // if (assign_it)
|
| @@ -56,28 +56,24 @@
|
| void DeathData::RecordDeath(const DurationInt queue_duration,
|
| const DurationInt run_duration,
|
| int32 random_number) {
|
| + ++count_;
|
| queue_duration_sum_ += queue_duration;
|
| run_duration_sum_ += run_duration;
|
| - ++count_;
|
|
|
| + if (queue_duration_max_ < queue_duration)
|
| + queue_duration_max_ = queue_duration;
|
| + if (run_duration_max_ < run_duration)
|
| + run_duration_max_ = run_duration;
|
| +
|
| // Take a uniformly distributed sample over all durations ever supplied.
|
| // The probability that we (instead) use this new sample is 1/count_. This
|
| // results in a completely uniform selection of the sample.
|
| // We ignore the fact that we correlated our selection of a sample of run
|
| // and queue times.
|
| - bool take_sample = 0 == (random_number % count_);
|
| - CONDITIONAL_ASSIGN(take_sample, queue_duration_sample_, queue_duration);
|
| - CONDITIONAL_ASSIGN(take_sample, run_duration_sample_, run_duration);
|
| -
|
| - CONDITIONAL_ASSIGN(queue_duration_max_ < queue_duration, queue_duration_max_,
|
| - queue_duration);
|
| - CONDITIONAL_ASSIGN(run_duration_max_ < run_duration, run_duration_max_,
|
| - run_duration);
|
| - // Ensure we got the macros right.
|
| - DCHECK_GE(queue_duration_max_, queue_duration);
|
| - DCHECK_GE(run_duration_max_, run_duration);
|
| - DCHECK(!take_sample || run_duration_sample_ == run_duration);
|
| - DCHECK(!take_sample || queue_duration_sample_ == queue_duration);
|
| + if (0 == (random_number % count_)) {
|
| + queue_duration_sample_ = queue_duration;
|
| + run_duration_sample_ = run_duration;
|
| + }
|
| }
|
|
|
| int DeathData::count() const { return count_; }
|
|
|