☰
如何使用Madeira的FPS悬浮层:iOS模拟器性能实时监控好帮手
2026/10/1 2:25:42 网站建设 项目流程

如何使用Madeira的FPS悬浮层:iOS模拟器性能实时监控好帮手

【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira

Madeira 是一个让 iPhone(非越狱)通过 FEX-Emu + Wine + DXMT 运行 x86-64 Windows PC 游戏的开源项目。它的FPS 悬浮层(FPS Overlay)是游戏画面上的实时监控面板:随时查看帧率、累计帧数、内存占用和刷新节奏,还能一键切换帧率上限、抓帧截图、调节功耗策略。对于新手来说,它是排查"游戏卡不卡、内存会不会爆"最直观的工具。

FPS 悬浮层在哪里:竖屏与横屏两种形态

启动游戏后,悬浮层会自动出现,无需额外设置:

界面形态悬浮层位置显示内容
📱 竖屏工具界面游戏画面(Metal 视图)正上方完整面板:内存 + Present + FPS + 各功能胶囊
📺 横屏游戏模式右侧黑边栏(pillarbox)紧凑版:FPS + 节奏/抓帧/ECO/围栏胶囊纵向排列

两种形态都由同一个FPSOverlay视图驱动,分别挂载在 ContentView.swift(竖屏)和 ContentView.swift(横屏紧凑版)。横屏下因为游戏画面是窗口级视图、无法在其上覆盖任何内容,所以官方把读数"钉"在了右侧黑边里。

💡 想临时收起面板?点一下悬浮层即可隐藏,只留一个小圆点;再点一下就恢复。

悬浮层读数全解读:5 个数字各代表什么

以竖屏完整面板为例,从左到右依次是:

1️⃣ 内存占用(MB数值 + 颜色)

这是 iOS 的phys_footprint——系统判定是否"杀掉"你的应用的那个数。iOS 在本应用上以 4096 MB 为红线(Jetsam),一旦顶到就是瞬间闪退、日志里连一声再见都没有。颜色按剩余余量提示:

剩余空间颜色含义
> 768 MB🟢 绿安全
> 384 MB🟡 黄留意
> 128 MB🟠 橙紧张,考虑降画质
≤ 128 MB🔴 红随时可能闪退

读数每 250 ms 刷新一次,实现见 FPSOverlay.swift。

2️⃣ Present(累计呈现代数)

DXMT 每向屏幕送一帧就加 1。它本身不直观,但配合 FPS 能判断"画面是卡住了还是只是慢"。

3️⃣ FPS(帧率 + 颜色)

按帧率高低着色:≥50 绿、≥30 黄、≥1 橙、低于 1 淡红。颜色规则很简单粗暴——一眼扫过去就知道这台 A15 现在跑得怎么样(实现见 FPSOverlay.swift)。

4️⃣ 节奏胶囊(60 / MAX(n) / RAW / 30)

这是最实用的部分,点一下就能切换游戏的帧率节奏,四种模式循环:

  • 60:锁定 60 Hz,最省电、最稳;
  • MAX(n):不锁帧,放到屏幕上限(ProMotion 机为 120,n即当前上限);
  • RAW:游戏完全不节流(跳帧信箱模式),此时 FPS 读数就是"模拟栈的真实吞吐",适合测性能天花板;
  • 30:锁 30 Hz,给发烫/掉电的机型留余量(仅当 DXMT 支持该上限时出现)。

切换循环逻辑见 FPSOverlay.swift。

5️⃣ 三个辅助胶囊:CAP / ECO / F(n)

  • CAP:点一下抓取下一帧的全部渲染附件(存入Documents/capture/),排查画面异常的神器,按下会青色闪烁提示已收到;
  • ECO:绿色亮起为开启。开启后把客制线程放到低优先级 QoS 类(能效核、低频),加载稍慢但把性能预算留给游戏本体——大场景加载时建议开,进游戏后关掉;
  • F(n):GPU 围栏同步模式,用于原地 A/B 对比渲染行为(默认 F1,F0 为诊断用的"无围栏"上限,预期会有闪烁)。

数据是怎么算的:为什么读数又稳又省电

悬浮层背后是一套很克制的采样设计(FPSOverlay.swift):

  • 后端每100 ms采样一次累计帧数,维护 5 秒环形缓冲(50 个样本);
  • 显示值每250 ms刷新,采用自适应窗口:窗口至少包含 3 帧以上、且跨度 ≥1 秒才计算,所以 60 FPS 时窗口约 100 ms,而 1 FPS 的慢场景也有约 3 秒的稳定读数;
  • 早期"固定 200 ms 窗口"会让 19 FPS 的慢场景显示成假的"20.0"整数锁帧,自适应窗口正是为解决这类误读而生。

简单说:你看到的数字既稳定、又不会因为采样太稀疏而抖动。

相关设置项:配合悬浮层做性能调优

悬浮层只是"仪表盘",真正的调优旋钮在配置里,可在 ConfigCatalog.generated.swift 查到完整定义:

配置项作用位置
env.MADEIRA_PROMOTE让屏幕保持最高刷新率(60 上限档位下也拉满 120Hz),更吃电,非默认ConfigCatalog
fence-chainD3D12 围栏链模式,与悬浮层 F(n) 胶囊联动ConfigCatalog
eco/eco-qos省电调度开关及 QoS 等级选择ConfigCatalog

ProMotion 促升逻辑的完整说明(为什么 60 上限下 20 ms 的管线会只显示 30 FPS)见 FPSOverlay.swift 的ProMotionIntent注释。

新手速查:遇到性能问题的 3 步排查

  1. 先看 FPS 颜色:黄/橙说明帧率不够 → 点节奏胶囊降到60或30,把帧率锁稳比追求高帧更流畅;
  2. 再看内存颜色:红/橙说明快碰 Jetsam 红线 → 进设置降游戏画质,或开启ECO缓解压力;
  3. 想留证据:按CAP抓一帧,把Documents/capture/里的图和日志一起提交,排查效率翻倍。

项目整体背景与运行要求可参考 README.md。FPS 悬浮层把"看不见的性能"变成了屏幕上的一行彩色数字,是你在 iPhone 上玩转 Windows 游戏时最值得先学会使用的功能 🎮。

【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询