aboutsummaryrefslogtreecommitdiff
path: root/user_activity_benchmarks/collect_pprof_data.sh
blob: 5b89f18591c4a5f43dfc1afa18be139a84b934d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/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.
# Collects the pprof tree and top outputs.
# All the local_cwp symbolized profiles are taken from the
# local_cwp_results_path.
# The pprof top output is stored in the pprof_top_results_path and the pprof
# tree output is stored in the pprof_tree_results_path.

set -e

if [ "$#" -ne 3 ]; then
  echo "USAGE: collect_pprof_data.sh local_cwp_results_path " \
    "pprof_top_results_path pprof_tree_results_path"
  exit 1
fi

readonly LOCAL_CWP_RESULTS_PATH=$1
readonly PPROF_TOP_RESULTS_PATH=$2
readonly PPROF_TREE_RESULTS_PATH=$3
readonly SYMBOLIZED_PROFILES=`ls $LOCAL_CWP_RESULTS_PATH`

for symbolized_profile in "${SYMBOLIZED_PROFILES[@]}"
do
  pprof --top "$LOCAL_CWP_RESULTS_PATH/${symbolized_profile}" > \
    "$PPROF_TOP_RESULTS_PATH/${symbolized_profile}.pprof"
  if [ $? -ne 0 ]; then
    echo "Failed to extract the pprof top output for the $symbolized_profile."
    continue
  fi

  pprof --tree "$LOCAL_CWP_RESULTS_PATH/${symbolized_profile}" > \
    "$PPROF_TREE_RESULTS_PATH/${symbolized_profile}.pprof"
  if [ $? -ne 0 ]; then
    echo "Failed to extract the pprof tree output for the " \
      "$symbolized_profile."
    continue
  fi
done