国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

iOS性能測(cè)試方法-獲取手機(jī)內(nèi)存數(shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了iOS性能測(cè)試方法-獲取手機(jī)內(nèi)存數(shù)據(jù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最近在研究如何獲取iOS手機(jī)性能數(shù)據(jù)(主要是內(nèi)存),看了一圈目前主流的方法主要是兩種:1.阿里開(kāi)源的iOS自動(dòng)化測(cè)試工具tidevice;2.xcode自帶的instruments;

一、移動(dòng)端性能指標(biāo)

1.cpu

正常在20%-40%左右,超過(guò)80%需要引起重視。

2.內(nèi)存

rss:私有內(nèi)存+所有共享內(nèi)存,pss:私有內(nèi)存+比例分配共享內(nèi)存,一般vss>=rss>=pss>=uss;

需要關(guān)注退出一個(gè)頁(yè)面后,內(nèi)存是否有回落;進(jìn)行某個(gè)操作之后,內(nèi)存是否增長(zhǎng)過(guò)快。

3.fps

在30-60之間比較合理,低于30會(huì)有明顯卡頓,高于70感知不到,會(huì)浪費(fèi)圖形處理器能力。

4.耗電量

測(cè)試前先看規(guī)定時(shí)間內(nèi)手機(jī)正常待機(jī)下(重啟后待機(jī))電量消耗為多少。然后再啟動(dòng)待測(cè)試APP看看消耗的電量增加了多少取差值。

5.crash

<0.03%表示優(yōu)秀,<0.1%表示良好。

6.啟動(dòng)時(shí)長(zhǎng)

7.流量

8.gpu過(guò)度渲染

二、tidevice?

tidevice是阿里開(kāi)源的iOS自動(dòng)化測(cè)試工具,能夠提供截圖、獲取手機(jī)信息、ipa包的安裝和卸載、根據(jù)bundleID啟動(dòng)和停止應(yīng)用、獲取指定應(yīng)用性能數(shù)據(jù)、模擬xcode運(yùn)行xctest等功能;taobao-iphone-device/README.md at main · alibaba/taobao-iphone-device · GitHub

安裝tidevice

pip3 install -U "tidevice[openssl]"

tidevice可以用命令行或者python腳本方式獲取性能數(shù)據(jù)。

1.命令行方式:

tidevice applist

得到ipa 文件的 bundle id

ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos

查看性能數(shù)據(jù)

tidevice perf -B bundleID

ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos

輸出數(shù)據(jù)格式如下, 采集時(shí)間使用時(shí)間戳格式。

fps {'fps': 46, 'value': 46, 'timestamp': 1655023837471}
gpu {'device': 22, 'renderer': 20, 'tiler': 22, 'value': 22, 'timestamp': 1655023837572}
cpu {'timestamp': 1655023837647, 'pid': 2734, 'value': 0.6984475878545683, 'sys_value': 83.33333333333331, 'count': 2}
memory {'pid': 979, 'timestamp': 1655023837647, 'value': 148.61046600341797}
network {'timestamp': 1655023837613, 'downFlow': 78.1064453125, 'upFlow': 0.7294921875}

2.python腳本方式

import time
import tidevice
from tidevice._perf import DataType

t = tidevice.Device()
# perf = tidevice.Performance(t,[DataType.CPU, DataType.MEMORY, DataType.NETWORK, DataType.FPS, DataType.PAGE, DataType.SCREENSHOT, DataType.GPU])
perf = tidevice.Performance(t,DataType.MEMORY)

def callback(_type:tidevice.DataType,value:dict):
    print(_type.value,value)

perf.start('com.meituan.imerchantbiz.ep',callback = callback)
time.sleep(60)
perf.stop()

ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos
可以用pyecharts自動(dòng)生成實(shí)時(shí)的性能采集報(bào)告。?

安裝pyecharts

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pyecharts
#繪圖
x = [i for i in range(len(d))]
y = d
print(x)
print(y)

#創(chuàng)建對(duì)象,可以添加一些參數(shù)
line = Line(init_opts=options.InitOpts(width='800px',height='600px'))
#添加x軸y軸數(shù)據(jù),注意添加y軸數(shù)據(jù)的時(shí)候必須設(shè)置series_name參數(shù),表示圖例的名稱
line.add_xaxis(xaxis_data=x)
line.add_yaxis(series_name='memory', y_axis=y, is_symbol_show=True, label_opts=options.LabelOpts(is_show=False),
               #is_symbol_show=True顯示點(diǎn),label_opts=opts.LabelOpts(is_show=False)不顯示值
               #設(shè)置展示最大值最小值
                markpoint_opts=options.MarkPointOpts(
                    data=[
                        options.MarkPointItem(type_="max",name="最大值", symbol="pin", symbol_size=[70,50]),
                        options.MarkPointItem(type_="min", name="最小值",symbol="pin", symbol_size=[70,50], itemstyle_opts={'color':'#3CB371'}),
                    ]
                ),
                #設(shè)置展示平均值
                markline_opts=options.MarkLineOpts(
                    data=[options.MarkLineItem(type_="average",name="平均值")]
                ))
line.render()
os.system('open render.html')

效果示例:可以看到最大值、最小值、平均值;鼠標(biāo)移動(dòng)到某一個(gè)點(diǎn),可看到該點(diǎn)數(shù)值。

ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos??ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos

?3.遇到的問(wèn)題

(1)出現(xiàn)報(bào)錯(cuò):tidevice.exceptions.MuxError: ImageMountFailed

解決:可能是由于沒(méi)有devicesupport,下載對(duì)應(yīng)版本的developer,然后用xcode重新安裝wda

(2)出現(xiàn)報(bào)錯(cuò):sh: ./render.html: Permission denied

解決:這是因?yàn)闆](méi)有為程序分配讀寫(xiě)權(quán)限,chmod 755 render.html

