使用Vogar进行简单的基准测试

时间:2011-11-22 00:39:19

标签: android caliper

我想为android编写简单的基准测试软件。我研究并找到了Caliper + Vogar。但是没有关于它们的例子。有人用吗?我需要简单的代码来从android Activity调用Caliper Benchmarks。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

有一个完整的Android版Caliper Benchmark示例,虽然不适用于Android Application Testing Guide的活动,但也解释了:

  

Caliper基准测试通常会扩展com.google.caliper.SimpleBenchmark   它实现了Benchmark接口。基准的结构是   与JUnit 3类似的方式测试并保持相同的结构   区别在于这里的基准测试以前缀时间为开头   反对测试。

有问题的基准看起来像这样:

public final void timeCelsiusToFahrenheit(int reps) {
         for (int i=0; i < reps; i++) {
           for (double t: temps) {
             TemperatureConverter.celsiusToFahrenheit(t);
           }
         }
}

最有趣的功能之一是卡尺可以上传基准测试结果,您可以用图形比较它们

caliper benchmarks

答案 1 :(得分:-1)

最近,我和你做同样的事情 我几乎成功了

1.download&amp;配置构建aosp的环境 2.build aosp 3.build / external / vogar,你将获得out / host / linux-x86 / bin / vogar下的vogar 4.使用卡尺编写测试代码 5.run你用vogar测试主机 vogar --mode app_process --benchmark

vogar会自动将您的代码编译为dex文件 并将它们推送到设备 调用app_process(将调用带有android JNI的dalvikvm命令)运行vogar测试运行器来运行你的测试用程序

vogar需要您指定的类路径来编译或构建您的测试用例

  

