应用介绍
在 Mac 上开 iOS 模拟器做测试,开到第五六个机器就开始换页、风扇狂转。原因不在你的 App——一个刚启动的模拟器会拉起约 180 个后台服务:Siri、Spotlight 索引、照片分析、新闻、壁纸海报、iCloud 同步……开发和 CI 场景一个都用不上,但内存照吃不误。simslim 干的就是把这些关掉:同一台 16 GB M1 Pro 上,实测进程数从 258 降到 70,内存从 4.0 GB 降到 0.9 GB,一台机器能跑的模拟器数量从「个位数」变成「一屏」。
它是 Go 写的命令行工具,通过
内存数字用的是 phys_footprint(活动监视器显示的那个口径,算上压缩和交换页),而不是简单加总 ps 的 RSS——README 专门解释了为什么后者不可比。另外
除了 CLI 还有一个 SwiftUI 写的 macOS 应用,内置 CLI 并加上可搜索的状态、磁盘占用和实时内存列。仅限 macOS,需要 Xcode 和 iOS 模拟器运行时。MIT 协议。
按类别瘦身:把模拟器用不上的后台服务分成小组件壁纸、Siri、Spotlight、iCloud、App Store 与推送、邮件日历、Safari 同步、家人共享等类别整组关停,每类标注了大致内存收益。
保留指定服务:
真实内存测量:
实时机群监控:
CI 配置校验:
磁盘清理:
模拟器管理:克隆、重命名、启动、关机、抹除、删除,以及克隆修复,常用的 simctl 操作都包了一层。
随时可逆:
JSON 输出:只读和管理类命令都支持
桌面应用:SwiftUI 应用内置 CLI,提供可搜索的模拟器状态、磁盘大小与实时内存列,以及按守护进程的开关和用途说明。
安装简单:
它是 Go 写的命令行工具,通过
xcrun simctl 驱动模拟器,按类别关停 launchd 服务:小组件壁纸、Siri 与智能、Spotlight、iCloud、App Store 与推送、邮件日历通讯录、Safari 同步、家人共享等,每类都标了大致能省多少内存。要留哪一类也能指定——比如 --except search 保住 Spotlight,或者 --keep com.apple.apsd 单独留下推送。内存数字用的是 phys_footprint(活动监视器显示的那个口径,算上压缩和交换页),而不是简单加总 ps 的 RSS——README 专门解释了为什么后者不可比。另外
status 和 measure 回答的是两个不同问题:前者只统计它管理的 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/simslim 或 go install,仅限 macOS,需要装有 iOS 模拟器运行时的 Xcode。
