性能测试知多少-Instrument入门

本文章转载于搜狗测试

Instruments是Apple官方提供的一个强大的内置在xcode中的性能调试工具集,如果你想一点点了解它有多强大,就和我一起日积月累吧。

Instrument介绍

Instruments是一个强大灵活的性能分析和测试工具,能够帮助你分析OS X和iOS上的应用程序及进程,以便于更好地了解和优化其性能,现在就开始唠叨唠叨。

Why:忙忙人海为什么选中了你

iOS本身可用的性能测试工具并不多,为什么选择instruments:

1、越狱设备可通过后台进程采集数据,但是新设备无法越狱

2、在APP中嵌入性能采集模块,但是第三方应用无法使用

故,选择Apple自己家的instruments

when:什么时候使用instruments

当你想要对APP性能进行调优测试,解决问题,分析cpu、内存、资源消耗等信息时,就可以使用instruments进行监控。

在使用instruments之前可以使用xcode参考调试导航栏中指标信息,如图所示:

但是xcode调试获取到数据信息同release版本可能并不一致,并不能够真实的表达线上版本APP相关的性能指标,因此若想获取更真实的数据、同时想获得更详细的信息时,就可以使用instruments。

What:Instruments能够为你做什么?

1、检查一个或多个应用、进程的运行情况

2、检查设备详细的配置,例如WiFi,蓝牙

3、在模拟器或真机上执行概要分析

4、可以自动以的设置DTrace工具,用来分析系统和应用程序的运行情况

5、跟踪源代码中存在的问题

6、对应用进行性能分析

7、查找应用中的内存问题,如内存泄漏等问题

8、确定优化应用程序的方法,从而提高性能

9、排除常规系统故障

10、可以将工具的配置作为模板保存起来

how:怎样使用Instruments?

举个栗子(timeprofiler)

Time Profiler工具对系统CPU上运行的进程执行低开销,基于时间的采样。通过该工具能够查看内核和进程的使用、性能存在的瓶颈。

使用方法:

1、打开跟踪模板profiling template,选择

2、选择指定的调试设备及目标应用,点

3、击record按钮,开始执行进行监控

4、在监控数据过程中,正常使用APP。

5、点击stop按钮,结束数据收集

6、分析收集到数据信息。使用CPU使用率视图来比较指定时间段内的内核的使用情况,查找不平衡的内核使用情;使用线程策略视图来检查应用程序在执行工作时对线程的使用,主线程上的大量工作可能会使应用程序的用户界面无响应或速度变慢。

Instruments操作使用相关的知识,可以阅读官方文档,讲解真的超级详细

官方文档:

https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/index.html

Instrument常用工具

下面简单介绍几个常用的监测工具,想了解更多大家可通过官方文档继续挖掘。

allocation

用于发现内存不合理引用,检测重复操作能否正常分配、释放内存,若内存不能正确释放,就会出现内存的持续增长。

leak

用于检测内存泄漏问题,但是leak可能有时不能准确的定位内存泄漏问题,建议使用allocation。

core animation graphics

用来检测帧频率,来测量iOS应用程序的gpu性能。

time profiler

检测内核使用情况

ps:

使用CPU使用率视图来比较指定时间段内的内核的使用情况,查找不平衡的内核使用情;使用线程策略视图来检查应用程序在执行工作时对线程的使用,主线程上的大量工作可能会使应用程序的用户界面无响应或速度变慢。

energy log

能够监控设备电量的使用以及设备组件的开关状态,如cpu、gpu、网络、屏幕亮度、蓝牙、GPS、WiFi

通过连接设备进行电量监控,这样做会导致获取的数据并不够真实,因此在真实的情况下更准确地对设备进行监控才是我们想要的。

在iOS设备上录电量使用情况方法

1、设置->开发者->logging->start recording,点击启动,则可以在使用设备时对电量消耗进行记录。

2、电量监控完毕后,点击stop recording,结束记录。注意:若数据监控过程中,手机电量耗尽或关机,则记录的日志数据将丢失,因此使用时需注意这一点。

3、连接设备,在instruments中导入跟踪数据,file->import logged data from device.

4、分析收集到的监控数据,方法同上。

通过命令行使用工具

命令如下:

instruments -t "Activity Monitor"-D ~/Desktop/ab.trace -w "{deviceid}" -l 50000/private/var/mobile/Containers/Bundle/Application/{deviceid}/Map.app/Map

-D生成trace文件的保存目录

-W设备id

-L设置监控时间,单位毫秒

application指定应用所在目录

其他参数设置,详见官方文档

https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/Recording,Pausing,andStoppingTraces.html#//apple_ref/doc/uid/TP40004652-CH12-SW1

注意事项:

1.最小化工具对数据收集的影响

instrument旨在最大限度地减少其对数据收集的影响。因此可以通过更改一些基本设置,减少instrument对数据收集的影响。

如减少工具的采样时间,以便于收集更多的数据。然而减少采样时间导致的高采样率可能导致几个问题:

1)每个样品都需要处理时间。高采样率就会使用更多的处理时间。

2)采样间隔时间可能不一致。每次启动样本会出现中断。所以当使用非常小的采样间隔时,这些中断发生时的变化可能导致采样率的显着变化。

3)小采样间隔导致采集更多样品。每个样本都使用系统内存,大量样本会快速占用内存使得机器剩余可用内存更少。

2.延迟模式运行instrument

当你退出正在测试的APP时再进行数据分析,能都提高性能相关数据的准确性。通常instruments在应用程序运行时分析和显示数据,允许你在收集数据时查看数据。但是执行分析会占用CPU时间和内存导致目标进程效率降低,导致进程不能正常的进行。而以延迟模式运行就是在应用程序运行完毕后或单击停止后直到数据收集完成,再进行数据分析。

在延迟模式下,instruments完成数据采集后,instruments处理数据并在屏幕上显示。推迟数据分析会为数据收集过程的后期增加时间,但它有助于确保与性能相关的数据准确。

关于instruments性能测试的思考

通过对instrument的调研使用,发现instruments确实能够帮助我们进行性能调优,但是作为测试人员,我们更想通过采集的数据定位分析问题,instruments展示给我们的数据并不完全,如Activity Monitor只提供了CPU瞬时值,Network也只提供了总流量,它们均不提供采集样本值,想分析完整的采集数据,肿么办!通过非官方API解析trace文件,获取想要的数据,也许就是我们后续要做的事情~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容