跳到主要內容

記憶體

即時記憶體分佈(可用/非活躍/活躍/鎖定)配合分配圖表同歷史記錄。

概覽

記憶體工具會顯示你裝置 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 用量。