summaryrefslogtreecommitdiffstats
path: root/core/java/android/os/Debug.java
diff options
context:
space:
mode:
authorJeff Hao <jeffhao@google.com>2014-01-15 19:50:53 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-01-15 19:50:53 +0000
commit70216e599e678d46b0630e261e25b5209465255a (patch)
tree54ae6bb5c2b1be66226683bb75b202c0b9c6f6d1 /core/java/android/os/Debug.java
parent399f05d1e7182ef6c88d30d3b98a467b845ca7c4 (diff)
parentac20b469259129df948bae1fa5434098b1801185 (diff)
downloadframeworks_base-70216e599e678d46b0630e261e25b5209465255a.zip
frameworks_base-70216e599e678d46b0630e261e25b5209465255a.tar.gz
frameworks_base-70216e599e678d46b0630e261e25b5209465255a.tar.bz2
am ac20b469: am 6c13f384: am 56b11064: am 9a5005a3: am f6730d26: Merge "Add sample profiling interface to startMethodTracing."
* commit 'ac20b469259129df948bae1fa5434098b1801185': Add sample profiling interface to startMethodTracing.
Diffstat (limited to 'core/java/android/os/Debug.java')
-rw-r--r--core/java/android/os/Debug.java54
1 files changed, 41 insertions, 13 deletions
diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java
index 7f167d5..18730b6 100644
--- a/core/java/android/os/Debug.java
+++ b/core/java/android/os/Debug.java
@@ -576,7 +576,7 @@ href="{@docRoot}guide/developing/tools/traceview.html">Traceview: A Graphical Lo
* tracing.
*/
public static void startMethodTracing() {
- VMDebug.startMethodTracing(DEFAULT_TRACE_FILE_PATH, 0, 0);
+ VMDebug.startMethodTracing(DEFAULT_TRACE_FILE_PATH, 0, 0, false, 0);
}
/**
@@ -587,7 +587,7 @@ href="{@docRoot}guide/developing/tools/traceview.html">Traceview: A Graphical Lo
* information about reading trace files.
*
* @param traceName Name for the trace log file to create.
- * If no name argument is given, this value defaults to "/sdcard/dmtrace.trace".
+ * If {@code traceName} is null, this value defaults to "/sdcard/dmtrace.trace".
* If the files already exist, they will be truncated.
* If the trace file given does not end in ".trace", it will be appended for you.
*/
@@ -602,7 +602,7 @@ href="{@docRoot}guide/developing/tools/traceview.html">Traceview: A Graphical Lo
href="{@docRoot}guide/developing/tools/traceview.html">Traceview: A Graphical Log Viewer</a> for
* information about reading trace files.
* @param traceName Name for the trace log file to create.
- * If no name argument is given, this value defaults to "/sdcard/dmtrace.trace".
+ * If {@code traceName} is null, this value defaults to "/sdcard/dmtrace.trace".
* If the files already exist, they will be truncated.
* If the trace file given does not end in ".trace", it will be appended for you.
*
@@ -625,26 +625,54 @@ href="{@docRoot}guide/developing/tools/traceview.html">Traceview: A Graphical Lo
* in relative terms (e.g. was run #1 faster than run #2). The times
* for native methods will not change, so don't try to use this to
* compare the performance of interpreted and native implementations of the
- * same method. As an alternative, consider using "native" tracing
- * in the emulator via {@link #startNativeTracing()}.
+ * same method. As an alternative, consider using sampling-based method
+ * tracing via {@link #startMethodTracingSampling(String, int, int)} or
+ * "native" tracing in the emulator via {@link #startNativeTracing()}.
* </p>
*
* @param traceName Name for the trace log file to create.
- * If no name argument is given, this value defaults to "/sdcard/dmtrace.trace".
+ * If {@code traceName} is null, this value defaults to "/sdcard/dmtrace.trace".
* If the files already exist, they will be truncated.
* If the trace file given does not end in ".trace", it will be appended for you.
* @param bufferSize The maximum amount of trace data we gather. If not given, it defaults to 8MB.
+ * @param flags Flags to control method tracing. The only one that is currently defined is {@link #TRACE_COUNT_ALLOCS}.
*/
public static void startMethodTracing(String traceName, int bufferSize,
int flags) {
+ VMDebug.startMethodTracing(fixTraceName(traceName), bufferSize, flags, false, 0);
+ }
+
+ /**
+ * Start sampling-based method tracing, specifying the trace log file name,
+ * the buffer size, and the sampling interval. The trace files will be put
+ * under "/sdcard" unless an absolute path is given. See <a
+ href="{@docRoot}guide/developing/tools/traceview.html">Traceview: A Graphical Log Viewer</a>
+ * for information about reading trace files.
+ *
+ * @param traceName Name for the trace log file to create.
+ * If {@code traceName} is null, this value defaults to "/sdcard/dmtrace.trace".
+ * If the files already exist, they will be truncated.
+ * If the trace file given does not end in ".trace", it will be appended for you.
+ * @param bufferSize The maximum amount of trace data we gather. If not given, it defaults to 8MB.
+ * @param intervalUs The amount of time between each sample in microseconds.
+ */
+ public static void startMethodTracingSampling(String traceName,
+ int bufferSize, int intervalUs) {
+ VMDebug.startMethodTracing(fixTraceName(traceName), bufferSize, 0, true, intervalUs);
+ }
- String pathName = traceName;
- if (pathName.charAt(0) != '/')
- pathName = DEFAULT_TRACE_PATH_PREFIX + pathName;
- if (!pathName.endsWith(DEFAULT_TRACE_EXTENSION))
- pathName = pathName + DEFAULT_TRACE_EXTENSION;
+ /**
+ * Formats name of trace log file for method tracing.
+ */
+ private static String fixTraceName(String traceName) {
+ if (traceName == null)
+ traceName = DEFAULT_TRACE_FILE_PATH;
+ if (traceName.charAt(0) != '/')
+ traceName = DEFAULT_TRACE_PATH_PREFIX + traceName;
+ if (!traceName.endsWith(DEFAULT_TRACE_EXTENSION))
+ traceName = traceName + DEFAULT_TRACE_EXTENSION;
- VMDebug.startMethodTracing(pathName, bufferSize, flags);
+ return traceName;
}
/**
@@ -658,7 +686,7 @@ href="{@docRoot}guide/developing/tools/traceview.html">Traceview: A Graphical Lo
*/
public static void startMethodTracing(String traceName, FileDescriptor fd,
int bufferSize, int flags) {
- VMDebug.startMethodTracing(traceName, fd, bufferSize, flags);
+ VMDebug.startMethodTracing(traceName, fd, bufferSize, flags, false, 0);
}
/**