Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(401)

Unified Diff: tools/telemetry/telemetry/value/summary.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/value/summary.py
diff --git a/tools/telemetry/telemetry/value/summary.py b/tools/telemetry/telemetry/value/summary.py
deleted file mode 100644
index 5dde5c9b9a2a7bb0ca5bc47df825563b59a7aeeb..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/value/summary.py
+++ /dev/null
@@ -1,150 +0,0 @@
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-from collections import defaultdict
-
-from telemetry.value import failure
-from telemetry.value import merge_values
-from telemetry.value import skip
-
-
-class Summary(object):
- """Computes summary values from the per-page-run values produced by a test.
-
- Some telemetry benchmark repeat a number of times in order to get a reliable
- measurement. The test does not have to handle merging of these runs:
- summarizer does it for you.
-
- For instance, if two pages run, 3 and 1 time respectively:
- ScalarValue(page1, 'foo', units='ms', 1)
- ScalarValue(page1, 'foo', units='ms', 1)
- ScalarValue(page1, 'foo', units='ms', 1)
- ScalarValue(page2, 'foo', units='ms', 2)
-
- Then summarizer will produce two sets of values. First,
- computed_per_page_values:
- [
- ListOfScalarValues(page1, 'foo', units='ms', [1,1,1])],
- ListOfScalarValues(page2, 'foo', units='ms', [2])]
- ]
-
- In addition, it will produce a summary value:
- [
- ListOfScalarValues(page=None, 'foo', units='ms', [1,1,1,2])]
- ]
-
- """
- def __init__(self, all_page_specific_values,
- key_func=merge_values.DefaultKeyFunc):
- had_failures = any(isinstance(v, failure.FailureValue) for v in
- all_page_specific_values)
- self.had_failures = had_failures
- self._computed_per_page_values = []
- self._computed_summary_values = []
- self._interleaved_computed_per_page_values_and_summaries = []
- self._key_func = key_func
- self._ComputePerPageValues(all_page_specific_values)
-
- @property
- def computed_per_page_values(self):
- return self._computed_per_page_values
-
- @property
- def computed_summary_values(self):
- return self._computed_summary_values
-
- @property
- def interleaved_computed_per_page_values_and_summaries(self):
- """Returns the computed per page values and summary values interleaved.
-
- All the results for a given name are printed together. First per page
- values, then summary values.
-
- """
- return self._interleaved_computed_per_page_values_and_summaries
-
- def _ComputePerPageValues(self, all_page_specific_values):
- all_successful_page_values = [
- v for v in all_page_specific_values if not (isinstance(
- v, failure.FailureValue) or isinstance(v, skip.SkipValue))]
-
- # We will later need to determine how many values were originally created
- # for each value name, to apply a workaround meant to clean up the printf
- # output.
- num_successful_pages_for_key = defaultdict(int)
- for v in all_successful_page_values:
- num_successful_pages_for_key[self._key_func(v)] += 1
-
- # By here, due to page repeat options, all_values_from_successful_pages
- # contains values of the same name not only from mulitple pages, but also
- # from the same name. So even if, for instance, only one page ran, it may
- # have run twice, producing two 'x' values.
- #
- # So, get rid of the repeated pages by merging.
- merged_page_values = merge_values.MergeLikeValuesFromSamePage(
- all_successful_page_values, self._key_func)
-
- # Now we have a bunch of values, but there is only one value_name per page.
- # Suppose page1 and page2 ran, producing values x and y. We want to print
- # x for page1
- # x for page2
- # x for page1, page2 combined
- #
- # y for page1
- # y for page2
- # y for page1, page2 combined
- #
- # We already have the x values in the values array. But, we will need
- # them indexable by summary key.
- #
- # The following dict maps summary_key -> list of pages that have values of
- # that name.
- per_page_values_by_key = defaultdict(list)
- for value in merged_page_values:
- per_page_values_by_key[self._key_func(value)].append(value)
-
- # We already have the x values in the values array. But, we also need
- # the values merged across the pages. And, we will need them indexed by
- # summary key so that we can find them when printing out value names in
- # alphabetical order.
- merged_pages_value_by_key = {}
- if not self.had_failures:
- for value in merge_values.MergeLikeValuesFromDifferentPages(
- all_successful_page_values, self._key_func):
- value_key = self._key_func(value)
- assert value_key not in merged_pages_value_by_key
- merged_pages_value_by_key[value_key] = value
-
- keys = sorted(set([self._key_func(v) for v in merged_page_values]))
-
- # Time to walk through the values by key, printing first the page-specific
- # values and then the merged_site value.
- for key in keys:
- per_page_values = per_page_values_by_key.get(key, [])
-
- # Sort the values by their URL.
- sorted_per_page_values = list(per_page_values)
- sorted_per_page_values.sort(
- key=lambda per_page_values: per_page_values.page.display_name)
-
- # Output the page-specific results.
- num_successful_pages_for_this_key = (
- num_successful_pages_for_key[key])
- for per_page_value in sorted_per_page_values:
- self._ComputePerPageValue(per_page_value,
- num_successful_pages_for_this_key)
-
- # Output the combined values.
- merged_pages_value = merged_pages_value_by_key.get(key, None)
- if merged_pages_value:
- self._computed_summary_values.append(merged_pages_value)
- self._interleaved_computed_per_page_values_and_summaries.append(
- merged_pages_value)
-
- def _ComputePerPageValue(
- self, value, num_successful_pages_for_this_value_name):
- if num_successful_pages_for_this_value_name >= 1:
- # Save the result.
- self._computed_per_page_values.append(value)
- self._interleaved_computed_per_page_values_and_summaries.append(value)
« no previous file with comments | « tools/telemetry/telemetry/value/summarizable_unittest.py ('k') | tools/telemetry/telemetry/value/summary_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698