17. 記憶體監控與管理
Lantide Data 在運作過程中會將查詢結果、快取表與引擎資料保留在記憶體中。為了避免記憶體不足影響效能,系統提供了即時監控、壓力警告與一鍵清理機制。
17.1 標題列記憶體指示器
標題列右上角有一個記憶體用量圖示(MemoryStick,滑鼠暫留顯示「Memory usage」),即時反映目前的記憶體壓力等級:
| 狀態 | 圖示表現 | 說明 |
|---|---|---|
| 正常 | 預設色 | 記憶體使用量低於 70% |
| 警告 | 黃色 | 使用量達 70%–90%,建議清理快取 |
| 危急 | 紅色 + 脈動動畫 | 使用量超過 90%,應立即清理 |
點擊此圖示即可開啟 Memory Dashboard 對話框。
17.2 記憶體壓力 Toast 通知
當記憶體壓力跨越閾值時,系統會自動彈出 Toast 通知:
- Memory Warning — 使用量達約 70%,建議清理不需要的快取。
- Memory Critical — 使用量超過約 90%,建議立即透過 Memory Dashboard 釋放空間。
17.3 Memory Dashboard
開啟 Memory Dashboard 後,你可以查看並管理所有記憶體相關設定:
整體用量
- 頂部顯示 Overall: X / Y MB (Z%),搭配彩色進度條直覺呈現用量比例。
記憶體預算設定
| 設定項目 | 說明 |
|---|---|
| Maximum Memory Budget | 下拉選單可調整記憶體上限(256 MB 至約 80% 系統 RAM)。帶有 (recommended) 標記的選項為建議值(約 25% 系統 RAM,最高 4096 MB)。變更後立即生效 |
| Max In-Memory Results | 下拉選單設定記憶體中保留的查詢結果數量(1–20)。超出數量的結果會自動溢出至磁碟。變更後立即生效 |
模組記憶體分布
Dashboard 將記憶體拆分為四大模組,各自顯示估計用量(MB)與佔比(%):
| 模組 | 說明 | 可執行的操作 |
|---|---|---|
| DuckDB Engine | 查詢引擎佔用的記憶體 | — |
| Query Result Cache | 查詢結果快取(含記憶體內數量與已溢出數量) | Spill to Disk |
| Tab Cache | 分頁快取表 | Drop All |
| Python Overhead | Python 運行時開銷 | Force GC |
已快取表清單
在模組卡片下方,你可以看到所有快取表的名稱、行數與估計大小。每筆快取旁有刪除按鈕,可逐一移除不需要的快取表。
磁碟溢出(Disk Spill)
顯示已溢出到磁碟的資料量與暫存目錄路徑。
Emergency Clean(緊急清理)
點擊 Emergency Clean 按鈕,系統會一次執行所有清理動作:將查詢結果溢出至磁碟、釋放所有分頁快取、執行 Python 垃圾回收。完成後會以 Toast 通知顯示釋放的記憶體量。
提示: Memory Dashboard 開啟期間,用量數據每 2 秒自動刷新;關閉後改為每 5 秒刷新。當瀏覽器分頁不可見時,輪詢會自動暫停以節省資源。