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

Unified Diff: build/android/adb_profile_chrome

Issue 18174005: Upstream adb_profile_chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 6 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/adb_profile_chrome
diff --git a/build/android/adb_profile_chrome b/build/android/adb_profile_chrome
new file mode 100755
index 0000000000000000000000000000000000000000..727916b5ad1b94215769fcf1b36af73ed1d89d48
--- /dev/null
+++ b/build/android/adb_profile_chrome
@@ -0,0 +1,139 @@
+#!/bin/bash
+#
+# Copyright (c) 2013 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.
+#
+# Start / stop profiling in chrome.
+
+# The profiling data is saved to directory /sdcard/Download. The files
+# are named beginning chrome-profile-results-
+#
+# Assumes you have sourced the android build environment script
+# (e.g. 'adb' is on your path).
+set -e
+
+usage() {
+ echo "adb_profile_chrome [--start [-o file] [-c C]|--stop|-d|-t N] [-v N]"
+ echo "See http://dev.chromium.org/developers/how-tos/trace-event-profiling-tool for detailed instructions on profiling."
+ echo ""
+ echo " --start Start profiling."
+ echo " --output|-o file Save profile output to file. "
+ echo " (Default is /sdcard/Download/chrome-profile-results-*)"
+ echo " --categories|-c C Select categories to trace with comma-delimited wildcards."
+ echo " e.g. '*', 'cat1*,-cat1a'. Default is '*'."
+ echo " --stop Stop profiling."
+ echo " --download|-d Download latest trace."
+ echo " --time|-t N Profile for N seconds and download the resulting trace."
+ echo " --version|v N Select among installed browsers."
+ echo " One of stable (default), beta, dev, build"
+ echo ""
+ echo "Profiling data is saved to the device."
+ exit 0
+}
+
+send_intent() {
+ local PACKAGE=$1
+ local INTENT=$2
+ shift
+ shift
+ adb shell am broadcast -a $PACKAGE.$INTENT $*
+}
+
+download_latest_trace() {
+ TRACE_FILE=$(adb logcat -d | \
+ grep "Logging performance trace to file: " | \
+ tail -1 | \
+ sed -E "s/.*\/storage\/emulated\/.+\/([^\r]+).*/\/sdcard\/Download\/\\1/")
+ if [ -z "$TRACE_FILE" ]; then
+ echo "Unable to determine trace file name"
+ exit 1
+ fi
+
+ adb pull $TRACE_FILE 2> /dev/null
+ LOCAL_TRACE_FILE=$(basename $TRACE_FILE)
+ if [ ! -f "$LOCAL_TRACE_FILE" ]; then
+ echo "Unable to download trace file"
+ exit 1
+ fi
+}
+
+do_timed_capture() {
+ local PACKAGE=$1
+ local INTERVAL=$2
+ shift
+ shift
+ echo -n "Capturing trace..."
+ send_intent ${PACKAGE} "GPU_PROFILER_START" $* > /dev/null
+ sleep ${INTERVAL}
+ send_intent ${PACKAGE} "GPU_PROFILER_STOP" > /dev/null
+ echo "done"
+
+ echo -n "Downloading trace..."
+ sleep $[${INTERVAL} / 4 + 1]
+ download_latest_trace
+ echo "done"
+
+ echo "Trace written to ${PWD}/${LOCAL_TRACE_FILE}"
+}
+
+PACKAGE=${DEFAULT_PACKAGE:-com.android.chrome}
+
+while test -n "$1"; do
+ case "$1" in
+ -v|--version)
+ if [[ -z "$2" ]] ; then
+ usage
+ fi
+ shift
+ case "$1" in
+ stable) PACKAGE="com.android.chrome" ;;
+ beta) PACKAGE="com.chrome.beta" ;;
+ dev) PACKAGE="com.google.android.apps.chrome_dev" ;;
+ build) PACKAGE="com.google.android.apps.chrome" ;;
+ *) usage ;;
+ esac
+ ;;
+ --start) FUNCTION="GPU_PROFILER_START" ;;
+ --stop) FUNCTION="GPU_PROFILER_STOP" ;;
+ -o|--output)
+ if [ -z "$2" ] ; then
+ usage
+ fi
+ OUTPUT="-e file '$2'"
+ shift
+ ;;
+ -c|--categories)
+ if [ -z "$2" ]; then
+ usage
+ fi
+ CATEGORIES="-e categories '$2'"
+ shift
+ ;;
+ -t|--time)
+ shift
+ if [ -z "$1" ] ; then
+ usage
+ fi
+ INTERVAL="$1"
+ ;;
+ -d|--download)
+ shift
+ download_latest_trace
+ echo "Trace written to ${PWD}/${LOCAL_TRACE_FILE}"
+ ;;
+ *) usage ;;
+ esac
+ shift
+done
+
+if [ -z "${INTERVAL}" ] ; then
+ if [ -z "${FUNCTION}" ] ; then
+ usage
+ else
+ send_intent ${PACKAGE} ${FUNCTION} ${OUTPUT} ${CATEGORIES}
+ fi
+else
+ do_timed_capture ${PACKAGE} ${INTERVAL} ${CATEGORIES}
+fi
+exit 0
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698