From f3cdbaf6117785f0f6359acafe8074963c62a72e Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 12 Jun 2013 17:36:56 -0700 Subject: [PATCH] Stop sorting after every profiler datum comes in. --- src/components/main/layout/block.rs | 9 ++++----- src/components/util/time.rs | 27 +++++++++++++++------------ 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/components/main/layout/block.rs b/src/components/main/layout/block.rs index e2903d2af00..f7f07b14df2 100644 --- a/src/components/main/layout/block.rs +++ b/src/components/main/layout/block.rs @@ -206,11 +206,10 @@ impl BlockFlowData { MaybeAuto::from_margin(style.margin_left(), remaining_width), MaybeAuto::from_margin(style.margin_right(), remaining_width)); - // FIXME(pcwalton): We discard the width here. Is that correct? - let (_, margin_left, margin_right) = self.compute_horiz(width, - margin_left, - margin_right, - available_width); + let (width, margin_left, margin_right) = self.compute_horiz(width, + margin_left, + margin_right, + available_width); model.margin.top = margin_top; model.margin.right = margin_right; diff --git a/src/components/util/time.rs b/src/components/util/time.rs index c986676ec72..4ea5828e892 100644 --- a/src/components/util/time.rs +++ b/src/components/util/time.rs @@ -151,7 +151,6 @@ impl ProfilerContext { match self.buckets[category as uint] { (_, ref mut data) => { data.push(t); - tim_sort(*data); } } @@ -171,17 +170,21 @@ impl ProfilerContext { println(fmt!("%31s %15s %15s %15s %15s %15s", "_category (ms)_", "_mean (ms)_", "_median (ms)_", "_min (ms)_", "_max (ms)_", "_bucket size_")); - for self.buckets.each |bucket| { - let &(category, data) = bucket; - let data_len = data.len(); - if data_len > 0 { - let (mean, median, min, max) = - (data.foldl(0f64, |a, b| a + *b) / (data_len as f64), - data[data_len / 2], - data.min(), - data.max()); - println(fmt!("%-30s: %15.4? %15.4? %15.4? %15.4? %15u", - category.format(), mean, median, min, max, data_len)); + for vec::each_mut(self.buckets) |bucket| { + match *bucket { + (category, ref mut data) => { + tim_sort(*data); + let data_len = data.len(); + if data_len > 0 { + let (mean, median, min, max) = + (data.foldl(0f64, |a, b| a + *b) / (data_len as f64), + data[data_len / 2], + data.min(), + data.max()); + println(fmt!("%-30s: %15.4? %15.4? %15.4? %15.4? %15u", + category.format(), mean, median, min, max, data_len)); + } + } } } println("");