diff options
| author | 2009-09-10 11:01:24 +0200 | |
|---|---|---|
| committer | 2009-09-10 11:01:24 +0200 | |
| commit | eec2f41d607c3eacba4f7d9cc098b335c7310d23 (patch) | |
| tree | 8114e8450a870b9f158e0e28cf6d603b51da3c66 | |
| parent | 411400980720895c4195c71e181831bc771a5a7b (diff) | |
Addressed reviewer comments.
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 9 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/SamplingProfilerIntegration.java | 26 |
2 files changed, 19 insertions, 16 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 2877aec13a82..8142d1a3e34a 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4246,12 +4246,9 @@ public final class ActivityThread { } thread.detach(); - String name; - if (thread.mInitialApplication != null) { - name = thread.mInitialApplication.getPackageName(); - } else { - name = "<unknown>"; - } + String name = (thread.mInitialApplication != null) + ? thread.mInitialApplication.getPackageName() + : "<unknown>"; Log.i(TAG, "Main thread of " + name + " is now exiting"); } } diff --git a/core/java/com/android/internal/os/SamplingProfilerIntegration.java b/core/java/com/android/internal/os/SamplingProfilerIntegration.java index 44bcd16a8465..51d957084d1e 100644 --- a/core/java/com/android/internal/os/SamplingProfilerIntegration.java +++ b/core/java/com/android/internal/os/SamplingProfilerIntegration.java @@ -11,7 +11,6 @@ import java.util.concurrent.Executors; import android.util.Log; import android.os.*; -import android.net.Uri; /** * Integrates the framework with Dalvik's sampling profiler. @@ -60,14 +59,25 @@ public class SamplingProfilerIntegration { public static void writeSnapshot(final String name) { if (!enabled) return; + /* + * If we're already writing a snapshot, don't bother enqueing another + * request right now. This will reduce the number of individual + * snapshots and in turn the total amount of memory consumed (one big + * snapshot is smaller than N subset snapshots). + */ if (!pending) { pending = true; snapshotWriter.execute(new Runnable() { public void run() { String dir = "/sdcard/snapshots"; if (!dirMade) { - makeDirectory(dir); - dirMade = true; + new File(dir).mkdirs(); + if (new File(dir).isDirectory()) { + dirMade = true; + } else { + Log.w(TAG, "Creation of " + dir + " failed."); + return; + } } try { writeSnapshot(dir, name); @@ -86,7 +96,7 @@ public class SamplingProfilerIntegration { if (!enabled) return; String dir = "/data/zygote/snapshots"; - makeDirectory(dir); + new File(dir).mkdirs(); writeSnapshot(dir, "zygote"); } @@ -102,7 +112,7 @@ public class SamplingProfilerIntegration { * we capture two snapshots in rapid succession. */ long start = System.currentTimeMillis(); - String path = dir + "/" + name.replace(':', '.') + "-" + String path = dir + "/" + name.replace(':', '.') + "-" + + System.currentTimeMillis() + ".snapshot"; try { // Try to open the file a few times. The SD card may not be mounted. @@ -117,7 +127,7 @@ public class SamplingProfilerIntegration { Log.e(TAG, "Could not open " + path + "."); return; } - + // Sleep for a bit and then try again. try { Thread.sleep(2500); @@ -137,8 +147,4 @@ public class SamplingProfilerIntegration { Log.e(TAG, "Error writing snapshot.", e); } } - - private static void makeDirectory(String dir) { - new File(dir).mkdirs(); - } } |