dvdface @ ubuntu:〜/ Source / aosp / out / host / linux-x86 / bin $ ./vogar --mode   app_process --benchmark   〜/源/ AOSP / libcore /基准/ SRC /基准/ AdditionBenchmark.java   行动:1执行   [/ home / dvdface / Source / aosp / prebuilts / sdk / tools / jack,-D,   jack.java.source.version = 1.8,-D,jack.android.min-api-level = o-b1,   -cp,/ home / dddface / Source / aosp / out / target / common / obj / JAVA_LIBRARIES / core-libart_intermediates / classes.jack:/ home / dddface / Source / aosp / out / target / common / obj / JAVA_LIBRARIES / core -oj_intermediates / classes.jack:/home/dvdface/Source/aosp/out/target/common/obj/JAVA_LIBRARIES/conscrypt_intermediates/classes.jack:/家庭/ dvdface /来源/ AOSP /出/目标/普通/ OBJ / JAVA_LIBRARIES /okhttp_intermediates/classes.jack:/home/dvdface/Source/aosp/out/target/common/obj/JAVA_LIBRARIES/legacy-test_intermediates/classes.jack:/home/dvdface/Source/aosp/out/target/common/obj /JAVA_LIBRARIES/bouncycastle_intermediates/classes.jack:/home/dvdface/Source/aosp/out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jack:/home/dvdface/Source/aosp/out/target/common/obj /JAVA_LIBRARIES/framework_intermediates/classes.jack:/home/dvdface/Source/aosp/out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates/classes.jack:/home/dvdface/Source/aosp/out/target/common / OBJ / JAVA_LIBRARIES / MMS-common_intermediates / CLAS ses.jack:/home/dvdface/Source/aosp/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jack:/家庭/ dvdface /来源/ AOSP /出/目标/普通/ OBJ / JAVA_LIBRARIES /机器人。 policy_intermediates / classes.jack:/home/dvdface/Source/aosp/out/target/common/obj/JAVA_LIBRARIES/services_intermediates/classes.jack:/家庭/ dvdface /来源/ AOSP /出/目标/普通/ OBJ / JAVA_LIBRARIES / Apache的xml_intermediates / classes.jack:/home/dvdface/Source/aosp/out/host/linux-x86/framework/vogar.jar,   --output-jack,/ tmp / vogar / 24a8baa0-30f1-4861-99c1-6660e97bf1d8 /benchmarks.AdditionBenchmark/benchmarks.AdditionBenchmark.jack,   --import-resource,/ tmp / vogar / 24a8baa0-30f1-4861-99c1-6660e97bf1d8 /benchmarks.AdditionBenchmarkexecuting   [adb,shell,mkdir,   /data/local/tmp/vogar/run/benchmarks.AdditionBenchmark]

     

执行[/ home / dvdface / Source / aosp / prebuilts / sdk / tools / jack,   --output-dex-zip,/ tmp / vogar / 24a8baa0-30f1-4861-99c1-6660e97bf1d8 /benchmarks.AdditionBenchmark /benchmarks.AdditionBenchmark.dex.jar,   -D,jack.java.source.version = 1.8,-D,jack.android.min-api-level = o-b1, - multi-dex,native, - import,/ tmp / vogar / 24a8baa0-30f1 -4861-99c1-6660e97bf1d8 / benchmarks.AdditionBenchmark / benchmarks.AdditionBenchmark.jackAction   benchmarks.AdditionBenchmark执行[adb,shell,cd   /data/local/tmp/vogar/run/benchmarks.AdditionBenchmark&&&&&&   ANDROID_DATA = / data / local / tmp / vogar app_process   -Djava.class.path = /数据/本地的/ tmp /沃加尔/运行/ benchmarks.AdditionBenchmark.dex.jar   -Djava.io.tmpdir = /数据/本地的/ tmp /沃加尔/运行/ benchmarks.AdditionBenchmark   -Duser.home = / data / local / tmp / vogar / run / user.home /data/local/tmp/vogar/run/benchmarks.AdditionBenchmark   vogar.target.TestRunn实验选择:         基准测试方法:[timeAddConstantToLocalDouble,timeAddConstantToLocalFloat,timeAddConstantToLocalInt,   timeAddConstantToLocalLong,timeAddTwoLocalDoubles,   timeAddTwoLocalFloats,timeAddTwoLocalInts,timeAddTwoLocalLongs]         仪器:[运行时]         用户参数:{}         虚拟机:[app_process]         选择类型:全笛卡尔产品       该选择产生8个实验。       审判报告(第1页,共8页):         实验{instrument = runtime,benchmarkMethod = timeAddConstantToLocalDouble,vm = app_process,   参数= {}}         结果:           运行时间(ns):min = 3.48,1st qu。= 3.48,median = 3.48,mean = 3.48,3rd qu。= 3.48,max = 3.48       审判报告(2/8):         实验{instrument = runtime,benchmarkMethod = timeAddConstantToLocalFloat,vm = app_process,   参数= {}}         结果:           运行时间(ns):min = 5.28,1st qu。= 5.28,median = 5.28,mean = 5.28,3rd qu。= 5.28,max = 5.28       审判报告(3/8):         实验{instrument = runtime,benchmarkMethod = timeAddConstantToLocalInt,vm = app_process,   参数= {}}         结果:           runtime(ns):min = 2.11,1st qu。= 2.11,median = 2.11,mean = 2.11,3rd qu。= 2.11,max = 2.11       审判报告(4/8):         实验{instrument = runtime,benchmarkMethod = timeAddConstantToLocalLong,vm = app_process,   参数= {}}         结果:           运行时间(ns):min = 2.10,1st qu。= 2.10,median = 2.10,mean = 2.10,3rd qu。= 2.10,max = 2.10       审判报告(5/8):         实验{instrument = runtime,benchmarkMethod = timeAddTwoLocalDoubles,vm = app_process,parameters = {}}         结果:           运行时间(ns):min = 5.31,1st qu。= 5.31,median = 5.31,mean = 5.31,3rd qu。= 5.31,max = 5.31       审判报告(6/8):         实验{instrument = runtime,benchmarkMethod = timeAddTwoLocalFloats,vm = app_process,parameters = {}}         结果:           运行时间(ns):min = 5.23,1st qu。= 5.23,median = 5.23,mean = 5.23,3rd qu。= 5.23,max = 5.23       审判报告(7/8):         实验{instrument = runtime,benchmarkMethod = timeAddTwoLocalInts,vm = app_process,parameters = {}}         结果:           运行时间(ns):min = 1.63,1st qu。= 1.63,median = 1.63,mean = 1.63,3rd qu。= 1.63,max = 1.63       审判报告(8/8):         实验{instrument = runtime,benchmarkMethod = timeAddTwoLocalLongs,vm = app_process,parameters = {}}         结果:           运行时间(ns):min = 2.14,1st qu。= 2.14,median = 2.14,mean = 2.14,3rd qu。= 2.14,max = 2.14       从以下收集的8个测量值:         1台仪器         1台虚拟机         8个基准       执行完成:19.90秒。       Dalvik不支持仪器com.google.caliper.runner.AllocationInstrument,忽略       Dalvik不支持仪器com.google.caliper.runner.AllocationInstrument,忽略       有些试验无法上传。考虑手动上传它们。 benchmarks.AdditionBenchmark OK(SUCCESS)收到退出值0   销毁命令adb shell cd   /data/local/tmp/vogar/run/benchmarks.AdditionBenchmark&&&&&&   ANDROID_DATA = / data / local / tmp / vogar app_process   -Djava.class.path = /数据/本地的/ tmp /沃加尔/运行/ benchmarks.AdditionBenchmark.dex.jar   -Djava.io.tmpdir = /数据/本地的/ tmp /沃加尔/运行/ benchmarks.AdditionBenchmark   -Duser.home = / data / local / tmp / vogar / run / user.home /data/local/tmp/vogar/run/benchmarks.AdditioMoving   /data/local/tmp/vogar/run/benchmarks.AdditionBenchmark/benchmarks.AdditionBenchmark.2018-04-01T15:43:17Z.json   to ./vogar-results结果:1。全部成功。花了10分35秒。