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

下載本文檔

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

文檔簡介

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

2、提供的Crash Report日志APM服務集成SDK開發(fā)&發(fā)布階段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) 電量監(jiān)控9實時Crash10Crash 詳情11穩(wěn)定的網絡連接12移動網絡傳輸鏈路13網絡拓撲NSURLSessionTaskTransactionMetrics14指標錯誤率 每分鐘請求量 平均響應時間15方式一:method Swizzling16方法二:Proxy轉發(fā)17方法三:動態(tài)binding18NSURLConnection 實踐19NSURLSession 實踐20CFNetworking實踐21網絡錯誤列表22網絡錯誤詳情23網絡拓撲24http請求25流暢的操作界面26Darwin 內核結構系統(tǒng)狀態(tài)內核層APIUnix接口Applicat

4、ion environmentsCommon Service27RunLoop任務分發(fā)方案一:監(jiān)聽FPS 降低 CADisplayLink 方案二:主線程 Runloop 執(zhí)行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監(jiān)聽線程注冊Runloop回調循環(huán)檢測主線程runloop計數(shù)器+runloop是否跑完source的狀態(tài)否計數(shù)器N dump 內存堆棧30卡頓檢測的問題問題:數(shù)據(jù)量大,實時處理有困難,數(shù)據(jù)采集可能影響到業(yè)務服務器的性能一直check和dump堆棧比較耗電啟動和退后臺卡頓解決:用戶采樣按堆棧做聚合觸屏調整watch dog 動態(tài)調整31盡量少的資

7、源消耗32遇到的性能問題發(fā)熱卡頓OOMCPU內存幀率IO電量33監(jiān)控點獲得CPU,內存數(shù)據(jù)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系統(tǒng)采集的所有應用的小時級別的耗電量36電量獲取方案37方案優(yōu)點缺點UIDevice屬性簡單粗粒度,不符合要求IOKit可以拿到當前的電流電壓無法精確到應用級別替換線程Allocator拿到數(shù)據(jù)同上

溫馨提示

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

評論

0/150

提交評論