Files
MoonBridge/testing/benchmarks/results/2026-09-26-prism-pack.md
T
layue13andClaude Opus 5.5 789648c82f refactor: 仓库根目录按用途分组
- proxy/:core、plugin-api、luckperms 及其上游子模块 vendor/luckperms
- messaging/、backend/ 保持在根目录(messaging 是代理与后端共用的 API)
- build-logic/(原 proxy-build-logic)
- testing/:smoke/ 与 benchmarks/,不进入发行物

Gradle 项目名不变(settings.gradle.kts 映射目录),任务路径与 Maven 坐标照旧。
脚本的仓库根定位、文档与记录中的链接同步更新。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:34:01 +08:00

4.5 KiB
Raw Blame History

当前 Prism 整合包验收与配对测量

版本和环境

2026-09-26,工作区提交 47ea7ccdf0b98ae7fdd136d45f93837254011bf4。生产实现与 main 238e1bef15e38cdd6de559916b62a53677ae0ba9 相同,分支仅增加真实 TCP 背压测试及文档。该提交远端 Linux CI 9965/check 成功;本地完整回归 196 项通过,最终背压用例另在 Windows 和 Linux 通过。

Windows 11 / Ryzen 7 7800X3D;代理 Zulu 25.0.4.1,Uranium 后端 Zulu 8u492。使用当前 Prism Forge 10.13.4.1614 实例的 15 个 JAR,后端排除客户端专用的 Angelica、BetterRawInput,保留 13 个 JAR,启动后报告 23 个模组条目。Uranium 包 SHA-256:B16747D08BAD4B7C67DB8F1F41C9C31066FEAAAC22B527775F604BDFA885BAD2。后端沿用既有 legacy Netty 测试依赖;本轮未修改 Uranium 或原 Prism 实例。

真实客户端功能验收

已使用当前正版账号完成 Mojang HTTP 200 身份验证,并核对后端 UUID、皮肤属性和签名。两台装载上述模组的本机后端之间往返转服通过;随后连续 20 次交替转服全部达到 NETWORK_READY,真实客户端收到每次切换后的编号消息。21 次后端登录身份一致,最终保持连接至少 64.740 秒,12 个采样均只有一条活动后端连接。20 次代理切换日志耗时为 115–574 ms,p50 122 ms、p95 128 ms;不包含客户端渲染完成。

当前发行包的 DNS、Agent 发现烟测也通过:完成登录和 PLAY 转发;Agent 注销后现有连接继续转发,断开后在线数归零。

配对测量方法

真实模组后端配合协议探针与一次性 Bukkit 工作负载插件。两条路径均离线登录,关闭后端 Bungee 转发,使用相同玩家、同一后端、固定世界种子 123456789、视距 3。正版认证已由上面的独立验收覆盖。

每阶段 50 次预热、200 次计时请求,逐条等待并校验序号及全部 16 KiB 响应字节;每 25 次请求在两个预载位置之间切换,产生真实区块流量。执行顺序为 direct1、proxy1、proxy2、direct2、direct3、proxy3、proxy4、direct4。探针实现 FML 握手、Keep Alive 和位置确认,没有运行客户端渲染或模组玩法逻辑。

接受条件:所有响应完整匹配、无超时,每个正式阶段实际收到区块批量包。最终 1,600 次计时响应和 400 次预热响应全部通过;每阶段均有 8 次位置切换和 32 个区块批量包。计时区间读取的区块包体总量为 283,864–286,340 字节,存在少量世界状态差异。

阶段 响应/秒 p50 ms p95 ms p99 ms
direct1 19.997 48.876 62.489 68.276
proxy1 20.020 46.808 62.332 68.209
proxy2 20.000 50.096 53.423 55.846
direct2 19.992 48.739 62.386 64.454
direct3 20.001 50.102 53.705 56.283
proxy3 20.001 50.112 53.578 55.994
proxy4 20.001 50.059 54.851 61.448
direct4 20.002 50.138 53.390 55.858

原始 JSON 见 数据目录。两条路径均受约 20 Hz 的后端调度限制,延迟区间重叠,不能推出代理零开销、最大玩家容量或相较旧实现的性能提升。资源采样包含登录、预热和尾部排空;首轮后端 CPU 更高,不能将其直接解释为稳定的代理 CPU 开销。包体字节统计不包含外层长度前缀;尾部排空另计,不计入计时吞吐。

证据与复现边界

完整本地档案位于工作区同级 StrataProxy-Acceptance/:2026-09-26-prism-pack、2026-09-26-prism-soak、2026-09-26-prism-performance。保存了模组哈希、客户端/后端/代理日志、身份核验结果、工作负载源码、运行脚本及本次配置。账号凭据不进入档案或仓库。

性能档案的 harness/run-pack.ps1 按当时工作区布局使用 build/prism-pack-bundle 和已安装发行包;将 harness 放回 build/pack-performance 后,以 -Messages 200 -Warmup 50 -Repeats 4 复现。需要上述本地 Java、后端包及插件构建产物;它不是不带外部依赖的 CI 用例。

调试中曾修正测试配置的插件目录、探针 FML 包解析,以及 C06 位置包 feet/stance 顺序;错误位置确认的一轮没有产生计时区块流量,已废弃。本页仅报告修正后、强制验证区块包存在的完整八阶段结果。所有本轮启动的测试进程已退出。

这些证据覆盖指定整合包、单玩家、本机网络和有限观察窗口。并发生产容量及跨物理主机环境仍取决于实际部署;没有据此作容量承诺。