對于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