summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Bob Lee <crazybob@google.com> 2009-09-10 11:01:24 +0200
committer Bob Lee <crazybob@google.com> 2009-09-10 11:01:24 +0200
commiteec2f41d607c3eacba4f7d9cc098b335c7310d23 (patch)
tree8114e8450a870b9f158e0e28cf6d603b51da3c66
parent411400980720895c4195c71e181831bc771a5a7b (diff)
Addressed reviewer comments.
-rw-r--r--core/java/android/app/ActivityThread.java9
-rw-r--r--core/java/com/android/internal/os/SamplingProfilerIntegration.java26
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();
- }
}