記憶體
即時記憶體分佈(可用/非活躍/活躍/鎖定)配合分配圖表同歷史記錄。
概覽
記憶體工具會顯示你裝置 RAM 嘅分配情況,有幾多記憶體可以即時回收,以及分佈隨時間點變化。
設計目的是解答實際問題,例如:
- 「呢部裝置而家有冇記憶體壓力?」
- 「記憶體係被系統(鎖定)、應用程式(活躍)定緩存(非活躍)佔用?」
- 「我嘅記憶體用量係咪穩定,定係有尖峰?」
喺 Lirum 入面,可用記憶體 係 iOS 通常可以快速回收嘅記憶體量:可用 + 非活躍。
目錄
分頁
- 概覽
- 詳細
- 歷史
概覽分頁
概覽分頁重點係 已用記憶體:
- 一個圓形儀表顯示已用(用緊)百分比。
- 已用記憶體量同總 RAM。
- 精簡分佈表:活躍、鎖定、非活躍、可用。
當你想快速睇下「裝置而家健康嗎?」可以用呢個畫面。 如果四行分佈加埋唔等於總記憶體,請參考 壓縮同「其他」。
詳細分頁
詳細分頁提供更完整分佈:
- 記憶體分配 圖表(活躍/鎖定/非活躍/可用)。
- 詳細記憶體資訊 表格,顯示大小同百分比。
- 一行 可用,即 可用 + 非活躍。
呢度最適合了解用緊邊種記憶體(同埋有冇機會被回收)。 如果可用/非活躍/活躍/鎖定嘅百分比加埋唔等於 100%,通常係因為有啲記憶體而家被歸類做壓縮或「其他」。
歷史分頁
歷史分頁幫你了解趨勢,而唔只係單一快照:
- 記憶體分配歷史:可用/非活躍/活躍/鎖定嘅堆疊時間線。
- 記憶體使用歷史:簡化版整體用量隨時間變化。
適合以下情況:
- 你懷疑有記憶體洩漏或工作負載失控(用量持續上升)。
- 你想將卡頓/App 重新載入同記憶體壓力做對應(用量先升後跌)。
- 你想睇下鎖定記憶體有冇增長並長期維持高位(通常係系統/驅動壓力)。
記憶體狀態
Lirum 採用同 iOS 報告一致嘅高層分類。以下係 iOS 記憶體最實用嘅「心智模型」分類:
| 分類 | 一般意思 | iOS 可以即時回收? |
|---|---|---|
| 可用 | 未用 RAM,可即時分配 | 可以(已經可用) |
| 非活躍 | 主要係緩存同最近冇用過嘅頁面 | 通常可以 |
| 活躍 | 而家用緊嘅工作集 | 唔可以直接回收 |
| 鎖定 | 鎖定、唔可分頁嘅系統記憶體 | 唔可以 |
| 壓縮 | 儲存在記憶體壓縮器入面嘅頁面 | 唔可以直接回收 |
| 其他 | 其餘分類(視乎 OS/裝置) | 視乎情況 |
可用(可用 + 非活躍)
可用 係實際「我仲有幾多空間?」嘅指標。
- 可用:已經未用嘅頁面。
- 非活躍:主要係可以丟棄或重新分配嘅緩存頁面。
所以 Lirum 會喺概覽儀表同詳細表格顯示 可用 = 可用 + 非活躍。
注意:可用 唔代表系統一定會即時無代價咁俾你咁多記憶體。回收非活躍頁面都可能要做工(丟棄緩存、寫回 dirty 頁面、之後重建緩存資料)。
實際意思:
- 如果 可用 高而穩定,即使 可用 低,裝置一般都仲有空間。
- 如果 可用 長期偏低(你做緊一般操作時都係咁),iOS 可以回收嘅緩存少咗,可能會開始用更強壓力措施(壓縮、終止 App)。
- 開 App 時短暫下跌係正常。長期緩慢下跌而唔回升,係常見「壓力」模式。
鎖定
鎖定 記憶體係 鎖定(唔可分頁),唔可以即時壓縮或回收嘅 RAM。
可以當鎖定係「必 須常駐」記憶體。通常由核心同底層系統服務擁有,對正確性或即時性有要求。
常見例子:
- 核心記憶體同核心 OS 服務
- 硬件驅動同 DMA 緩衝區
- 圖像/顯示表面同部分 GPU 相關分配
- 必須常駐以確保即時性或正確性嘅記憶體
重要原因:
- 鎖定記憶體最唔靈活。如果佔用大,iOS 可以釋放 RAM 嘅選擇少咗,壓力會早啲出現。
- 裝置即使可用記憶體低都未必有問題,但鎖定長期高,iOS 就難以處理。
常見情況:
- 用相機、AR、遊戲、影片處理、大量 I/O 或用外置配件時,鎖定可能會升。
- 鎖定通常「黐身」,有啲分配唔會快縮細,有啲要重開機先會重設。
- 如果鎖定長期上升唔回落,可能係系統層壓力(或系統服務/驅動洩漏)。
活躍
活躍 記憶體係而家 用緊(經常被引用)嘅 RAM,由 App 同系統使用。
活躍唔只係「App 記憶體」,仲包括 OS 覺得而家熱用緊嘅頁面,包括檔案支援頁(例如程式碼、框架)同匿名頁(例如 heap、stack)。
常見例子:
- App heap 同工作集
- 正在用緊嘅檔案緩存、已解碼媒體
- 系統/App 正在操作嘅資料結構
重要原因:
- 活躍記憶體唔係「浪費」記憶體,係工作記憶體,會隨你操作而變。
- iOS 唔可以隨便「釋放」活躍頁面。壓力下,iOS 會先回收緩存,如果唔夠,會壓縮記憶體,最後終止 App。
常見情況:
- 開 App、做嘢時活躍會升,終止 App 或頁面變非活躍時會跌。
- 如果活躍持續上升但工作量冇變(或裝置閒置),可能係 App 有記憶體洩漏或緩存失控。
非活躍
非活躍 記憶體係 最近用過,而家主要做緩存嘅 RAM。
非活躍係 iOS 主要「快速回收」空間來源。大部分非活躍記憶體係乾淨檔案緩存,需要時可以丟棄再重建。
常見例子:
- 檔案緩存頁
- 最近用過、可以重新分配嘅 App 記憶體
- 冇被主動引用,但保留住以備再用嘅資料
重要原因:
- 非活躍通常係 iOS 新分配 RAM 時第一個回收來源。
- 非活躍高通常冇問題,代表 iOS 有效用 RAM 做緩存。
常見情況:
- 開 App、讀檔案、捲動媒體、載入網頁後,非活躍會升(啲頁面變緩存)。
- 有壓力時,iOS 會減少非活躍,將緩存頁面重新分配。
- 如果非活躍已經低而可用都低,iOS 可以回收嘅「易」記憶體少咗,壓力會早啲出現。
可用
可用 記憶體係而家 未分配,可以即時用嘅 RAM。
喺 iOS 上,可用通常設計上都偏低。OS 會盡量用 RAM 做緩存,令你下次開 App、捲動、讀檔案快啲。
重要原因:
- 即使裝置健康,iOS 上可用都會偏細,因為 iOS 寧願用 RAM 做緩存(非活躍),唔會閒置。
- 只要非活躍健康、裝置冇壓力,可用低唔係問題。
壓縮同「其他」(點解數字加唔埋)
App 入面,iOS 仲會報告額外記憶體分類,例如 壓縮 記憶體,同其他唔屬於四大頁面清單嘅系統分配。
壓縮 記憶體係 iOS 將頁面壓縮儲存,係 iOS 主要舒緩壓力方法之一:
- 壓縮可以慳 RAM,但都會用 RAM(同 CPU 去壓縮/解壓)。
- 壓縮佔用上升,通常代表系統努力避免終止 App。
- 如果再次存取壓縮頁面,iOS 要解壓,會加延遲同用多啲 CPU。
其他 係四大分類以外嘅剩餘記憶體,包括各種系統分配同 VM 記帳,iOS 會因 OS 版本/裝置而異。
喺 Lirum:
- 概覽分佈同詳細圖表集中顯示最常見四種狀態:可用、非活躍、活躍、鎖定。
- 總記憶體 係你裝置嘅實體 RAM。
因此,四行分佈未必每部裝置、每個 OS 版本都加埋等於總記憶體。「唔見咗」嘅部分通常係壓縮記憶體,加埋其他系統分配(其他)。
iOS 喺壓力下會點做
當 RAM 緊張時,iOS 通常分階段施加壓力:
- 先回收緩存:重新分配可用頁面,再回收非活躍緩存(丟棄乾淨檔案緩存、清理部分緩存)。
- 壓縮記憶體:將唔常用頁面壓縮儲存,延遲終止 App。
- 終止 App:壓力持續時,iOS 可能終止背景 App(甚至前台 App)釋放記憶體。通常表現為切返 App 會重新載入。
用 歷史 分頁觀察呢啲階段隨時間發生,記憶體工具最有用。
點樣解讀數字
- 可用(可用 + 非活躍) 係最快反映「有幾多空間」嘅指標。
- 鎖定 係最難處理嘅分類。如果鎖定升,系統選擇少咗。
- 非活躍 大通常正常(緩存),系統需要記憶體時會跌。
- 如果 活躍 + 鎖定 升而可用持續跌,可能會見到 App 重新載入、卡頓或系統壓力。
- 用 歷史 分頁分析趨勢。單一快照喺 iOS 上容易誤判,因為 OS 會積極用 RAM 做緩存。
- 如果你做緊重複操作時可用持續下跌,呢個比單一數字更能反映問題。
注意事項與限制
- iOS 會自動管理記憶體;見到 可用 低唔一定有問題。
- 數 值同分類會因裝置同 OS 而異,工具開啟時會持續更新。
- 記憶體工具顯示 全系統 記憶體狀態(唔係每個 App)。
- 部分 iPad 型號同 OS 版本,系統可能會用儲存空間做 swap。記憶體工具只集中顯示實體 RAM,唔會顯示 swap 用量。