
PalPerfWatch
PalPerfWatch同时测量这两项。它在屏幕上显示你的帧率,记录每一次卡顿及其精确长度,分析与之同时发生的事件,并在你关闭游戏时——或崩溃后下次启动时——在浏览器中为你生成完整报告。
查看大图由 AI 协助制作
我的其他项目
PalPerfWatch – 找出导致卡顿的真正原因
《幻兽帕鲁》可以以 100+ FPS 运行,但仍感觉每隔几秒就会卡顿。这不是帧率问题,而是冻结帧问题,任何 FPS 计数器都无法向你显示这一点。
PalPerfWatch 会同时测量这两项指标。它会在屏幕上显示你的帧率,记录每次卡顿及其精确时长,分析与之同时发生的事件,并在你关闭游戏时(或崩溃后,下次启动时)在你的浏览器中生成一份完整报告。
运行要求
- RE-UE4SS – Palworld 版本(Okaetsu/RE-UE4SS,标签 experimental-palworld)。这是一个 Lua 模组,没有它将无法运行。
- 只能安装一个 UE4SS。如果同时使用创意工坊版本和手动安装,会导致游戏崩溃。这并非由本模组引起,但看起来会像是它的原因。
- Windows 系统。报告通过 Windows shell 打开,模组列表也通过 Windows 目录列表读取。
- 需要一个网页浏览器——报告是一个独立的 HTML 文件。
- 不需要其他模组。 除了 UE4SS 外,没有依赖项或脚本扩展器,也不需要 .pak 文件。
不需要: 新存档、旧存档、管理员权限或网络连接。该模组从不写入你的存档,也不会改变世界中的任何内容——它只进行读取和测量。
兼容性: 单人游戏和合作模式(无需服务器权限),并且兼容其他 Lua 模组。它在一次同时运行 18 个 Lua 模组的环境下开发。
安装方法
解压,使最终文件结构如下:
Palworld\Pal\Binaries\Win64\ue4ss\Mods\PalPerfWatch\enabled.txt
Palworld\Pal\Binaries\Win64\ue4ss\Mods\PalPerfWatch\Scripts\main.lua
仅此而已。无需准备 ini 文件——它会在首次启动时自行创建。
更新时: 仅替换 Scripts\main.lua,否则你的设置会被覆盖。
卸载: 删除整个 PalPerfWatch 文件夹。不会在其他任何地方留下任何痕迹。
功能特性
- 屏幕显示 – FPS、帧时间、卡顿计数、总冻结时间以及上次卡顿的原因。按 Shift+F3 切换显示。
- 可靠的卡顿检测 – 游戏线程上的一个循环会监视自身的延迟。当游戏冻结时,该循环到达时间会延迟,而这个延迟就是冻结时间。这能捕获那些因引擎平滑了 delta time 而隐藏在帧率中的卡顿。
- 原因分析 – 每次卡顿都会与周围发生的事件进行核对:关卡加载、对象创建、UI 构建或模组自身的开销。
- 固定间隔检测 – 如果你的冻结是按固定周期出现(例如每 4 秒一次),报告会指出这一点,并告诉你如何测试是否由引擎的垃圾回收器引起。这种节拍器式的卡顿绝非游戏玩法问题。
- 模组检查 – 列出你已安装的每个 Lua 和 .pak 模组及其状态,并在运行 Lua 模组过多导致它们在游戏线程上排队时发出警告。
- 崩溃报告 – 如果游戏未正常关闭,下次启动时会打开上一会话的报告,包括其最后几秒内发生的情况。
- 五种语言 – 英语、德语、西班牙语、俄语、中文。它会自动跟随你的游戏语言;显示和报告会同步切换。
记录内容与不记录内容
不记录玩家行为、位置、物品栏或其他玩家姓名。任何数据都不会被发送到任何地方——所有文件都保留在模组文件夹内。
记录内容包括:每秒帧率、卡顿及其时长、新创建的对象和控件计数器,以及卡顿后紧接着创建的至多 24 个对象的类名。
性能开销
每 16 毫秒进行一次引擎调用,显示界面每秒重绘四次。该模组会测量自身开销,并显示在显示界面和报告中。如果开销超过 2 毫秒/秒,请将 ini 中的 AbtastungMs 提高到 33。
声称“零开销”会是谎言。这个开销很小,并且你随时都可以看到。
设置 (PalPerfWatch.ini)
Anzeige 1 启动时显示
AnzeigeSchrift 7 字体大小
AnzeigeSkalierung 1.0 缩放整个显示,例如 0.5
AnzeigeX / Y 24 屏幕位置
AbtastungMs 16 采样间隔
HaklerMs 25 判定为卡顿的延迟阈值(毫秒)
SchwerMs 100 严重卡顿的阈值
FpsEinbruchProzent 60 FPS 低于平均值的此百分比视为下降
SpawnUeberwachung 1 统计新创建的对象(原因分析所需)
DatenSchreiben 1 将测量数据写入磁盘
BerichtOeffnen 1 关闭游戏后在浏览器中打开报告
Ue4ssLogLesen 1 扫描 UE4SS.log 以查找模组错误
Sprache auto 自动、de、en、es、ru 或 zh
诚实的局限性
- 它无法证明是哪个模组导致了问题。没有 Lua 模组能从内部测量另一个 Lua 模组。报告根据时间巧合列出可疑项——卡顿后立即创建的、并非来自基础游戏的对象,以及在同一时期记录到错误的模组。报告本身也会说明这一点。
- 报告是浏览器页面,而非游戏内窗口。一旦游戏退出,任何模组都无法在游戏内绘制内容。
- 崩溃后,报告会在下次启动时打开,而非立即打开。
- 如果即使在通过菜单正常退出后,退出框仍显示“未正常关闭”,说明你的版本未通过 QuitGame 报告退出。这并非崩溃——请在评论中附上你的游戏版本进行反馈。
问题反馈
请附上模组文件夹中的 PalPerfWatch.log 文件。它记录了哪个显示路径有效、检测到哪种语言以及在何处失败。没有它,任何回答都只能是猜测。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。