From f476db11aeb4f3bc984d6c00fec95f85547e0ac7 Mon Sep 17 00:00:00 2001 From: Ilya Shakhat Date: Mon, 28 Jul 2014 13:19:10 +0400 Subject: [PATCH] Optimize timeline performance for person-day effort metric Change-Id: I796d4966d0bd7095d9ff9bf262beb08b7276580d --- stackalytics/dashboard/web.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/stackalytics/dashboard/web.py b/stackalytics/dashboard/web.py index 135774d34..fa09b10e1 100644 --- a/stackalytics/dashboard/web.py +++ b/stackalytics/dashboard/web.py @@ -557,15 +557,12 @@ def timeline(records, **kwargs): release_stat = collections.defaultdict(set) all_stat = collections.defaultdict(set) for record in records: - if ((record.record_type in ['commit', 'member']) or - (record.week not in weeks)): - continue - - day = utils.timestamp_to_day(record.date) - user = vault.get_user_from_runtime_storage(record.user_id) - if record.release == release_name: - release_stat[day] |= set([user['seq']]) - all_stat[day] |= set([user['seq']]) + if start_week <= record.week < end_week: + day = utils.timestamp_to_day(record.date) + user_id = record.user_id + if record.release == release_name: + release_stat[day].add(user_id) + all_stat[day].add(user_id) for day, users in six.iteritems(release_stat): week = utils.timestamp_to_week(day * 24 * 3600) week_stat_commits_hl[week] += len(users) @@ -575,7 +572,7 @@ def timeline(records, **kwargs): else: for record in records: week = record.week - if week in weeks: + if start_week <= week < end_week: week_stat_loc[week] += handler(record) week_stat_commits[week] += 1 if 'members' in metric: