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 秒刷新。当浏览器标签页不可见时,轮询会自动暂停以节省资源。