WTF?怎麼看到的是一堆十六進制內存地址?要這一堆有卵用?彆着急,往下看。php
上面說到,折騰了半天仍是沒能看到咱們本身的函數。原來,咱們的應用在編譯的時候,蘋果會給咱們生成一份叫作 「項目名.app.dSYM」 的文件,這份文件裏保存了咱們代碼的行數以及咱們寫的函數的十六進制地址。也就是說,若是咱們能拿到這份文件和函數的十六進制地址,咱們就能去咱們的代碼裏找到那個函數。git
爲了TimeProfiler能去咱們的項目裏找到對應的函數,因此咱們應該爲TimeProfiler配置獲取這份文件的環境,也就是做以下配置:程序員
0一、配置項目的Scheme。github
0二、配置Project。app
通過上面的配置,咱們再從新運行項目,而後按照上面的方式配置TimeProfiler,你就能看到下面的結果:ide
能夠看到,我爲了演示阻塞主線程寫了一個叫作blockMainThread的方法函數
-(void)blockMainThread{ for (int i = 0; i < 1000; i++) { NSLog(@"%d", i); } }
在tableView中滑動cell時,每循環一個cell就會調用這個blockMainThread方法,這樣會致使主線程被阻塞,以致於界面出現卡頓。而這一切都反應到了TimeProfiler的監聽結果裏,經過層級關係,咱們能看到blockMainThread方法佔用了90.4%的時間,並且咱們還能夠右鍵這個方法,就會出現Reveal in Xcode,點擊就能直接跳轉到Xcode中對應的方法裏了,很是方便。性能
最後,這裏有一個關於性能問題很奏效的文章,感興趣能夠研究一下。spa
下面這個連接是我全部文章的一個集合目錄。這些文章凡是涉及實現的,每篇文章中都有GIT地址,GIT上都有源碼。若是某篇文章恰好在你的實際開發中幫到你,又或者提供一種不一樣的實現思路,讓你以爲有用,那就看看這句話 「堅持天天點讚的人,99%都是帥哥美女,不再用單身了😀」線程
你還能夠關注我本身維護的簡書專題iOS開發心得。這個專題的文章都是實打實的乾貨。
若是你有問題,除了在文章最後留言,還能夠在微博@盼盼_HKbuy上給我留言,以及訪問個人Github。
做者:NewPan 連接:http://www.jianshu.com/p/0fd670547235 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。