diff options
author | Christopher Tate <ctate@google.com> | 2011-11-17 13:51:08 -0800 |
---|---|---|
committer | Christopher Tate <ctate@google.com> | 2011-11-17 14:07:58 -0800 |
commit | 4c18ad56f7e9b84bb075fd39c8e712c7871430a0 (patch) | |
tree | 284d045e406dbf36859b62daecec6fa4e6908744 /tests/FrameworkPerf | |
parent | 33fe4a36b7d1ef84b13447f2a765db465ef96e56 (diff) | |
download | frameworks_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.java | 49 |
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"); |