深度專訪:360手機衛士的性能監控與優化

作為一款移動端產品,除了要保證安全性之外,手機衛士還需要考慮儘量減少對手機資源的消耗,而要做到這些,360手機衛士對於自身的性能優化、性能監控,以及對不同產品的適配問題,有哪些改進之處值得我們借鑑呢?

2016年8月18-19日,由極客邦InfoQ聽雲聯合主辦APMCon2016中國應用性能管理大會將在北京舉行(現在報名,享8折優惠),聚焦當前最為關鍵的移動端、Web端和Server端的性能監控和管理技術。

本屆大會,我們有幸邀請到了360手機衛士高級技術經理 劉剛,前來分享《手機衛士之性能演進歷程》的內容,會詳細地介紹Android端手機衛士的性能優化之路,如何做到對系統故障的預防、監控、診斷、響應等技術細節。

受訪嘉賓簡介

劉剛,360手機衛士高級技術經理。360無線技術委員會委員,手機衛士開發leader,有著16年開發經驗,有著豐富的客戶端/服務器端/無線端的開發經驗,對於新技術仍然保持著強烈好奇心。

InfoQ:360手機衛士的性能優化經歷了哪幾個階段?

劉剛:我大概是在2013年10月來到手機衛士,經歷了手機衛士優化的3個階段:

第一個階段主要是插件化和拆分進程,這個階段主要的目的是解決方法數和內存的問題。

第二個階段功能模塊插件化,這個階段的目的解決兩件事:

  1. 解決卡慢問題,因為代碼模塊化解耦後,主程序的代碼(核心dex)減少,並且經過一定優化後,比所有競品APK體積小,運行內存小;

  2. 功能模塊獨立,用戶可以按需下載,獨立升級;

第三個階段主要是性能監控常態化,這個階段主要是通過AOP的手段,進行實時監控,持續對內存、啟動速度、電量、流量等優化。

InfoQ:對於手機衛士這種產品,在性能上有哪些優化點?

劉剛:手機衛士產品作為最常用的移動端產品,和其他移動端產品最大的區別是在非主動使用的情況下,在保證用戶手機安全性的同時,要求我們在後臺進程對於系統的影響做到最小,所以對於後臺進程要做到佔用更小的內存,更高效的執行速度,使用非輪詢方式等。

InfoQ:對於代碼檢測,你們使用了哪些工具,是否自己開發了相關的工具?

劉剛:對於代碼檢查,我們使用Lint、findbugs和我們360自己獨有的代碼紅線工具,其中findbugs我們進行了定製化的修改,添加了檢測器,主要檢查流關閉問題。

InfoQ:我看到你們使用AOP實現靜態埋點,為什麼使用這種技術?

劉剛:其實AOP和無痕埋點我們都有,我們AOP主要是做流量、電量等一些監控,這種不存在兼容性的適配問題,無痕埋點這種我們主要是用於啟動速度,內存等一些監控,我們是根據監控的對象進行了不同的選型。

InfoQ:靜態埋點如何保證最少資源消耗,如何做可擴展?

劉剛:我們使用靜態埋點是採樣的機制,有云控的開關和有效的監控期,另外在靜態埋點處我們只是做了一個異步採樣機制,並沒有其他執行代碼,這樣基本上能保證較少的資源消耗,因為靜態埋點的機制決定了,擴展性是相對較弱的,我們是通過預埋一些樁,在AOP里加了一些動態化的監控機制,通過下發插件或者雲控指令的方式進行了一定程度的擴展。

InfoQ:對於實時的性能監控,你們有哪些手段?

劉剛:主要對於進程的冷熱啟動、Activity等四大組件的加載時間、線程和task的卡慢和內存監控、啟動次數,具體的實現方式和原理都會在APMCon2016上進行分享。

InfoQ:對於移動應用的性能問題定義了哪些指標?

劉剛:移動端的設備性能差別非常大,性能指標和機型、ROM相關性特別大,像內存指標不同ROM、機型上的差異很大,所以定義性能指標時一定和機型進行參考,我們的性能指標主要是包含內存、冷熱啟動時間、四大組件的加載時間、流量、電量等。

InfoQ:我看到你們使用了插件化技術,對於插件的性能監控和修復,與一般的應用相比有哪些特殊的地方?

劉剛:我們的插件都具有獨立的可升級能力,修復只要利用插件升級即可,像熱修復對於插件意義沒有那麼大。另外我們手機衛士的插件都是通過我們自己的編譯後臺生成的,具備所有的靜態AOP和動態監控能力,和我們主程序沒有什麼特殊的地方。

InfoQ:在8月份的APMCon2016大會上,您將現場分享《手機衛士之性能演進歷程》內容,具體會講那些技術點呢?參會者能有哪些收益?

劉剛:會詳細描述我們手機衛士的性能演進的過程,遇到的問題,解決方法以及對應的代碼實現,主要包含代碼檢測、自動化分析、資源優化、實時性能監控、內存分析、磁盤分析以及動態熱修復等技術點,相信大家還是有感興趣的點。

InfoQ:感謝劉老師接受我們的採訪,期待您在APMCon上的精彩演講。

除了360,還有阿里、騰訊、京東、美團、去哪兒網等大公司的大牛前來分享APM技術。現在報名還不晚,大會專門為InfoQ讀者準備了優惠碼:APMCon_InfoQ6折再減500,手快有,手慢無!


分享到:


相關文章: