Messages in this thread | | | From | Namhyung Kim <> | Subject | [PATCH 0/3] perf tools: Fix scalability problem on callchain merging | Date | Tue, 10 Sep 2013 17:24:15 +0900 |
| |
Hello,
Linus reported that perf report was stuck in after "processing time ordered events". It turned out that merging/collapsing the callchain takes most of time to look up a matching callchain. Since it did a linear search for the lookup, it took more than 95% of time during the processing huge file that contains callchains.
This patchset tries to fix the problem by
1. converting children list to a rbtree 2. add UI progress window to inform user
With this patch, processing time of 400MB perf.data file went down from 380s to 20s.
Thanks, Namhyung
Namhyung Kim (3): perf callchain: Convert children list to rbtree perf ui/progress: Add new helper functions for progress bar perf tools: Show progress on histogram collapsing
tools/perf/builtin-annotate.c | 2 +- tools/perf/builtin-diff.c | 2 +- tools/perf/builtin-report.c | 10 ++- tools/perf/builtin-top.c | 4 +- tools/perf/tests/hists_link.c | 2 +- tools/perf/ui/progress.c | 18 +++++ tools/perf/ui/progress.h | 10 +++ tools/perf/util/callchain.c | 151 ++++++++++++++++++++++++++++++++---------- tools/perf/util/callchain.h | 5 +- tools/perf/util/hist.c | 5 +- tools/perf/util/hist.h | 3 +- tools/perf/util/session.c | 22 +++--- 12 files changed, 173 insertions(+), 61 deletions(-)
-- 1.7.11.7
| |