原文網(wǎng)址: http://blog.sina.com.cn/s/blog_b9e81be90102x65p.html
1、硬件環(huán)境支持:
IOS:
iPhone4/iPhone4s凸舵、 iPhone5/iPhone5s母怜、 iPhone6/iPhone6 Plus台丛、iPhone6s/iPhone6s Plus
Android:
CPU:高通/海思/三星 Exynos/nVIDA Tegra/聯(lián)發(fā)科 MTK單核主頻1G以上
RAM: xG以上
屏幕分辯率支持:800*480 960*540 960*640 1280*720 1920*1080
2莉擒、軟件環(huán)境支持:
IOS:IOSx.0或更高版本
Android: Android x.0或更高版本 ?
3酿炸、性能指標(biāo):
1.安全:采用3DES加密,無明文傳送用戶相關(guān)信息涨冀,
2.啟動(dòng)時(shí)間:冷啟動(dòng)和熱啟動(dòng)填硕。APP啟動(dòng)時(shí)間不超過5秒
2.CPU占用:?jiǎn)魏?G,cpu占用率不超過5%
3.內(nèi)存占用:整個(gè)APP內(nèi)存占用鹿鳖,不超過16M
4.流量耗用:待機(jī)情況下扁眯,24小時(shí)流量不超過300K
5.電量耗用:待機(jī)狀態(tài)下,24小時(shí)電量消耗不超過500ma6.連接超時(shí):連接超時(shí)不超過20秒
7.穩(wěn)定性能:待機(jī)和連續(xù)操作超過48小時(shí)后翅帜,無閃退姻檀、卡頓、崩潰涝滴、黑白屏绣版、網(wǎng)絡(luò)劫持、不良接口歼疮、內(nèi)存泄露
8.網(wǎng)絡(luò)性能:支持2G,3G杂抽,4G網(wǎng)絡(luò)和wifi網(wǎng)絡(luò),網(wǎng)絡(luò)信號(hào)不穩(wěn)定韩脏、網(wǎng)絡(luò)連接被重置時(shí)缩麸,無閃退、卡頓赡矢、崩潰杭朱、黑白屏和內(nèi)存泄漏。
9.頁(yè)面加載時(shí)間:
10. 頁(yè)面渲染(每秒幀數(shù)FPS)
4吹散、應(yīng)用:
1).cpu
cpu檢測(cè)我們要分3種情況:
1.在空閑時(shí)間的消耗弧械,基本沒大應(yīng)用使用cpu
2.在運(yùn)行一些應(yīng)用的情況下,cpu已占50%的情況下空民,觀察應(yīng)用程序占用cpu的情況
3.在高負(fù)荷的情況下看CPU的表現(xiàn)刃唐,我定義這個(gè)高負(fù)荷,cpu占用應(yīng)是在80%以上
1.1 如何查看CPU的使用值
使用命令:adb shell dumpsys cpuinfo apk包名
從上圖我們可以看出:6.4%是針對(duì)這個(gè)CPU的占用率是6.4%袭景,標(biāo)紅的地方5.2%占用率是用戶使用的唁桩,1.1是內(nèi)核的占用率闭树,這個(gè)數(shù)只是針對(duì)1核來說耸棒,
問題:現(xiàn)在手機(jī)都是多核的了,那這樣的值也不會(huì)太準(zhǔn)確报辱,那怎么做与殃?
經(jīng)驗(yàn):一般這種取值的单山,我在測(cè)試的時(shí)候,會(huì)多采集幾次幅疼,求平均值
上面數(shù)據(jù)太多了米奸,我們還可以可以用下面這個(gè)命令,和top命令爽篷,獲取單個(gè)數(shù)據(jù)
adb shell dumpsys cpuinfo |grep packagename
2).內(nèi)存篇
內(nèi)存的方式和cpu類似悴晰,我們通過多次采集,得出內(nèi)存值逐工,看內(nèi)存是否異常铡溪,那如何獲取內(nèi)存值
a)命令
1.adb shell dumpsys meminfo
2.adb shell meminfo PID
手機(jī)運(yùn)行速度就和內(nèi)存有很大關(guān)系,我記得以前的同事可以研究這個(gè)內(nèi)存泪喊,還專門成立了一個(gè)小組棕硫,可見這個(gè)水還是挺深的,而且自己也是知會(huì)一點(diǎn)袒啼,著重有幾個(gè)指標(biāo)需要理解:
vss,虛擬內(nèi)存哈扮,每一個(gè)應(yīng)用時(shí)一個(gè)java虛擬機(jī),系統(tǒng)會(huì)分配一個(gè)內(nèi)存蚓再,內(nèi)存每做一個(gè)操作滑肉,這樣是控制內(nèi)存的大小,但是不會(huì)大于最大限制对途,虛擬內(nèi)存就就消失掉赦邻,我們比較關(guān)心
Rss 物理內(nèi)存(包含共享庫(kù)的內(nèi)存),應(yīng)用實(shí)際占用的內(nèi)存实檀,
pss實(shí)際使用的物理內(nèi)存(比例分配共享占用內(nèi)存) 如3個(gè)進(jìn)程惶洲,那么進(jìn)程的消耗就應(yīng)該是除以3,才表示一個(gè)
USS 進(jìn)程中獨(dú)自占用內(nèi)存
USS針對(duì)某個(gè)進(jìn)程開始有內(nèi)存泄漏的情況膳犹,是一個(gè)程序啟動(dòng)了會(huì)產(chǎn)生的虛擬內(nèi)存恬吕,一旦這個(gè)程序進(jìn)程殺掉就會(huì)釋放
這個(gè)博主我覺得講的更好,我只是皮毛而已http://blog.csdn.net/bigconvience/article/details/35553983
n內(nèi)存要多次測(cè)試
使用PID的方式查看:
我們關(guān)注的是:Heap size 是實(shí)際用到的內(nèi)存Heap alloc :是實(shí)際分配的值
問題:但是你可以發(fā)現(xiàn)alloc
內(nèi)存我們還可以查看他的單個(gè)應(yīng)用程序最大的內(nèi)存限制
adb shell getprop |grep heapgrowthlimit
另外一種方式:我們還可以使用procrank工具须床,就可以查看內(nèi)存值
b)分析內(nèi)存泄漏:
adb shell
top -d 1 –n 4 | find "進(jìn)程名"
-d指定刷新間隔時(shí)間铐料;-n指定刷新次數(shù)后退出
想要將抓取的內(nèi)容保存到本地可以用如下命令:adb
shell top -d 1 -n 4 | find "com.subject.zhongchou"
>>C:\Users\58\Desktop\log.txt
我們只需要記錄”RSS實(shí)際使用內(nèi)存”這列的數(shù)據(jù),將他畫成折線圖豺旬,分析內(nèi)存波動(dòng)狀態(tài)钠惩,就是上圖中畫紅圈部分?jǐn)?shù)值。分析內(nèi)存直線圖:一般抓取每次抓取200—300個(gè)數(shù)據(jù)族阅,抓取3-5次篓跛,然后查看內(nèi)存波動(dòng)情況,在一定范圍內(nèi)的上下起伏波動(dòng)證明內(nèi)存沒有泄露坦刀,如果出現(xiàn)內(nèi)存數(shù)值持續(xù)增長(zhǎng)愧沟,沒有回落現(xiàn)象說明可能存在內(nèi)存泄露蔬咬。
3).流量
大神說可以使用adb shell cat/proc/“+PID+”/net/dev 的命令來查看流量數(shù)
但是我覺得這樣不準(zhǔn)確,我獲取流量的方式是通過抓包的方式沐寺,在一個(gè)操作內(nèi)林艘,看流量中的消耗,可以借助wireshork這個(gè)工具來幫忙
4)總結(jié):
做性能測(cè)試的方式有兩種:1.競(jìng)品分析2.版本對(duì)比這是現(xiàn)在很多公司使用的一種方式