simslim

simslim

关掉后台服务让Mac多跑几倍模拟器

开发官网

应用介绍

在 Mac 上开 iOS 模拟器做测试,开到第五六个机器就开始换页、风扇狂转。原因不在你的 App——一个刚启动的模拟器会拉起约 180 个后台服务:Siri、Spotlight 索引、照片分析、新闻、壁纸海报、iCloud 同步……开发和 CI 场景一个都用不上,但内存照吃不误。simslim 干的就是把这些关掉:同一台 16 GB M1 Pro 上,实测进程数从 258 降到 70,内存从 4.0 GB 降到 0.9 GB,一台机器能跑的模拟器数量从「个位数」变成「一屏」。

它是 Go 写的命令行工具,通过 xcrun simctl 驱动模拟器,按类别关停 launchd 服务:小组件壁纸、Siri 与智能、Spotlight、iCloud、App Store 与推送、邮件日历通讯录、Safari 同步、家人共享等,每类都标了大致能省多少内存。要留哪一类也能指定——比如 --except search 保住 Spotlight,或者 --keep com.apple.apsd 单独留下推送。

内存数字用的是 phys_footprint(活动监视器显示的那个口径,算上压缩和交换页),而不是简单加总 ps 的 RSS——README 专门解释了为什么后者不可比。另外 statusmeasure 回答的是两个不同问题:前者只统计它管理的 launchd 标签状态,不是实时进程数;后者才遍历该模拟器下所有进程求和。

除了 CLI 还有一个 SwiftUI 写的 macOS 应用,内置 CLI 并加上可搜索的状态、磁盘占用和实时内存列。仅限 macOS,需要 Xcode 和 iOS 模拟器运行时。MIT 协议。

软件功能



按类别瘦身:把模拟器用不上的后台服务分成小组件壁纸、Siri、Spotlight、iCloud、App Store 与推送、邮件日历、Safari 同步、家人共享等类别整组关停,每类标注了大致内存收益。

保留指定服务:--except 按类别保留、--keep 按具体 launchd 标签保留,测推送就留 apsd,测搜索就留 Spotlight,不用全有或全无。

真实内存测量:measure 遍历模拟器下所有进程并求和 phys_footprint,给的是决定「还能再开几个」的那个数,而不是会重复计算共享内存的 RSS 之和。

实时机群监控:top 提供整机模拟器的实时监控视图,可以进到单个模拟器里看每个守护进程的内存和 CPU。

CI 配置校验:verify --profile ci.json 按给定配置精确比对,有漂移就返回非零退出码,适合放进流水线;doctor 可以检查指定能力(推送、StoreKit、通用链接等)是否还可用。

磁盘清理:size 看占用、disk-plan 只读地算出可回收数据量、disk-clean 按类别(缓存、日志等)确认后清理。

模拟器管理:克隆、重命名、启动、关机、抹除、删除,以及克隆修复,常用的 simctl 操作都包了一层。

随时可逆:off 一条命令恢复原状,官方建议改动前先克隆一份留作备份。

JSON 输出:只读和管理类命令都支持 --json,方便接自己的脚本和上层工具。

桌面应用:SwiftUI 应用内置 CLI,提供可搜索的模拟器状态、磁盘大小与实时内存列,以及按守护进程的开关和用途说明。

安装简单:brew install mobai-app/tap/simslimgo install,仅限 macOS,需要装有 iOS 模拟器运行时的 Xcode。

应用截图