(3)報(bào)錯(cuò):./render.html: line 1: syntax error near unexpected token `newline'

暫未解決,先改成open render.html;

三、xcode-instruments

1.獲取內(nèi)存數(shù)據(jù)-leaks

xcode-open developer tool-打開(kāi)instruments;

ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos打開(kāi)leaks;

ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos

?選擇被測(cè)設(shè)備和被測(cè)應(yīng)用;ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos?點(diǎn)擊啟動(dòng),項(xiàng)目會(huì)跑起來(lái),然后即可觀測(cè);

ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos

當(dāng)出現(xiàn)紅色的x時(shí),表示有內(nèi)存泄漏了;

ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos

選中紅色的x,找到leaks-call tree,在底部找到call tree,選中invert call treee,hede system libraries,然后就會(huì)顯示類和泄露的方法,雙擊查看詳情就可以開(kāi)始修改了。

Invert Call Tree 的意思是翻轉(zhuǎn)調(diào)用樹(shù),意思就是我們?cè)谡{(diào)用函數(shù)時(shí),是一層一層的,調(diào)用外層函數(shù)會(huì)一直進(jìn)入內(nèi)層,直到最后一層,有點(diǎn)遞歸的意思,當(dāng)選中?Invert Call Tree 選項(xiàng)時(shí),會(huì)直接顯示內(nèi)層函數(shù),方便我們?nèi)ふ摇7聪蜉敵稣{(diào)用樹(shù)。把調(diào)用層級(jí)最深的方法顯示在最上面,更容易找到最耗時(shí)的操作。

Hide System Libraries :隱藏系統(tǒng)庫(kù)文件。過(guò)濾掉各種系統(tǒng)調(diào)用,只顯示自己的代碼調(diào)用。ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos?ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos

出現(xiàn)報(bào)錯(cuò):Instruments could not acquire the necessary privileges to profile the target application.

ios獲取內(nèi)存使用情況,移動(dòng)端測(cè)試,ios,xcode,macos文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-730477.html

到了這里,關(guān)于iOS性能測(cè)試方法-獲取手機(jī)內(nèi)存數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • IOS手機(jī)耗電量測(cè)試

    IOS手機(jī)耗電量測(cè)試

    1. 耗電量原始測(cè)試方法 1.1 方法原理: 根據(jù)iPhone手機(jī)右上角的電池百分比變化來(lái)計(jì)算耗電量。 1.2實(shí)際操作: 在iOS通用設(shè)置中打開(kāi)電池百分比數(shù)值顯示,然后操作30分鐘,60分鐘,90分鐘,看開(kāi)始時(shí)和結(jié)束時(shí)電池百分比數(shù)值的差值。 1.3 優(yōu)缺點(diǎn)分析: 1、電池百分比數(shù)據(jù)非常粗略

    2024年02月06日
    瀏覽(13)
  • 獲取linuxIP、內(nèi)存、cpu、磁盤(pán)IO等信息的Shell腳本及其講解

    獲取linuxIP、內(nèi)存、cpu、磁盤(pán)IO等信息的Shell腳本及其講解

    grep是一個(gè)在Unix和Unix-like系統(tǒng)上使用的命令行工具,用于在文本文件中搜索匹配指定模式的行。它的名字來(lái)自于\\\"global regular expression print\\\"(全局正則表達(dá)式打?。┑目s寫(xiě)。grep的基本用法是通過(guò)指定一個(gè)正則表達(dá)式模式和一個(gè)文件名(或者從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù)),來(lái)查找和打印

    2024年04月27日
    瀏覽(25)
  • Android/iOS性能測(cè)試工具-SoloX

    Android/iOS性能測(cè)試工具-SoloX

    SoloX - Android/iOS性能數(shù)據(jù)實(shí)時(shí)采集工具。支持收集被測(cè)應(yīng)用CPU、內(nèi)存、FPS、流量等性能數(shù)據(jù),進(jìn)行圖表化展示。 官網(wǎng):GitHub - smart-test-ti/SoloX: SoloX - Real-time collection tool for Android/iOS performance data.(Android性能測(cè)試android performanceiOS性能測(cè)試ios performance移動(dòng)端性能測(cè)試mobile perform

    2024年02月03日
    瀏覽(22)
  • 怎樣在iOS手機(jī)上進(jìn)行自動(dòng)化測(cè)試

    怎樣在iOS手機(jī)上進(jìn)行自動(dòng)化測(cè)試

    Airtest支持iOS自動(dòng)化測(cè)試,在Mac上為iOS手機(jī)部署iOS-Tagent之后,就可以使用AirtestIDE連接設(shè)備,像連接安卓設(shè)備一樣,實(shí)時(shí)投影、控制手機(jī)。iOS測(cè)試不僅限于真機(jī)測(cè)試,iOS模擬器也可以進(jìn)行。Mac端上部署完成后還可以提供給同一局域網(wǎng)內(nèi)的windows上遠(yuǎn)程連接使用。同時(shí)支持airtest圖

    2024年02月04日
    瀏覽(24)
  • 如何在iOS手機(jī)上進(jìn)行自動(dòng)化測(cè)試

    如何在iOS手機(jī)上進(jìn)行自動(dòng)化測(cè)試

    ?? 視頻學(xué)習(xí):文末有免費(fèi)的配套視頻可觀看 ???關(guān)注公眾號(hào)【互聯(lián)網(wǎng)雜貨鋪】,回復(fù) 1?,免費(fèi)獲取軟件測(cè)試全套資料,資料在手,漲薪更快 Airtest支持iOS自動(dòng)化測(cè)試,在Mac上為iOS手機(jī)部署iOS-Tagent之后,就可以使用AirtestIDE連接設(shè)備,像連接安卓設(shè)備一樣,實(shí)時(shí)投影、控制手

    2024年02月20日
    瀏覽(24)
  • 利用tidevice+mysql+grafana實(shí)現(xiàn)ios性能測(cè)試

    利用tidevice+mysql+grafana實(shí)現(xiàn)ios性能測(cè)試

    利用tidevice+mysql+grafana實(shí)現(xiàn)ios性能測(cè)試 tidevice是一個(gè)可以和ios設(shè)備進(jìn)行通信的工具,提供以下功能: 截圖 獲取手機(jī)信息 ipa包的安裝和卸載 根據(jù)bundleID 啟動(dòng)和停止應(yīng)用 列出安裝應(yīng)用信息 模擬Xcode運(yùn)行XCTest,常用的如啟動(dòng)WebDriverAgent測(cè)試(此方法不依賴xcodebuild) 獲取指定應(yīng)用性

    2024年02月11日
    瀏覽(18)
  • Linux系統(tǒng)運(yùn)行時(shí)參數(shù)命令(性能監(jiān)控、測(cè)試)(3)網(wǎng)絡(luò)IO性能監(jiān)控

    Linux系統(tǒng)運(yùn)行時(shí)參數(shù)命令(性能監(jiān)控、測(cè)試)(3)網(wǎng)絡(luò)IO性能監(jiān)控

    通常用帶寬、吞吐量、延時(shí)、PPS(Packet Per Second)等指標(biāo)衡量網(wǎng)絡(luò)性能 帶寬 ,表示鏈路的最大傳輸速率,單位通常為b/s(比特/秒) 吞吐量 ,表示單位時(shí)間內(nèi)成功傳輸?shù)臄?shù)據(jù)量,單位通常為b/s(比特/秒)或者B/s(字節(jié)/秒)。吞吐量受帶寬限制,而吞吐量/帶寬,也就是 網(wǎng)絡(luò)

    2024年02月13日
    瀏覽(21)
  • 【Charles】成功解決使用iOS手機(jī)抓包時(shí),iOS手機(jī)連接網(wǎng)絡(luò)失敗&Charles配置方法

    【Charles】成功解決使用iOS手機(jī)抓包時(shí),iOS手機(jī)連接網(wǎng)絡(luò)失敗&Charles配置方法

    解決方法:原來(lái)是因?yàn)槲覔Q了一臺(tái)電腦,需要重新安裝手機(jī)的證書(shū),不能用之前的證書(shū)。而且安裝完證書(shū)以后,Charles沒(méi)有彈出讓我allow的窗口,就直接可以抓包了。 配置方法如下,搬運(yùn)自同事大佬: 手機(jī)和電腦連接同一個(gè)網(wǎng)絡(luò),啟動(dòng)charles工具 iOS手機(jī)代理配置,服務(wù)器及端口

    2024年02月11日
    瀏覽(27)
  • ios開(kāi)發(fā) swift5 蘋(píng)果手機(jī)怎樣獲取藍(lán)牙設(shè)備的mac地址

    ios開(kāi)發(fā) swift5 蘋(píng)果手機(jī)怎樣獲取藍(lán)牙設(shè)備的mac地址

    如設(shè)備藍(lán)牙名為: 藍(lán)牙名_mac app這邊展示藍(lán)牙名的時(shí)候,就只展示 藍(lán)牙名 , 去掉后面的 _mac 其他用到藍(lán)牙名的地方,都用這樣的方式處理 如下圖,箭頭部分就是廣播出的mac地址 如果不是通過(guò)搜索獲取到peripheral,而是通過(guò)retrievePeripherals方法獲取到peripheral。這個(gè)時(shí)候就只能獲

    2024年02月03日
    瀏覽(17)
  • IOS手機(jī)和車機(jī)互聯(lián)自動(dòng)化測(cè)試

    IOS手機(jī)和車機(jī)互聯(lián)自動(dòng)化測(cè)試

    在酷熱的夏天,提前打開(kāi)空調(diào);在寒冷的冬天,提前加熱座椅和方向盤(pán)。這些貼心的功能都是通過(guò)手機(jī)遠(yuǎn)程控制汽車實(shí)現(xiàn)的。隨著汽車新四化的進(jìn)程推進(jìn),類似手機(jī)和車機(jī)連接的功能必然越來(lái)越多。 作為汽車行業(yè)的工程師,我們都知道每一個(gè)功能的背后,都離不開(kāi)反反復(fù)復(fù)的

    2024年02月10日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包