diff options
author | Jeff Hao <jeffhao@google.com> | 2014-01-15 19:50:53 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-01-15 19:50:53 +0000 |
commit | 70216e599e678d46b0630e261e25b5209465255a (patch) | |
tree | 54ae6bb5c2b1be66226683bb75b202c0b9c6f6d1 /core/java/android/os/Debug.java | |
parent | 399f05d1e7182ef6c88d30d3b98a467b845ca7c4 (diff) | |
parent | ac20b469259129df948bae1fa5434098b1801185 (diff) | |
download | frameworks_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.java | 54 |
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); } /** |