應用性能可視化監控實踐_第1頁
應用性能可視化監控實踐_第2頁
應用性能可視化監控實踐_第3頁
應用性能可視化監控實踐_第4頁
應用性能可視化監控實踐_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、應用性能可視化監控實踐1APM的概念模型/prioritizing-gartners-apm-model2重要次要重要 次要 重要穩定的運行環境穩定的網絡連接流暢的操作界面盡量少的資源消耗漂亮的視覺交互3聚焦終端用戶的體驗/apm-evolution-end-user-experience穩定的運行環境4iOS Crash的問題的現狀5iOS Crash的問題的現狀6Crash分析與處理方法傳統方式開發階段開發人員Debug調試驗證測試人員測試驗證,提供設備奔潰日志給開發人員分析發布階段用戶反饋,開發人員debug復現用戶反饋,導出crashlog給開發分析通過iTunes connect服務

2、提供的Crash Report日志APM服務集成SDK開發&發布階段Crash日志云端查詢Crash率異常短信告警Crash 類型分類0 x000000008badf00d 0 x00000000000000007Crash日志流程圖8采集類型工具腳本服務端解碼性能Abort 率采集原理應用Active時,寫入標記文件應用非active,清除標記文件 應用啟動時是否有標記文件,上傳Crash埋點開始點擊AppIcon應用active寫入啟動標志是否存在crash日志是應用noactive清除啟動標志上傳Crash(無堆棧)結束否CrashLow Memory CrashWatchdog tim

3、eout (0 x8badf00d) 電量監控9實時Crash10Crash 詳情11穩定的網絡連接12移動網絡傳輸鏈路13網絡拓撲NSURLSessionTaskTransactionMetrics14指標錯誤率 每分鐘請求量 平均響應時間15方式一:method Swizzling16方法二:Proxy轉發17方法三:動態binding18NSURLConnection 實踐19NSURLSession 實踐20CFNetworking實踐21網絡錯誤列表22網絡錯誤詳情23網絡拓撲24http請求25流暢的操作界面26Darwin 內核結構系統狀態內核層APIUnix接口Applicat

4、ion environmentsCommon Service27RunLoop任務分發方案一:監聽FPS 降低 CADisplayLink 方案二:主線程 Runloop 執行2829RunLoop原理RunLoop1.通知Observer:即將進入runLoop2.通知Observer:即將處理timer3.通知Observer:即將處理source04.處理 blocks & Source05.如果有Source1,跳到9步6.通知Observer線程即將休眠7.休眠等待喚醒8.通知Observer線程剛被喚醒9.處理喚醒時收到的消息,之后跳回210.通知Observer即將退出runlo

5、opkCFRunloopBefore TimerskCFRunloopBeforeS ource處理事件響應刷新UIkCFRunloopBefore WaitingkCFRunloopAfterW aiting刷新UI卡頓檢測原理主線程RunLoop1.通知Observer:即將進入runLoop2.通知Observer:即將處理timer3.通知Observer:即將處理source04.處理 blocks & Source05.如果有Source1,跳到9步6.通知Observer線程即將休眠7.休眠等待喚醒8.通知Observer線程剛被喚醒9.處理喚醒時收到的消息,之后跳回210.通知

6、Observer即將退出runloopkCFRunloopBefore TimerskCFRunloopBeforeS ource處理事件響應刷新UIkCFRunloopBefore WaitingkCFRunloopAfterW aiting刷新UI監聽線程注冊Runloop回調循環檢測主線程runloop計數器+runloop是否跑完source的狀態否計數器N dump 內存堆棧30卡頓檢測的問題問題:數據量大,實時處理有困難,數據采集可能影響到業務服務器的性能一直check和dump堆棧比較耗電啟動和退后臺卡頓解決:用戶采樣按堆棧做聚合觸屏調整watch dog 動態調整31盡量少的資

7、源消耗32遇到的性能問題發熱卡頓OOMCPU內存幀率IO電量33監控點獲得CPU,內存數據mach_task_self()task_info()resident_sizeThreadsexcep tpthread “com.alibaba.malimonitor”thread_info()cpu_usage34遍歷task_threads()mach_task_self電量獲取方案UIDevice currentDevice得到BatteryState和BatteryLevel方案一方案二35IOKitpath:/System/Library/Frameworks/IOKit.framework得到InstantAmperage(電流)和Voltage(電壓)電量獲取方案方案三 替換線程allocator方案四這些表中包含了iOS系統采集的所有應用的小時級別的耗電量36電量獲取方案37方案優點缺點UIDevice屬性簡單粗粒度,不符合要求IOKit可以拿到當前的電流電壓無法精確到應用級別替換線程Allocator拿到數據同上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論