对于Android平台上软件的性能测试可以通过以下几种方法来分析效率瓶颈,目前Google在Android软件开发过程中已经引入了多种测试工具包,比如Unit测试工程,调试类,还有模拟器的Dev Tools都可以直接反应执行性能。
1. 在模拟器上的Dev Tools可以激活屏幕显示当前的FPS,CPU使用率,可以帮助我们测试一些3D图形界面的性能。
2. 一般涉及到网络应用的程序,在效率上和网速有很多关系,这里需要多次的调试才能实际了解。
3. 对于逻辑算法的效率执行,我们使用Android上最普遍的,计算执行时间来查看:
long start = System.currentTimeMillis();
//这里做实际的处理do something
long duration = System.currentTimeMillis() - start;
最终duration保存着实际处理该方法需要的毫秒数。这里类似Win32上的GetTickCount,在Win 32和Symbian上都提供了高精度的性能计数器和低阶计时器,这里在Dalvik VM上的java/" target="_blank" >Java层这种方法对于一般的应用足以。
4. GC效率跟踪,如果你执行的应用比较简单,可以在DDMS中查看下Logcat的VM释放内存情况,大概模拟下那些地方可以缓存数据或改进算法的。
5. 线程的使用和同步,Android平台上给我们提供了丰富的多任务同步方法,但在深层上并没有过多的比如自旋锁等高级应用,不过对于Service和appWidget而言,他们实际的产品中都应该以多线程的方式处理,以释放CPU时间,对于线程和堆内存的查看这些都可以在DDMS中看到。
Benchmark
测试Android系统的2D图形、cpu、内存和文件系统等方面的性能。测试项目非常多,且测试速度快,得分越高越好!
下载 (10.28 KB)
2011-3-4 18:04
Linpack for android
测试分数越高代表速度越快!
1 Benchmark Pi
计算CPU pi运算的程序,可以将成绩上报
2 cpu Benchmark
计算CPU性能,界面很简单
3 nbench
主要测试三项内容
memory 内存性能
interger 整数性能
float 浮点性能
生成的报告比较详细:
BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)
TEST : Iterations/sec. : Old Index : New Index
: : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 142.44 : 3.65 : 1.20
STRING SORT : 6.7603 : 3.02 : 0.47
BITFIELD : 4.5891e+07 : 7.87 : 1.64
FP EMULATION : 17.221 : 8.26 : 1.91
FOURIER : 2274.8 : 2.59 : 1.45
ASSIGNMENT : 1.5546 : 5.92 : 1.53
IDEA : 549.81 : 8.41 : 2.50
HUFFMAN : 267.61 : 7.42 : 2.37
NEURAL NET : 0.43541 : 0.70 : 0.29
LU DECOMPOSITION : 10.131 : 0.52 : 0.38
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX : 5.953
FLOATING-POINT INDEX: 0.983
Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU : ARMv6-compatible processor rev 6 (v6l)
L2 Cache : 0
OS : Linux version 2.6.29 (zhuli@Android1) (gcc version 4.3.1 (GCC) ) #9 Thu Jul 8 20:00:25 CST 2010
C compiler : arm-eabi-gcc (GCC) 4.4.0
libc : Android Bionic libc
MEMORY INDEX : 1.057
INTEGER INDEX : 1.918
FLOATING-POINT INDEX: 0.545
Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.
4 linpack
很多测试手机的视频使用这个软件
但是跑下来分数浮动较大
主要测试浮点性能
5 benchmark
同样用于许多测试,有详细的报告,不过我认为图形测试的数据不准确,和分辨率相关,CPU和memory值得参考
Processor ARMv6-compatible processor rev 6 (v6l) Linux BogoMIPS 499.71
Memory RAM 148820 Memory SWAP 0
Graphics
Total graphics score;9.718911
Draw opacity bitmap;3.619014;MPixels per sec
Draw transparent bitmap;2.3254228;MPixels per sec