instruments

一 instrument自帶模板

  1. Blank
    創(chuàng)建一個空的模板,你可以自定義的添加各種工具摧莽。
  2. Activity Monitor
    可以只用這個模板,研究系統(tǒng)工作負載和虛擬內(nèi)存大小的關系
  3. Allocations
    將Allocations和VM跟蹤器加到跟蹤文檔中五慈,使用該工具可以監(jiān)視內(nèi)存和對象的內(nèi)存分配方式和情況己肮。
  4. CocoaLayout
    是一種Cocoa布局工具 ,可以應用于iOS模擬器和Cocoa桌面應用茎刚,但是不能和連接的iOS設備一起使用襟锐。觀察NSLayoutConstraint對象的改變,幫助我們判斷什么時間什么地點的constraint是否合理
  5. Core Animation
    將CoreAnimation加入到跟蹤文檔中膛锭,可以測量ios設備上每秒的CoreAnimation幀數(shù)粮坞,這可以幫助你理解內(nèi)容是如何渲染到屏幕上的笛质,(圖形性能)這個模塊顯示程序顯卡性能以及CPU使用情況。
  6. CoreData
    將CoreData數(shù)據(jù)提取捞蚂、緩存缺失和存儲加入到跟蹤文檔中,使用這個工具可以檢測應用程序中數(shù)據(jù)的存儲交互跷究。
  7. Counters
    收集使用時間或基于事件的抽樣方法的性能監(jiān)控計數(shù)器(PMC)事件姓迅。
  8. Energy Log
    耗電量監(jiān)控,將Energy Diagnostics, CPU Activity, Display Brightness, Sleep/Wake, Bluetooth, WiFi, and GPS instruments加入到跟蹤文檔中進行檢測俊马。
  9. File Activity
    將File Activity, Reads/Writes, File Attributes, and Directory I/O instruments 加入到跟蹤文檔中丁存,只用這個模板可以讓你檢查系統(tǒng)文件的使用情況,可以檢查文件的打開柴我、關閉解寝、讀和寫操作,同時也可以檢測文件系統(tǒng)本身的改變艘儒,包括權(quán)限和所有權(quán)發(fā)生的改變聋伦。
  10. Leaks
    將the Allocations and Leaks instruments加入到模板中,使用這個模板可以幫助你檢測內(nèi)存的泄漏界睁。
  11. Metal System Trace
    它是是apple 2014年在ios平臺上推出的高效底層的3D圖形API觉增,它通過減少驅(qū)動層的API調(diào)用CPU的消耗提高渲染效率。
  12. Network
    用鏈接工具分析你的程序如何使用TCP/IP和UDP/IP鏈接翻斟。
  13. OpenGL ES Analysis
    將OpenGL ES Analyzer and OpenGL ES Driver加入到模板中逾礁,這個模塊測量分析OpenGL ES活動正確性檢測以及表現(xiàn)問題,提供解決建議访惜。
  14. System Trace
    系統(tǒng)跟蹤嘹履,通過顯示當前被調(diào)度線程提供綜合的系統(tǒng)表現(xiàn),顯示從用戶到系統(tǒng)的轉(zhuǎn)換代碼通過兩個系統(tǒng)調(diào)用或內(nèi)存操作债热。
  15. System Usage
    這個模板記錄關于文件讀寫砾嫉,sockets,I/O系統(tǒng)活動阳柔, 輸入輸出焰枢。
  16. Time Profile
    執(zhí)行對系統(tǒng)的CPU上運行的進程低負載時間為基礎采樣。
  17. Zombies
    測量一般的內(nèi)存使用舌剂,專注于檢測過度釋放的野指針對象济锄,也提供對象分配統(tǒng)計,以及主動分配的內(nèi)存地址歷史霍转。

二 Activity Monitor界面介紹

1. Summary與Parent Child類似

image.png
  1. process id :進程id
  2. process name :進程名
  3. user name:用戶名
  4. %CPU:cpu占比
  5. threads:線程
  6. real mem:真正使用的內(nèi)存
  7. virtual mem:虛擬內(nèi)存
  8. architecture:架構(gòu)
  9. cpu time:CPU時間
  10. sudden term:驟減項

