# Xcode(swift,OC)效能分析工具 Instruments — Time Profiler使用 # 關於 Time Profiler 我想說的是 事情是這樣開始的,QA覺得畫面很卡。  我的搭檔跟我說:  於是開始學習這個測試工具。 # Time Profiler 我們來看看 Time Profiler 可以為我們做什麼事 ### 1. 檢視方法正在消耗CPU時間 time profile時間分析工具用來檢測應用CPU的使用情況,可以看到應用程序中各個方法正在消耗CPU時間,使用大量CPU不一定是個問題。客戶端中動畫就對CPU依賴就非常高,動畫本身也是非常苛刻且耗費資源較多的任務。 ### 2. 檢視程式碼運行時間 Time Profiler幫助我們分析程式碼的執行時間,找出導致程序變慢的原因,告訴我們“時間都去哪兒了?”。 ### 3. 跟踪每一個線程的堆棧信息 Time Profiler分析原理:它按照固定的時間間隔來跟踪每一個線程的堆棧信息,通過統計比較時間間隔之間的堆棧狀態,來推算某個方法執行了多久,並獲得一個近似值。其實從根本上來說與我們的原始分析方法異曲同工,只不過其將各個方法消耗的時間統計起來。 # 使用須知 當點擊Time Profiler應用程序開始運行後.就能獲取到整個應用程序運行消耗時間分佈和百分比.為了保證數據分析在統一使用場景真實行有如下點需要注意。 ### 1. 應用程序性能分析的時候,一定要使用真機 在開始進行應用程序性能分析的時候,一定要使用真機,模擬器運行在Mac上,然而Mac上的CPU往往比iOS設備要快。相反,Mac上的GPU和iOS設備的完全不一樣,模擬器不得已要在軟件層面(CPU)模擬設備的GPU,這意味著GPU相關的操作在模擬器上運行的更慢,尤其是使用CAEAGLLayer來寫一些OpenGL的代碼時候. 這就導致模擬器性能數據和用戶真機使用性能數據相去甚運。 ### 2. 應用程序運行一定要Release版本 而不是Debug版本. 在發布環境打包的時候,編譯器會引入一系列提高性能的優化,例如去掉調試符號或者移除並重新組織代碼.另iOS引入一種"Watch Dog"[看門狗]機制.不同的場景下,“看門狗”會監測應用的性能。如果超出了該場景所規定的運行時間,“看門狗”就會強制終結這個應用的進程.開發者可以crashlog看到對應的日誌.但Xcode在調試配置下會禁用"Watch Dog". # 開始使用 Xcode -> Open Developer Tool ->Instruments  選擇 Time Profiller  眼前就是 Time Profiller  我們來簡單使用一次 選擇要測試的裝置,要測試的專案,然後start record。  在APP啟用時,可以看到 APP Life Cycle  # Reference  [參考文章連結](https://juejin.cn/post/6844903649575960584)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up