亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS性能調優系列:使用TimeProfiler發現性能瓶頸

2019-11-14 19:28:42
字體:
來源:轉載
供稿:網友

硬廣:《IOS性能調優系列》第五篇,預計會有二十多篇,持續更新,歡迎關注。

之前四篇都是關注于內存方面,分析了內存泄漏、僵尸對象、內存分配,本篇介紹Time PRofiler工具的使用,開始真正的“性能”調優之旅。

Time Profiler還有之前介紹過的Leaks、Allocations工具,被戲稱為Instruments的救命三招,是當應用遇到問題時首先應當使用的三個工具。

Time Profiler幫助我們分析代碼的執行時間,找出導致程序變慢的原因,告訴我們“時間都去哪兒了?”。

在使用Time Profiler之前,先看看原始的性能分析方法。

原始的性能分析方法

 


這種分析方法估計是很多開發人員第一時間想到的,寫個單元測試,在開始和結束的地方記錄時間。

示例代碼:

NSDate *stDate = [NSDate date];for(int i = 0; i < 999; i++){// do something   }NSDate *endDate = [NSDate date];NSLog(@"time:%f", [endDate timeIntervalSinceDate:stDate]);

通過計算時差,可以算出中間消耗的時間,通過這種辦法可以一部分一部分的對可能出現性能瓶頸的代碼進行分析。

這種方法的缺點有以下亮點:

1、測試效率太低,很多性能瓶頸是很難預估到的,需要從上層到下層進行逐步排除;

2、無法對界面渲染的效率進行測試,找出界面性能瓶頸;

3、NSLog的分析不夠精確,可能在模擬器上由于開發設備性能速度快,無法明顯區分出性能瓶頸。

這也是使用Time Profiler工具的優勢,能以極高的效率找出性能瓶頸。

使用Time Profiler的性能分析方法


 

Time Profiler分析原理:它按照固定的時間間隔來跟蹤每一個線程的堆棧信息,通過統計比較時間間隔之間的堆棧狀態,來推算某個方法執行了多久,并獲得一個近似值。其實從根本上來說與我們的原始分析方法異曲同工,只不過其將各個方法消耗的時間統計起來。

和使用 Instruments的其他工具一樣,點擊XCode的Product菜單Profile啟動Instruments:

選擇Time Profiler工具開始測試,這時會自動啟動模擬器和Time Profiler錄制。

先進行一些App的操作,讓Time Profiler收集足夠的數據,尤其是你覺得那些有性能瓶頸的地方。

4、5、6所標記的面板是需要關注的:

4是擴展面板,用來跟蹤顯示堆棧;5是詳細地面板,可以從這里看到cpu運行的時間都消耗在哪里;6是選項面板,可以用來設置Time Profiler的運行參數。

通過對應用的操作,可以在詳細面板中看到那些最耗時的操作是哪些,并可以逐行展開查看:

圖標為黑色頭像的就是Time Profiler給我們的提示,有可能存在性能瓶頸的地方,可以逐漸向下展開,找到產生的根本原因。

比如我們通過分析,發現[CMTool getNewsTimeFromLong]這個時間格式化函數可能需要優化。

當然這里只是舉一個例子,性能調優應該首先從整體到細節的順序進行,才能收到最明顯的效果。

Time Profiler參數設置


 

這里邊幾個選項的含義如下:

Separate by Thread: 每個線程應該分開考慮。只有這樣你才能揪出那些大量占用CPU的"重"線程  

Invert Call Tree: 從上倒下跟蹤堆棧,這意味著你看到的表中的方法,將已從第0幀開始取樣,這通常你是想要的,只有這樣你才能看到CPU中話費時間最深的方法.也就是說FuncA{FunB{FunC}} 勾選此項后堆棧以C->B-A 把調用層級最深的C顯示在最外面

Hide Missing Symbols: 如果dSYM無法找到你的app或者系統框架的話,那么表中看不到方法名只能看到十六進制的數值,如果勾線此項可以隱藏這些符號,便于簡化數據

Hide System Libraries: 勾選此項你會顯示你app的代碼,這是非常有用的. 因為通常你只關心cpu花在自己代碼上的時間不是系統上的

Show Obj-C Only: 只顯示oc代碼 ,如果你的程序是像OpenGl這樣的程序,不要勾選側向因為他有可能是C++的  

Flatten Recursion: 遞歸函數, 每個堆棧跟蹤一個條目

Top Functions: 一個函數花費的時間直接在該函數中的總和,以及在函數調用該函數所花費的時間的總時間。因此,如果函數A調用B,那么A的時間報告在A花費的時間加上B花費的時間,這非常真有用,因為它可以讓你每次下到調用堆棧時挑最大的時間數字,歸零在你最耗時的方法。

上面的參數在實踐中合理設置,也沒有什么太多技巧,就是通過數據的隱藏、顯示讓我們更關注于想找到的數據。

天下應用,唯快不破!尤其是手機應用,更應該注意用戶體驗和響應速度。


 

記錄,為更好的自己!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕无线精品亚洲乱码一区| 欧美黑人视频一区| 91精品啪aⅴ在线观看国产| 欧美裸体男粗大视频在线观看| 久久99精品国产99久久6尤物| 欧美怡红院视频一区二区三区| 国产成人精品日本亚洲专区61| 在线精品国产欧美| 久久影院中文字幕| 国产精品久久久久久久美男| 亚洲自拍欧美另类| 欧美区二区三区| 91av在线播放视频| 色中色综合影院手机版在线观看| 久久久久久中文| 成人网在线免费看| 色综合亚洲精品激情狠狠| 自拍偷拍亚洲一区| 亚洲精品一区中文字幕乱码| 亚洲91精品在线| 国产欧美一区二区三区久久人妖| 国产精品久久久久久av福利软件| 亚洲free性xxxx护士白浆| 欧美美女操人视频| 欧美一区二区色| 国产99久久精品一区二区 夜夜躁日日躁| 成人黄色片网站| 福利二区91精品bt7086| 日韩av手机在线观看| 亚洲影视中文字幕| 亚洲天堂日韩电影| 国产精品视频一区二区三区四| 最近2019好看的中文字幕免费| 亚洲色无码播放| 久久精品国产精品| 最近的2019中文字幕免费一页| 色婷婷成人综合| 亚洲图片制服诱惑| 国内精品一区二区三区| 欧美亚洲午夜视频在线观看| 亚洲第一精品电影| 久久99精品视频一区97| 国产精品美女免费| 亚洲精品美女久久久| 国产第一区电影| 影音先锋欧美精品| 永久555www成人免费| 国产精品入口夜色视频大尺度| 国产一区二区av| 91精品国产色综合| 亚洲精品视频免费在线观看| 日韩一区二区三区在线播放| 亚洲女成人图区| 一本色道久久88精品综合| 欧美日韩亚洲网| 91色视频在线观看| 在线播放国产一区中文字幕剧情欧美| 亚洲欧美精品一区二区| 亚洲开心激情网| 国产99久久精品一区二区| 亚洲视频专区在线| 久久久精品亚洲| 国产精品久久久久久中文字| 精品视频中文字幕| 亚洲白虎美女被爆操| 日本三级韩国三级久久| 麻豆国产精品va在线观看不卡| 国语自产精品视频在线看一大j8| 国产成人精品在线观看| 欧美大尺度激情区在线播放| 国产精品久久久久久久久久久久久久| 亚洲xxxx在线| 国产精品免费一区二区三区都可以| 亚洲视频在线观看视频| 清纯唯美日韩制服另类| 欧洲成人免费aa| 91超碰中文字幕久久精品| 国产美女精品视频免费观看| 欧美日韩国产色| 成人免费在线视频网站| 国产精品ⅴa在线观看h| 精品人伦一区二区三区蜜桃网站| 亚洲天堂av在线免费观看| 欧美午夜精品伦理| 九九久久精品一区| 欧美洲成人男女午夜视频| 欧美激情在线观看| 成人97在线观看视频| 成人xxxxx| 国产91精品视频在线观看| 最近2019中文字幕在线高清| 亚洲国产精品高清久久久| 欧美日韩在线观看视频小说| 精品久久久久久国产91| 午夜精品久久久久久久久久久久久| 亚洲四色影视在线观看| 亚洲欧美资源在线| 国产亚洲精品久久久优势| 538国产精品视频一区二区| 欧美丝袜一区二区| 中文字幕日韩电影| 欧美日韩国产精品一区二区不卡中文| 久久久久久尹人网香蕉| 1769国内精品视频在线播放| 亚洲字幕在线观看| 一本色道久久88综合亚洲精品ⅰ| 久久在精品线影院精品国产| 91在线网站视频| 亚洲精品免费av| 欧美—级a级欧美特级ar全黄| 日韩视频免费中文字幕| 亚洲国产欧美一区二区丝袜黑人| 久久久精品久久久| 日韩电影中文字幕在线观看| 亚洲日韩第一页| 久久影院免费观看| 久久国产色av| 亚洲性日韩精品一区二区| 在线观看精品自拍私拍| 国产极品精品在线观看| 69国产精品成人在线播放| 欧美激情视频网址| 国产精品久久久久久久久久东京| 久久色精品视频| 欧美理论在线观看| 欧美精品电影免费在线观看| 国产精品自产拍在线观看| 日韩av电影中文字幕| 久久成人国产精品| 日本高清+成人网在线观看| 国产精品美女免费| 国产精品露脸自拍| 国产精品69久久久久| 国内精品400部情侣激情| 亚洲国产精品va在线| 日韩美女主播视频| 亚洲午夜色婷婷在线| 久久亚洲国产精品成人av秋霞| 美女撒尿一区二区三区| 亚洲成人aaa| 欧美乱大交做爰xxxⅹ性3| 久久99精品久久久久久琪琪| 久久久久成人网| 成人欧美一区二区三区在线| 欧美亚洲视频在线观看| 51久久精品夜色国产麻豆| 一区二区三欧美| 国产精品91免费在线| 成人免费大片黄在线播放| 狠狠久久亚洲欧美专区| 成人网中文字幕| 亚洲影院色无极综合| 国产精品美女主播| 91成人国产在线观看| 欧美老女人xx| 最新国产精品拍自在线播放| 91精品国产乱码久久久久久久久| 日本精品视频在线观看| 精品久久久国产精品999| 秋霞成人午夜鲁丝一区二区三区| 精品国产成人av| 精品国产一区二区三区久久| 91成人在线播放| 亚洲男人的天堂在线播放|