2. Samples

image.png
  1. total thread:總線程
  2. physical memory wired:物理內(nèi)存連接大小
  3. physical memory active:活動的物理內(nèi)存大小
  4. physical memory Inactive:不活動的物理內(nèi)存大小
  5. physical memory used:使用的物理內(nèi)存大小

三 Allocations

參考Alloactions簡單使用

1. 內(nèi)存分類

1.Leaked memory: Memory unreferenced by your application that cannot be used again or freed (also detectable by using the Leaks instrument).

2.Abandoned memory: Memory still referenced by your application that has no useful purpose.

3.Cached memory: Memory still referenced by your application that might be used again for better performance.
  1. 其中 Leaked memory和 Abandoned memory 都屬于應該釋放而沒釋放的內(nèi)存荐绝,都是內(nèi)存泄露
  2. 在 ARC 時代更常見的內(nèi)存泄露是循環(huán)引用導致的Abandoned memory,Leaks 工具查不出這類內(nèi)存泄露,需要借助Allocations

2. 界面介紹

image.png
  1. Persistent Bytes:持久分配的內(nèi)存所占字節(jié)數(shù)(未釋放)即該類對象在內(nèi)存中占得總內(nèi)存
  2. Persistent:持久創(chuàng)建的對象個數(shù)(未釋放)即該對象存在于內(nèi)存中的個數(shù)
  3. Transient:臨時分配的對象個數(shù)(未釋放)即存在過已經(jīng)被回收的對象的個數(shù)
  4. Total Bytes:分配的所有內(nèi)存所占字節(jié)數(shù)(未釋放)
  5. Total:創(chuàng)建的對象總數(shù)(未釋放)

3. 了解每個方法所占用的內(nèi)存情況

  1. Details選擇Call Trees
  2. Allocations Lifespan選擇All Allocations
  3. Allocations Type選擇All Heap&Anonymous VM
  4. Call Tree勾選Hide System Libraries


    image.png

四 ?Leaks

  1. 首先打開Leaked避消,跑起工程來低滩,點擊要測試的頁面召夹,如果有內(nèi)存泄漏,會出現(xiàn)下圖中的紅色的x


    image.png

2.定位leak泄露的地方

  • Detail選擇Call Tree模式
  • 底部的Call Tree模式勾選Hide System Libraries
  • 在中間方法調(diào)用后面如果有箭頭點擊展開恕沫,直到?jīng)]有箭頭為止


    image.png

參考:http://www.reibang.com/p/9e94e42cfb01

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末监憎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子婶溯,更是在濱河造成了極大的恐慌鲸阔,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迄委,死亡現(xiàn)場離奇詭異褐筛,居然都是意外死亡,警方通過查閱死者的電腦和手機叙身,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門渔扎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人信轿,你說我怎么就攤上這事晃痴。” “怎么了财忽?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵愧旦,是天一觀的道長。 經(jīng)常有香客問我定罢,道長笤虫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任祖凫,我火速辦了婚禮琼蚯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惠况。我一直安慰自己遭庶,他們只是感情好,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布稠屠。 她就那樣靜靜地躺著峦睡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪权埠。 梳的紋絲不亂的頭發(fā)上榨了,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天,我揣著相機與錄音攘蔽,去河邊找鬼龙屉。 笑死,一個胖子當著我的面吹牛满俗,可吹牛的內(nèi)容都是我干的转捕。 我是一名探鬼主播作岖,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼五芝!你這毒婦竟也來了痘儡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤枢步,失蹤者是張志新(化名)和其女友劉穎谤辜,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體价捧,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年涡戳,在試婚紗的時候發(fā)現(xiàn)自己被綠了结蟋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡渔彰,死狀恐怖嵌屎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恍涂,我是刑警寧澤宝惰,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站再沧,受9級特大地震影響尼夺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炒瘸,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一淤堵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧顷扩,春花似錦拐邪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至婶芭,卻和暖如春东臀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背犀农。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工啡邑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人井赌。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓谤逼,卻偏偏與公主長得像贵扰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子流部,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容