aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvelina Dumitrescu <evelinad@google.com>2016-09-15 16:00:04 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-02-01 18:13:43 -0800
commitdaddec971693271ea429fce9026adc33dc71bcb6 (patch)
tree7c972f171a15e8c2f52ff73e2c3227f744f2a609
parent9c4762d55252fe48671766435e01d5f21bf4719f (diff)
downloadtoolchain-utils-daddec971693271ea429fce9026adc33dc71bcb6.tar.gz
user_activity: Added scripts for collecting the experiment data sets.
BUG=None TEST=None Change-Id: I7b00ce4359cb378e45bb673e023c12137d03e9b8 Reviewed-on: https://chrome-internal-review.googlesource.com/287959 Tested-by: Evelina Dumitrescu <evelinad@google.com> Reviewed-by: George Burgess <gbiv@google.com> Reviewed-by: Ting-Yuan Huang <laszio@google.com> Reviewed-by: Evelina Dumitrescu <evelinad@google.com> Reviewed-on: https://chromium-review.googlesource.com/435909 Commit-Ready: Luis Lozano <llozano@chromium.org> Tested-by: Luis Lozano <llozano@chromium.org> Reviewed-by: Luis Lozano <llozano@chromium.org>
-rwxr-xr-xuser_activity_benchmarks/collect_experiment_data.sh88
-rwxr-xr-xuser_activity_benchmarks/collect_experiment_data_odd_even_session.sh92
2 files changed, 180 insertions, 0 deletions
diff --git a/user_activity_benchmarks/collect_experiment_data.sh b/user_activity_benchmarks/collect_experiment_data.sh
new file mode 100755
index 00000000..8ba0852b
--- /dev/null
+++ b/user_activity_benchmarks/collect_experiment_data.sh
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# Uses Dremel queries to collect the inclusive and pairwise inclusive
+# statistics.
+
+set -e
+
+if [ "$#" -ne 6 ]; then
+ echo "USAGE: collect_validation_data.sh cwp_table board board_arch " \
+ "Chrome_OS_release inclusive_output_file pairwise_inclusive_output_file"
+ exit 1
+fi
+
+readonly TABLE=$1
+readonly INCLUSIVE_OUTPUT_FILE=$5
+readonly PAIRWISE_INCLUSIVE_OUTPUT_FILE=$6
+readonly PERIODIC_COLLECTION=1
+readonly WHERE_CLAUSE_SPECIFICATIONS="meta.cros.board = '$2' AND " \
+ "meta.cros.cpu_architecture = '$3' AND meta.cros.chrome_version LIKE " \
+ "'%$4%' AND meta.cros.collection_info.trigger_event = $PERIODIC_COLLECTION"
+
+# Collects the function, with its file, the object and inclusive count
+# fraction out of the total amount of inclusive count values.
+echo "set sql_dialect GoogleSQL;
+
+SELECT
+ replace(frame.function_name, \", \", \"; \") AS function,
+ frame.filename AS file,
+ frame.load_module_path AS dso,
+ SUM(frame.inclusive_count)/ANY_VALUE(total.value) AS inclusive_count_fraction
+FROM
+ $TABLE table,
+ table.frame frame
+CROSS JOIN (
+ SELECT
+ SUM(count) AS value
+ FROM
+ $TABLE
+ WHERE
+ $WHERE_CLAUSE_SPECIFICATIONS
+) AS total
+WHERE
+ $WHERE_CLAUSE_SPECIFICATIONS
+GROUP BY
+ function,
+ file,
+ dso
+HAVING
+ inclusive_count_fraction > 0.0
+ORDER BY
+ inclusive_count_fraction DESC;
+" | dremel --output=csv > "$INCLUSIVE_OUTPUT_FILE"
+
+# Collects the pair of parent and child functions, with the file and object
+# where the child function is declared and the inclusive count fraction of the
+# pair out of the total amount of inclusive count values.
+echo "set sql_dialect GoogleSQL;
+
+SELECT
+ CONCAT(replace(frame.parent_function_name, \", \", \"; \"), \";;\",
+ replace(frame.function_name, \", \", \"; \")) AS parent_child_functions,
+ frame.filename AS child_function_file,
+ frame.load_module_path AS child_function_dso,
+ SUM(frame.inclusive_count)/ANY_VALUE(total.value) AS inclusive_count_fraction
+FROM
+ $TABLE table,
+ table.frame frame
+CROSS JOIN (
+ SELECT
+ SUM(count) AS value
+ FROM $TABLE
+ WHERE
+ $WHERE_CLAUSE_SPECIFICATIONS
+) AS total
+WHERE
+ $WHERE_CLAUSE_SPECIFICATIONS
+GROUP BY
+ parent_child_functions,
+ child_function_file,
+ child_function_dso
+HAVING
+ inclusive_count_fraction > 0.0
+ORDER BY
+ inclusive_count_fraction DESC;
+" | dremel --output=csv > "$PAIRWISE_INCLUSIVE_OUTPUT_FILE"
diff --git a/user_activity_benchmarks/collect_experiment_data_odd_even_session.sh b/user_activity_benchmarks/collect_experiment_data_odd_even_session.sh
new file mode 100755
index 00000000..9019f0d9
--- /dev/null
+++ b/user_activity_benchmarks/collect_experiment_data_odd_even_session.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# Uses Dremel queries to collect the inclusive and pairwise inclusive statistics
+# for odd/even profile collection session ids.
+# The data is collected for an odd or even collection session id.
+
+set -e
+
+if [ $# -lt 7 ]; then
+ echo "Usage: collect_validation_data.sh cwp_table board board_arch " \
+ "Chrome_OS_release odd_even inclusive_output_file " \
+ "pairwise_inclusive_output_file"
+ exit 1
+fi
+
+readonly TABLE=$1
+readonly INCLUSIVE_OUTPUT_FILE=$6
+readonly PAIRWISE_INCLUSIVE_OUTPUT_FILE=$7
+readonly PERIODIC_COLLECTION=1
+readonly WHERE_CLAUSE_SPECIFICATIONS="meta.cros.board = '$2' AND " \
+ "meta.cros.cpu_architecture = '$3' AND " \
+ "meta.cros.chrome_version LIKE '%$4%' AND "\
+ "meta.cros.collection_info.trigger_event = $PERIODIC_COLLECTION AND " \
+ "MOD(session.id, 2) = $5"
+
+# Collects the function, with its file, the object and inclusive count
+# fraction out of the total amount of inclusive count values.
+echo "set sql_dialect GoogleSQL;
+
+SELECT
+ replace(frame.function_name, \", \", \"; \") AS function,
+ frame.filename AS file,
+ frame.load_module_path AS dso,
+ SUM(frame.inclusive_count)/ANY_VALUE(total.value) AS inclusive_count_fraction
+FROM
+ $TABLE table,
+ table.frame frame
+CROSS JOIN (
+ SELECT
+ SUM(count) AS value
+ FROM $TABLE
+ WHERE
+ $WHERE_CLAUSE_SPECIFICATIONS
+) AS total
+WHERE
+ $WHERE_CLAUSE_SPECIFICATIONS
+GROUP BY
+ function,
+ file,
+ dso
+HAVING
+ inclusive_count_fraction > 0.0
+ORDER BY
+ inclusive_count_fraction DESC;
+" | dremel --output=csv > "$INCLUSIVE_OUTPUT_FILE"
+
+# Collects the pair of parent and child functions, with the file and object
+# where the child function is declared and the inclusive count fraction of the
+# pair out of the total amount of inclusive count values.
+echo "set sql_dialect GoogleSQL;
+
+SELECT
+ CONCAT(replace(frame.parent_function_name, \", \", \"; \"), \";;\",
+ replace(frame.function_name, \", \", \"; \")) AS parent_child_functions,
+ frame.filename AS child_function_file,
+ frame.load_module_path AS child_function_dso,
+ SUM(frame.inclusive_count)/ANY_VALUE(total.value) AS inclusive_count_fraction
+FROM
+ $TABLE table,
+ table.frame frame
+CROSS JOIN (
+ SELECT
+ SUM(count) AS value
+ FROM
+ $TABLE
+ WHERE
+ $WHERE_CLAUSE_SPECIFICATIONS
+) AS total
+WHERE
+ $WHERE_CLAUSE_SPECIFICATIONS
+GROUP BY
+ parent_child_functions,
+ child_function_file,
+ child_function_dso
+HAVING
+ inclusive_count_fraction > 0.0
+ORDER BY
+ inclusive_count_fraction DESC;
+" | dremel --output=csv > "$PAIRWISE_INCLUSIVE_OUTPUT_FILE"