一台Mac狂跑12台iOS模拟器:simslim内存优化4倍的终极指南(附实测数据)
【免费下载链接】simslimRun more iOS simulators on one Mac by disabling background daemons a simulator doesn't need项目地址: https://gitcode.com/gh_mirrors/si/simslim
simslim 是一款开源的 iOS 模拟器内存优化工具,专为 macOS 开发者打造。它只需一行命令,就能关掉 iOS 模拟器启动时自带的 170+ 个无用后台守护进程,把单台模拟器的内存占用直接砍掉约 4 倍,让一台普通笔记本从容运行 12 台以上 iOS 模拟器。本文带你从安装到实战,拿满这套完整指南。
为什么 iOS 模拟器这么"吃"内存?
刚启动的 iOS 模拟器会同时拉起约180 个后台服务:Siri、Spotlight 索引、照片分析、News、壁纸海报渲染、iCloud 同步……
问题是:开发、UI 自动化测试或 CI 场景里,这些服务一个都用不上。simslim 的思路非常直接——把它们全部关掉,内存占用立刻降下来。
实测数据:4.0 GB 降到 0.9 GB
以下是官方在 16 GB 内存 M1 Pro 笔记本上的实测结果,同一设备、同等稳定时间:
| 指标 | 原生状态 | simslim 精简后 |
|---|---|---|
| 进程数 | 258 | 70 |
| 内存占用(phys_footprint) | 4.0 GB | 0.9 GB |
差距非常直观:原生模拟器大约开 5 台就开始疯狂换页(thrashing),精简后 12 台依然轻松。下面这张图来自一台 Mac 上同时运行 19 台模拟器的实测画面:
📌 内存指标是
phys_footprint,也就是活动监视器里显示的那个值(含压缩与换出页)。正是这个数字决定了你的机器还能塞下几台模拟器。用simslim measure <udid>随时查看任意已启动模拟器。
一键安装 simslim 最快方法
simslim 仅支持 macOS,需要已装好 Xcode 和 iOS 模拟器运行时(它通过xcrun simctl驱动模拟器)。
Homebrew 一行安装(推荐):
brew install mobai-app/tap/simslim装完就能用。CLI 源码位于 cmd/simslim/ 目录,核心精简逻辑则是无外部依赖的 Go 库,也可以被你自己的工具直接调用。
三步上手:list → on → measure
第 1 步:查看模拟器清单
simslim list列出全部模拟器及其精简状态,加--booted只看正在运行的。
第 2 步:一行精简
simslim on <udid>这条命令会把禁用配置写入该模拟器自己的 launchd 数据库并重启生效,此后每次开机都保持精简状态。想恢复原生状态:
simslim off <udid>第 3 步:验证内存
simslim measure <udid>也可以用simslim top打开实时队列表,回车进入单台模拟器查看每个守护进程的内存/CPU 占用。
simslim 精简内存的原理是什么?
机制简单到让人安心:
simslim on把持久化的launchctl disable条目写入模拟器自身的 launchd 数据库;- 重启后,这些守护进程从此不再启动。
几个关键的安全设计:
- 🛡️只动你指定的那台模拟器,宿主机 Mac 毫发无损;
- 只禁用白名单内的守护进程,会"卡死"模拟器的核心服务一律保留;
- 精简状态跨重启、跨关机持久(iOS 18.5+ 已验证);
- 更老的系统(iOS 17.x / 18.3)可用
simslim on <udid> --no-reboot在当前会话内直接停用守护进程(重启后失效,需重跑)。
速度也很快:在 iPhone 17 Pro / iOS 26.5 上,首次精简约 2 分 14 秒,优化路径下仅需33 秒,其中绝大部分是启动本身。
精简分类清单:每关一项省多少?
simslim 把可关的后台服务整理成 15 个分类,simslim profiles可以查看全部内容。下面是各分类的内存参考值(iOS 26.5 干净启动实测中位数,不可累加,仅用于对比):
| 分类 ID | 关掉的特性 | 约省内存 |
|---|---|---|
widgets | 小组件与壁纸 | 675 MB |
siri | Siri 与 Apple Intelligence | 265 MB |
other | 其他后台服务 | 195 MB |
health | 健康、家居、健身 | 135 MB |
telemetry | 广告、诊断与遥测 | 105 MB |
icloud | iCloud 与 Apple 账号 | 100 MB |
apps | News、天气、地图、游戏 | 90 MB |
store | App Store、推送、媒体 | 80 MB |
pim | 邮件、日历、通讯录 | 80 MB |
search | Spotlight 搜索 | 50 MB |
完整测量方法见 docs/category-memory.md。
某个分类你确实用得上?直接排除掉即可:
# 保留 Spotlight 搜索 simslim on <udid> --except search # 只保留某一个守护进程(如推送通知) simslim on <udid> --keep com.apple.apsdCI 场景三件套:profile + doctor + verify
跑 UI 测试或并行测试时,这三招能帮你把环境"锁死":
1️⃣ Profile 文件:可复用的精简配置
把 JSON profile 提交到项目里,CI 和开发环境可以用不同配置:
{ "name": "ci", "description": "UI test runs", "except": ["search", "store"], "keep": ["com.apple.apsd"] }simslim on <udid> --profile ci.json校验很严格:拼错的分类 ID 或未知字段会直接报错,杜绝"静默失败"。
2️⃣ doctor:测试前体检
simslim doctor <udid> --requires push,storekit,universal-links测试依赖的某个能力被误关了?立即以非零码退出——天然的 CI 预检步骤。
3️⃣ verify:防止精简状态漂移
新创建的模拟器默认是"肥"的,而且不会有任何报错提醒你。一行命令即可检测并自动修复:
simslim verify <udid> --profile ci.json || simslim on <udid> --profile ci.json另外,xcodebuild并行测试会自动生成一次性克隆模拟器,simslim watch可以盯着设备集合,哪台一启动就立刻精简哪台,几分钟的运行全程保住省下的内存。
附赠:顺手清理模拟器磁盘
内存优化之外,simslim 还有一个独立的磁盘清理能力(永久删除,与精简服务互不影响):
simslim disk-plan <udid> # 只读:先看看能回收多少 simslim disk-clean --categories caches,logs --confirm <udid>实测单台模拟器一次可回收1.4~1.7 GB。它只清白名单内的每台设备私有目录,且必须带--confirm才执行;共享的签名 iOS 运行时和文档、应用数据等持久存储绝不动刀。安全模型详见 docs/disk-cleanup.md。
精简后会失去哪些功能?
对绝大多数开发、UI 自动化和 CI 来说,毫无感觉。但以下几点值得知道:
- 🔍 Spotlight 与设置内搜索将无结果(
search) - 🔔 推送通知需要
apsd(store) - 🛍️ StoreKit 测试需要
storekitd(store) - 🔗 Universal Links 需要
swcd(web)
配合上文的--except/--keep和doctor检查,基本可以无脑用。
GUI 版:可视化管理全部模拟器
simslim 还自带一个 SwiftUI macOS 应用,内置 CLI 并增加:
- 可搜索的模拟器列表,附磁盘大小与实时内存列
- 可搜索的服务 profile,支持单个守护进程级开关
- 只读磁盘分析 + 确认后清理
- 克隆、重命名、抹掉、删除与 Finder 快捷入口
本地构建方式见 Makefile:
make app open build/SimSlim.appGUI 源码位于 gui/ 目录。
写在最后
simslim 是目前最划算的 iOS 模拟器内存优化方案,汇总一下:
| 项目 | 原生 | 精简后 |
|---|---|---|
| 单台内存 | 4.0 GB | 0.9 GB |
| 单台进程数 | 258 | 70 |
| 16 GB 笔记本可开台数 | ~5 | 12+ |
单台模拟器内存降 4 倍,等于免费把机器的并行能力翻了一倍——无论是并行 UI 测试,还是让多个 Agent 各自开一台模拟器跑应用,收益都立竿见影。一行安装、一行精简,值得一试。
【免费下载链接】simslimRun more iOS simulators on one Mac by disabling background daemons a simulator doesn't need项目地址: https://gitcode.com/gh_mirrors/si/simslim
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考