summaryrefslogtreecommitdiffstats
path: root/tests/FrameworkPerf
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2011-11-17 13:51:08 -0800
committerChristopher Tate <ctate@google.com>2011-11-17 14:07:58 -0800
commit4c18ad56f7e9b84bb075fd39c8e712c7871430a0 (patch)
tree284d045e406dbf36859b62daecec6fa4e6908744 /tests/FrameworkPerf
parent33fe4a36b7d1ef84b13447f2a765db465ef96e56 (diff)
downloadframeworks_base-4c18ad56f7e9b84bb075fd39c8e712c7871430a0.zip
frameworks_base-4c18ad56f7e9b84bb075fd39c8e712c7871430a0.tar.gz
frameworks_base-4c18ad56f7e9b84bb075fd39c8e712c7871430a0.tar.bz2
Add a few GC-flexing microbenchmark tests
Added ObjectGc and FinalizingGc to stress single-object allocation and collection with/without the presence of finalizers. Also added GcOp() to the menu of available single-shot tests. Change-Id: I36d3254dfe2e97e504f9e4f77c8addda98ab4f4b
Diffstat (limited to 'tests/FrameworkPerf')
-rw-r--r--tests/FrameworkPerf/src/com/android/frameworkperf/TestService.java49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/FrameworkPerf/src/com/android/frameworkperf/TestService.java b/tests/FrameworkPerf/src/com/android/frameworkperf/TestService.java
index 3d939bd..8cf1ac2 100644
--- a/tests/FrameworkPerf/src/com/android/frameworkperf/TestService.java
+++ b/tests/FrameworkPerf/src/com/android/frameworkperf/TestService.java
@@ -33,6 +33,7 @@ import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import android.graphics.Paint;
import android.os.Bundle;
import android.os.FileUtils;
import android.os.Handler;
@@ -64,6 +65,9 @@ public class TestService extends Service {
new MethodCallOp(), new ReadFileOp(),
new SchedulerOp(), new SchedulerOp(),
new GcOp(), new NoOp(),
+ new ObjectGcOp(), new NoOp(),
+ new FinalizingGcOp(), new NoOp(),
+ new PaintGcOp(), new NoOp(),
new IpcOp(), new NoOp(),
new IpcOp(), new CpuOp(),
new IpcOp(), new SchedulerOp(),
@@ -111,6 +115,10 @@ public class TestService extends Service {
new CpuOp(),
new SchedulerOp(),
new MethodCallOp(),
+ new GcOp(),
+ new ObjectGcOp(),
+ new FinalizingGcOp(),
+ new PaintGcOp(),
new IpcOp(),
new CreateFileOp(),
new CreateWriteFileOp(),
@@ -467,6 +475,47 @@ public class TestService extends Service {
}
}
+ static class ObjectGcOp extends Op {
+ ObjectGcOp() {
+ super("ObjectGc", "Run garbage collector with simple objects");
+ }
+
+ boolean onRun() {
+ Object obj = new Object();
+ return true;
+ }
+ }
+
+ static class FinalizingGcOp extends Op {
+ class Finalizable {
+ Finalizable() {}
+ @Override
+ protected void finalize() throws Throwable {
+ super.finalize();
+ }
+ }
+
+ FinalizingGcOp() {
+ super("FinalizingGc", "Run garbage collector with finalizable objects");
+ }
+
+ boolean onRun() {
+ Finalizable obj = new Finalizable();
+ return true;
+ }
+ }
+
+ static class PaintGcOp extends Op {
+ PaintGcOp() {
+ super("PaintGc", "Run garbage collector with Paint objects");
+ }
+
+ boolean onRun() {
+ Paint p = new Paint();
+ return true;
+ }
+ }
+
static class MethodCallOp extends Op {
MethodCallOp() {
super("MethodCall", "Method call");