Categories
程式開發

iOS性能優化實踐:頭條抖音如何實現OOM崩潰率下降50%+


iOS OOM 崩潰在生產環境中的歸因一直是困擾業界已久的疑難問題,字節跳動旗下的頭條、抖音等產品也面臨同樣的問題。
在字節跳動性能與穩定性保障團隊的研發實踐中,我們自研了一款基於內存快照技術並且可應用於生產環境中的OOM 歸因方案——線上Memory Graph。基於此方案,3 個月內頭條抖音OOM 崩潰率下降50%+。
本文主要分享下該解決方案的技術背景,技術原理以及使用方式,旨在為這個疑難問題提供一種新的解決思路。

OOM 崩潰背景介紹

叔叔

OOM 其實是Out Of Memory的簡稱,指的是在iOS 設備上當前應用因為內存佔用過高而被操作系統強制終止,在用戶側的感知就是App 一瞬間的閃退,與普通的Crash 沒有明顯差異。但是當我們在調試階段遇到這種崩潰的時候,從設備设置->隐私->分析与改进中是找不到普通類型的崩潰日誌,只能夠找到Jetsam開頭的日誌,這種形式的日誌其實就是OOM 崩潰之後系統生成的一種專門反映內存異常問題的日誌。那麼下一個問題就來了,什麼​​是Jetsam

Jetsam

Jetsam是iOS 操作系統為了控制內存資源過度使用而採用的一種資源管控機制。不同於MacOSLinuxWindows等桌面操作系統,出於性能方面的考慮,iOS 系統並沒有設計內存交換空間的機制,所以在iOS 中,如果設備整體內存緊張的話,系統只能將一些優先級不高或占用內存過大的進程直接終止掉。

原文鏈接:【https://www.infoq.cn/article/ox7u3YMWIWzaMt1Vgm7m】。未經作者許可,禁止轉載。