AppleScript无法直接清除macOS系统内存缓存,但可通过do shell script "purge" with administrator privileges调用系统合法机制清理Page Cache;此举仅建议系统回收可释放内存,不强制清空,且需授权与密码。

AppleScript 本身无法直接清除 macOS 的系统内存缓存(如 Page Cache、Inactive Memory 等),因为这类操作受内核保护,需要底层权限和系统调用,AppleScript 没有访问内存管理子系统的原生能力。但你可以通过 AppleScript 调用 shell 命令间接触发 macOS 提供的合法缓存清理机制——这本质上是“建议系统回收可释放内存”,而非强制清空。
为什么不能真正“清除”内存缓存?
macOS 使用智能内存管理:Inactive 和 Wired 内存会自动重用,Cached 文件数据在内存充足时保留以加速访问,真正占用资源的是活跃进程(如 Safari、Photos、Xcode)。强行“清空”不仅无效,还可能降低性能。系统只允许用户触发 purge 命令——它仅清空 Page Cache(磁盘缓存),不影响应用运行或系统稳定性。
可用的 AppleScript + shell 方案
以下脚本调用 sudo purge(需管理员密码),这是 Apple 官方文档中唯一推荐的缓存清理方式:
将 iPhone 的 Apple Health 数据同步到 OpenClaw。只需扫描一次二维码,无需手动配置。支持 Mac、Linux 和 VPS。
do shell script "purge" with administrator privileges
注意:
• 必须启用“完全磁盘访问”权限(系统设置 → 隐私与安全性 → 完全磁盘访问 → 添加脚本或 Script Editor)
• 第一次运行会弹出密码框,后续若未重启/注销,可能缓存凭证
• 执行后 Activity Monitor 中的 “Cached Files” 数值会下降,“Inactive” 内存可能转为 “Free”
更安全的替代方案:释放非必要内存占用
比起依赖 purge,优先排查真实内存压力源:
- 关闭长期运行的 Electron 应用(如 Slack、VS Code、Figma),它们常驻高内存
- 重启 Finder:Option + 右键点击 Dock 中 Finder 图标 → “重新启动”
- 用终端快速释放图形缓存:
sudo killall -KILL applestreamd(仅影响视频预览,无害) - 检查内存泄漏进程:
top -o vsize或 Activity Monitor → “内存”标签页排序看 “Memory” 列
不推荐的做法(避免踩坑)
以下方法要么无效、危险,要么已被 macOS 废弃:
-
sudo sysctl vm.compressor_mode=0:已失效(macOS 12+ 移除压缩内存控制) - 第三方“内存清理工具”(如 Memory Cleaner、CleanMyMac 的内存模块):多数只是调用
purge并包装 UI,无额外效果 - 反复执行
purge:频繁调用反而干扰系统内存调度,得不偿失 - 修改
vm.swappiness等 Linux 参数:macOS 不支持该 sysctl 项










